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