Commit 266542ab authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.5.6

parent b4f20f70
DOXYGEN Version 1.5.5-20080420
DOXYGEN Version 1.5.6
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (20 April 2008)
Dimitri van Heesch (17 May 2008)
DOXYGEN Version 1.5.5_20080420
DOXYGEN Version 1.5.6
Please read INSTALL for compilation instructions.
......@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (20 April 2008)
Dimitri van Heesch (dimitri@stack.nl) (17 May 2008)
......@@ -17,10 +17,10 @@
doxygen_version_major=1
doxygen_version_minor=5
doxygen_version_revision=5
doxygen_version_revision=6
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn=20080420
doxygen_version_mmn=NO
bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
......
......@@ -1358,6 +1358,12 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
with previous releases of Doxygen, the values YES and NO are equivalent
to FRAME and NONE respectively.
Via custom stylesheets (see \ref cfg_html_stylesheet "HTML_STYLESHEET")
one can further \ref doxygen_finetune "fine tune" the look of the index.
As an example, the default style sheet generated by doxygen has an
example that shows how to put an image at the root of the tree instead of
the \ref cfg_project_name "project name".
\anchor cfg_treeview_width
<dt>\c TREEVIEW_WIDTH <dd>
\addindex TREEVIEW_WIDTH
......
......@@ -46,34 +46,34 @@ Written by Dimitri van Heesch\\[2ex]
\pagenumbering{arabic}
\include{index}
\part{User Manual}
\input{install}
\input{starting}
\input{docblocks}
\input{lists}
\input{grouping}
\input{formulas}
\input{diagrams}
\input{preprocessing}
\input{autolink}
\input{output}
\input{external}
\input{faq}
\input{trouble}
\chapter{Installation}\label{install}\hypertarget{install}{}\input{install}
\chapter{Getting Started}\label{starting}\hypertarget{starting}{}\input{starting}
\chapter{Documenting the code}\label{docblocks}\hypertarget{docblocks}{}\input{docblocks}
\chapter{Lists}\label{lists}\hypertarget{lists}{}\input{lists}
\chapter{Grouping}\label{grouping}\hypertarget{grouping}{}\input{grouping}
\chapter{Including Formulas}\label{formulas}\hypertarget{formulas}{}\input{formulas}
\chapter{Graphs and diagrams}\label{diagrams}\hypertarget{diagrams}{}\input{diagrams}
\chapter{Preprocessing}\label{preprocessing}\hypertarget{preprocessing}{}\input{preprocessing}
\chapter{Automatic link generation}\label{autolink}\hypertarget{autolink}{}\input{autolink}
\chapter{Output Formats}\label{output}\hypertarget{output}{}\input{output}
\chapter{Custom Commands}\label{custcmd}\hypertarget{custcmd}{}\input{custcmd}
\chapter{Link to external documentation}\label{external}\hypertarget{external}{}\input{external}
\chapter{Frequently Asked Questions}\label{faq}\hypertarget{faq}{}\input{faq}
\chapter{Troubleshootinh}\label{trouble}\hypertarget{trouble}{}\input{trouble}
\part{Reference Manual}
\input{features}
\input{history}
\input{doxygen_usage}
\input{doxytag_usage}
\input{doxywizard_usage}
\input{installdox_usage}
\input{config}
\input{commands}
\input{htmlcmds}
\input{xmlcmds}
\chapter{Features}\label{features}\hypertarget{features}{}\input{features}
\chapter{Doxygen History}\label{history}\hypertarget{history}{}\input{history}
\chapter{Doxygen usage}\label{doxygen_usage}\hypertarget{doxygen_usage}{}\input{doxygen_usage}
\chapter{Doxytag usage}\label{doxytag_usage}\hypertarget{doxytag_usage}{}\input{doxytag_usage}
\chapter{Doxywizard usage}\label{doxywizard_usage}\hypertarget{doxywizard_usage}{}\input{doxywizard_usage}
\chapter{Installdox usage}\label{installdox_usage}\hypertarget{installdox_usage}{}\input{installdox_usage}
\chapter{Configuration}\label{config}\hypertarget{config}{}\input{config}
\chapter{Special Commands}\label{commands}\hypertarget{commands}{}\input{commands}
\chapter{HTML commands}\label{htmlcmds}\hypertarget{htmlcmds}{}\input{htmlcmds}
\chapter{XML commands}\label{xmlcmds}\hypertarget{xmlcmds}{}\input{xmlcmds}
\part{Developers Manual}
\input{arch}
\input{perlmod}
%\input{perlmod_tree}
\input{langhowto}
\chapter{Doxygen's internals}\label{arch}\hypertarget{arch}{}\input{arch}
\chapter{Perl Module Output format}\label{perlmod}\hypertarget{perlmod}{}\input{perlmod}
\chapter{Internationalization}\label{langhowto}\hypertarget{langhowto}{}\input{langhowto}
\printindex
\end{document}
......@@ -54,6 +54,7 @@ to the new configuration file. Any new options will have their default value.
Note that comments that you may have added in the original configuration file
will be lost.
\anchor doxygen_finetune
If you want to fine-tune the way the output looks, doxygen allows you
generate default style sheet, header, and footer files that you can edit
afterwards:
......
......@@ -229,7 +229,7 @@ when the translator was updated.
<td>Russian</td>
<td>Alexandr Chelpanov</td>
<td>cav at cryptopro dot ru</td>
<td>1.5.4</td>
<td>up-to-date</td>
</tr>
<tr bgcolor="#ffffff">
<td>Serbian</td>
......@@ -352,7 +352,7 @@ when the translator was updated.
\hline
Romanian & Alexandru Iosup & {\tt\tiny aiosup@yahoo.com} & 1.4.1 \\
\hline
Russian & Alexandr Chelpanov & {\tt\tiny cav@cryptopro.ru} & 1.5.4 \\
Russian & Alexandr Chelpanov & {\tt\tiny cav@cryptopro.ru} & up-to-date \\
\hline
Serbian & Dejan Milosavljevic & {\tt\tiny dmilos@email.com} & 1.4.1 \\
\hline
......
......@@ -168,10 +168,13 @@ tree.
<p>As you can see, the documentation contained in <b>$doxydocs</b>
does not present any special impediment to be processed by a simple
Perl script. To be able to generate meaningful output using the
Perl script.
<!--
To be able to generate meaningful output using the
documentation contained in <b>$doxydocs</b> you'll probably need to
know the semantics of the nodes of the documentation tree, which we
present in \ref perlmod_tree "this page".
-->
\section doxymodel_format Data structure describing the Perl Module documentation tree.
......
......@@ -9,7 +9,7 @@ German, Greek, Hungarian, Indonesian, Italian, Japanese (+En), Korean
Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and
Ukrainian.
Of them, 13 translators are up-to-date, 21 translators are based on
Of them, 14 translators are up-to-date, 20 translators are based on
some adapter class, and 2 are English based.
----------------------------------------------------------------------
......@@ -30,6 +30,7 @@ still may be some details listed even for them:
TranslatorItalian
TranslatorKorean
TranslatorPersian
TranslatorRussian
TranslatorSpanish -- Change the base class to Translator.
----------------------------------------------------------------------
......@@ -38,7 +39,6 @@ obsolete at the end). The other info shows the estimation of Doxygen
version when the class was last updated and number of methods that
must be implemented to become up-to-date:
TranslatorRussian 1.5.4 22 methods to implement
TranslatorMacedonian 1.5.04 22 methods to implement
Note: Change the base class to TranslatorAdapter_1_5_4.
......@@ -690,37 +690,6 @@ TranslatorRomanian (TranslatorAdapter_1_4_1) 24 methods to implement
virtual QCString trNoDescriptionAvailable()
TranslatorRussian (TranslatorAdapter_1_5_4) 22 methods to implement
-----------------
Implements 194 of the required methods.
Missing methods (should be implemented):
virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single)
virtual QCString trSubprograms()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
virtual QCString trTypeDocumentation()
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
virtual QCString trModulesIndex()
virtual QCString trCompoundListFortran()
virtual QCString trDataTypes()
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate)
virtual QCString trType(bool first_capital, bool singular)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
TranslatorSerbian (TranslatorAdapter_1_4_1) 24 methods to implement
-----------------
......
......@@ -943,7 +943,7 @@ void ClassDef::showUsedFiles(OutputList &ol)
}
ol.writeListItem();
QCString path=fd->getPath().copy();
QCString path=fd->getPath();
if (Config_getBool("FULL_PATH_NAMES"))
{
ol.docify(stripFromPath(path));
......
......@@ -2170,6 +2170,8 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
}
<UsingName>\n { codifyLines(yytext); BEGIN(Body); }
<UsingName>. { codifyLines(yytext); BEGIN(Body); }
<Body,FuncCall>"$"?"this"("->"|".") { g_code->codify(yytext); // this-> for C++, this. for C#
}
<Body>{KEYWORD}/([^a-z_A-Z0-9]) {
startFontClass("keyword");
codifyLines(yytext);
......@@ -2409,7 +2411,6 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
g_code->codify(yytext);
endFontClass();
}
<Body,FuncCall>"$"?"this->" { g_code->codify(yytext); }
<Body>"."|"->" {
g_code->codify(yytext);
g_memCallContext = YY_START;
......
......@@ -2413,6 +2413,13 @@ void Config::create()
FALSE
);
cb->addDependency("GENERATE_HTML");
cs = addString(
"CHM_INDEX_ENCODING",
"If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING\n"
"is used to encode HtmlHelp index (hhk), content (hhc) and project file\n"
"content.\n"
);
cs->addDependency("GENERATE_HTML");
cb = addBool(
"BINARY_TOC",
"If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag \n"
......
......@@ -400,7 +400,11 @@ static void checkUndocumentedParams()
QString argName = g_memberDef->isDefine() ? a->type : a->name;
argName=argName.stripWhiteSpace();
if (argName.right(3)=="...") argName=argName.left(argName.length()-3);
if (!argName.isEmpty() && g_paramsFound.find(argName)==0 && a->docs.isEmpty())
if (getLanguageFromFileName(g_memberDef->getDefFileName())==SrcLangExt_Python && argName=="self")
{
// allow undocumented self parameter for Python
}
else if (!argName.isEmpty() && g_paramsFound.find(argName)==0 && a->docs.isEmpty())
{
found = TRUE;
break;
......@@ -418,7 +422,11 @@ static void checkUndocumentedParams()
{
QString argName = g_memberDef->isDefine() ? a->type : a->name;
argName=argName.stripWhiteSpace();
if (!argName.isEmpty() && g_paramsFound.find(argName)==0)
if (getLanguageFromFileName(g_memberDef->getDefFileName())==SrcLangExt_Python && argName=="self")
{
// allow undocumented self parameter for Python
}
else if (!argName.isEmpty() && g_paramsFound.find(argName)==0)
{
if (!first)
{
......
......@@ -417,6 +417,21 @@
" margin-top: 1em; \n"
" font-size: 11pt; \n"
"}\n"
"\n"
"/* The following two styles can be used to replace the root node title */\n"
"/* with an image of your choice. Simply uncomment the next two styles, */\n"
"/* specify the name of your image and be sure to set \'height\' to the */\n"
"/* proper pixel height of your image. */\n"
"\n"
"/* .directory h3.swap { */\n"
"/* height: 61px; */\n"
"/* background-repeat: no-repeat; */\n"
"/* background-image: url(\"yourimage.gif\"); */\n"
"/* } */\n"
"/* .directory h3.swap span { */\n"
"/* display: none; */\n"
"/* } */\n"
"\n"
".directory > h3 { \n"
" margin-top: 0; \n"
"}\n"
......
......@@ -348,8 +348,8 @@ static bool getFortranTypeDefs(const QCString &tname, const QCString &moduleName
searches for definition of function memberName
@param memberName the name of the function/variable
@param moduleName name of enclosing module or null, if global entry
@param memberDef the entry, if found or null
@param useList array of data of USE-statement
@param md the entry, if found or null
@param usedict array of data of USE-statement
@returns true, if found
*/
static bool getFortranDefs(const QCString &memberName, const QCString &moduleName,
......
......@@ -705,7 +705,7 @@ void FTVHelp::generateTreeView(QString* OutString)
t << "\n";
t << " <body class=\"ftvtree\">\n";
t << " <div class=\"directory\">\n";
t << " <h3>";
t << " <h3 class=\"swap\"><span>";
QCString &projName = Config_getString("PROJECT_NAME");
if (projName.isEmpty())
{
......@@ -715,7 +715,7 @@ void FTVHelp::generateTreeView(QString* OutString)
{
t << projName;
}
t << "</h3>\n";
t << "</span></h3>\n";
}
else
{
......
......@@ -1444,7 +1444,7 @@ void HtmlGenerator::endParameterName(bool last,bool emptyList,bool closeBracket)
t << " <td>";
if (closeBracket) t << "&nbsp;)";
t << "&nbsp;</td>" << endl;
t << " <td width=\"100%\">";
t << " <td>";
}
else
{
......@@ -1455,7 +1455,7 @@ void HtmlGenerator::endParameterName(bool last,bool emptyList,bool closeBracket)
t << " <td>";
if (closeBracket) t << ")";
t << "</td>" << endl;
t << " <td></td><td></td><td width=\"100%\">";
t << " <td></td><td></td><td>";
}
}
else
......
......@@ -22,12 +22,14 @@
#include <stdlib.h>
#include <qlist.h>
#include <qdict.h>
#include "qtextcodec.h"
#include "htmlhelp.h"
#include "config.h"
#include "message.h"
#include "doxygen.h"
#include "language.h"
#include "portable.h"
//----------------------------------------------------------------------------
......@@ -268,8 +270,13 @@ HtmlHelp::HtmlHelp() : indexFileDict(1009)
dc = 0;
cf = kf = 0;
index = new HtmlHelpIndex;
m_fromUtf8 = (void *)(-1);
}
HtmlHelp::~HtmlHelp()
{
if (m_fromUtf8!=(void *)(-1)) portable_iconv_close(m_fromUtf8);
}
#if 0
/*! return a reference to the one and only instance of this class.
*/
......@@ -289,6 +296,10 @@ static QDict<QCString> s_languageDict;
*/
void HtmlHelp::initialize()
{
const char *str = Config_getString("CHM_INDEX_ENCODING");
if(!str) str = "Windows-1250";
m_fromUtf8 = portable_iconv_open(str,"UTF-8");
/* open the contents file */
QCString fName = Config_getString("HTML_OUTPUT") + "/index.hhc";
cf = new QFile(fName);
......@@ -299,7 +310,7 @@ void HtmlHelp::initialize()
}
/* Write the header of the contents file */
cts.setDevice(cf);
cts.setEncoding(QTextStream::UnicodeUTF8);
cts.setEncoding(QTextStream::Latin1);
cts << "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">\n"
"<HTML><HEAD></HEAD><BODY>\n"
"<OBJECT type=\"text/site properties\">\n"
......@@ -317,7 +328,7 @@ void HtmlHelp::initialize()
}
/* Write the header of the contents file */
kts.setDevice(kf);
kts.setEncoding(QTextStream::UnicodeUTF8);
kts.setEncoding(QTextStream::Latin1);
kts << "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">\n"
"<HTML><HEAD></HEAD><BODY>\n"
"<OBJECT type=\"text/site properties\">\n"
......@@ -409,7 +420,7 @@ void HtmlHelp::createProjectFile()
{
QTextStream t(&f);
#if QT_VERSION >= 200
t.setEncoding(QTextStream::UnicodeUTF8);
t.setEncoding(QTextStream::Latin1);
#endif
......@@ -430,7 +441,7 @@ void HtmlHelp::createProjectFile()
"Language=" << getLanguageString() << endl;
if (Config_getBool("BINARY_TOC")) t << "Binary TOC=YES\n";
if (Config_getBool("GENERATE_CHI")) t << "Create CHI file=YES\n";
t << "Title=" << Config_getString("PROJECT_NAME") << endl << endl;
t << "Title=" << recode(Config_getString("PROJECT_NAME")) << endl << endl;
t << "[WINDOWS]" << endl;
......@@ -440,7 +451,7 @@ void HtmlHelp::createProjectFile()
// the font-size one is not normally settable by the HTML Help Workshop
// utility but the way to set it is described here:
// http://support.microsoft.com/?scid=kb%3Ben-us%3B240062&x=17&y=18
t << "main=\"" << Config_getString("PROJECT_NAME") << "\",\"index.hhc\","
t << "main=\"" << recode(Config_getString("PROJECT_NAME")) << "\",\"index.hhc\","
"\"index.hhk\",\"" << indexName << "\",\"" <<
indexName << "\",,,,,0x23520,,0x10387e,,,,,,,,0" << endl << endl;
......@@ -527,6 +538,28 @@ void HtmlHelp::decContentsDepth()
--dc;
}
QCString HtmlHelp::recode(const QCString &s)
{
int iSize = s.length();
int oSize = iSize*4+1;
QCString output(oSize);
size_t iLeft = iSize;
size_t oLeft = oSize;
const char *iPtr = s.data();
char *oPtr = output.data();
if (!portable_iconv(m_fromUtf8,&iPtr,&iLeft,&oPtr,&oLeft))
{
oSize -= oLeft;
output.resize(oSize+1);
output.at(oSize)='\0';
return output;
}
else
{
return s;
}
}
/*! Add an list item to the contents file.
* \param isDir boolean indicating if this is a dir or file entry
* \param name the name of the item.
......@@ -546,10 +579,9 @@ void HtmlHelp::addContentsItem(bool isDir,
file = 0;
anchor = 0;
}
int i; for (i=0;i<dc;i++) cts << " ";
cts << "<LI><OBJECT type=\"text/sitemap\">";
cts << "<param name=\"Name\" value=\"" << name << "\">";
cts << "<param name=\"Name\" value=\"" << recode(name) << "\">";
if (file) // made file optional param - KPW
{
cts << "<param name=\"Local\" value=\"" << file << Doxygen::htmlFileExtension;
......
......@@ -64,6 +64,7 @@ class HtmlHelp : public IndexIntf
public:
//static HtmlHelp *getInstance();
HtmlHelp();
~HtmlHelp();
void initialize();
void finalize();
void incContentsDepth();
......@@ -88,6 +89,8 @@ class HtmlHelp : public IndexIntf
QStrList indexFiles;
QDict<void> indexFileDict;
static HtmlHelp *theInstance;
QCString recode(const QCString &s);
void *m_fromUtf8;
};
#endif /* HTMLHELP_H */
......
......@@ -726,6 +726,7 @@ static void expandExpression(QCString &expr,QCString *rest,int pos)
//printf("expandExpression(%s,%s)\n",expr.data(),rest ? rest->data() : 0);
QCString macroName;
QCString expMacro;
bool definedTest=FALSE;
int i=pos,l,p,len;
while ((p=getNextId(expr,i,&l))!=-1) // search for an macro name
{
......@@ -737,7 +738,14 @@ static void expandExpression(QCString &expr,QCString *rest,int pos)
if (g_expandedDict->find(macroName)==0) // expand macro
{
Define *def=isDefined(macroName);
if (def && def->nargs==-1) // simple macro
if (definedTest) // macro name was found after defined
{
if (def) expMacro = " 1 "; else expMacro = " 0 ";
replaced=TRUE;
len=l;
definedTest=FALSE;
}
else if (def && def->nargs==-1) // simple macro
{
// substitute the definition of the macro
//printf("macro `%s'->`%s'\n",macroName.data(),def->definition.data());
......@@ -759,6 +767,11 @@ static void expandExpression(QCString &expr,QCString *rest,int pos)
replaced=replaceFunctionMacro(expr,rest,p+l,len,def,expMacro);
len+=l;
}
else if (macroName=="defined")
{
//printf("found defined inside macro definition '%s'\n",expr.right(expr.length()-p).data());
definedTest=TRUE;
}
if (replaced) // expand the macro and rescan the expression
{
......@@ -767,7 +780,7 @@ static void expandExpression(QCString &expr,QCString *rest,int pos)
QCString resultExpr=expMacro;
QCString restExpr=expr.right(expr.length()-len-p);
processConcatOperators(resultExpr);
if (!def->nonRecursive)
if (def && !def->nonRecursive)
{
g_expandedDict->insert(macroName,def);
expandExpression(resultExpr,&restExpr,0);
......@@ -1900,6 +1913,12 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
outputChar('*');outputChar('/');
if (--g_commentCount<=0)
{
if (g_lastCContext==Start)
// small hack to make sure that ^... rule will
// match when going to Start... Example: "/*...*/ some stuff..."
{
YY_CURRENT_BUFFER->yy_at_bol=1;
}
BEGIN(g_lastCContext);
}
}
......
......@@ -598,6 +598,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
%x ClassCategory
%x ClassTemplSpec
%x CliPropertyType
%x CliPropertyIndex
%x CliOverride
%x Bases
%x BasesProt
......@@ -934,8 +935,9 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
addType( current );
current->name = yytext;
}
<CliPropertyType>"["{ID}"]" { // C++/CLI indexed property
current->args = yytext;
<CliPropertyType>"[" { // C++/CLI indexed property
current->name += yytext;
BEGIN( CliPropertyIndex );
}
<CliPropertyType>"{" {
curlyCount=0;
......@@ -955,6 +957,13 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
addType( current );
current->type += yytext;
}
<CliPropertyIndex>"]" {
BEGIN( CliPropertyType );
current->name+=yytext;
}
<CliPropertyIndex>. {
current->name+=yytext;
}
<FindMembers>{B}*"property"{BN}+ {
if (!current->type.isEmpty())
{
......@@ -1719,7 +1728,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
sharpCount++;
}
<EndTemplate>">>" {
if (insideJava || insideCS)
if (insideJava || insideCS || insideCli)
{
unput('>');
unput(' ');
......@@ -4034,6 +4043,16 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
if ( insidePHP && !containsWord(current->type,"function"))
{
initEntry();
if ( *yytext == '{' )
{
lastCurlyContext = FindMembers;
curlyCount=0;
BEGIN( SkipCurly );
}
else
{
BEGIN( FindMembers );
}
}
else
{
......@@ -4543,7 +4562,9 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
<ClassVar>":" {
current->type.resize(0);
if ((current->spec & Entry::Interface) ||
(current->spec & Entry::Struct) ||
(current->spec & Entry::Struct) ||
(current->spec & Entry::Ref) ||
(current->spec & Entry::Value) ||
insidePHP || insideCS || insideD || insideObjC
)
baseProt=Public;
......@@ -4704,6 +4725,11 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
}
<Specialization>{BN}+ { lineCount(); *specName +=' '; }
<Specialization>"<<" { *specName += yytext; }
<Specialization>">>"/{B}*"::" { // M$ C++ extension to allow >> to close a template...
unput('>');
unput(' ');
unput('>');
}
<Specialization>">>" {
if (insideCS) // for C# >> ends a nested template
{
......
......@@ -19,54 +19,15 @@
* Nickolay Semyonov
* Andrey V. Stolyarov released Feb 14, 2001
* Alexandr V. Chelpanov <cav@cryptopro.ru> released Sep 25, 2004
*
* list documentation .
*
* Modules ,
* ,
* ., ,
* doxygen \group.
*
* decode ,
* .
*
* related functions - "
* ", " ",
* related to class, related to template, package ..
* member.
*
* members member
* .
*
* Compounds , .
*
* ?? .
*
* : Vitaly A. Repin <vitaly@radio.hop.stu.neva.ru>,
* <bbman@mail.ru>
* Благодарности: Vitaly A. Repin <vitaly@radio.hop.stu.neva.ru>,
* Михаил Глушенков <bbman@mail.ru>
*/
#ifndef TRANSLATOR_RU_H
#define TRANSLATOR_RU_H
class TranslatorRussian : public TranslatorAdapter_1_5_4
class TranslatorRussian : public Translator
{
private:
/*! The decode() inline assumes the source written in the
Koi8-R encoding (maintainer dependent).
*/
inline QCString decode(const QCString & sInput)
{
//if (Config_getBool("USE_WINDOWS_ENCODING"))
//{
// return Koi8RToWindows1251(sInput);
//}
//else
//{
return sInput;
//}
}
public:
/*! Used for identification of the language. */
virtual QCString idLanguage()
......@@ -75,117 +36,103 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
/* Used to get the command(s) for the language support. */
virtual QCString latexLanguageSupportCommand()
{
//if (Config_getBool("USE_WINDOWS_ENCODING"))
//{
// return "\\usepackage[cp1251]{inputenc}\n\\usepackage[russian]{babel}\n";
//}
//else
//{
return "\\usepackage[T2A]{fontenc}\n\\usepackage[russian]{babel}\n";
//}
}
/*! return the language charset. This will be used for the HTML output */
virtual QCString idLanguageCharset()
{
//if (Config_getBool("USE_WINDOWS_ENCODING"))
//{
// return "Windows-1251";
//}
//else
//{
return "koi8-r";
//}
return "utf-8";
}
// --- Language translation methods -------------------
/*! used in the compound documentation before a list of related functions. */
virtual QCString trRelatedFunctions()
{ return decode(" "); }
{ return "Относящиеся к классу функции"; }
/*! subscript for the related functions. */
virtual QCString trRelatedSubscript()
{ return decode("( )"); }
{ return "(не члены класса)"; }
/*! header that is put before the detailed description of files, classes and namespaces. */
virtual QCString trDetailedDescription()
{ return decode(" "); }
{ return "Подробное описание"; }
/*! header that is put before the list of typedefs. */
virtual QCString trMemberTypedefDocumentation()
{ return decode(" "); }
{ return "Определения типов"; }
/*! header that is put before the list of enumerations. */
virtual QCString trMemberEnumerationDocumentation()
{ return decode(""); }
{ return "Перечисления"; }
/*! header that is put before the list of member functions. */
virtual QCString trMemberFunctionDocumentation()
{ return decode(""); }
{ return "Методы"; }
/*! header that is put before the list of member attributes. */
virtual QCString trMemberDataDocumentation()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return decode( "" );
return "Поля";
}
else
{
return decode( " " );
return "Данные класса";
}
}
/*! this is the text of a link put after brief descriptions. */
virtual QCString trMore()
{ return decode("..."); }
{ return "Подробнее..."; }
/*! put in the class documentation */
/* Dosn't use when optimization for C is on. */
virtual QCString trListOfAllMembers()
{
return decode( " " );
return "Полный список членов класса";
}
/*! used as the title of the "list of all members" page of a class */
/* Dosn't use when optimization for C is on. */
virtual QCString trMemberList()
{
return decode( "C " );
return "Cписок членов класса";
}
/*! this is the first part of a sentence that is followed by a class name */
/* Dosn't use when optimization for C is on. */
virtual QCString trThisIsTheListOfAllMembers()
{ return decode(" "); }
{ return "Полный список членов класса "; }
/*! this is the remainder of the sentence after the class name */
/* Dosn't use when optimization for C is on. */
virtual QCString trIncludingInheritedMembers()
{ return decode(", "); }
{ return ", включая наследуемые из базового класса"; }
/*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name.
*/
virtual QCString trGeneratedAutomatically(const char *s)
{ QCString result=decode(" Doxygen");
if (s) result+=decode(" ")+s;
result+=decode(" .");
{ QCString result="Автоматически создано Doxygen";
if (s) result+=QCString(" для ")+s;
result+=" из исходного текста.";
return result;
}
/*! put after an enum name in the list of all members */
virtual QCString trEnumName()
{ return decode(""); }
{ return "перечисление"; }
/*! put after an enum value in the list of all members */
virtual QCString trEnumValue()
{ return decode(" "); }
{ return "элементы перечисления"; }
/*! put after an undocumented member in the list of all members */
virtual QCString trDefinedIn()
{ return decode(" "); }
{ return "определено в"; }
// quick reference sections
......@@ -193,39 +140,39 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
* compounds or files (see the \\group command).
*/
virtual QCString trModules()
{ return decode(""); }
{ return "Группы"; }
/*! This is put above each page as a link to the class hierarchy */
virtual QCString trClassHierarchy()
{ return decode(" "); }
{ return "Иерархия классов"; }
/*! This is put above each page as a link to the list of annotated classes */
virtual QCString trCompoundList()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return decode( " " );
return "Структуры данных";
}
else
{
return decode( "" );
return "Классы";
}
}
/*! This is put above each page as a link to the list of documented files */
virtual QCString trFileList()
{ return decode(""); }
{ return "Файлы"; }
/*! This is put above each page as a link to all members of compounds. */
virtual QCString trCompoundMembers()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return decode( " " );
return "Поля структур";
}
else
{
return decode( " " );
return "Члены классов";
}
}
......@@ -233,34 +180,34 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
/*??*/
virtual QCString trFileMembers()
{
return decode( " " );
return "Список членов всех файлов";
}
/*! This is put above each page as a link to all related pages. */
virtual QCString trRelatedPages()
/* ?? ". : " , ,
. */
{ return decode(""); }
/* ?? Вариант перевода "См. также: " более удачный, но не в заголовке,
как в данном случае. */
{ return "Описания"; }
/*! This is put above each page as a link to all examples. */
virtual QCString trExamples()
{ return decode(""); }
{ return "Примеры"; }
/*! This is put above each page as a link to the search engine. */
virtual QCString trSearch()
{ return decode(""); }
{ return "Поиск"; }
/*! This is an introduction to the class hierarchy. */
virtual QCString trClassHierarchyDescription()
{ return decode(" ."); }
{ return "Иерархия классов."; }
/*! This is an introduction to the list with all files. */
virtual QCString trFileListDescription(bool extractAll)
{
QCString result=" ";
if (!extractAll) result+=" ";
result+=".";
return decode(result);
QCString result="Полный список ";
if (!extractAll) result+="документированных ";
result+="файлов.";
return result;
}
/*! This is an introduction to the annotated compound list. */
......@@ -268,94 +215,94 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return decode( " ." );
return "Структуры данных с их кратким описанием.";
}
else
{
return decode( " ." );
return "Классы с их кратким описанием.";
}
}
/*! This is an introduction to the page with all class members. */
virtual QCString trCompoundMembersDescription(bool extractAll)
{
QCString result=" ";
if(!extractAll) result+=" ";
QCString result="Список всех ";
if(!extractAll) result+="документированных ";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
result+=" ";
result+="членов структур данных со ссылками на ";
else
result+=" ";
result+="членов классов со ссылками на ";
if(!extractAll)
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
result+=" .";
result+="документацию по структуре для каждого члена.";
else
result+=" .";
result+="документацию по классу для каждого члена.";
}
else
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
result += "";
result += "структуры";
else
result += "";
result+=", .";
result += "классы";
result+=", к которым они принадлежат.";
}
return decode( result );
return result;
}
/*! This is an introduction to the page with all file members. */
virtual QCString trFileMembersDescription(bool extractAll)
{
QCString result=" ";
if (!extractAll) result+=" ";
QCString result="Список всех ";
if (!extractAll) result+="документированных ";
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+=", , , "
" ";
result+="функций, переменных, макроопределений, "
"перечислений и определений типов";
}
else
{
result+=" ";
result+="членов файлов ";
}
result+=" ";
result+=" со ссылками на ";
if (extractAll)
result+=", .";
result+="файлы, к которым они принадлежат.";
else
result+=".";
return decode( result );
result+="документацию.";
return result;
}
/*! This is an introduction to the page with the list of all examples */
virtual QCString trExamplesDescription()
{ return decode(" ."); }
{ return "Полный список примеров."; }
/*! This is an introduction to the page with the list of related pages */
virtual QCString trRelatedPagesDescription()
{ return decode(" ."); }
{ return "Полный список дополнительных описаний."; }
/*! This is an introduction to the page with the list of class/file groups */
virtual QCString trModulesDescription()
{ return decode(" ."); }
{ return "Полный список групп."; }
// index titles (the project name is prepended for these)
/*! This is used in HTML as the title of index.html. */
virtual QCString trDocumentation()
{ return decode(""); }
{ return "Документация"; }
/*! This is used in LaTeX as the title of the chapter with the
* index of all groups.
*/
virtual QCString trModuleIndex()
{ return decode(" "); }
{ return "Алфавитный указатель групп"; }
/*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
*/
virtual QCString trHierarchicalIndex()
{ return decode(" "); }
{ return "Иерархический список классов"; }
/*! This is used in LaTeX as the title of the chapter with the
* annotated compound index.
......@@ -364,11 +311,11 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return decode( " " );
return "Алфавитный указатель структур данных";
}
else
{
return decode( " " );
return "Алфавитный указатель классов";
}
}
......@@ -376,13 +323,13 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
* list of all files.
*/
virtual QCString trFileIndex()
{ return decode( " " ); }
{ return "Список файлов"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all groups.
*/
virtual QCString trModuleDocumentation()
{ return decode(""); }
{ return "Группы"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all classes, structs and unions.
......@@ -391,11 +338,11 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return decode( " " );
return "Структуры данных";
}
else
{
return decode( "" );
return "Классы";
}
}
......@@ -403,101 +350,101 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
* the documentation of all files.
*/
virtual QCString trFileDocumentation()
{ return decode(""); }
{ return "Файлы"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all examples.
*/
virtual QCString trExampleDocumentation()
{ return decode(""); }
{ return "Примеры"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all related pages.
*/
virtual QCString trPageDocumentation()
{ return decode(" "); }
{ return "Тематические описания"; }
/*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual()
{ return decode(""); }
{ return "Оглавление"; }
/*! This is used in the documentation of a file as a header before the
* list of defines
*/
virtual QCString trDefines()
{ return decode(""); }
{ return "Макросы"; }
/*! This is used in the documentation of a file as a header before the
* list of function prototypes
*/
virtual QCString trFuncProtos()
{ return decode(" "); }
{ return "Прототипы функций"; }
/*! This is used in the documentation of a file as a header before the
* list of typedefs
*/
virtual QCString trTypedefs()
{ return decode(" "); }
{ return "Определения типов"; }
/*! This is used in the documentation of a file as a header before the
* list of enumerations
*/
virtual QCString trEnumerations()
{ return decode(""); }
{ return "Перечисления"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) functions
*/
virtual QCString trFunctions()
{ return decode(""); }
{ return "Функции"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
virtual QCString trVariables()
{ return decode(""); }
{ return "Переменные"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
virtual QCString trEnumerationValues()
{ return decode(" "); }
{ return "Элементы перечислений"; }
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
*/
virtual QCString trDefineDocumentation()
{ return decode(""); }
{ return "Макросы"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for function prototypes
*/
virtual QCString trFunctionPrototypeDocumentation()
{ return decode(" "); }
{ return "Прототипы функций"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs
*/
virtual QCString trTypedefDocumentation()
{ return decode(""); }
{ return "Типы"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types
*/
virtual QCString trEnumerationTypeDocumentation()
{ return decode(""); }
{ return "Перечисления"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for functions
*/
virtual QCString trFunctionDocumentation()
{ return decode(""); }
{ return "Функции"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for variables
*/
virtual QCString trVariableDocumentation()
{ return decode(""); }
{ return "Переменные"; }
/*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds
......@@ -506,11 +453,11 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return decode( " " );
return "Структуры данных";
}
else
{
return decode( "" );
return "Классы";
}
}
......@@ -523,60 +470,60 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trGeneratedAt(const char *date,const char *projName)
{
QCString result=decode(" ");
if (projName) result+=decode(" ")+projName;
result+=decode(". : ")+date;
result+=decode(". ");
QCString result="Документация ";
if (projName) result+=QCString("по ")+projName;
result+=QCString(". Последние изменения: ")+date;
result+=". Создано системой";
return result;
}
/*! This is part of the sentence used in the standard footer of each page.
*/
virtual QCString trWrittenBy()
{
return decode(":");
return "Автор:";
}
/*! this text is put before a class diagram */
virtual QCString trClassDiagram(const char *clName)
{
return decode(" :")+clName+":";
return QCString("Граф наследования:")+clName+":";
}
/*! this text is generated when the \\internal command is used. */
virtual QCString trForInternalUseOnly()
{ return decode(" "); }
{ return "Только для внутреннего использования"; }
/*! this text is generated when the \\warning command is used. */
virtual QCString trWarning()
{ return decode(""); }
{ return "Предупреждения"; }
/*! this text is generated when the \\version command is used. */
virtual QCString trVersion()
{ return decode(""); }
{ return "Версия"; }
/*! this text is generated when the \\date command is used. */
virtual QCString trDate()
{ return decode(""); }
{ return "Дата"; }
/*! this text is generated when the \\return command is used. */
virtual QCString trReturns()
{ return decode(""); }
{ return "Возвращает"; }
/*! this text is generated when the \\sa command is used. */
virtual QCString trSeeAlso()
{ return decode(". "); }
{ return "См. также"; }
/*! this text is generated when the \\param command is used. */
virtual QCString trParameters()
{ return decode(""); }
{ return "Аргументы"; }
/*! this text is generated when the \\exception command is used. */
virtual QCString trExceptions()
{ return decode(""); }
{ return "Исключения"; }
/*! this text is used in the title page of a LaTeX document. */
virtual QCString trGeneratedBy()
{ return decode(" "); }
{ return "Создано системой"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990307
......@@ -584,22 +531,22 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
/*! used as the title of page containing all the index of all namespaces. */
virtual QCString trNamespaceList()
{ return decode(" "); }
{ return "Пространства имен"; }
/*! used as an introduction to the namespace list */
virtual QCString trNamespaceListDescription(bool extractAll)
{
QCString result=" ";
if (!extractAll) result+=" ";
result+=" .";
return decode(result);
QCString result="Полный список ";
if (!extractAll) result+="документированных ";
result+="пространств имен.";
return result;
}
/*! used in the class documentation as a header before the list of all
* friends of a class
*/
virtual QCString trFriends()
{ return decode(""); }
{ return "Друзья"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
......@@ -609,8 +556,8 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
* related classes
*/
virtual QCString trRelatedFunctionDocumentation()
{ return decode(" , "
" "); }
{ return "Документация по друзьям класса и функциям, отноносящимся"
" к классу"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
......@@ -624,67 +571,67 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
QCString result;
if (isTemplate)
{
result=" ";
result="Шаблон ";
switch(compType)
{
case ClassDef::Class: result+=""; break;
case ClassDef::Struct: result+=""; break;
case ClassDef::Union: result+=""; break;
case ClassDef::Interface: result+=""; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+=""; break;
case ClassDef::Class: result+="класса"; break;
case ClassDef::Struct: result+="структуры"; break;
case ClassDef::Union: result+="объединения"; break;
case ClassDef::Interface: result+="интерфейса"; break;
case ClassDef::Protocol: result+="протокола"; break;
case ClassDef::Category: result+="категории"; break;
case ClassDef::Exception: result+="исключения"; break;
}
}
else
{
switch(compType)
{
case ClassDef::Class: result+=""; break;
case ClassDef::Struct: result+=""; break;
case ClassDef::Union: result+=""; break;
case ClassDef::Interface: result+=""; break;
case ClassDef::Protocol: result+="protocol"; break; // translate me!
case ClassDef::Category: result+="category"; break; // translate me!
case ClassDef::Exception: result+=""; break;
case ClassDef::Class: result+="Класс"; break;
case ClassDef::Struct: result+="Структура"; break;
case ClassDef::Union: result+="Объединение"; break;
case ClassDef::Interface: result+="Интерфейс"; break;
case ClassDef::Protocol: result+="Протокол"; break;
case ClassDef::Category: result+="Категория"; break;
case ClassDef::Exception: result+="Исключение"; break;
}
}
result+=" ";
return decode(result)+clName;
return result+clName;
}
/*! used as the title of the HTML page of a file */
virtual QCString trFileReference(const char *fileName)
{
return decode(" ")+fileName;
return QCString("Файл ")+fileName;
}
/*! used as the title of the HTML page of a namespace */
virtual QCString trNamespaceReference(const char *namespaceName)
{
return decode(" ")+namespaceName;
return QCString("Пространство имен ")+namespaceName;
}
virtual QCString trPublicMembers()
{ return decode(" "); }
{ return "Открытые члены"; }
virtual QCString trPublicSlots()
{ return decode(" "); }
{ return "Открытые слоты"; }
virtual QCString trSignals()
{ return decode(""); }
{ return "Сигналы"; }
virtual QCString trStaticPublicMembers()
{ return decode(" "); }
{ return "Открытые статические члены"; }
virtual QCString trProtectedMembers()
{ return decode(" "); }
{ return "Защищенные члены"; }
virtual QCString trProtectedSlots()
{ return decode(" "); }
{ return "Защищенные слоты"; }
virtual QCString trStaticProtectedMembers()
{ return decode(" "); }
{ return "Защищенные статические члены"; }
virtual QCString trPrivateMembers()
{ return decode(" "); }
{ return "Закрытые члены"; }
virtual QCString trPrivateSlots()
{ return decode(" "); }
{ return "Закрытые слоты"; }
virtual QCString trStaticPrivateMembers()
{ return decode(" "); }
{ return "Закрытые статические члены"; }
/*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put.
......@@ -705,7 +652,7 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
if (i<numEntries-2) // not the fore last entry
result+=", ";
else // the fore last entry
result+=decode( " " );
result+=" и ";
}
}
return result;
......@@ -716,7 +663,7 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trInheritsList(int numEntries)
{
return decode(" :")+trWriteList(numEntries)+".";
return "Базовые классы:"+trWriteList(numEntries)+".";
}
/*! used in class documentation to produce a list of super classes,
......@@ -724,7 +671,7 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trInheritedByList(int numEntries)
{
return decode(" :")+trWriteList(numEntries)+".";
return "Производные классы:"+trWriteList(numEntries)+".";
}
/*! used in member documentation blocks to produce a list of
......@@ -732,12 +679,12 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trReimplementedFromList(int numEntries)
{
QCString result=" ";
QCString result="Переопределяет метод";
if(numEntries>1)
result+=" ";
result+="ы предков";
else
result+=" ";
return decode(result+" ")+trWriteList(numEntries)+".";
result+=" предка";
return result+" "+trWriteList(numEntries)+".";
}
/*! used in member documentation blocks to produce a list of
......@@ -745,33 +692,33 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trReimplementedInList(int numEntries)
{
return decode(" ")+trWriteList(numEntries)+".";
return "Переопределяется в "+trWriteList(numEntries)+".";
}
/*! This is put above each page as a link to all members of namespaces. */
virtual QCString trNamespaceMembers()
{ return decode(" "); }
{ return "Члены пространств имен"; }
/*! This is an introduction to the page with all namespace members */
virtual QCString trNamespaceMemberDescription(bool extractAll)
{
QCString result=" ";
if (!extractAll) result+=" ";
result+=" .";
return decode(result);
QCString result="Полный список ";
if (!extractAll) result+="документированных ";
result+="членов простанств имен.";
return result;
}
/*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces.
*/
virtual QCString trNamespaceIndex()
{ return decode(" "); }
{ return "Алфавитный указатель пространств имен"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all namespaces.
*/
virtual QCString trNamespaceDocumentation()
{ return decode(" "); }
{ return "Пространства имен"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990522
......@@ -781,7 +728,7 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
* namespaces in a file.
*/
virtual QCString trNamespaces()
{ return decode( " " ); }
{ return "Пространства имен"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990728
......@@ -794,39 +741,41 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
bool single)
{ // here s is one of " Class", " Struct" or " Union"
// single is true implies a single file
QCString result=(QCString)" ";
QCString result=QCString("Объявления и описания членов ");
switch(compType)
{
case ClassDef::Class: result+="";
if (single) result+=''; else result+="";
case ClassDef::Class: result+="класс";
if (single) result+="а"; else result+="ов";
break;
case ClassDef::Struct: result+="";
if (single) result+='';
case ClassDef::Struct: result+="структур";
if (single) result+="ы";
break;
case ClassDef::Union: result+="";
if (single) result+=''; else result+='';
case ClassDef::Union: result+="объединени";
if (single) result+="я"; else result+="й";
break;
case ClassDef::Interface: result+="";
if (single) result+=''; else result+="";
case ClassDef::Interface: result+="интерфейс";
if (single) result+="а"; else result+="ов";
break;
case ClassDef::Protocol: result+="Protocol"; // translate me!
case ClassDef::Protocol: result+="протокол";
if (single) result+="а"; else result+="ов";
break;
case ClassDef::Category: result+="Category"; // translate me!
case ClassDef::Category: result+="категори";
if (single) result+="и"; else result+="й";
break;
case ClassDef::Exception: result+="";
if (single) result+=''; else result+='';
case ClassDef::Exception: result+="исключени";
if (single) result+="я"; else result+="й";
break;
}
result+=" ";
if (single) result+=":"; else result+=":";
return decode(result);
result+=" находятся в файл";
if (single) result+="е:"; else result+="ах:";
return result;
}
/*! This is in the (quick) index as a link to the alphabetical compound
* list.
*/
virtual QCString trAlphabeticalList()
{ return decode(" "); }
{ return "Алфавитный указатель"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990901
......@@ -834,18 +783,18 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
/*! This is used as the heading text for the retval command. */
virtual QCString trReturnValues()
{ return decode(" "); }
{ return "Возвращаемые значения"; }
/*! This is in the (quick) index as a link to the main page (index.html)
*/
virtual QCString trMainPage()
{ return decode(" "); }
{ return "Титульная страница"; }
/*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
*/
virtual QCString trPageAbbreviation()
{ return decode("."); }
{ return "стр."; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991106
......@@ -853,11 +802,11 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
virtual QCString trDefinedAtLineInSourceFile()
{
return decode(". @1 @0");
return "См. определение в файле @1 строка @0";
}
virtual QCString trDefinedInSourceFile()
{
return decode(". @0");
return "См. определение в файле @0";
}
//////////////////////////////////////////////////////////////////////////
......@@ -866,7 +815,7 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
virtual QCString trDeprecated()
{
return decode(".");
return "Уст.";
}
//////////////////////////////////////////////////////////////////////////
......@@ -876,68 +825,68 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
/*! this text is put before a collaboration diagram */
virtual QCString trCollaborationDiagram(const char *clName)
{
return (QCString)decode(" ")+clName+":";
return (QCString)"Граф связей класса "+clName+":";
}
/*! this text is put before an include dependency graph */
virtual QCString trInclDepGraph(const char *fName)
{
return decode(" ")+fName+":";
return (QCString)"Граф включаемых заголовочных файлов для "+fName+":";
}
/*! header that is put before the list of constructor/destructors. */
virtual QCString trConstructorDocumentation()
{
return decode("()");
return "Конструктор(ы)";
}
/*! Used in the file documentation to point to the corresponding sources. */
virtual QCString trGotoSourceCode()
{
return decode(". .");
return "См. исходные тексты.";
}
/*! Used in the file sources to point to the corresponding documentation. */
virtual QCString trGotoDocumentation()
{
return decode(". .");
return "См. документацию.";
}
/*! Text for the \\pre command */
virtual QCString trPrecondition()
{
return decode("");
return "Предусловие";
}
/*! Text for the \\post command */
virtual QCString trPostcondition()
{
return decode("");
return "Постусловие";
}
/*! Text for the \\invariant command */
virtual QCString trInvariant()
{
return decode("");
return "Инвариант";
}
/*! Text shown before a multi-line variable/enum initialization */
virtual QCString trInitialValue()
{
return decode("");
return "Инициализатор";
}
/*! Text used the source code in the file index */
virtual QCString trCode()
{
return decode(" ");
return "Исходные тексты";
}
virtual QCString trGraphicalHierarchy()
{
return decode(" . .");
return "Иерархия классов. Графический вид.";
}
virtual QCString trGotoGraphicalHierarchy()
{
return decode(". .");
return "см. графический вид.";
}
virtual QCString trGotoTextualHierarchy()
{
return decode(". .");
return "см. текстовый вид.";
}
virtual QCString trPageIndex()
{
return decode(" ");
return "Алфавитный указатель тематических описаний";
}
//////////////////////////////////////////////////////////////////////////
......@@ -946,50 +895,50 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
virtual QCString trNote()
{
return decode("");
return "Заметки";
}
virtual QCString trPublicTypes()
{
return decode(" ");
return "Открытые типы";
}
virtual QCString trPublicAttribs()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return decode( " " );
return "Поля данных";
}
else
{
return decode( " " );
return "Открытые атрибуты";
}
}
virtual QCString trStaticPublicAttribs()
{
return decode(" ");
return "Статические открытые данные";
}
virtual QCString trProtectedTypes()
{
return decode(" ");
return "Защищенные типы";
}
virtual QCString trProtectedAttribs()
{
return decode(" ");
return "Защищенные данные";
}
virtual QCString trStaticProtectedAttribs()
{
return decode(" ");
return "Статические защищенные данные";
}
virtual QCString trPrivateTypes()
{
return decode(" ");
return "Закрытые типы";
}
virtual QCString trPrivateAttribs()
{
return decode(" ");
return "Закрытые данные";
}
virtual QCString trStaticPrivateAttribs()
{
return decode(" ");
return "Закрытые статические данные";
}
......@@ -1001,13 +950,13 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
virtual QCString trTodo()
/*??*/
{
return decode(" ");
return "Необходимо сделать";
}
/*! Used as the header of the todo list */
virtual QCString trTodoList()
/*??*/
{
return decode(" ");
return "Список задач";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1016,24 +965,24 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
virtual QCString trReferencedBy()
{
return decode(" ");
return "Используется в";
}
virtual QCString trRemarks()
{
return decode(".");
return "Прим.";
}
virtual QCString trAttention()
{
return decode("");
return "Внимание";
}
virtual QCString trInclByDepGraph()
{
return decode(" , :");
return "Граф файлов, в которые включается этот файл:";
}
virtual QCString trSince()
/*??*/
{
return decode(" ");
return "Начиная с";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1043,32 +992,32 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
/*! title of the graph legend page */
virtual QCString trLegendTitle()
{
return decode("");
return "Легенда";
}
/*! page explaining how the dot graph's should be interpreted */
virtual QCString trLegendDocs()
{
return decode(
", .<p>\n"
" :\n"
return
"Обозначения, используемые в графах.<p>\n"
"Рассмотрим следующий пример:\n"
"\\code\n"
"/*! - */\n"
"/*! Невидимый класс из-за усечения */\n"
"class Invisible { };\n\n"
"/*! , */\n"
"/*! Усеченный класс, отношение наследования скрыто */\n"
"class Truncated : public Invisible { };\n\n"
"/* */\n"
"/* Недокументированный класс */\n"
"class Undocumented { };\n\n"
"/*! */\n"
"/*! Открытое наследование */\n"
"class PublicBase : public Truncated { };\n\n"
"/*! */\n"
"/*! Шаблон класса */\n"
"template<class T> class Templ {};\n\n"
"/*! */\n"
"/*! Защищенное наследование */\n"
"class ProtectedBase { };\n\n"
"/*! */\n"
"/*! Закрытое наследование */\n"
"class PrivateBase { };\n\n"
"/*! , Inherited */\n"
"/*! Класс, используемый классом Inherited */\n"
"class Used { };\n\n"
"/*! , */\n"
"/*! Класс, порожденный от других классов */\n"
"class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n"
" private PrivateBase,\n"
......@@ -1079,39 +1028,39 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
" \\c MAX_DOT_GRAPH_HEIGHT "
" 240, :"
"Если \\c MAX_DOT_GRAPH_HEIGHT в конфигурационном файле "
"установлен в 240, получится следующий граф:"
"<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n"
" :\n"
"Прямоугольники в этом графе имеют следующее значение:\n"
"<ul>\n"
"<li> , "
" .\n"
"<li> .\n"
"<li> .\n"
"<li> , \n"
" / . , "
" .\n"
"<li>Заполненный черный прямоугольник представляет структуру или класс, "
"для которого создан граф.\n"
"<li>Прямоугольник с черной границей обозначает документированную структуру или класс.\n"
"<li>Прямоугольник с серой границей обозначает недокументированную структуру или класс.\n"
"<li>Прямоугольник с красной границей обозначает документированную структуру или класс, для которого\n"
" не все отношения наследования/содержания показаны. Граф усечен, "
"если он не поместился в указанных границах.\n"
"</ul>\n"
" :\n"
"Стрелки имеют следующее значение:\n"
"<ul>\n"
"<li>- "
" .\n"
"<li>- .\n"
"<li>- .\n"
"<li> , "
" ."
" , "
" . \n"
"<li> "
", . "
" .\n"
"</ul>\n");
"<li>Темно-синяя стрелка используется для изображения отношения открытого наследования "
"между двумя классами.\n"
"<li>Темно-зеленая стрелка используется при защищенном наследовании.\n"
"<li>Темно-красная стрелка используется при закрытом наследовании.\n"
"<li>Фиолетовая стрелка используется, если класс содержится в"
"другом класе или используется другим классом."
"Со стрелкой указывается переменная, "
"через которую доступен указываемый класс или структура. \n"
"<li>Желтая стрелка используется для связи подстановки шаблона и "
"шаблона, на основе которого эта подстановка выполнена. С шаблоном"
"указывается параметр подстановки.\n"
"</ul>\n";
}
/*! text for the link to the legend page */
virtual QCString trLegend()
{
return decode(". ");
return "см. легенду";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1121,12 +1070,12 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
/*! Used as a marker that is put before a test item */
virtual QCString trTest()
{
return decode("");
return "Тест";
}
/*! Used as the header of the test list */
virtual QCString trTestList()
{
return decode(" ");
return "Список тестов";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1136,7 +1085,7 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
/*! Used as a section header for KDE-2 IDL methods */
virtual QCString trDCOPMethods()
{
return decode("DCOP ");
return "DCOP Методы";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1146,12 +1095,12 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
/*! Used as a section header for IDL properties */
virtual QCString trProperties()
{
return decode("");
return "Свойства";
}
/*! Used as a section header for IDL property documentation */
virtual QCString trPropertyDocumentation()
{
return decode(" ");
return "Полный список свойств";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1163,37 +1112,37 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return decode( " " );
return "Структуры данных";
}
else
{
return decode( "" );
return "Классы";
}
}
/*! Used as the title of a Java package */
virtual QCString trPackage(const char *name)
{
return decode(" ")+name;
return QCString("Пакет ")+name;
}
/*! Title of the package index page */
virtual QCString trPackageList()
{
return decode(" ");
return "Полный список пакетов ";
}
/*! The description of the package index page */
virtual QCString trPackageListDescription()
{
return decode(" .");
return "Полный список документированных пакетов.";
}
/*! The link name in the Quick links header for each page */
virtual QCString trPackages()
{
return decode("");
return "Пакеты";
}
/*! Text shown before a multi-line define */
virtual QCString trDefineValue()
{
return decode(":");
return "Макроопределение:";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1203,12 +1152,12 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
/*! Used as a marker that is put before a \\bug item */
virtual QCString trBug()
{
return decode("");
return "Ошибка";
}
/*! Used as the header of the bug list */
virtual QCString trBugList()
{
return decode("");
return "Ошибки";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1227,7 +1176,7 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
/*! Used as header RTF general index */
virtual QCString trRTFGeneralIndex()
{
return decode(" ");
return "Алфавитный указатель";
}
/*! This is used for translation of the word that will possibly
......@@ -1238,14 +1187,14 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
QCString result((first_capital ? " " : " "));
return decode(result);
QCString result((first_capital ? "Структуры данных" : "структуры данных"));
return result;
}
else
{
QCString result((first_capital ? "" : ""));
if(!singular) result+="";
return decode(result);
QCString result((first_capital ? "Класс" : "класс"));
if(!singular) result+="ы";
return result;
}
}
......@@ -1255,9 +1204,9 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trFile(bool first_capital, bool singular)
{
QCString result((first_capital ? "" : ""));
if (!singular) result+="";
return decode(result);
QCString result((first_capital ? "Файл" : "файл"));
if (!singular) result+="ы";
return result;
}
/*! This is used for translation of the word that will possibly
......@@ -1266,9 +1215,9 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trNamespace(bool first_capital, bool singular)
{
QCString result((first_capital ? "" : ""));
result+=(singular?" ":" ");
return decode(result);
QCString result((first_capital ? "Пространств" : "пространств"));
result+=(singular?"о имен":"а имен");
return result;
}
/*! This is used for translation of the word that will possibly
......@@ -1277,9 +1226,9 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trGroup(bool first_capital, bool singular)
{
QCString result((first_capital ? "" : ""));
result+=(singular ? "" : "");
return decode(result);
QCString result((first_capital ? "Групп" : "групп"));
result+=(singular ? "а" : ");
return result;
}
/*! This is used for translation of the word that will possibly
......@@ -1288,9 +1237,9 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trPage(bool first_capital, bool singular)
{
QCString result((first_capital ? "" : ""));
result+=(singular ? "" : "");
return decode(result);
QCString result((first_capital ? "Страниц" : "страниц"));
result+=(singular ? "а" : ");
return result;
}
/*! This is used for translation of the word that will possibly
......@@ -1299,9 +1248,9 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trMember(bool first_capital, bool singular)
{
QCString result((first_capital ? "" : ""));
if (!singular) result+="";
return decode(result);
QCString result((first_capital ? "Член" : "член"));
if (!singular) result+="ы";
return result;
}
/*! This is used for translation of the word that will possibly
......@@ -1310,9 +1259,9 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trGlobal(bool first_capital, bool singular)
{
QCString result((first_capital ? "" : ""));
result+=(singular ? "" : "");
return decode(result);
QCString result((first_capital ? "Глобальны" : "глобальны"));
result+=(singular ? "й" : ");
return result;
}
//////////////////////////////////////////////////////////////////////////
......@@ -1323,9 +1272,9 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
* for the author section in man pages. */
virtual QCString trAuthor(bool first_capital, bool singular)
{
QCString result((first_capital ? "" : ""));
if (!singular) result+="";
return decode(result);
QCString result((first_capital ? "Автор" : "автор"));
if (!singular) result+="ы";
return result;
}
//////////////////////////////////////////////////////////////////////////
......@@ -1336,7 +1285,7 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trReferences()
{
return decode(" ");
return "Перекрестные ссылки";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1348,7 +1297,7 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trImplementedFromList(int numEntries)
{
return decode(" ")+trWriteList(numEntries)+".";
return "Замещает "+trWriteList(numEntries)+".";
}
/*! used in member documentation blocks to produce a list of
......@@ -1356,7 +1305,7 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trImplementedInList(int numEntries)
{
return decode(" ")+trWriteList(numEntries)+".";
return "Замещается в "+trWriteList(numEntries)+".";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1368,7 +1317,7 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trRTFTableOfContents()
{
return decode("");
return "Оглавление";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1380,7 +1329,7 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trDeprecatedList()
{
return decode( " " );
return "Список устаревших определений и описаний";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1392,12 +1341,12 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trEvents()
{
return decode( "" );
return "События";
}
/*! Header used for the documentation section of a class' events. */
virtual QCString trEventDocumentation()
{
return decode( "C" );
return "Cобытия";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1408,35 +1357,35 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trPackageTypes()
{
return decode( " " );
return "Типы с областью видимости пакета";
}
/*! Used as a heading for a list of Java class functions with package
* scope.
*/
virtual QCString trPackageMembers()
{
return decode( " " );
return "Функции с областью видимости пакета";
}
/*! Used as a heading for a list of static Java class functions with
* package scope.
*/
virtual QCString trStaticPackageMembers()
{
return decode( " " );
return "Статические функции с областью видимости пакета";
}
/*! Used as a heading for a list of Java class variables with package
* scope.
*/
virtual QCString trPackageAttribs()
{
return decode( " " );
return "Переменные с областью видимости пакета";
}
/*! Used as a heading for a list of static Java class variables with
* package scope.
*/
virtual QCString trStaticPackageAttribs()
{
return decode( " " );
return "Статические переменные с областью видимости пакета";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1448,12 +1397,12 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trAll()
{
return decode( "" );
return "Указатель";
}
/*! Put in front of the call graph for a function. */
virtual QCString trCallGraph()
{
return decode( " :" );
return "Граф вызовов:";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1466,14 +1415,14 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trSearchForIndex()
{
return decode( "" );
return "Поиск";
}
/*! This string is used as the title for the page listing the search
* results.
*/
virtual QCString trSearchResultsTitle()
{
return decode( " " );
return "Результаты поиска";
}
/*! This string is put just before listing the search results. The
* text can be different depending on the number of documents found.
......@@ -1487,16 +1436,16 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
{
if (numDocuments==0)
{
return decode( " , ." );
return "К сожалению, по Вашему запросу ничего не найдено.";
}
else if( numDocuments == 1 )
{
return decode( " 1 ." );
return "Найден 1 документ.";
}
else
{
return decode( "() <b>$num</b> (). "
" ." );
return "Найден(о) <b>$num</b> документ(ов). "
"Документы отсортированы по релевантности.";
}
}
/*! This string is put before the list of matched words, for each search
......@@ -1504,7 +1453,7 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trSearchMatches()
{
return decode( ":" );
return "Найдено:";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1515,7 +1464,7 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trSourceFile(QCString& filename)
{
return decode( " " + filename );
return "Исходный файл " + filename;
}
//////////////////////////////////////////////////////////////////////////
......@@ -1526,40 +1475,40 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
* hierarchy.
*/
virtual QCString trDirIndex()
{ return decode( " " ); }
{ return "Дерево директорий"; }
/*! This is used as the name of the chapter containing the documentation
* of the directories.
*/
virtual QCString trDirDocumentation()
{ return decode( "" ); }
{ return "Директории"; }
/*! This is used as the title of the directory index and also in the
* Quick links of a HTML page, to link to the directory hierarchy.
*/
virtual QCString trDirectories()
{ return decode( " " ); }
{ return "Алфавитный указатель директорий"; }
/*! This returns a sentences that introduces the directory hierarchy.
* and the fact that it is sorted alphabetically per level
*/
virtual QCString trDirDescription()
{ return decode( " " ); }
{ return "Дерево директорий"; }
/*! This returns the title of a directory page. The name of the
* directory is passed via \a dirName.
*/
virtual QCString trDirReference(const char *dirName)
{ QCString result=QCString(" ")+ dirName; return decode( result ); }
{ QCString result=QCString("Содержание директории ")+ dirName; return result; }
/*! This returns the word directory with or without starting capital
* (\a first_capital) and in sigular or plural form (\a singular).
*/
virtual QCString trDir(bool first_capital, bool singular)
{
QCString result((first_capital ? "" : ""));
if (singular) result+=""; else result+="";
return decode( result );
QCString result((first_capital ? "Директори" : "директори"));
if (singular) result+="я"; else result+=";
return result;
}
//////////////////////////////////////////////////////////////////////////
......@@ -1571,9 +1520,9 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
*/
virtual QCString trOverloadText()
{
return decode( " "
" . "
" ." );
return "Эта функция перегружена и предоставляется исключительно "
"для удобства использования. Она отличается от вышеупомянутой "
"только фактическими аргументами.";
}
//////////////////////////////////////////////////////////////////////////
......@@ -1583,16 +1532,227 @@ class TranslatorRussian : public TranslatorAdapter_1_5_4
/*! This is used to introduce a caller (or called-by) graph */
virtual QCString trCallerGraph()
{
return decode( " :" );
return "Граф вызова функции:";
}
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values
*/
virtual QCString trEnumerationValueDocumentation()
{ return decode( " " ); }
{ return "Элементы перечислений"; }
//////////////////////////////////////////////////////////////////////////
// new since 1.5.4 (mainly for Fortran)
//////////////////////////////////////////////////////////////////////////
// Простите переводчика, уже лет 20 не писал на фортране...
// Любые замечания приму с благодарностью.
/*! header that is put before the list of member subprograms (Fortran). */
virtual QCString trMemberFunctionDocumentationFortran()
{ return "Функции/подпрограммы"; }
/*! This is put above each page as a link to the list of annotated data types (Fortran). */
virtual QCString trCompoundListFortran()
{ return "Типы данных"; }
/*! This is put above each page as a link to all members of compounds (Fortran). */
virtual QCString trCompoundMembersFortran()
{ return "Поля данных"; }
/*! This is an introduction to the annotated compound list (Fortran). */
virtual QCString trCompoundListDescriptionFortran()
{ return "Аннотированный список типов данных:"; }
/*! This is an introduction to the page with all data types (Fortran). */
virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
{
QCString result="Список всех ";
if (!extractAll)
{
result+="документированных ";
}
result+="членов типа со ссылками ";
if (!extractAll)
{
result+="на документацию для каждого члена:";
}
else
{
result+="на содержащую структуру:";
}
return result;
}
/*! This is used in LaTeX as the title of the chapter with the
* annotated compound index (Fortran).
*/
virtual QCString trCompoundIndexFortran()
{ return "Типы данных"; }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all data types (Fortran).
*/
virtual QCString trTypeDocumentation()
{ return "Оглавление типов данных"; }
/*! This is used in the documentation of a file as a header before the
* list of (global) subprograms (Fortran).
*/
virtual QCString trSubprograms()
{ return "Функции/подпрограммы"; }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for subprograms (Fortran)
*/
virtual QCString trSubprogramDocumentation()
{ return "Функции/подпрограммы"; }
/*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds (Fortran)
*/
virtual QCString trDataTypes()
{ return "Типы данных"; }
/*! used as the title of page containing all the index of all modules (Fortran). */
virtual QCString trModulesList()
{ return "Указатель модулей"; }
/*! used as an introduction to the modules list (Fortran) */
virtual QCString trModulesListDescription(bool extractAll)
{
QCString result="Аннотированный список";
if (!extractAll) result+="документированных ";
result+="модулей:";
return result;
}
/*! used as the title of the HTML page of a module/type (Fortran) */
virtual QCString trCompoundReferenceFortran(const char *clName,
ClassDef::CompoundType compType,
bool isTemplate)
{
QCString result=(QCString)clName;
if (isTemplate)
{
switch(compType)
{
case ClassDef::Class: result+=" Модуль"; break;
case ClassDef::Struct: result+=" Тип"; break;
case ClassDef::Union: result+=" Объединение"; break;
case ClassDef::Interface: result+=" Интерфейс"; break;
case ClassDef::Protocol: result+=" Протокол"; break;
case ClassDef::Category: result+=" Категория"; break;
case ClassDef::Exception: result+=" Исключение"; break;
}
}
else
{
if (isTemplate) result+=" Шаблон ";
switch(compType)
{
case ClassDef::Class: result+="модуля"; break;
case ClassDef::Struct: result+="типа"; break;
case ClassDef::Union: result+="объединения"; break;
case ClassDef::Interface: result+="интерфейса"; break;
case ClassDef::Protocol: result+="протокола"; break;
case ClassDef::Category: result+="категории"; break;
case ClassDef::Exception: result+="исключения"; break;
}
}
return result;
}
/*! used as the title of the HTML page of a module (Fortran) */
virtual QCString trModuleReference(const char *namespaceName)
{
return QCString("Модуль ") + namespaceName;
}
/*! This is put above each page as a link to all members of modules. (Fortran) */
virtual QCString trModulesMembers()
{ return "Члены модуля"; }
/*! This is an introduction to the page with all modules members (Fortran) */
virtual QCString trModulesMemberDescription(bool extractAll)
{
QCString result="Список всех ";
if (!extractAll) result+="документированных ";
result+="модулей со ссылками ";
if (extractAll)
{
result+="на документацию для каждого члена:";
}
else
{
result+="на модули, их содержащие:";
}
return result;
}
/*! This is used in LaTeX as the title of the chapter with the
* index of all modules (Fortran).
*/
virtual QCString trModulesIndex()
{ return "Указатель модулей"; }
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trModule(bool first_capital, bool singular)
{
QCString result((first_capital ? "Модул" : "модул"));
if (singular) result+="ь"; else result+="и";
return result;
}
/*! This is put at the bottom of a module documentation page and is
* followed by a list of files that were used to generate the page.
*/
virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
bool single)
{ // here s is one of " Module", " Struct" or " Union"
// single is true implies a single file
QCString result=(QCString)"Документация по ";
switch(compType)
{
case ClassDef::Class: result+="модулю"; break;
case ClassDef::Struct: result+="типу"; break;
case ClassDef::Union: result+="объединению"; break;
case ClassDef::Interface: result+="интерфейсу"; break;
case ClassDef::Protocol: result+="протоколу"; break;
case ClassDef::Category: result+="кетегории"; break;
case ClassDef::Exception: result+="исключению"; break;
}
result+=" сгенерирована на основе следующ";
if (single) result+="его файла:"; else result+="их файлов:";
return result;
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trType(bool first_capital, bool singular)
{
QCString result((first_capital ? "Тип" : "тип"));
if (!singular) result+="ы";
return result;
}
/*! This is used for translation of the word that will possibly
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trSubprogram(bool first_capital, bool singular)
{
QCString result((first_capital ? "Подпрограмм" : "подпрограмм"));
if (singular) result+="а"; else result+="ы";
return result;
}
/*! C# Type Constraint list */
virtual QCString trTypeConstraints()
{
return "Согласование типов";
}
};
#endif
......@@ -589,7 +589,7 @@ static void codifyMapLines(char *text)
else
{
generateClassOrGlobalLink(*g_code,sp);
g_PortMapComp=tt;
if (dot) g_PortMapComp=tt;
}
dot=FALSE;
g_temp.resize(0);
......@@ -620,7 +620,7 @@ static void codifyMapLines(char *text)
//if (dot==TRUE)
//{
QCString tt=g_temp;
tt=tt.lower();
// tt=tt.lower();
QCString *ss;
if ((ss=VhdlDocGen::findKeyWord(tt)))
......
......@@ -1165,28 +1165,31 @@ QCString VhdlDocGen::trTypeString(int type)
{
switch(type)
{
case VhdlDocGen::LIBRARY: return "Library";
case VhdlDocGen::ENTITY: return "Entity";
case VhdlDocGen::PACKAGE_BODY: return "Package Body";
case VhdlDocGen::ATTRIBUTE: return "Attribute";
case VhdlDocGen::PACKAGE: return "Package";
case VhdlDocGen::SIGNAL: return "Signal";
case VhdlDocGen::COMPONENT: return "Component";
case VhdlDocGen::CONSTANT: return "Constant";
case VhdlDocGen::TYPE: return "Type";
case VhdlDocGen::SUBTYPE: return "Subtype";
case VhdlDocGen::FUNCTION: return "Function";
case VhdlDocGen::RECORD: return "Record";
case VhdlDocGen::PROCEDURE: return "Procedure";
case VhdlDocGen::ARCHITECTURE: return "Architecture";
case VhdlDocGen::USE: return "Package";
case VhdlDocGen::PROCESS: return "Process";
case VhdlDocGen::PORT: return "Port";
case VhdlDocGen::GENERIC: return "Generic";
case VhdlDocGen::DOCUMENT: return "Doc";
case VhdlDocGen::UNITS: return "Units";
case VhdlDocGen::PORTMAP: return "Port Map";
default: return "";
case VhdlDocGen::LIBRARY: return "Library";
case VhdlDocGen::ENTITY: return "Entity";
case VhdlDocGen::PACKAGE_BODY: return "Package Body";
case VhdlDocGen::ATTRIBUTE: return "Attribute";
case VhdlDocGen::PACKAGE: return "Package";
case VhdlDocGen::SIGNAL: return "Signal";
case VhdlDocGen::COMPONENT: return "Component";
case VhdlDocGen::CONSTANT: return "Constant";
case VhdlDocGen::TYPE: return "Type";
case VhdlDocGen::SUBTYPE: return "Subtype";
case VhdlDocGen::FUNCTION: return "Function";
case VhdlDocGen::RECORD: return "Record";
case VhdlDocGen::PROCEDURE: return "Procedure";
case VhdlDocGen::ARCHITECTURE: return "Architecture";
case VhdlDocGen::USE: return "Package";
case VhdlDocGen::PROCESS: return "Process";
case VhdlDocGen::PORT: return "Port";
case VhdlDocGen::GENERIC: return "Generic";
case VhdlDocGen::DOCUMENT: return "Doc";
case VhdlDocGen::UNITS: return "Units";
case VhdlDocGen::PORTMAP: return "Port Map";
case VhdlDocGen::SHAREDVARIABLE: return "Shared Variable";
case VhdlDocGen::GROUP: return "Group";
case VhdlDocGen::VFILE: return "File";
default: return "";
}
} // convertType
......@@ -1497,6 +1500,14 @@ void VhdlDocGen::writeFunctionProto(OutputList& ol,const ArgumentList* al,const
}
ol.startBold();
ol.docify(" )");
const char *exp=mdef->excpString();
if(exp)
{
ol.insertMemberAlign();
ol.docify("[ ");
ol.docify(exp);
ol.docify(" ]");
}
ol.endBold();
}
......@@ -1542,16 +1553,18 @@ void VhdlDocGen::writeFuncProcDocu(
ArgumentListIterator ali(*al);
int index=ali.count();
if (index==0){
if (index==0)
{
ol.docify(" ( ) ");
return;
}
ol.startParameterList(TRUE);
ol.startParameterList(FALSE);
Argument *arg;
bool first=TRUE;
for (;(arg=ali.current());++ali)
{
ol.startParameterType(first,"");
if (first) ol.writeChar('(');
if (!VhdlDocGen::isProcess(md))
{
if (TRUE) //VhdlDocGen::isProcedure(md))
......@@ -1685,6 +1698,9 @@ void VhdlDocGen::writeVhdlDeclarations(MemberList* ml,
VhdlDocGen::writeVHDLDeclarations(ml,ol,cd,0,0,gd,theTranslator_vhdlType(VhdlDocGen::PROCEDURE,FALSE),0,FALSE,VhdlDocGen::PROCEDURE);
VhdlDocGen::writeVHDLDeclarations(ml,ol,cd,0,0,gd,theTranslator_vhdlType(VhdlDocGen::RECORD,FALSE),0,FALSE,VhdlDocGen::RECORD);
VhdlDocGen::writeVHDLDeclarations(ml,ol,cd,0,0,gd,theTranslator_vhdlType(VhdlDocGen::UNITS,FALSE),0,FALSE,VhdlDocGen::UNITS);
VhdlDocGen::writeVHDLDeclarations(ml,ol,cd,0,0,gd,theTranslator_vhdlType(VhdlDocGen::SHAREDVARIABLE,FALSE),0,FALSE,VhdlDocGen::SHAREDVARIABLE);
VhdlDocGen::writeVHDLDeclarations(ml,ol,cd,0,0,gd,theTranslator_vhdlType(VhdlDocGen::VFILE,FALSE),0,FALSE,VhdlDocGen::VFILE);
VhdlDocGen::writeVHDLDeclarations(ml,ol,cd,0,0,gd,theTranslator_vhdlType(VhdlDocGen::GROUP,FALSE),0,FALSE,VhdlDocGen::GROUP);
}
......@@ -1764,6 +1780,9 @@ void VhdlDocGen::writeVHDLDeclaration(MemberDef* mdef,OutputList &ol,
if (VhdlDocGen::isRecord(mdef)) Doxygen::tagFile << "record";
if (VhdlDocGen::isLibrary(mdef)) Doxygen::tagFile << "library";
if (VhdlDocGen::isPackage(mdef)) Doxygen::tagFile << "package";
if (VhdlDocGen::isVariable(mdef)) Doxygen::tagFile << "shared variable";
if (VhdlDocGen::isFile(mdef)) Doxygen::tagFile << "file";
if (VhdlDocGen::isGroup(mdef)) Doxygen::tagFile << "group";
Doxygen::tagFile << "\">" << endl;
Doxygen::tagFile << " <type>" << convertToXML(mdef->typeString()) << "</type>" << endl;
......@@ -1940,6 +1959,9 @@ void VhdlDocGen::writeVHDLDeclaration(MemberDef* mdef,OutputList &ol,
case VhdlDocGen::TYPE:
case VhdlDocGen::SUBTYPE:
case VhdlDocGen::CONSTANT:
case VhdlDocGen::SHAREDVARIABLE:
case VhdlDocGen::VFILE:
case VhdlDocGen::GROUP:
writeLink(mdef,ol);
ol.docify(" ");
ol.insertMemberAlign();
......@@ -2236,6 +2258,15 @@ QCString VhdlDocGen::trVhdlType(int type,bool sing)
return "Doc";
case VhdlDocGen::UNITS:
return "Units";
case VhdlDocGen::SHAREDVARIABLE:
if (sing) return "Shared Variable";
return "Shared Variables";
case VhdlDocGen::VFILE:
if (sing) return "File";
return "Files";
case VhdlDocGen::GROUP:
if (sing) return "Group";
return "Groups";
default:
return "Class";
}
......
......@@ -69,7 +69,10 @@ class VhdlDocGen
DOCUMENT, //18 0x12
UNITS,
GENERIC,
PORTMAP
PORTMAP,
GROUP,
VFILE,
SHAREDVARIABLE
};
VhdlDocGen();
......@@ -171,6 +174,12 @@ class VhdlDocGen
{ return mdef->getMemberSpecifiers()==VhdlDocGen::UNITS; }
static bool isPackageBody(const MemberDef *mdef)
{ return mdef->getMemberSpecifiers()==VhdlDocGen::PACKAGE_BODY; }
static bool isVariable(const MemberDef *mdef)
{ return mdef->getMemberSpecifiers()==VhdlDocGen::SHAREDVARIABLE; }
static bool isFile(const MemberDef *mdef)
{ return mdef->getMemberSpecifiers()==VhdlDocGen::VFILE; }
static bool isGroup(const MemberDef *mdef)
{ return mdef->getMemberSpecifiers()==VhdlDocGen::GROUP; }
//-----------------------------------------------------
// translatable items
......
......@@ -199,6 +199,18 @@ void getType(Entry* p,char* text)
{
p->spec=VhdlDocGen::UNITS;
}
else if (name.contains("shared",false) && name.contains("variable",false))
{
p->spec=VhdlDocGen::SHAREDVARIABLE;
}
else if (stricmp(name.data(),"file" )==0)
{
p->spec=VhdlDocGen::VFILE;
}
else if (stricmp(name.data(),"group" )==0)
{
p->spec=VhdlDocGen::GROUP;
}
else
{
err("wrong type");
......@@ -369,6 +381,11 @@ static void parseFunctionProto()
if (qcs.contains("function",FALSE)==0 && qcs.contains("procedure",FALSE)==0)
return;
//Entry* ppEntry=new Entry;
while (qcs.stripPrefix(" "));
if (qcs.stripPrefix("impure"))
current->exception="impure";
else if (qcs.stripPrefix("pure"))
current->exception="pure";
VhdlDocGen::parseFuncProto(qcs.data(),ql,name,ret);
current->name=name;
......@@ -541,15 +558,18 @@ ENDEFF ("if"|"case"|"loop"|"generate"){BR}*[;]
ENDE3 {BR}*[^a-zA-Z]("end"){BR}+{FUNCNAME}{BR}*[;]
ENDFUNC {B}*"end"{BR}+"function"{BR}+{FUNCNAME}{BR}*[;]
FUNCPROC ^{B}*("function"|"procedure"){B}*
FUNCIMPURE "impure"|"pure"
FUNCPROC ^{B}*{FUNCIMPURE}*{BR}*("function"|"procedure"){B}*
ARCHITECTURE ("architecture"){BR}+{NAME}{BR}*("of")
PROCESS ({BR}*{FUNCNAME}{B}*[:]{BR}*("process"){BR}*{PROTO})|("process"){BR}*("("){BR}*{PROTO}|[^a-zA-Z]("process"){CR}|[^a-zA-Z]("process"){BR}+("is")
POST "postponed"
PROCESS ({BR}*{FUNCNAME}{B}*[:]{BR}*{POST}{BR}("process"){BR}*{PROTO})|("process"){BR}*("("){BR}*{PROTO}|[^a-zA-Z]("process"){CR}|[^a-zA-Z]("process"){BR}+("is")
ENDPROCESS ("end"){BR}*("process")
LIBUSE ^{B}*("use"|"library"){BR}+
ENTITY ^{B}*("component"|"entity"|"package"){BR}+
PBODY ("package"){B}+("body"){BR}+{NAME}
SIGTYPES ^{B}*("subtype"|"type"|"constant"|"attribute"|"signal"|"units"){BR}+
SHARED ("shared"){BR}+("variable")
SIGTYPES ^{B}*({SHARED}|"file"|"group"|"subtype"|"type"|"constant"|"attribute"|"signal"|"units"){BR}+
ALLTYPESMAP {B}*[_a-zA-ZA_Z0-9. ]*{B}*
......@@ -691,6 +711,7 @@ ALLID [^;()\t ]
{
isBody=0;
scantype=0;
lastCompound=0;
current->section=Entry::CLASS_SEC;
current->spec=VhdlDocGen::ENTITY;
current->protection=Public;
......@@ -1443,7 +1464,41 @@ static void initEntry(Entry *e)
static void newEntry()
{
current_root->addSubEntry(current);
// Add only enties/architectures/packages to root
// and signals to classes where they were found
// ENTITY dlatch_93 IS -- VHDL'93-Syntax !!!
// PORT (d, clk : IN bit;
// q, qbar : OUT bit);
// GROUP path IS (SIGNAL, SIGNAL);
// GROUP d_to_q : path (d, q);
// ATTRIBUTE propagation : time;
// END dlatch_93;
if (current->spec==VhdlDocGen::ENTITY ||
current->spec==VhdlDocGen::PACKAGE ||
current->spec==VhdlDocGen::ARCHITECTURE ||
current->spec==VhdlDocGen::PACKAGE_BODY)
{
current_root->addSubEntry(current);
}
else
{
if (lastCompound)
{
lastCompound->addSubEntry(current);
}
else
{
if (lastEntity)
{
lastEntity->addSubEntry(current);
}
else
{
current_root->addSubEntry(current); // should not happen!
}
}
}
previous = current;
current = new Entry ;
initEntry(current);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment