diff options
37 files changed, 2979 insertions, 498 deletions
@@ -1,7 +1,7 @@ -DOXYGEN Version 1.5.8-20090129 +DOXYGEN Version 1.5.8-20090304 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (29 January 2009) +Dimitri van Heesch (04 March 2009) @@ -1,4 +1,4 @@ -DOXYGEN Version 1.5.8_20090129 +DOXYGEN Version 1.5.8_20090304 Please read INSTALL for compilation instructions. @@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. Enjoy, -Dimitri van Heesch (dimitri@stack.nl) (29 January 2009) +Dimitri van Heesch (dimitri@stack.nl) (04 March 2009) diff --git a/addon/doxywizard/expert.cpp b/addon/doxywizard/expert.cpp index 1e0adb1..7c16c28 100644 --- a/addon/doxywizard/expert.cpp +++ b/addon/doxywizard/expert.cpp @@ -498,7 +498,7 @@ static QString getStringOption( bool Expert::htmlOutputPresent(const QString &workingDir) const { bool generateHtml = getBoolOption(m_options,QString::fromAscii("GENERATE_HTML")); - if (!generateHtml) return false; + if (!generateHtml || workingDir.isEmpty()) return false; QString indexFile = getHtmlOutputIndex(workingDir); QFileInfo fi(indexFile); return fi.exists() && fi.isFile(); diff --git a/addon/doxywizard/inputstring.cpp b/addon/doxywizard/inputstring.cpp index d3441c1..7b0aea0 100644 --- a/addon/doxywizard/inputstring.cpp +++ b/addon/doxywizard/inputstring.cpp @@ -101,7 +101,7 @@ void InputString::setValue(const QString &s) { m_lab->setText(QString::fromAscii("<qt><font color='red'>")+m_id+QString::fromAscii("</font></qt>")); } - if (m_le) m_le->setText( m_str ); + if (m_le && m_le->text()!=m_str) m_le->setText( m_str ); emit changed(); } } @@ -38,7 +38,7 @@ f_app=NO f_thread=NO f_flex=NO f_bison=NO -f_langs=nl,se,cz,fr,id,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,br,dk,sk,ua,gr,tw,sr,ca,lt,za,ar,fa,vi,tr +f_langs=nl,sv,cz,fr,id,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,br,dk,sk,ua,gr,tw,sr,ca,lt,za,ar,fa,vi,tr,eo while test -n "$1"; do case $1 in @@ -648,7 +648,7 @@ fi echo -n " Generating src/lang_cfg.h..." echo $f_langs | $f_perl -e '@l=split(/,/,<STDIN>); chomp @l; - @allowed=(split(/,/,"NL,SE,CZ,FR,ID,IT,DE,JP,JE,ES,FI,RU,HR,PL,PT,HU,KR,KE,RO,SI,CN,NO,MK,BR,DK,SK,UA,GR,TW,SR,CA,LT,ZA,AR,FA,SC,VI,TR")); + @allowed=(split(/,/,"NL,SV,CZ,FR,ID,IT,DE,JP,JE,ES,FI,RU,HR,PL,PT,HU,KR,KE,RO,SI,CN,NO,MK,BR,DK,SK,UA,GR,TW,SR,CA,LT,ZA,AR,FA,SC,VI,TR,EO")); foreach my $elem (@l){ $elem =~ tr/a-z/A-Z/; $r=0; diff --git a/doc/config.doc b/doc/config.doc index 6e0958a..8525593 100644 --- a/doc/config.doc +++ b/doc/config.doc @@ -1219,18 +1219,22 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn" If the tag is left blank doxygen will generate a standard header. - The following commands have a special meaning inside the header: - <code>\$title</code>, <code>\$datetime</code>, <code>\$date</code>, - <code>\$doxygenversion</code>, <code>\$projectname</code>, and - <code>\$projectnumber</code>. - Doxygen will replace them by respectively - the title of the page, the current date and time, only the current date, - the version number of doxygen, the project name (see \c PROJECT_NAME), or the - project number (see \c PROJECT_NUMBER). - + The following markers have a special meaning inside the header and footer: + <dl> + <dt><code>\$title</code><dd>will be replaced with the title of the page. + <dt><code>\$datetime</code><dd>will be replaced with current the date and time. + <dt><code>\$date</code><dd>will be replaced with the current date. + <dt><code>\$year</code><dd>will be replaces with the current year. + <dt><code>\$doxygenversion</code><dd>will be replaced with the version of doxygen + <dt><code>\$projectname</code><dd>will be replaced with the name of + the project (see \c PROJECT_NAME) + <dt><code>\$projectnumber</code><dd>will be replaced with the project number + (see \c PROJECT_NUMBER) + <dt><code>\$relpath\$</code><dd> If \c CREATE_SUBDIRS is enabled, the command <code>\$relpath\$</code> can be used to produce a relative path to the root of the HTML output directory, e.g. use \$relpath\$doxygen.css, to refer to the standard style sheet. + </dl> See also section \ref doxygen_usage for information on how to generate the default header that doxygen normally uses. diff --git a/doc/docblocks.doc b/doc/docblocks.doc index 8ac55bb..ebbe879 100644 --- a/doc/docblocks.doc +++ b/doc/docblocks.doc @@ -70,7 +70,7 @@ In both cases the intermediate *'s are optional, so is also valid. -<li> A third alternative is to use a block of at least two C++ comment +<li> A third alternative is to use a block of <i>at least two</i> C++ comment lines, where each line starts with an additional slash or an exclamation mark. Here are examples of the two cases: @@ -88,6 +88,8 @@ or //! \endverbatim +Note that a blank line ends a documentation block in this case. + <li> Some people like to make their comment blocks more visible in the diff --git a/doc/language.doc b/doc/language.doc index e5e3774..884fce8 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -23,14 +23,15 @@ text fragments, generated by doxygen, can be produced in languages other than English (the default). The output language is chosen through the configuration file (with default name and known as Doxyfile). -Currently (version 1.5.7.1), 37 languages +Currently (version 1.5.8), 38 languages are supported (sorted alphabetically): Afrikaans, Arabic, Brazilian Portuguese, Catalan, Chinese, Chinese -Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French, -German, Greek, Hungarian, Indonesian, Italian, Japanese (+En), Korean -(+En), Lithuanian, Macedonian, Norwegian, Persian, Polish, Portuguese, -Romanian, Russian, Serbian, SerbianCyrilic, Slovak, Slovene, Spanish, -Swedish, Turkish, Ukrainian, and Vietnamese.. +Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto, +Finnish, French, German, Greek, Hungarian, Indonesian, Italian, +Japanese (+En), Korean (+En), Lithuanian, Macedonian, Norwegian, +Persian, Polish, Portuguese, Romanian, Russian, Serbian, +SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian, +and Vietnamese.. The table of information related to the supported languages follows. It is sorted by language alphabetically. The <b>Status</b> column @@ -118,6 +119,12 @@ when the translator was updated. <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> + <td>Esperanto</td> + <td>Ander Martinez</td> + <td>dwarfnauko at gmail dot com</td> + <td>up-to-date</td> + </tr> + <tr bgcolor="#ffffff"> <td>Finnish</td> <td>Antti Laine</td> <td>antti.a.laine at tut dot fi</td> @@ -223,7 +230,7 @@ when the translator was updated. <td>Romanian</td> <td>Ionut Dumitrascu<br>Alexandru Iosup</td> <td>reddumy at yahoo dot com<br>aiosup at yahoo dot com</td> - <td>1.4.1</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Russian</td> @@ -257,8 +264,8 @@ when the translator was updated. </tr> <tr bgcolor="#ffffff"> <td>Spanish</td> - <td>Bartomeu<br>Francisco Oltra Thennet</td> - <td>bartomeu at loteria3cornella dot com<br>foltra at puc dot cl</td> + <td>Bartomeu<br>Francisco Oltra Thennet<br>David Vaquero</td> + <td>bartomeu at loteria3cornella dot com<br>foltra at puc dot cl<br>david at grupoikusnet dot com</td> <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> @@ -325,6 +332,8 @@ when the translator was updated. \hline English & Dimitri van Heesch & {\tt\tiny dimitri@stack.nl} & up-to-date \\ \hline + Esperanto & Ander Martinez & {\tt\tiny dwarfnauko@gmail.com} & up-to-date \\ + \hline Finnish & Antti Laine & {\tt\tiny antti.a.laine@tut.fi} & up-to-date \\ \hline French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.5.4 \\ @@ -368,7 +377,7 @@ when the translator was updated. \hline Portuguese & Rui Godinho Lopes & {\tt\tiny ruiglopes@yahoo.com} & 1.3.3 \\ \hline - Romanian & Ionut Dumitrascu & {\tt\tiny reddumy@yahoo.com} & 1.4.1 \\ + Romanian & Ionut Dumitrascu & {\tt\tiny reddumy@yahoo.com} & up-to-date \\ ~ & Alexandru Iosup & {\tt\tiny aiosup@yahoo.com} & ~ \\ \hline Russian & Alexandr Chelpanov & {\tt\tiny cav@cryptopro.ru} & up-to-date \\ @@ -383,6 +392,7 @@ when the translator was updated. \hline Spanish & Bartomeu & {\tt\tiny bartomeu@loteria3cornella.com} & up-to-date \\ ~ & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & ~ \\ + ~ & David Vaquero & {\tt\tiny david@grupoikusnet.com} & ~ \\ \hline Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.4.6 \\ \hline diff --git a/doc/language.tpl b/doc/language.tpl index f15fa00..ca1900e 100644 --- a/doc/language.tpl +++ b/doc/language.tpl @@ -62,10 +62,10 @@ Just follow these steps: at two places in the script: <ol> <li>After the <code>f_langs=</code> is statement, in lower case. - <li>In the string that following <code>@allowed=</code> in upper case. + <li>In the string that following <code>\@allowed=</code> in upper case. </ol> The rerun the configure script such that is generates src/lang_cfg.h. -This file should now contain a #define for your language code. +This file should now contain a \#define for your language code. <li>Edit language.cpp: Add a \verbatim diff --git a/doc/maintainers.txt b/doc/maintainers.txt index 9c61314..c5f9f50 100644 --- a/doc/maintainers.txt +++ b/doc/maintainers.txt @@ -45,6 +45,9 @@ Dimitri van Heesch: dimitri@stack.nl TranslatorEnglish Dimitri van Heesch: dimitri@stack.nl +TranslatorEsperanto +Ander Martinez: dwarfnauko@gmail.com + TranslatorFinnish Antti Laine: antti.a.laine@tut.fi @@ -69,6 +72,7 @@ Alessandro Falappa: alessandro@falappa.net Ahmed Aldo Faisal: aaf23@cam.ac.uk TranslatorJapanese +Hiroki Iseri: goyoki@gmail.com Ryunosuke Satoh: sun594@hotmail.com Kenji Nagamatsu: naga@joyful.club.ne.jp Iwasa Kazmi: iwasa@cosmo-system.jp @@ -121,6 +125,7 @@ Matjaž Ostroveršnik: matjaz.ostroversnik@ostri.org TranslatorSpanish Bartomeu: bartomeu@loteria3cornella.com Francisco Oltra Thennet: foltra@puc.cl +David Vaquero: david@grupoikusnet.com TranslatorSwedish Mikael Hallin: mikaelhallin@yahoo.se diff --git a/doc/translator_report.txt b/doc/translator_report.txt index 9f1f670..771633d 100644 --- a/doc/translator_report.txt +++ b/doc/translator_report.txt @@ -1,15 +1,16 @@ -(1.5.7.1) +(1.5.8) -Doxygen supports the following 37 languages (sorted alphabetically): +Doxygen supports the following 38 languages (sorted alphabetically): Afrikaans, Arabic, Brazilian Portuguese, Catalan, Chinese, Chinese -Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French, -German, Greek, Hungarian, Indonesian, Italian, Japanese (+En), Korean -(+En), Lithuanian, Macedonian, Norwegian, Persian, Polish, Portuguese, -Romanian, Russian, Serbian, SerbianCyrilic, Slovak, Slovene, Spanish, -Swedish, Turkish, Ukrainian, and Vietnamese. - -Of them, 20 translators are up-to-date, 17 translators are based on +Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto, +Finnish, French, German, Greek, Hungarian, Indonesian, Italian, +Japanese (+En), Korean (+En), Lithuanian, Macedonian, Norwegian, +Persian, Polish, Portuguese, Romanian, Russian, Serbian, +SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian, +and Vietnamese. + +Of them, 22 translators are up-to-date, 16 translators are based on some adapter class, and 2 are English based. ---------------------------------------------------------------------- @@ -26,16 +27,18 @@ still may be some details listed even for them: TranslatorCzech TranslatorDutch TranslatorEnglish - TranslatorFinnish -- Change the base class to Translator. + TranslatorEsperanto + TranslatorFinnish TranslatorGerman TranslatorItalian TranslatorKorean TranslatorMacedonian TranslatorPersian + TranslatorRomanian TranslatorRussian TranslatorSerbianCyrilic TranslatorSerbian - TranslatorSpanish -- Change the base class to Translator. + TranslatorSpanish TranslatorTurkish TranslatorVietnamese @@ -59,7 +62,6 @@ must be implemented to become up-to-date: TranslatorArabic 1.4.6 23 methods to implement TranslatorAfrikaans 1.4.6 24 methods to implement TranslatorUkrainian 1.4.1 24 methods to implement - TranslatorRomanian 1.4.1 24 methods to implement TranslatorPortuguese 1.3.3 35 methods to implement TranslatorSlovak 1.2.18 44 methods to implement @@ -79,6 +81,7 @@ The situation should be checked. The .cpp files and .h files excluding the '*translator*' files in doxygen/src directory were simply searched for occurence of the method identifiers: + QCString trDCOPMethods() QCString trFunctionPrototypeDocumentation() @@ -195,12 +198,6 @@ TranslatorDanish (TranslatorAdapter_1_5_4) 22 methods to implement virtual QCString trSubprogramDocumentation() -TranslatorFinnish (TranslatorEnglish) ------------------ - - Implements 216 of the required methods. - - TranslatorFrench (TranslatorAdapter_1_5_4) 22 methods to implement ---------------- @@ -600,51 +597,6 @@ TranslatorPortuguese (TranslatorAdapter_1_3_3) 35 methods to implement QCString trNoDescriptionAvailable() -TranslatorRomanian (TranslatorAdapter_1_4_1) 24 methods to implement ------------------- - - Implements 192 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) - virtual QCString trOverloadText() - 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 trCallerGraph() - 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() - - Obsolete methods (should be removed, never used): - - virtual QCString trHeaderFilesDescription() - virtual QCString trField(bool first_capital, bool singular) - virtual QCString trPackageDocumentation() - virtual QCString trSources() - virtual QCString trReimplementedForInternalReasons() - virtual QCString trInterfaces() - virtual QCString trHeaderFiles() - virtual QCString trBugsAndLimitations() - virtual QCString trNoDescriptionAvailable() - - TranslatorSlovak (TranslatorAdapter_1_2_18) 44 methods to implement ---------------- @@ -743,12 +695,6 @@ TranslatorSlovene (TranslatorAdapter_1_4_6) 24 methods to implement virtual QCString trSubprogramDocumentation() -TranslatorSpanish (TranslatorAdapter_1_5_4) ------------------ - - Implements 216 of the required methods. - - TranslatorSwedish (TranslatorAdapter_1_4_6) 24 methods to implement ----------------- diff --git a/doc/xmlcmds.doc b/doc/xmlcmds.doc index 7fdf034..40c1f30 100644 --- a/doc/xmlcmds.doc +++ b/doc/xmlcmds.doc @@ -51,7 +51,7 @@ Here is the list of tags supported by doxygen: <li><tt>\<paramref name="paramName"\></tt> Refers to a parameter with name "paramName". Similar to using \ref cmda "\\a". <li><tt>\<permission\></tt> Identifies the security accessibility of a member. - Ignored by doygen. + Ignored by doxygen. <li><tt>\<remarks\></tt> Identifies the detailed description. <li><tt>\<returns\></tt> Marks a piece of text as the return value of a function or method. Similar to using \ref cmdreturn "\\return". diff --git a/src/classdef.cpp b/src/classdef.cpp index b20a222..7bd4b48 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -942,89 +942,86 @@ void ClassDef::showUsedFiles(OutputList &ol) ol.pushGeneratorState(); ol.disable(OutputGenerator::Man); bool fortranOpt = Config_getBool("OPTIMIZE_FOR_FORTRAN"); - //if (Config_getBool("SHOW_USED_FILES")) - //{ - ol.writeRuler(); - if (fortranOpt) - { - ol.parseText(theTranslator->trGeneratedFromFilesFortran( + + ol.writeRuler(); + if (fortranOpt) + { + ol.parseText(theTranslator->trGeneratedFromFilesFortran( m_impl->isObjC && m_impl->compType==Interface ? Class : m_impl->compType, m_impl->files.count()==1)); - } - else - { - ol.parseText(theTranslator->trGeneratedFromFiles( + } + else + { + ol.parseText(theTranslator->trGeneratedFromFiles( m_impl->isObjC && m_impl->compType==Interface ? Class : m_impl->compType, m_impl->files.count()==1)); - } - + } - bool first=TRUE; - const char *file = m_impl->files.first(); - while (file) + + bool first=TRUE; + const char *file = m_impl->files.first(); + while (file) + { + bool ambig; + FileDef *fd=findFileDef(Doxygen::inputNameDict,file,ambig); + if (fd) { - bool ambig; - FileDef *fd=findFileDef(Doxygen::inputNameDict,file,ambig); - if (fd) + if (first) { - if (first) - { - first=FALSE; - ol.startItemList(); - } - - ol.writeListItem(); - QCString path=fd->getPath(); - if (Config_getBool("FULL_PATH_NAMES")) - { - ol.docify(stripFromPath(path)); - } - - QCString fname = fd->name(); - if (!fd->getVersion().isEmpty()) // append version if available - { - fname += " (" + fd->getVersion() + ")"; - } + first=FALSE; + ol.startItemList(); + } - // for HTML - ol.pushGeneratorState(); - ol.disableAllBut(OutputGenerator::Html); - if (fd->generateSourceFile()) - { - ol.writeObjectLink(0,fd->getSourceFileBase(),0,fname); - } - else if (fd->isLinkable()) - { - ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0, - fname); - } - else - { - ol.docify(fname); - } - ol.popGeneratorState(); + ol.writeListItem(); + QCString path=fd->getPath(); + if (Config_getBool("FULL_PATH_NAMES")) + { + ol.docify(stripFromPath(path)); + } - // for other output formats - ol.pushGeneratorState(); - ol.disable(OutputGenerator::Html); - if (fd->isLinkable()) - { - ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0, - fname); - } - else - { - ol.docify(fname); - } + QCString fname = fd->name(); + if (!fd->getVersion().isEmpty()) // append version if available + { + fname += " (" + fd->getVersion() + ")"; + } - ol.popGeneratorState(); + // for HTML + ol.pushGeneratorState(); + ol.disableAllBut(OutputGenerator::Html); + if (fd->generateSourceFile()) + { + ol.writeObjectLink(0,fd->getSourceFileBase(),0,fname); + } + else if (fd->isLinkable()) + { + ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0, + fname); + } + else + { + ol.docify(fname); + } + ol.popGeneratorState(); - + // for other output formats + ol.pushGeneratorState(); + ol.disable(OutputGenerator::Html); + if (fd->isLinkable()) + { + ol.writeObjectLink(fd->getReference(),fd->getOutputFileBase(),0, + fname); } - file=m_impl->files.next(); + else + { + ol.docify(fname); + } + + ol.popGeneratorState(); } - if (!first) ol.endItemList(); - //} + file=m_impl->files.next(); + } + if (!first) ol.endItemList(); + ol.popGeneratorState(); } @@ -2752,7 +2749,7 @@ QCString ClassDef::getSourceFileBase() const } else { - return convertNameToFile(m_impl->fileName+"-source"); + return convertNameToFile(m_impl->fileName)+"_source"; } } @@ -842,7 +842,7 @@ static bool getLinkInScope(const QCString &c, // scope FileDef *fd; NamespaceDef *nd; GroupDef *gd; - //printf("getLinkInScope: trying `%s'::`%s'\n",c.data(),m.data()); + //fprintf(stderr,"getLinkInScope: trying `%s'::`%s'\n",c.data(),m.data()); if (getDefs(c,m,"()",md,cd,fd,nd,gd,FALSE,g_sourceFileDef) && md->isLinkable()) { @@ -862,7 +862,7 @@ static bool getLinkInScope(const QCString &c, // scope Definition *d = md->getOuterScope()==Doxygen::globalScope ? md->getBodyDef() : md->getOuterScope(); if (md->getGroupDef()) d = md->getGroupDef(); - //printf("d=%p linkable=%d\n",d,d?d->isLinkable():0); + //fprintf(stderr,"d=%p linkable=%d\n",d,d?d->isLinkable():0); if (d && d->isLinkable()) { g_theCallContext.setClass(stripClassName(md->typeString())); @@ -1009,7 +1009,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName, } else // not a class, maybe a global member { - //printf("class %s not linkable! cd=%p md=%p typeOnly=%d\n",clName,cd,md,typeOnly); + //fprintf(stderr,"class %s not linkable! cd=%p md=%p typeOnly=%d\n",clName,cd,md,typeOnly); if (!isLocal && (md!=0 || (cd==0 && !typeOnly))) // not a class, see if it is a global enum/variable/typedef. { if (md==0) // not found as a typedef @@ -1032,7 +1032,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName, } if (md) { - //printf("is a global md=%p g_currentDefinition=%s\n",md,g_currentDefinition?g_currentDefinition->name().data():"<none>"); + //fprintf(stderr,"is a global md=%p g_currentDefinition=%s linkable=%d\n",md,g_currentDefinition?g_currentDefinition->name().data():"<none>",md->isLinkable()); if (md->isLinkable()) { ol.linkableSymbol(g_yyLineNr,md->name(),md, @@ -1049,6 +1049,7 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName, } // nothing found, just write out the word + //fprintf(stderr,"not found!\n"); ol.linkableSymbol(g_yyLineNr,clName,0, g_currentMemberDef?g_currentMemberDef:g_currentDefinition); codifyLines(clName); @@ -1085,27 +1086,30 @@ static bool generateClassMemberLink(CodeOutputInterface &ol,MemberDef *xmd,const Definition *xd = xmd->getOuterScope()==Doxygen::globalScope ? xmd->getBodyDef() : xmd->getOuterScope(); if (xmd->getGroupDef()) xd = xmd->getGroupDef(); - if (xd) + if (xd && xd->isLinkable()) { //printf("g_currentDefiniton=%p g_currentMemberDef=%p xmd=%p g_insideBody=%d\n",g_currentDefinition,g_currentMemberDef,xmd,g_insideBody); if (xmd->templateMaster()) xmd = xmd->templateMaster(); - // add usage reference - if (g_currentDefinition && g_currentMemberDef && - /*xmd!=g_currentMemberDef &&*/ g_insideBody) + if (xmd->isLinkable()) { - addDocCrossReference(g_currentMemberDef,xmd); - } + // add usage reference + if (g_currentDefinition && g_currentMemberDef && + /*xmd!=g_currentMemberDef &&*/ g_insideBody) + { + addDocCrossReference(g_currentMemberDef,xmd); + } - // write the actual link - ol.linkableSymbol(g_yyLineNr,xmd->name(),xmd, - g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); - writeMultiLineCodeLink(ol,xmd->getReference(), - xmd->getOutputFileBase(),xmd->anchor(),memName,xmd->briefDescriptionAsTooltip()); - addToSearchIndex(memName); - return TRUE; + // write the actual link + ol.linkableSymbol(g_yyLineNr,xmd->name(),xmd, + g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); + writeMultiLineCodeLink(ol,xmd->getReference(), + xmd->getOutputFileBase(),xmd->anchor(),memName,xmd->briefDescriptionAsTooltip()); + addToSearchIndex(memName); + return TRUE; + } } return FALSE; @@ -2993,6 +2997,9 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP} endFontClass(); BEGIN( g_lastCContext ) ; } +<SkipCxxComment>[^\r\n]*"\\"[\r]?\n { // line continuation + codifyLines(yytext); + } <SkipCxxComment>[^\r\n]+ { g_code->codify(yytext); } diff --git a/src/config.xml b/src/config.xml index 83a3701..9d6e144 100644 --- a/src/config.xml +++ b/src/config.xml @@ -35,11 +35,11 @@ documentation generated by doxygen is written. Doxygen will use this information to generate all constant output in the proper language. The default language is English, other supported languages are: Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, -Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), -Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, -Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene, -Spanish, Swedish, and Ukrainian. +Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, +Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. '> <value name='Afrikaans'/> <value name='Arabic'/> @@ -52,6 +52,8 @@ Spanish, Swedish, and Ukrainian. <value name='Danish'/> <value name='Dutch'/> <value name='English'/> + <value name='Esperanto'/> + <value name='Farsi'/> <value name='Finnish'/> <value name='French'/> <value name='German'/> @@ -63,7 +65,7 @@ Spanish, Swedish, and Ukrainian. <value name='Korean'/> <value name='Korean-en'/> <value name='Norwegian'/> - <value name='Farsi'/> + <value name='Macedonian'/> <value name='Persian'/> <value name='Polish'/> <value name='Portuguese'/> @@ -74,7 +76,9 @@ Spanish, Swedish, and Ukrainian. <value name='Slovene'/> <value name='Spanish'/> <value name='Swedish'/> + <value name='Turkish'/> <value name='Ukrainian'/> + <value name='Vietnamese'/> </option> <option type='bool' id='BRIEF_MEMBER_DESC' docs=' If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will @@ -437,11 +441,6 @@ The appearance of the initializer of individual variables and defines in the documentation can be controlled using \showinitializer or \hideinitializer command in the documentation regardless of this setting. ' minval='0' maxval='10000' defval='30'/> - <option type='bool' id='SHOW_USED_FILES' docs=' -Set the SHOW_USED_FILES tag to NO to disable the list of files generated -at the bottom of the documentation of classes and structs. If set to YES the -list will mention the files that were used to generate the documentation. -' defval='1'/> <option type='bool' id='SHOW_DIRECTORIES' docs=' If the sources in your project are distributed over multiple directories then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy @@ -976,6 +975,12 @@ If LATEX_HIDE_INDICES is set to YES then doxygen will not include the index chapters (such as File Index, Compound Index, etc.) in the output. ' defval='0' depends='GENERATE_LATEX'/> + <option type='bool' id='LATEX_SOURCE_CODE' docs=' +If LATEX_SOURCE_CODE is set to YES then doxygen will include +source code with syntax highlighting in the LaTeX output. +Note that which sources are shown also depends on other settings +such as SOURCE_BROWSER. +' defval='0' depends='GENERATE_LATEX'/> </group> <group name='RTF' docs='configuration options related to the RTF output'> <option type='bool' id='GENERATE_RTF' docs=' @@ -1367,6 +1372,7 @@ the various graphs. The SEARCHENGINE tag specifies whether or not a search engine should be used. If set to NO the values of all tags below this one will be ignored. ' defval='0'/> + <option type='obsolete' id='SHOW_USED_FILES'/> <option type='obsolete' id='USE_WINDOWS_ENCODING'/> <option type='obsolete' id='DETAILS_AT_TOP'/> <option type='obsolete' id='QTHELP_FILE'/> diff --git a/src/configoptions.cpp b/src/configoptions.cpp index 4010359..f95b834 100644 --- a/src/configoptions.cpp +++ b/src/configoptions.cpp @@ -70,11 +70,11 @@ void addConfigOptions(Config *cfg) "information to generate all constant output in the proper language. \n" "The default language is English, other supported languages are: \n" "Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, \n" - "Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, \n" - "Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), \n" - "Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, \n" - "Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene, \n" - "Spanish, Swedish, and Ukrainian.", + "Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, \n" + "Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English \n" + "messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, \n" + "Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, \n" + "Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.", "English" ); ce->addValue("Afrikaans"); @@ -88,6 +88,8 @@ void addConfigOptions(Config *cfg) ce->addValue("Danish"); ce->addValue("Dutch"); ce->addValue("English"); + ce->addValue("Esperanto"); + ce->addValue("Farsi"); ce->addValue("Finnish"); ce->addValue("French"); ce->addValue("German"); @@ -99,7 +101,7 @@ void addConfigOptions(Config *cfg) ce->addValue("Korean"); ce->addValue("Korean-en"); ce->addValue("Norwegian"); - ce->addValue("Farsi"); + ce->addValue("Macedonian"); ce->addValue("Persian"); ce->addValue("Polish"); ce->addValue("Portuguese"); @@ -110,7 +112,9 @@ void addConfigOptions(Config *cfg) ce->addValue("Slovene"); ce->addValue("Spanish"); ce->addValue("Swedish"); + ce->addValue("Turkish"); ce->addValue("Ukrainian"); + ce->addValue("Vietnamese"); //---- cb = cfg->addBool( "BRIEF_MEMBER_DESC", @@ -315,7 +319,7 @@ void addConfigOptions(Config *cfg) "the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, \n" "Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat \n" ".inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), \n" - "use: inc=Fortran f=C" + "use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen." ); //---- cb = cfg->addBool( @@ -1448,6 +1452,13 @@ void addConfigOptions(Config *cfg) FALSE ); cb->addDependency("GENERATE_LATEX"); + //---- + cb = cfg->addBool( + "LATEX_SOURCE_CODE", + "If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER.", + FALSE + ); + cb->addDependency("GENERATE_LATEX"); //--------------------------------------------------------------------------- cfg->addInfo("RTF","configuration options related to the RTF output"); //--------------------------------------------------------------------------- diff --git a/src/definition.cpp b/src/definition.cpp index 865da3d..cf08933 100644 --- a/src/definition.cpp +++ b/src/definition.cpp @@ -361,11 +361,14 @@ void Definition::writeDocAnchorsToTagFile() } } -bool Definition::_docsAlreadyAdded(const QString &doc) +bool Definition::_docsAlreadyAdded(const QCString &doc) { uchar md5_sig[16]; QCString sigStr(33); - MD5Buffer((const unsigned char *)doc.data(),doc.length(),md5_sig); + // to avoid mismatches due to differences in indenting, we first remove + // double whitespaces... + QCString docStr = doc.simplifyWhiteSpace(); + MD5Buffer((const unsigned char *)docStr.data(),docStr.length(),md5_sig); MD5SigToString(md5_sig,sigStr.data(),33); if (m_impl->docSignatures.find(sigStr)==-1) // new docs, add signature to prevent re-adding it { @@ -644,10 +647,12 @@ static bool readCodeFragment(const char *fileName, /*! Write a reference to the source code defining this definition */ void Definition::writeSourceDef(OutputList &ol,const char *) { + static bool sourceBrowser = Config_getBool("SOURCE_BROWSER"); + static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE"); makeResident(); ol.pushGeneratorState(); //printf("Definition::writeSourceRef %d %p\n",bodyLine,bodyDef); - if (Config_getBool("SOURCE_BROWSER") && + if (sourceBrowser && m_impl->body && m_impl->body->startLine!=-1 && m_impl->body->fileDef) { QCString refText = theTranslator->trDefinedAtLineInSourceFile(); @@ -663,29 +668,49 @@ void Definition::writeSourceDef(OutputList &ol,const char *) { // write text left from linePos marker ol.parseText(refText.left(lineMarkerPos)); - ol.disableAllBut(OutputGenerator::Html); - // write line link (HTML only) + ol.pushGeneratorState(); + ol.disable(OutputGenerator::RTF); + ol.disable(OutputGenerator::Man); + if (!latexSourceCode) + { + ol.disable(OutputGenerator::Latex); + } + // write line link (HTML, LaTeX optionally) ol.writeObjectLink(0,m_impl->body->fileDef->getSourceFileBase(), anchorStr,lineStr); ol.enableAll(); ol.disable(OutputGenerator::Html); - // write normal text (Latex/Man only) + if (latexSourceCode) + { + ol.disable(OutputGenerator::Latex); + } + // write normal text (Man/RTF, Latex optionally) ol.docify(lineStr); - ol.enableAll(); + ol.popGeneratorState(); // write text between markers ol.parseText(refText.mid(lineMarkerPos+2, fileMarkerPos-lineMarkerPos-2)); - ol.disableAllBut(OutputGenerator::Html); - // write file link (HTML only) + ol.pushGeneratorState(); + ol.disable(OutputGenerator::RTF); + ol.disable(OutputGenerator::Man); + if (!latexSourceCode) + { + ol.disable(OutputGenerator::Latex); + } + // write line link (HTML, LaTeX optionally) ol.writeObjectLink(0,m_impl->body->fileDef->getSourceFileBase(), 0,m_impl->body->fileDef->name()); ol.enableAll(); ol.disable(OutputGenerator::Html); - // write normal text (Latex/Man only) + if (latexSourceCode) + { + ol.disable(OutputGenerator::Latex); + } + // write normal text (Man/RTF, Latex optionally) ol.docify(m_impl->body->fileDef->name()); - ol.enableAll(); + ol.popGeneratorState(); // write text right from file marker ol.parseText(refText.right( @@ -695,29 +720,50 @@ void Definition::writeSourceDef(OutputList &ol,const char *) { // write text left from file marker ol.parseText(refText.left(fileMarkerPos)); - ol.disableAllBut(OutputGenerator::Html); + ol.pushGeneratorState(); + ol.disable(OutputGenerator::RTF); + ol.disable(OutputGenerator::Man); + if (!latexSourceCode) + { + ol.disable(OutputGenerator::Latex); + } // write file link (HTML only) ol.writeObjectLink(0,m_impl->body->fileDef->getSourceFileBase(), 0,m_impl->body->fileDef->name()); ol.enableAll(); ol.disable(OutputGenerator::Html); + if (latexSourceCode) + { + ol.disable(OutputGenerator::Latex); + } // write normal text (Latex/Man only) ol.docify(m_impl->body->fileDef->name()); - ol.enableAll(); + ol.popGeneratorState(); // write text between markers ol.parseText(refText.mid(fileMarkerPos+2, lineMarkerPos-fileMarkerPos-2)); + ol.pushGeneratorState(); + ol.disable(OutputGenerator::RTF); + ol.disable(OutputGenerator::Man); + if (!latexSourceCode) + { + ol.disable(OutputGenerator::Latex); + } ol.disableAllBut(OutputGenerator::Html); // write line link (HTML only) ol.writeObjectLink(0,m_impl->body->fileDef->getSourceFileBase(), anchorStr,lineStr); ol.enableAll(); ol.disable(OutputGenerator::Html); + if (latexSourceCode) + { + ol.disable(OutputGenerator::Latex); + } // write normal text (Latex/Man only) ol.docify(lineStr); - ol.enableAll(); + ol.popGeneratorState(); // write text right from linePos marker ol.parseText(refText.right( diff --git a/src/definition.h b/src/definition.h index 78c9893..b12f958 100644 --- a/src/definition.h +++ b/src/definition.h @@ -335,7 +335,7 @@ class Definition : public DefinitionIntf, public LockableObj void _setBriefDescription(const char *b,const char *briefFile,int briefLine); void _setDocumentation(const char *d,const char *docFile,int docLine,bool stripWhiteSpace,bool atTop); void _setInbodyDocumentation(const char *d,const char *docFile,int docLine); - bool _docsAlreadyAdded(const QString &doc); + bool _docsAlreadyAdded(const QCString &doc); DefinitionImpl *m_impl; // internal structure holding all private data QCString m_name; bool m_isSymbol; diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 125cd99..51bd291 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -10418,8 +10418,15 @@ void generateOutput() delete tag; } - if (Config_getBool("GENERATE_HTML") && Config_getBool("DOT_CLEANUP")) removeDoxFont(Config_getString("HTML_OUTPUT")); - if (Config_getBool("GENERATE_RTF") && Config_getBool("DOT_CLEANUP")) removeDoxFont(Config_getString("RTF_OUTPUT")); + if (Config_getBool("DOT_CLEANUP")) + { + if (Config_getBool("GENERATE_HTML")) + removeDoxFont(Config_getString("HTML_OUTPUT")); + if (Config_getBool("GENERATE_RTF")) + removeDoxFont(Config_getString("RTF_OUTPUT")); + if (Config_getBool("GENERATE_LATEX")) + removeDoxFont(Config_getString("LATEX_OUTPUT")); + } if (Config_getBool("GENERATE_XML")) { diff --git a/src/filedef.cpp b/src/filedef.cpp index 515dce8..d25d51d 100644 --- a/src/filedef.cpp +++ b/src/filedef.cpp @@ -168,7 +168,7 @@ void FileDef::writeDetailedDescription(OutputList &ol,const QCString &title) { ol.writeRuler(); ol.pushGeneratorState(); - ol.disableAllBut(OutputGenerator::Html); + ol.disable(OutputGenerator::Html); ol.writeAnchor(0,"_details"); ol.popGeneratorState(); ol.startGroupHeader(); @@ -707,13 +707,16 @@ void FileDef::writeQuickMemberLinks(OutputList &ol,MemberDef *currentMd) const void FileDef::writeSource(OutputList &ol) { static bool filterSourceFiles = Config_getBool("FILTER_SOURCE_FILES"); + static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE"); QCString title = docname; if (!fileVersion.isEmpty()) { title+=(" ("+fileVersion+")"); } QCString pageTitle = theTranslator->trSourceFile(title); - ol.disableAllBut(OutputGenerator::Html); + ol.disable(OutputGenerator::Man); + ol.disable(OutputGenerator::RTF); + if (!latexSourceCode) ol.disable(OutputGenerator::Latex); if (Config_getBool("SHOW_DIRECTORIES") && getDirDef()) { @@ -728,16 +731,18 @@ void FileDef::writeSource(OutputList &ol) else { startFile(ol,getSourceFileBase(),0,pageTitle,HLI_FileVisible,TRUE); - startTitle(ol,0); + startTitle(ol,getSourceFileBase()); ol.parseText(title); - endTitle(ol,0,0); + endTitle(ol,getSourceFileBase(),0); } if (isLinkable()) { + if (latexSourceCode) ol.disable(OutputGenerator::Latex); ol.startTextLink(getOutputFileBase(),0); ol.parseText(theTranslator->trGotoDocumentation()); ol.endTextLink(); + if (latexSourceCode) ol.enable(OutputGenerator::Latex); } ParserInterface *pIntf = Doxygen::parserManager->getParser(getDefFileExtension()); @@ -1444,7 +1449,7 @@ QCString FileDef::getSourceFileBase() const } else { - return convertNameToFile(diskname+"-source"); + return convertNameToFile(diskname)+"_source"; } } @@ -1457,7 +1462,7 @@ QCString FileDef::includeName() const } else { - return convertNameToFile(diskname+"-source"); + return convertNameToFile(diskname)+"_source"; } } diff --git a/src/fortranscanner.l b/src/fortranscanner.l index 88ae240..766a261 100644 --- a/src/fortranscanner.l +++ b/src/fortranscanner.l @@ -279,10 +279,10 @@ PREFIX (RECURSIVE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,2}(RECURSIVE|PURE|ELEMENTA if(indexEnd<0){ // ----- no ampersand as line continuation if(YY_START == Prepass) { // last line in "continuation" - inputStringPrepass+=(const char*)yytext; - if(indexStart>=0) inputStringPrepass[yyleng-indexStart]=' '; - // @todo: remove all symbols instead of replacing W blank? + // Only take input after initial ampersand + inputStringPrepass+=(const char*)(yytext+(indexStart+1)); + pushBuffer(inputStringPrepass); yy_pop_state(); } else { // simple line @@ -296,12 +296,14 @@ PREFIX (RECURSIVE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,2}(RECURSIVE|PURE|ELEMENTA yy_push_state(Prepass); } - inputStringPrepass+=(const char*)yytext; - lineCountPrepass ++; - - // replace & with space and remove following comment if present int length = inputStringPrepass.length(); - truncatePrepass(length-yyleng+indexEnd); + + // Only take input after initial ampersand + inputStringPrepass+=(const char*)(yytext+(indexStart+1)); + lineCountPrepass ++; + + // cut off & and remove following comment if present + truncatePrepass(length+indexEnd-(indexStart+1)); } } @@ -850,26 +852,39 @@ static int getAmpOrExclAtTheEnd(const char *buf, int length) for(int i=0; i<length && parseState!=Comment; i++) { + // When in string, skip backslashes + // Legacy code, not sure whether this is correct? if(parseState==String) { if(buf[i]=='\\') i++; - if(buf[i]==quoteSymbol) - { - parseState = Start; - quoteSymbol = 0; - } - } else // not in string + } + + switch(buf[i]) { - switch(buf[i]) - { case '\'': case '"': - parseState = String; - quoteSymbol = buf[i]; + // Close string, if quote symbol matches. + // Quote symbol is set iff parseState==String + if(buf[i]==quoteSymbol) + { + parseState = Start; + quoteSymbol = 0; + } + // Start new string, if not already in string or comment + else if(parseState==Start) + { + parseState = String; + quoteSymbol = buf[i]; + } + ampIndex = -1; // invalidate prev ampersand break; case '!': - parseState = Comment; - commentIndex = i; + // When in string or comment, ignore exclamation mark + if(parseState==Start) + { + parseState = Comment; + commentIndex = i; + } break; case ' ': // ignore whitespace case '\t': @@ -880,7 +895,6 @@ static int getAmpOrExclAtTheEnd(const char *buf, int length) break; default: ampIndex = -1; // invalidate prev ampersand - } } } @@ -903,8 +917,7 @@ void truncatePrepass(int index) comments.append(c); } } - inputStringPrepass[index] = ' '; - inputStringPrepass.truncate(index+1); + inputStringPrepass.truncate(index); } // simplified way to know if this is fixed form diff --git a/src/lang_cfg.h b/src/lang_cfg.h index e955bb0..34d2ac9 100644 --- a/src/lang_cfg.h +++ b/src/lang_cfg.h @@ -1,5 +1,5 @@ #define LANG_NL -#define LANG_SE +#define LANG_SV #define LANG_CZ #define LANG_FR #define LANG_ID @@ -34,3 +34,4 @@ #define LANG_FA #define LANG_VI #define LANG_TR +#define LANG_EO diff --git a/src/language.cpp b/src/language.cpp index f5485a4..1e02097 100644 --- a/src/language.cpp +++ b/src/language.cpp @@ -26,8 +26,8 @@ #ifdef LANG_NL #include "translator_nl.h" #endif -#ifdef LANG_SE -#include "translator_se.h" +#ifdef LANG_SV +#include "translator_sv.h" #endif #ifdef LANG_CZ #include "translator_cz.h" @@ -53,6 +53,9 @@ #ifdef LANG_ES #include "translator_es.h" #endif +#ifdef LANG_EO +#include "translator_eo.h" +#endif #ifdef LANG_FI #include "translator_fi.h" #endif @@ -169,7 +172,7 @@ bool setTranslator(const char *langName) theTranslator=new TranslatorDutch; } #endif -#ifdef LANG_SE +#ifdef LANG_SV else if (L_EQUAL("swedish")) { theTranslator=new TranslatorDecoder(new TranslatorSwedish); @@ -391,6 +394,12 @@ bool setTranslator(const char *langName) theTranslator=new TranslatorTurkish; } #endif +#ifdef LANG_EO + else if (L_EQUAL("esperanto")) + { + theTranslator=new TranslatorEsperanto; + } +#endif #endif // ENGLISH_ONLY else // use the default language (i.e. english) { diff --git a/src/latexdocvisitor.cpp b/src/latexdocvisitor.cpp index a1baa95..15bc429 100644 --- a/src/latexdocvisitor.cpp +++ b/src/latexdocvisitor.cpp @@ -270,20 +270,35 @@ void LatexDocVisitor::visit(DocStyleChange *s) void LatexDocVisitor::visit(DocVerbatim *s) { + static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE"); if (m_hide) return; switch(s->type()) { case DocVerbatim::Code: - m_t << "\n\n\\begin{Code}\\begin{verbatim}"; + if (latexSourceCode) + { + m_t << "\n\n\\begin{footnotesize}\\begin{alltt}" << endl; + } + else + { + m_t << "\n\n\\begin{Code}\\begin{verbatim}"; + } Doxygen::parserManager->getParser(m_langExt) ->parseCode(m_ci,s->context(),s->text().latin1(), s->isExample(),s->exampleFile()); - m_t << "\\end{verbatim}\n\\end{Code}\n" << endl; + if (latexSourceCode) + { + m_t << "\\end{alltt}\\end{footnotesize}" << endl; + } + else + { + m_t << "\\end{verbatim}\n\\end{Code}\n" << endl; + } break; case DocVerbatim::Verbatim: - m_t << "\n\n\\footnotesize\\begin{verbatim}"; + m_t << "\n\n\\begin{footnotesize}\\begin{verbatim}"; m_t << s->text(); - m_t << "\\end{verbatim}\n\\normalsize" << endl; + m_t << "\\end{verbatim}\n\\end{footnotesize}" << endl; break; case DocVerbatim::HtmlOnly: case DocVerbatim::XmlOnly: diff --git a/src/latexgen.cpp b/src/latexgen.cpp index da5b8bf..10712fc 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -64,6 +64,7 @@ LatexGenerator::LatexGenerator() : OutputGenerator() disableLinks=FALSE; m_indent=0; templateMemberItem = FALSE; + m_prettyCode=Config_getBool("LATEX_SOURCE_CODE"); } LatexGenerator::~LatexGenerator() @@ -187,6 +188,8 @@ static void writeDefaultHeaderPart1(QTextStream &t) "\\usepackage{graphicx}\n" "\\usepackage{multicol}\n" "\\usepackage{float}\n" + "\\usepackage{listings}\n" + "\\usepackage{color}\n" "\\usepackage{textcomp}\n" "\\usepackage{alltt}\n" //"\\usepackage{ae,aecompl,aeguill}\n" @@ -228,6 +231,16 @@ static void writeDefaultHeaderPart1(QTextStream &t) t << sLanguageSupportCommand << endl; } t << "\\usepackage{doxygen}\n"; + + // define option for listings + t << "\\lstset{language=C++," + "inputencoding=utf8," + "basicstyle=\\footnotesize," + "breaklines=true," + "breakatwhitespace=true," + "tabsize=" << Config_getInt("TAB_SIZE") <<"," + "numbers=left }" << endl; + QStrList &extraPackages = Config_getList("EXTRA_PACKAGES"); const char *s=extraPackages.first(); while (s) @@ -239,11 +252,20 @@ static void writeDefaultHeaderPart1(QTextStream &t) "\\setcounter{tocdepth}{3}\n" "\\renewcommand{\\footrulewidth}{0.4pt}\n" "\\begin{document}\n"; + static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); + static bool usePDFLatex = Config_getBool("USE_PDFLATEX"); + if (pdfHyperlinks && usePDFLatex) + { + // to avoid duplicate page anchors due to reuse of same numbers for + // the index (be it as roman numbers) + t << "\\hypersetup{pageanchor=false}" << endl; + } if (theTranslator->idLanguage()=="greek") t << "\\selectlanguage{greek}\n"; t << "\\begin{titlepage}\n" "\\vspace*{7cm}\n" "\\begin{center}\n" "{\\Large "; + } static void writeDefaultHeaderPart2(QTextStream &t) @@ -267,6 +289,12 @@ static void writeDefaultHeaderPart3(QTextStream &t) t << "\\tableofcontents\n"; if (!Config_getBool("COMPACT_LATEX")) t << "\\clearemptydoublepage\n"; t << "\\pagenumbering{arabic}\n"; + static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); + static bool usePDFLatex = Config_getBool("USE_PDFLATEX"); + if (pdfHyperlinks && usePDFLatex) + { + t << "\\hypersetup{pageanchor=true}" << endl; + } } static void writeDefaultStyleSheetPart1(QTextStream &t) @@ -373,6 +401,16 @@ static void writeDefaultStyleSheetPart3(QTextStream &t) t << "\\makeatother\n"; t << "\\stepcounter{secnumdepth}\n"; t << "\\stepcounter{tocdepth}\n"; + t << "\\definecolor{comment}{rgb}{0.5,0.0,0.0}\n"; + t << "\\definecolor{keyword}{rgb}{0.0,0.5,0.0}\n"; + t << "\\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}\n"; + t << "\\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}\n"; + t << "\\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}\n"; + t << "\\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}\n"; + t << "\\definecolor{charliteral}{rgb}{0.0,0.5,0.5}\n"; + t << "\\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}\n"; + t << "\\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}\n"; + t << "\\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}\n"; } void LatexGenerator::writeHeaderFile(QFile &f) @@ -412,6 +450,7 @@ void LatexGenerator::startFile(const char *name,const char *,const char *) #endif QCString fileName=name; relPath = relativePathToRoot(fileName); + sourceFileName = stripPath(fileName); if (fileName.right(4)!=".tex" && fileName.right(4)!=".sty") fileName+=".tex"; startPlainFile(fileName); } @@ -419,6 +458,7 @@ void LatexGenerator::startFile(const char *name,const char *,const char *) void LatexGenerator::endFile() { endPlainFile(); + sourceFileName.resize(0); } //void LatexGenerator::writeIndex() @@ -602,8 +642,9 @@ void LatexGenerator::startIndexSection(IndexSections is) void LatexGenerator::endIndexSection(IndexSections is) { - bool &compactLatex = Config_getBool("COMPACT_LATEX"); - QCString &latexHeader = Config_getString("LATEX_HEADER"); + static bool compactLatex = Config_getBool("COMPACT_LATEX"); + static bool sourceBrowser = Config_getBool("SOURCE_BROWSER"); + static QCString latexHeader = Config_getString("LATEX_HEADER"); switch (is) { case isTitlePageStart: @@ -750,12 +791,21 @@ void LatexGenerator::endIndexSection(IndexSections is) if (isFirst) { t << "}\n\\input{" << fd->getOutputFileBase() << "}\n"; + if (sourceBrowser && m_prettyCode) + { + t << "\\input{" << fd->getSourceFileBase() << "}\n"; + } isFirst=FALSE; } else { if (compactLatex) t << "\\input" ; else t << "\\include"; t << "{" << fd->getOutputFileBase() << "}\n"; + if (sourceBrowser && m_prettyCode) + { + if (compactLatex) t << "\\input" ; else t << "\\include"; + t << "{" << fd->getSourceFileBase() << "}\n"; + } } } fd=fn->next(); @@ -1022,17 +1072,38 @@ void LatexGenerator::endPageRef(const char *clname, const char *anchor) t << "}"; } -void LatexGenerator::writeCodeLink(const char *,const char *, - const char *,const char *name, +void LatexGenerator::writeCodeLink(const char *ref,const char *f, + const char *anchor,const char *name, const char *) { - t << name; - col+=strlen(name); + static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); + static bool usePDFLatex = Config_getBool("USE_PDFLATEX"); + int l = strlen(name); + if (col+l>80) + { + t << "\n "; + col=0; + } + if (m_prettyCode && !disableLinks && !ref && usePDFLatex && pdfHyperlinks) + { + t << "\\hyperlink{"; + if (f) t << stripPath(f); + if (f && anchor) t << "_"; + if (anchor) t << anchor; + t << "}{" << name << "}"; + } + else + { + t << name; + } + col+=l; } void LatexGenerator::startTitleHead(const char *fileName) { - if (Config_getBool("PDF_HYPERLINKS") && fileName) + static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); + static bool usePDFLatex = Config_getBool("USE_PDFLATEX"); + if (usePDFLatex && pdfHyperlinks && fileName) { t << "\\hypertarget{" << stripPath(fileName) << "}{" << endl; } @@ -1048,6 +1119,8 @@ void LatexGenerator::startTitleHead(const char *fileName) void LatexGenerator::endTitleHead(const char *fileName,const char *name) { + static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); + static bool usePDFLatex = Config_getBool("USE_PDFLATEX"); t << "}" << endl; if (name) { @@ -1057,7 +1130,7 @@ void LatexGenerator::endTitleHead(const char *fileName,const char *name) escapeMakeIndexChars(name); t << "}}" << endl; } - if (Config_getBool("PDF_HYPERLINKS") && fileName) + if (usePDFLatex && pdfHyperlinks && fileName) { t << "}" << endl; } @@ -1171,7 +1244,9 @@ void LatexGenerator::startDoxyAnchor(const char *fName,const char *, const char *anchor, const char *, const char *) { - if (Config_getBool("PDF_HYPERLINKS")) + static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); + static bool usePDFLatex = Config_getBool("USE_PDFLATEX"); + if (usePDFLatex && pdfHyperlinks) { t << "\\hypertarget{"; if (fName) t << stripPath(fName); @@ -1182,7 +1257,9 @@ void LatexGenerator::startDoxyAnchor(const char *fName,const char *, void LatexGenerator::endDoxyAnchor(const char *fName,const char *anchor) { - if (Config_getBool("PDF_HYPERLINKS")) + static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); + static bool usePDFLatex = Config_getBool("USE_PDFLATEX"); + if (usePDFLatex && pdfHyperlinks) { t << "}" << endl; } @@ -1196,7 +1273,9 @@ void LatexGenerator::writeAnchor(const char *fName,const char *name) { //printf("LatexGenerator::writeAnchor(%s,%s)\n",fName,name); t << "\\label{" << name << "}" << endl; - if (Config_getBool("PDF_HYPERLINKS")) + static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); + static bool usePDFLatex = Config_getBool("USE_PDFLATEX"); + if (usePDFLatex && pdfHyperlinks) { if (fName) { @@ -1239,7 +1318,9 @@ void LatexGenerator::addIndexItem(const char *s1,const char *s2) void LatexGenerator::startSection(const char *lab,const char *,SectionInfo::SectionType type) { - if (Config_getBool("PDF_HYPERLINKS")) + static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); + static bool usePDFLatex = Config_getBool("USE_PDFLATEX"); + if (usePDFLatex && pdfHyperlinks) { t << "\\hypertarget{" << stripPath(lab) << "}{}"; } @@ -1293,8 +1374,10 @@ void LatexGenerator::codify(const char *str) { const char *p=str; char c; + char cs[2]; + cs[1]='\0'; int spacesToNextTabStop; - int &tabSize = Config_getInt("TAB_SIZE"); + static int tabSize = Config_getInt("TAB_SIZE"); while (*p) { static bool MultiByte = FALSE; @@ -1325,7 +1408,25 @@ void LatexGenerator::codify(const char *str) col+=spacesToNextTabStop; break; case '\n': t << '\n'; col=0; break; - default: t << c; col++; break; + default: if (m_prettyCode) + { + cs[0]=c; + filterLatexString(t,cs,insideTabbing,TRUE); + } + else + { + t << c; + } + if (col>=80) + { + t << "\n "; + col=0; + } + else + { + col++; + } + break; } } } @@ -1697,4 +1798,93 @@ void LatexGenerator::escapeMakeIndexChars(const char *s) } } +void LatexGenerator::startCodeFragment() +{ + if (m_prettyCode) + { + t << endl << endl; + t << "\\begin{footnotesize}\\begin{alltt}\n"; + } + else + { + t << endl << endl << "\\begin{Code}\\begin{verbatim}"; + } +} + +void LatexGenerator::endCodeFragment() +{ + if (m_prettyCode) + { + t << "\\end{alltt}\\end{footnotesize}" << endl; + } + else + { + t << "\\end{verbatim}\n\\end{Code}" << endl; + } +} + +void LatexGenerator::writeLineNumber(const char *ref,const char *fileName,const char *anchor,int l) +{ + if (m_prettyCode) + { + QCString lineNumber; + lineNumber.sprintf("%05d",l); + + if (fileName && !sourceFileName.isEmpty()) + { + QCString lineAnchor; + lineAnchor.sprintf("_l%05d",l); + lineAnchor.prepend(sourceFileName); + startCodeAnchor(lineAnchor); + writeCodeLink(ref,fileName,anchor,lineNumber,0); + endCodeAnchor(); + } + else + { + codify(lineNumber); + } + t << " "; + } + else + { + t << l << " "; + } +} + +void LatexGenerator::startCodeLine() +{ + col=0; +} + +void LatexGenerator::endCodeLine() +{ + codify("\n"); +} + +void LatexGenerator::startFontClass(const char *name) +{ + if (!m_prettyCode) return; + t << "\\textcolor{" << name << "}{"; +} + +void LatexGenerator::endFontClass() +{ + if (!m_prettyCode) return; + t << "}"; +} + +void LatexGenerator::startCodeAnchor(const char *name) +{ + static bool usePDFLatex = Config_getBool("USE_PDFLATEX"); + static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); + if (!m_prettyCode) return; + if (usePDFLatex && pdfHyperlinks) + { + t << "\\hypertarget{" << stripPath(name) << "}{}"; + } +} + +void LatexGenerator::endCodeAnchor() +{ +} diff --git a/src/latexgen.h b/src/latexgen.h index a30f5bf..00e52f8 100644 --- a/src/latexgen.h +++ b/src/latexgen.h @@ -118,13 +118,13 @@ class LatexGenerator : public OutputGenerator void insertMemberAlign(bool) {} - void writeRuler() { t << endl << endl; /*t << "\\vspace{0.4cm}\\hrule\\vspace{0.2cm}" << endl; */ } + void writeRuler() { t << endl << endl; } void writeAnchor(const char *fileName,const char *name); - void startCodeFragment() { t << endl << endl << "\\begin{Code}\\begin{verbatim}"; } - void endCodeFragment() { t << "\\end{verbatim}\n\\end{Code}" << endl; } - void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; } - void startCodeLine() { col=0; } - void endCodeLine() { codify("\n"); } + void startCodeFragment(); + void endCodeFragment(); + void writeLineNumber(const char *,const char *,const char *,int l); + void startCodeLine(); + void endCodeLine(); void startEmphasis() { t << "{\\em "; } void endEmphasis() { t << "}"; } void startBold() { t << "\\textbf{"; } @@ -138,8 +138,8 @@ class LatexGenerator : public OutputGenerator void endMemberDoc(bool); void startDoxyAnchor(const char *,const char *,const char *,const char *,const char *); void endDoxyAnchor(const char *,const char *); - void startCodeAnchor(const char *) {} - void endCodeAnchor() {} + void startCodeAnchor(const char *); + void endCodeAnchor(); void writeChar(char c); void writeLatexSpacing() { t << "\\hspace{0.3cm}"; } void writeStartAnnoItem(const char *type,const char *file, @@ -226,8 +226,8 @@ class LatexGenerator : public OutputGenerator void endConstraintDocs(); void endConstraintList(); - void startFontClass(const char *) {} - void endFontClass() {} + void startFontClass(const char *); // {} + void endFontClass(); // {} void writeCodeAnchor(const char *) {} void linkableSymbol(int,const char *,Definition *,Definition *) {} @@ -242,8 +242,10 @@ class LatexGenerator : public OutputGenerator bool firstDescItem; bool disableLinks; QCString relPath; + QCString sourceFileName; int m_indent; bool templateMemberItem; + bool m_prettyCode; }; #endif diff --git a/src/libdoxycfg.pro.in b/src/libdoxycfg.pro.in index cfa087f..76da510 100644 --- a/src/libdoxycfg.pro.in +++ b/src/libdoxycfg.pro.in @@ -17,7 +17,7 @@ TEMPLATE = libdoxycfg.t CONFIG = console warn_on staticlib $extraopts HEADERS = config.h configoptions.h portable.h -SOURCES = config.cpp configoptions.cpp portable.cpp +SOURCES = config.cpp configoptions.cpp portable.cpp portable_c.c win32:TMAKE_CXXFLAGS += -DQT_NODLL win32-g++:TMAKE_CXXFLAGS += -fno-exceptions -fno-rtti INCLUDEPATH += ../qtools diff --git a/src/portable.cpp b/src/portable.cpp index 03d5366..0107f2c 100644 --- a/src/portable.cpp +++ b/src/portable.cpp @@ -14,7 +14,6 @@ extern char **environ; #include <qglobal.h> #include <qdatetime.h> -#include <iconv.h> #if defined(_MSC_VER) || defined(__BORLANDC__) #define popen _popen @@ -369,31 +368,3 @@ int portable_pclose(FILE *stream) return pclose(stream); } -void * portable_iconv_open(const char* tocode, const char* fromcode) -{ - return iconv_open(tocode,fromcode); -} - -size_t portable_iconv (void *cd, const char** inbuf, size_t *inbytesleft, - char** outbuf, size_t *outbytesleft) -{ -// libiconv is a mess. For some platforms/version the prototype of inbuf is -// "const char **", for others it is "char **". C++ requires the proper cast to -// avoid a compile error, that is were the CASTNEEDED is for. -#if ((defined(_LIBICONV_VERSION) && (_LIBICONV_VERSION>=0x0109) && \ - !((defined(_OS_MAC_) || defined(Q_OS_MACX) )&& (_LIBICONV_VERSION==0x010B))) \ - || defined(_OS_SOLARIS_) \ - || defined(_OS_NETBSD_) \ - ) -#define CASTNEEDED(x) (x) -#else -#define CASTNEEDED(x) (char **)(x) -#endif - return iconv((iconv_t)cd,CASTNEEDED(inbuf),inbytesleft,outbuf,outbytesleft); -} - -int portable_iconv_close (void *cd) -{ - return iconv_close((iconv_t)cd); -} - diff --git a/src/portable.h b/src/portable.h index cf21902..3745d66 100644 --- a/src/portable.h +++ b/src/portable.h @@ -28,10 +28,13 @@ const char * portable_commandExtension(); bool portable_fileSystemIsCaseSensitive(); FILE * portable_popen(const char *name,const char *type); int portable_pclose(FILE *stream); -void * portable_iconv_open(const char* tocode, const char* fromcode); -size_t portable_iconv (void *cd, const char** inbuf, size_t *inbytesleft, - char* * outbuf, size_t *outbytesleft); -int portable_iconv_close (void *cd); + +extern "C" { + void * portable_iconv_open(const char* tocode, const char* fromcode); + size_t portable_iconv (void *cd, const char** inbuf, size_t *inbytesleft, + char* * outbuf, size_t *outbytesleft); + int portable_iconv_close (void *cd); +} #endif diff --git a/src/portable_c.c b/src/portable_c.c new file mode 100644 index 0000000..ab33639 --- /dev/null +++ b/src/portable_c.c @@ -0,0 +1,24 @@ +#include <iconv.h> + +// These functions are implemented in a C file, because there are different +// versions of the iconv() prototype, some with a const pointer and some +// without. In C this is just a warning, but in C++ breaks the compilation. +// Looking at the LIBICONV_VERSION is not enough, since for MACOSX the +// const and non-const version exist with the same version of the file. + +void * portable_iconv_open(const char* tocode, const char* fromcode) +{ + return iconv_open(tocode,fromcode); +} + +size_t portable_iconv (void *cd, const char** inbuf, size_t *inbytesleft, + char** outbuf, size_t *outbytesleft) +{ + return iconv((iconv_t)cd,inbuf,inbytesleft,outbuf,outbytesleft); +} + +int portable_iconv_close (void *cd) +{ + return iconv_close((iconv_t)cd); +} + diff --git a/src/scanner.l b/src/scanner.l index 5ec6b54..683b40e 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -1399,6 +1399,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) current->fileName = yyFileName; current->startLine = yyLineNr; current->bodyLine = yyLineNr; + current->objc = insideObjC = yytext[0]=='@'; lineCount() ; if (yytext[yyleng-1]=='{') unput('{'); if (insidePHP && current->spec&Entry::Abstract) @@ -1476,6 +1477,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) isTypedef=((QCString)yytext).find("typedef")!=-1; current->section = Entry::CLASS_SEC ; current->spec = Entry::Struct; + current->objc = insideObjC = FALSE; addType( current ) ; current->type += " struct" ; current->fileName = yyFileName; @@ -1532,6 +1534,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) isTypedef=((QCString)yytext).find("typedef")!=-1; current->section = Entry::CLASS_SEC; current->spec = Entry::Union; + current->objc = insideObjC = FALSE; addType( current ) ; current->type += " union" ; current->fileName = yyFileName; @@ -1986,12 +1989,12 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) insideCppQuote=FALSE; BEGIN(FindMembers); } -<FindMembers>{B}*"#" { if (insidePHP) +<FindMembers,FindFields>{B}*"#" { if (insidePHP) REJECT; lastCPPContext = YY_START; BEGIN( SkipCPP ) ; } -<FindMembers>{B}*"#"{B}*"define" { if (insidePHP) +<FindMembers,FindFields>{B}*"#"{B}*"define" { if (insidePHP) REJECT; current->bodyLine = yyLineNr; BEGIN( Define ); @@ -4376,6 +4379,10 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) } BEGIN( ClassVar ); } +<CompoundName>{SCOPENAME}/{BN}*"," { // multiple forward declarations on one line + // e.g. @protocol A,B; + current->reset(); + } <CompoundName>{SCOPENAME} { current->name = yytext ; lineCount(); @@ -5246,6 +5253,9 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) /* ------------ Generic rules -------------- */ +<SkipCxxComment>.*"\\\n" { // line continuation + yyLineNr++; + } <SkipCxxComment>.*/\n { BEGIN( lastCContext ) ; } diff --git a/src/translator_eo.h b/src/translator_eo.h new file mode 100644 index 0000000..9cdd142 --- /dev/null +++ b/src/translator_eo.h @@ -0,0 +1,1780 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2008 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ + +#ifndef TRANSLATOR_EO_H +#define TRANSLATOR_EO_H + +/*! + When defining a translator class for the new language, follow + the description in the documentation. One of the steps says + that you should copy the translator_en.h (this) file to your + translator_xx.h new file. Your new language should use the + Translator class as the base class. This means that you need to + implement exactly the same (pure virtual) methods as the + TranslatorEnglish does. Because of this, it is a good idea to + start with the copy of TranslatorEnglish and replace the strings + one by one. + + It is not necessary to include "translator.h" or + "translator_adapter.h" here. The files are included in the + language.cpp correctly. Not including any of the mentioned + files frees the maintainer from thinking about whether the + first, the second, or both files should be included or not, and + why. This holds namely for localized translators because their + base class is changed occasionaly to adapter classes when the + Translator class changes the interface, or back to the + Translator class (by the local maintainer) when the localized + translator is made up-to-date again. +*/ +class TranslatorEsperanto : public Translator +{ + public: + + // --- Language control methods ------------------- + + /*! Used for identification of the language. The identification + * should not be translated. It should be replaced by the name + * of the language in English using lower-case characters only + * (e.g. "czech", "japanese", "russian", etc.). It should be equal to + * the identification used in language.cpp. + */ + virtual QCString idLanguage() + { return "esperanto"; } + + /*! Used to get the LaTeX command(s) for the language support. + * This method should return string with commands that switch + * LaTeX to the desired language. For example + * <pre>"\\usepackage[german]{babel}\n" + * </pre> + * or + * <pre>"\\usepackage{polski}\n" + * "\\usepackage[latin2]{inputenc}\n" + * "\\usepackage[T1]{fontenc}\n" + * </pre> + * + * The English LaTeX does not use such commands. Because of this + * the empty string is returned in this implementation. + */ + virtual QCString latexLanguageSupportCommand() + { + return "\\usepackage[esperanto]{babel}\n"; + } + + /*! return the language charset. This will be used for the HTML output */ + virtual QCString idLanguageCharset() + { + return "utf-8"; + } + + // --- Language translation methods ------------------- + + /*! used in the compound documentation before a list of related functions. */ + virtual QCString trRelatedFunctions() + { return "Rilataj Funkcioj"; } + + /*! subscript for the related functions. */ + virtual QCString trRelatedSubscript() + { return "(Atentu ke tiuj ĉi ne estas membraj funkcioj.)"; } + + /*! header that is put before the detailed description of files, classes and namespaces. */ + virtual QCString trDetailedDescription() + { return "Detala Priskribo"; } + + /*! header that is put before the list of typedefs. */ + virtual QCString trMemberTypedefDocumentation() + { return "Dokumentado de la Membraj Tipodifinoj"; } + + /*! header that is put before the list of enumerations. */ + virtual QCString trMemberEnumerationDocumentation() + { return "Dokumentado de la Membraj Enumeracioj"; } + + /*! header that is put before the list of member functions. */ + virtual QCString trMemberFunctionDocumentation() + { return "Dokumentado de la Membraj Funkcioj"; } + + /*! header that is put before the list of member attributes. */ + virtual QCString trMemberDataDocumentation() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Kampa Dokumentado"; + } + else + { + return "Dokumentado de la Membraj Datumoj"; + } + } + + /*! this is the text of a link put after brief descriptions. */ + virtual QCString trMore() + { return "Pli..."; } + + /*! put in the class documentation */ + virtual QCString trListOfAllMembers() + { return "Listo de ĉiuj membroj."; } + + /*! used as the title of the "list of all members" page of a class */ + virtual QCString trMemberList() + { return "Membra Listo"; } + + /*! this is the first part of a sentence that is followed by a class name */ + virtual QCString trThisIsTheListOfAllMembers() + { return "Tiu ĉi estas la kompleta membraro de "; } + + /*! this is the remainder of the sentence after the class name */ + virtual QCString trIncludingInheritedMembers() + { return ", inkluzive ĉiujn hereditajn membrojn."; } + + /*! this is put at the author sections at the bottom of man pages. + * parameter s is name of the project name. + */ + virtual QCString trGeneratedAutomatically(const char *s) + { QCString result="Generita aÅtomate de Doxygen"; + if (s) result+=(QCString)" por "+s; + result+=" el la fontkodo."; + return result; + } + + /*! put after an enum name in the list of all members */ + virtual QCString trEnumName() + { return "enum nomo"; } + + /*! put after an enum value in the list of all members */ + virtual QCString trEnumValue() + { return "enum valoro"; } + + /*! put after an undocumented member in the list of all members */ + virtual QCString trDefinedIn() + { return "difinita en"; } + + // quick reference sections + + /*! This is put above each page as a link to the list of all groups of + * compounds or files (see the \\group command). + */ + virtual QCString trModules() + { return "Moduloj"; } + + /*! This is put above each page as a link to the class hierarchy */ + virtual QCString trClassHierarchy() + { return "Klasa Hierarkio"; } + + /*! This is put above each page as a link to the list of annotated classes */ + virtual QCString trCompoundList() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Datumstruktoroj"; + } + else + { + return "Klasaro"; + } + } + + /*! This is put above each page as a link to the list of documented files */ + virtual QCString trFileList() + { return "Dosieraro"; } + + /*! This is put above each page as a link to all members of compounds. */ + virtual QCString trCompoundMembers() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Datumkampoj"; + } + else + { + return "Klasaj membroj"; + } + } + + /*! This is put above each page as a link to all members of files. */ + virtual QCString trFileMembers() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Mallokalaĵoj"; + } + else + { + return "Dosieraj Membroj"; + } + } + + /*! This is put above each page as a link to all related pages. */ + virtual QCString trRelatedPages() + { return "Rilataj PaÄoj"; } + + /*! This is put above each page as a link to all examples. */ + virtual QCString trExamples() + { return "Ekzemploj"; } + + /*! This is put above each page as a link to the search engine. */ + virtual QCString trSearch() + { return "Serĉi"; } + + /*! This is an introduction to the class hierarchy. */ + virtual QCString trClassHierarchyDescription() + { return "Tiu ĉi heredada listo estas plimalpli, " + "sed ne tute, ordigita alfabete:"; + } + + /*! This is an introduction to the list with all files. */ + virtual QCString trFileListDescription(bool extractAll) + { + QCString result="Jen listo de ĉiuj "; + if (!extractAll) result+="dokumentitaj "; + result+="dosieroj kun mallongaj priskriboj:"; + return result; + } + + /*! This is an introduction to the annotated compound list. */ + virtual QCString trCompoundListDescription() + { + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Jen datumstrukturoj kun mallongaj priskriboj:"; + } + else + { + return "Jen la klasoj, strukturoj, kunigoj kaj interfacoj " + "kun mallongaj priskriboj:"; + } + } + + /*! This is an introduction to the page with all class members. */ + virtual QCString trCompoundMembersDescription(bool extractAll) + { + QCString result="Jen listo de ĉiuj "; + if (!extractAll) + { + result+="dokumentitaj "; + } + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="strukturaj kaj kunigaj kampoj"; + } + else + { + result+="klasaj membroj"; + } + result+=" kun ligiloj al "; + if (!extractAll) + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="la struktura/kuniga dokumentado por ĉiu kampo:"; + } + else + { + result+="la klasa dokumentado por ĉiu membro:"; + } + } + else + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="la strukturoj/kunigoj al kiuj ili apartenas:"; + } + else + { + result+="la klasoj al kiuj ili apartenas:"; + } + } + return result; + } + + /*! This is an introduction to the page with all file members. */ + virtual QCString trFileMembersDescription(bool extractAll) + { + QCString result="Jen listo de ĉiuj "; + if (!extractAll) result+="dokumentitaj "; + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="funkcioj, variabloj, difinoj, enumeracioj kaj tipodifinoj"; + } + else + { + result+="dosieraj membroj"; + } + result+=" kun ligiloj al "; + if (extractAll) + result+="la dosieroj al kiuj ili apartenas:"; + else + result+="la dokumentado:"; + return result; + } + + /*! This is an introduction to the page with the list of all examples */ + virtual QCString trExamplesDescription() + { return "Jen listo de ĉiuj la ekzemploj:"; } + + /*! This is an introduction to the page with the list of related pages */ + virtual QCString trRelatedPagesDescription() + { return "Jen listo de ĉiuj rilataj dokumentadaj paÄoj:"; } + + /*! This is an introduction to the page with the list of class/file groups */ + virtual QCString trModulesDescription() + { return "Jen listo de ĉiuj la moduloj:"; } + + // index titles (the project name is prepended for these) + + /*! This is used in HTML as the title of index.html. */ + virtual QCString trDocumentation() + { return "Dokumentado"; } + + /*! This is used in LaTeX as the title of the chapter with the + * index of all groups. + */ + virtual QCString trModuleIndex() + { return "Modula Indekso"; } + + /*! This is used in LaTeX as the title of the chapter with the + * class hierarchy. + */ + virtual QCString trHierarchicalIndex() + { return "Hierarkia Indekso"; } + + /*! This is used in LaTeX as the title of the chapter with the + * annotated compound index. + */ + virtual QCString trCompoundIndex() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Datumstruktura Indekso"; + } + else + { + return "Klasa Indekso"; + } + } + + /*! This is used in LaTeX as the title of the chapter with the + * list of all files. + */ + virtual QCString trFileIndex() + { return "Dosiera Indekso"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all groups. + */ + virtual QCString trModuleDocumentation() + { return "Modula Dokumentado"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all classes, structs and unions. + */ + virtual QCString trClassDocumentation() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Datumstruktura Dokumentado"; + } + else + { + return "Klasa Dokumentado"; + } + } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all files. + */ + virtual QCString trFileDocumentation() + { return "Dosiera Dokumentado"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all examples. + */ + virtual QCString trExampleDocumentation() + { return "Ekzempla Dokumentado"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all related pages. + */ + virtual QCString trPageDocumentation() + { return "PaÄa Dokumentado"; } + + /*! This is used in LaTeX as the title of the document */ + virtual QCString trReferenceManual() + { return "Referenca Manlibro"; } + + /*! This is used in the documentation of a file as a header before the + * list of defines + */ + virtual QCString trDefines() + { return "Difinoj"; } + + /*! This is used in the documentation of a file as a header before the + * list of function prototypes + */ + virtual QCString trFuncProtos() + { return "Funkciaj Prototipoj"; } + + /*! This is used in the documentation of a file as a header before the + * list of typedefs + */ + virtual QCString trTypedefs() + { return "Tipdifinoj"; } + + /*! This is used in the documentation of a file as a header before the + * list of enumerations + */ + virtual QCString trEnumerations() + { return "Enumeracioj"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) functions + */ + virtual QCString trFunctions() + { return "Funkcioj"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) variables + */ + virtual QCString trVariables() + { return "Variabloj"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) variables + */ + virtual QCString trEnumerationValues() + { return "Enumeraciilo"; } + + /*! This is used in the documentation of a file before the list of + * documentation blocks for defines + */ + virtual QCString trDefineDocumentation() + { return "Difina Dokumentado"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for function prototypes + */ + virtual QCString trFunctionPrototypeDocumentation() + { return "Dokumentado de Funkciaj Prototipoj"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for typedefs + */ + virtual QCString trTypedefDocumentation() + { return "Tipdifina Dokumentado"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for enumeration types + */ + virtual QCString trEnumerationTypeDocumentation() + { return "Enumeracitipa Dokumentado"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for functions + */ + virtual QCString trFunctionDocumentation() + { return "Funkcia Dokumentado"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for variables + */ + virtual QCString trVariableDocumentation() + { return "Variabla Dokumentado"; } + + /*! This is used in the documentation of a file/namespace/group before + * the list of links to documented compounds + */ + virtual QCString trCompounds() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Datumstrukturoj"; + } + else + { + return "Klasoj"; + } + } + + /*! This is used in the standard footer of each page and indicates when + * the page was generated + */ + virtual QCString trGeneratedAt(const char *date,const char *projName) + { + QCString result=(QCString)"Generita la "+date; + if (projName) result+=(QCString)" por "+projName; + result+=(QCString)" de"; + return result; + } + /*! This is part of the sentence used in the standard footer of each page. + */ + virtual QCString trWrittenBy() + { + return "skribita de"; + } + + /*! this text is put before a class diagram */ + virtual QCString trClassDiagram(const char *clName) + { + return (QCString)"Heredada diagramo por "+clName+":"; + } + + /*! this text is generated when the \\internal command is used. */ + virtual QCString trForInternalUseOnly() + { return "Nur por ena uzado."; } + + /*! this text is generated when the \\warning command is used. */ + virtual QCString trWarning() + { return "Averto"; } + + /*! this text is generated when the \\version command is used. */ + virtual QCString trVersion() + { return "Versio"; } + + /*! this text is generated when the \\date command is used. */ + virtual QCString trDate() + { return "Dato"; } + + /*! this text is generated when the \\return command is used. */ + virtual QCString trReturns() + { return "Liveras"; } + + /*! this text is generated when the \\sa command is used. */ + virtual QCString trSeeAlso() + { return "Vido ankaÅ"; } + + /*! this text is generated when the \\param command is used. */ + virtual QCString trParameters() + { return "Parametroj"; } + + /*! this text is generated when the \\exception command is used. */ + virtual QCString trExceptions() + { return "Esceptoj"; } + + /*! this text is used in the title page of a LaTeX document. */ + virtual QCString trGeneratedBy() + { return "Generita de"; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990307 +////////////////////////////////////////////////////////////////////////// + + /*! used as the title of page containing all the index of all namespaces. */ + virtual QCString trNamespaceList() + { return "Nomspacaro"; } + + /*! used as an introduction to the namespace list */ + virtual QCString trNamespaceListDescription(bool extractAll) + { + QCString result="Jen listo de ĉiuj "; + if (!extractAll) result+="dokumentitaj "; + result+="nomspacoj kun mallongaj priskriboj:"; + return result; + } + + /*! used in the class documentation as a header before the list of all + * friends of a class + */ + virtual QCString trFriends() + { return "Amikoj"; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990405 +////////////////////////////////////////////////////////////////////////// + + /*! used in the class documentation as a header before the list of all + * related classes + */ + virtual QCString trRelatedFunctionDocumentation() + { return "Dokumentado pri amikoj kaj rilatitaj funkcioj"; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990425 +////////////////////////////////////////////////////////////////////////// + + /*! used as the title of the HTML page of a class/struct/union */ + virtual QCString trCompoundReference(const char *clName, + ClassDef::CompoundType compType, + bool isTemplate) + { + QCString result="Referenco de la "; + if (isTemplate) result+=" Åablono de la "; + switch(compType) + { + case ClassDef::Class: result+="klaso "; break; + case ClassDef::Struct: result+="strukturo "; break; + case ClassDef::Union: result+="kunigo "; break; + case ClassDef::Interface: result+="interfaco "; break; + case ClassDef::Protocol: result+="protokolo "; break; + case ClassDef::Category: result+="kategorio "; break; + case ClassDef::Exception: result+="escepto "; break; + } + result+=(QCString)clName; + return result; + } + + /*! used as the title of the HTML page of a file */ + virtual QCString trFileReference(const char *fileName) + { + QCString result=fileName; + result+=" Dosiera referenco"; + return result; + } + + /*! used as the title of the HTML page of a namespace */ + virtual QCString trNamespaceReference(const char *namespaceName) + { + QCString result=namespaceName; + result+=" Nomspaca referenco"; + return result; + } + + virtual QCString trPublicMembers() + { return "Publikaj Membraj Funkcioj"; } + virtual QCString trPublicSlots() + { return "Pubikaj Ingoj"; } + virtual QCString trSignals() + { return "Signaloj"; } + virtual QCString trStaticPublicMembers() + { return "Statikaj Publikaj Membraj Funkcioj"; } + virtual QCString trProtectedMembers() + { return "Protektitaj Membraj Funkcioj"; } + virtual QCString trProtectedSlots() + { return "Protektitaj Ingoj"; } + virtual QCString trStaticProtectedMembers() + { return "Statikaj Protektitaj Membraj Funkcioj"; } + virtual QCString trPrivateMembers() + { return "Privataj Membraj Funkcioj"; } + virtual QCString trPrivateSlots() + { return "Privataj Ingoj"; } + virtual QCString trStaticPrivateMembers() + { return "Statikaj Privataj Membraj Funkcioj"; } + + /*! this function is used to produce a comma-separated list of items. + * use generateMarker(i) to indicate where item i should be put. + */ + virtual QCString trWriteList(int numEntries) + { + QCString result; + int i; + // the inherits list contain `numEntries' classes + for (i=0;i<numEntries;i++) + { + // use generateMarker to generate placeholders for the class links! + result+=generateMarker(i); // generate marker for entry i in the list + // (order is left to right) + + if (i!=numEntries-1) // not the last entry, so we need a separator + { + if (i<numEntries-2) // not the fore last entry + result+=", "; + else // the fore last entry + result+=", kaj "; + } + } + return result; + } + + /*! used in class documentation to produce a list of base classes, + * if class diagrams are disabled. + */ + virtual QCString trInheritsList(int numEntries) + { + return "Heredas de "+trWriteList(numEntries)+"."; + } + + /*! used in class documentation to produce a list of super classes, + * if class diagrams are disabled. + */ + virtual QCString trInheritedByList(int numEntries) + { + return "Heredita de "+trWriteList(numEntries)+"."; + } + + /*! used in member documentation blocks to produce a list of + * members that are hidden by this one. + */ + virtual QCString trReimplementedFromList(int numEntries) + { + return "Rerealigita el "+trWriteList(numEntries)+"."; + } + + /*! used in member documentation blocks to produce a list of + * all member that overwrite the implementation of this member. + */ + virtual QCString trReimplementedInList(int numEntries) + { + return "Rerealigita en "+trWriteList(numEntries)+"."; + } + + /*! This is put above each page as a link to all members of namespaces. */ + virtual QCString trNamespaceMembers() + { return "Nomspacaj Membroj"; } + + /*! This is an introduction to the page with all namespace members */ + virtual QCString trNamespaceMemberDescription(bool extractAll) + { + QCString result="Jen listo de ĉiuj "; + if (!extractAll) result+="dokumentitaj "; + result+="nomspacaj membroj kun ligiloj al "; + if (extractAll) + result+="la nomspaca dokumentado de ĉiu membro:"; + else + result+="la nomspacoj al kiuj ili apartenas:"; + return result; + } + /*! This is used in LaTeX as the title of the chapter with the + * index of all namespaces. + */ + virtual QCString trNamespaceIndex() + { return "Nomspaca Indekso"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all namespaces. + */ + virtual QCString trNamespaceDocumentation() + { return "Nomspaca Dokumentado"; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990522 +////////////////////////////////////////////////////////////////////////// + + /*! This is used in the documentation before the list of all + * namespaces in a file. + */ + virtual QCString trNamespaces() + { return "Nomspacoj"; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990728 +////////////////////////////////////////////////////////////////////////// + + /*! This is put at the bottom of a class documentation page and is + * followed by a list of files that were used to generate the page. + */ + virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType, + bool single) + { // single is true implies a single file + QCString result=(QCString)"La dokumentado por tiu ĉi "; + switch(compType) + { + case ClassDef::Class: result+="klaso"; break; + case ClassDef::Struct: result+="strukturo"; break; + case ClassDef::Union: result+="kunigo"; break; + case ClassDef::Interface: result+="interfaco"; break; + case ClassDef::Protocol: result+="protokolo"; break; + case ClassDef::Category: result+="kategorio"; break; + case ClassDef::Exception: result+="escepto"; break; + } + result+=" generitas el la "; + if (single) result+="sekva dosiero:"; + else result+="sekvaj dosieroj:"; + return result; + } + + /*! This is in the (quick) index as a link to the alphabetical compound + * list. + */ + virtual QCString trAlphabeticalList() + { return "Alfabeta Listo"; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990901 +////////////////////////////////////////////////////////////////////////// + + /*! This is used as the heading text for the retval command. */ + virtual QCString trReturnValues() + { return "Liveraĵoj"; } + + /*! This is in the (quick) index as a link to the main page (index.html) + */ + virtual QCString trMainPage() + { return "Ĉefa PaÄo"; } + + /*! This is used in references to page that are put in the LaTeX + * documentation. It should be an abbreviation of the word page. + */ + virtual QCString trPageAbbreviation() + { return "p."; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-991003 +////////////////////////////////////////////////////////////////////////// + + virtual QCString trDefinedAtLineInSourceFile() + { + return "Difinita sur la lineo @0 de la dosiero @1."; + } + virtual QCString trDefinedInSourceFile() + { + return "Difinita en la dosiero @0."; + } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-991205 +////////////////////////////////////////////////////////////////////////// + + virtual QCString trDeprecated() + { + return "Evitinda"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.0.0 +////////////////////////////////////////////////////////////////////////// + + /*! this text is put before a collaboration diagram */ + virtual QCString trCollaborationDiagram(const char *clName) + { + return (QCString)"Kunlaborada diagramo por "+clName+":"; + } + /*! this text is put before an include dependency graph */ + virtual QCString trInclDepGraph(const char *fName) + { + return (QCString)"Inkluzivaĵa dependeca diagramo por "+fName+":"; + } + /*! header that is put before the list of constructor/destructors. */ + virtual QCString trConstructorDocumentation() + { + return "Konstruila kaj Detruila Dokumentado"; + } + /*! Used in the file documentation to point to the corresponding sources. */ + virtual QCString trGotoSourceCode() + { + return "Iri al la fontkodo de tiu ĉi dosiero."; + } + /*! Used in the file sources to point to the corresponding documentation. */ + virtual QCString trGotoDocumentation() + { + return "Iri al la dokumentado de tiu ĉi dosiero."; + } + /*! Text for the \\pre command */ + virtual QCString trPrecondition() + { + return "AntaÅkondiĉo"; + } + /*! Text for the \\post command */ + virtual QCString trPostcondition() + { + return "Postkondiĉo"; + } + /*! Text for the \\invariant command */ + virtual QCString trInvariant() + { + return "Malvariaĵo"; + } + /*! Text shown before a multi-line variable/enum initialization */ + virtual QCString trInitialValue() + { + return "Komenca valoro:"; + } + /*! Text used the source code in the file index */ + virtual QCString trCode() + { + return "kodo"; + } + virtual QCString trGraphicalHierarchy() + { + return "Grafika Klasa Hierarkio"; + } + virtual QCString trGotoGraphicalHierarchy() + { + return "Iri al la grafika klasa hierarkio"; + } + virtual QCString trGotoTextualHierarchy() + { + return "Iri al la teksta klasa hierarkio"; + } + virtual QCString trPageIndex() + { + return "PaÄa Indekso"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.1.0 +////////////////////////////////////////////////////////////////////////// + + virtual QCString trNote() + { + return "Noto"; + } + virtual QCString trPublicTypes() + { + return "Publikaj Tipoj"; + } + virtual QCString trPublicAttribs() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Datumkampoj"; + } + else + { + return "Publikaj Atributoj"; + } + } + virtual QCString trStaticPublicAttribs() + { + return "Statikaj Publikaj Atributoj"; + } + virtual QCString trProtectedTypes() + { + return "Protektitaj Tipoj"; + } + virtual QCString trProtectedAttribs() + { + return "Protektitaj Atributoj"; + } + virtual QCString trStaticProtectedAttribs() + { + return "Statikaj Protektitaj Atributoj"; + } + virtual QCString trPrivateTypes() + { + return "Privataj Tipoj"; + } + virtual QCString trPrivateAttribs() + { + return "Privataj Atributoj"; + } + virtual QCString trStaticPrivateAttribs() + { + return "Statikaj Privataj Atributoj"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.1.3 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a marker that is put before a \\todo item */ + virtual QCString trTodo() + { + return "Farendaĵo"; + } + /*! Used as the header of the todo list */ + virtual QCString trTodoList() + { + return "Farendaĵaro"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.1.4 +////////////////////////////////////////////////////////////////////////// + + virtual QCString trReferencedBy() + { + return "Referencita de"; + } + virtual QCString trRemarks() + { + return "Rimarkoj"; + } + virtual QCString trAttention() + { + return "Atentu"; + } + virtual QCString trInclByDepGraph() + { + return "Tiu ĉi diagramo montras kiuj dosieroj rekte aÅ malrekte " + "inkluzivas tiun ĉi dosieron:"; + } + virtual QCString trSince() + { + return "De"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.1.5 +////////////////////////////////////////////////////////////////////////// + + /*! title of the graph legend page */ + virtual QCString trLegendTitle() + { + return "Diagrama Klarigeto"; + } + /*! page explaining how the dot graph's should be interpreted + * The %A in the text below are to prevent link to classes called "A". + */ + virtual QCString trLegendDocs() + { + return + "Tiu ĉi paÄo klarigas kiel interpreti la diagramojn generitajn " + "de doxygen.<p>\n" + "Konsideru la sekvan ekzemplon:\n" + "\\code\n" + "/*! Nevidebla klaso pro trunkado */\n" + "class Invisible { };\n\n" + "/*! Trunkita klaso, hereda rilato kaÅiÄas */\n" + "class Truncated : public Invisible { };\n\n" + "/* Klaso ne dokumentita per komentoj de doxygen */\n" + "class Undocumented { };\n\n" + "/*! Klaso de kiu herediÄas per publika heredado */\n" + "class PublicBase : public Truncated { };\n\n" + "/*! Åœablona klaso */\n" + "template<class T> class Templ { };\n\n" + "/*! Klaso de kiu herediÄas per protektita heredado */\n" + "class ProtectedBase { };\n\n" + "/*! Klaso de kiu herediÄas per privata heredado */\n" + "class PrivateBase { };\n\n" + "/*! Klaso uzata de la klaso Inherited */\n" + "class Used { };\n\n" + "/*! Supra klaso kiu heredas de kelkaj aliaj klasoj */\n" + "class Inherited : public PublicBase,\n" + " protected ProtectedBase,\n" + " private PrivateBase,\n" + " public Undocumented,\n" + " public Templ<int>\n" + "{\n" + " private:\n" + " Used *m_usedClass;\n" + "};\n" + "\\endcode\n" + "Tio ĉi liveros la sekvan diagramon:" + "<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" + "<p>\n" + "La skatoloj de la supra diagramo havas la sekvajn signifojn:\n" + "<ul>\n" + "<li>%Plene griza skatolo reprezentas la strukturon aÅ klason " + "kies diagramo generiÄis.\n" + "<li>%Skatolo kun nigra bordero montras dokumentitan strukturon aÅ klason.\n" + "<li>%Skatolo kun griza bordero montras nedokumentitan strukturon aÅ klason.\n" + "<li>%Skatolo kun ruÄa bordero montras dokumentitan strukturon aÅ klason por " + "kiu ne ĉiuj heredadoj/enhavoj montriÄas. %Diagramo estas trunkota " + "se Äi ne adaptiÄas en la donitajn limojn.\n" + "</ul>\n" + "La sagoj havas la sekvajn signifojn:\n" + "<ul>\n" + "<li>%Malhelblua sago uzatas por montri publika heredado " + "inter du klasoj.\n" + "<li>%Malhelverda sago uzatas por protektita heredado.\n" + "<li>%MalhelruÄa sago uzatas por privata heredado.\n" + "<li>%Purpura streka sago uzatas se klaso enhavatas aÅ uzatas " + "de alia klaso. La sago estas etikedatas kun la variablo(j) " + "tra kiu la montrita klaso aÅ strukturo estas alirebla.\n" + "<li>%Flava streka sago montras rilato inter Åablona apero kaj " + "la Åablona klaso el kiu Äi realigitas. La sago etikeditas kun " + "la parametroj de la Åablona apero.\n" + "</ul>\n"; + } + /*! text for the link to the legend page */ + virtual QCString trLegend() + { + return "klarigeto"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.0 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a marker that is put before a test item */ + virtual QCString trTest() + { + return "Testo"; + } + /*! Used as the header of the test list */ + virtual QCString trTestList() + { + return "Testa Listo"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.1 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a section header for KDE-2 IDL methods */ + virtual QCString trDCOPMethods() + { + return "DCOP Membraj Funkcioj"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.2 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a section header for IDL properties */ + virtual QCString trProperties() + { + return "Atributoj"; + } + /*! Used as a section header for IDL property documentation */ + virtual QCString trPropertyDocumentation() + { + return "Atributa Dokumentado"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.4 +////////////////////////////////////////////////////////////////////////// + + /*! Used for Java classes in the summary section of Java packages */ + virtual QCString trClasses() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Datumstrukturoj"; + } + else + { + return "Klasoj"; + } + } + /*! Used as the title of a Java package */ + virtual QCString trPackage(const char *name) + { + return (QCString)"Pakaĵo "+name; + } + /*! Title of the package index page */ + virtual QCString trPackageList() + { + return "Pakaĵa Listo"; + } + /*! The description of the package index page */ + virtual QCString trPackageListDescription() + { + return "Jen listo de pakaĵoj kun mallongaj priskriboj (se ekzistas):"; + } + /*! The link name in the Quick links header for each page */ + virtual QCString trPackages() + { + return "Pakaĵoj"; + } + /*! Text shown before a multi-line define */ + virtual QCString trDefineValue() + { + return "Valoro:"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.5 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a marker that is put before a \\bug item */ + virtual QCString trBug() + { + return "Cimo"; + } + /*! Used as the header of the bug list */ + virtual QCString trBugList() + { + return "Cima Listo"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.6 +////////////////////////////////////////////////////////////////////////// + + /*! Used as ansicpg for RTF file + * + * The following table shows the correlation of Charset name, Charset Value and + * <pre> + * Codepage number: + * Charset Name Charset Value(hex) Codepage number + * ------------------------------------------------------ + * DEFAULT_CHARSET 1 (x01) + * SYMBOL_CHARSET 2 (x02) + * OEM_CHARSET 255 (xFF) + * ANSI_CHARSET 0 (x00) 1252 + * RUSSIAN_CHARSET 204 (xCC) 1251 + * EE_CHARSET 238 (xEE) 1250 + * GREEK_CHARSET 161 (xA1) 1253 + * TURKISH_CHARSET 162 (xA2) 1254 + * BALTIC_CHARSET 186 (xBA) 1257 + * HEBREW_CHARSET 177 (xB1) 1255 + * ARABIC _CHARSET 178 (xB2) 1256 + * SHIFTJIS_CHARSET 128 (x80) 932 + * HANGEUL_CHARSET 129 (x81) 949 + * GB2313_CHARSET 134 (x86) 936 + * CHINESEBIG5_CHARSET 136 (x88) 950 + * </pre> + * + */ + virtual QCString trRTFansicp() + { + return ""; + } + + + /*! Used as ansicpg for RTF fcharset + * \see trRTFansicp() for a table of possible values. + */ + virtual QCString trRTFCharSet() + { + return "1"; + } + + /*! Used as header RTF general index */ + virtual QCString trRTFGeneralIndex() + { + return "Indekso"; + } + + /*! 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 trClass(bool first_capital, bool singular) + { + QCString result((first_capital ? "Klaso" : "klaso")); + if (!singular) result+="j"; + 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 trFile(bool first_capital, bool singular) + { + QCString result((first_capital ? "Dosiero" : "dosiero")); + if (!singular) result+="j"; + 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 trNamespace(bool first_capital, bool singular) + { + QCString result((first_capital ? "Nomspaco" : "nomspaco")); + if (!singular) result+="j"; + 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 trGroup(bool first_capital, bool singular) + { + QCString result((first_capital ? "Grupo" : "grupo")); + if (!singular) result+="j"; + 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 trPage(bool first_capital, bool singular) + { + QCString result((first_capital ? "PaÄo" : "paÄo")); + if (!singular) result+="j"; + 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 trMember(bool first_capital, bool singular) + { + QCString result((first_capital ? "Membro" : "membro")); + if (!singular) result+="j"; + 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 trGlobal(bool first_capital, bool singular) + { + QCString result((first_capital ? "Mallokalaĵo" : "mallokalaĵo")); + if (!singular) result+="j"; + return result; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.7 +////////////////////////////////////////////////////////////////////////// + + /*! This text is generated when the \\author command is used and + * for the author section in man pages. */ + virtual QCString trAuthor(bool first_capital, bool singular) + { + QCString result((first_capital ? "AÅtoro" : "aÅtoro")); + if (!singular) result+="j"; + return result; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.11 +////////////////////////////////////////////////////////////////////////// + + /*! This text is put before the list of members referenced by a member + */ + virtual QCString trReferences() + { + return "Referencoj"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.13 +////////////////////////////////////////////////////////////////////////// + + /*! used in member documentation blocks to produce a list of + * members that are implemented by this one. + */ + virtual QCString trImplementedFromList(int numEntries) + { + return "Realigas "+trWriteList(numEntries)+"."; + } + + /*! used in member documentation blocks to produce a list of + * all members that implement this abstract member. + */ + virtual QCString trImplementedInList(int numEntries) + { + return "Realigita en "+trWriteList(numEntries)+"."; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + /*! used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return "Enhava Tabelo"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.17 +////////////////////////////////////////////////////////////////////////// + + /*! Used as the header of the list of item that have been + * flagged deprecated + */ + virtual QCString trDeprecatedList() + { + return "Evitindaĵa Listo"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.18 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a header for declaration section of the events found in + * a C# program + */ + virtual QCString trEvents() + { + return "Eventoj"; + } + /*! Header used for the documentation section of a class' events. */ + virtual QCString trEventDocumentation() + { + return "Eventa Dokumentado"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a heading for a list of Java class types with package scope. + */ + virtual QCString trPackageTypes() + { + return "Pakaĵaj Tipoj"; + } + /*! Used as a heading for a list of Java class functions with package + * scope. + */ + virtual QCString trPackageMembers() + { + return "Pakaĵaj Funkcioj"; + } + /*! Used as a heading for a list of static Java class functions with + * package scope. + */ + virtual QCString trStaticPackageMembers() + { + return "Statikaj Pakaĵaj Funkcioj"; + } + /*! Used as a heading for a list of Java class variables with package + * scope. + */ + virtual QCString trPackageAttribs() + { + return "Pakaĵaj Atributoj"; + } + /*! Used as a heading for a list of static Java class variables with + * package scope. + */ + virtual QCString trStaticPackageAttribs() + { + return "Statikaj Pakaĵaj Atributoj"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3.1 +////////////////////////////////////////////////////////////////////////// + + /*! Used in the quick index of a class/file/namespace member list page + * to link to the unfiltered list of all members. + */ + virtual QCString trAll() + { + return "Ĉiuj"; + } + /*! Put in front of the call graph for a function. */ + virtual QCString trCallGraph() + { + return "Jen la vokdiagramo por tiu ĉi funkcio:"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3.3 +////////////////////////////////////////////////////////////////////////// + + /*! When the search engine is enabled this text is put in the header + * of each page before the field where one can enter the text to search + * for. + */ + virtual QCString trSearchForIndex() + { + return "Serĉi"; + } + /*! This string is used as the title for the page listing the search + * results. + */ + virtual QCString trSearchResultsTitle() + { + return "Serĉaj Rezultoj"; + } + /*! This string is put just before listing the search results. The + * text can be different depending on the number of documents found. + * Inside the text you can put the special marker $num to insert + * the number representing the actual number of search results. + * The @a numDocuments parameter can be either 0, 1 or 2, where the + * value 2 represents 2 or more matches. HTML markup is allowed inside + * the returned string. + */ + virtual QCString trSearchResults(int numDocuments) + { + if (numDocuments==0) + { + return "Pardonu, nenio dokumento kongruas vian peton."; + } + else if (numDocuments==1) + { + return "Trafita <b>unu</b> dokumenton kongruantan vian peton."; + } + else + { + return "Trafitaj <b>$num</b> dokumentojn kongruantajn vian peton. " + "MontriÄos plej bonaj kongruoj unue."; + } + } + /*! This string is put before the list of matched words, for each search + * result. What follows is the list of words that matched the query. + */ + virtual QCString trSearchMatches() + { + return "Kongruoj:"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3.8 +////////////////////////////////////////////////////////////////////////// + + /*! This is used in HTML as the title of page with source code for file filename + */ + virtual QCString trSourceFile(QCString& filename) + { + return filename + " Fonta Dosiero"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3.9 +////////////////////////////////////////////////////////////////////////// + + /*! This is used as the name of the chapter containing the directory + * hierarchy. + */ + virtual QCString trDirIndex() + { return "Dosieruja Hierarkio"; } + + /*! This is used as the name of the chapter containing the documentation + * of the directories. + */ + virtual QCString trDirDocumentation() + { return "Dosieruja Dokumentado"; } + + /*! This is used as the title of the directory index and also in the + * Quick links of an HTML page, to link to the directory hierarchy. + */ + virtual QCString trDirectories() + { return "Dosierujoj"; } + + /*! This returns a sentences that introduces the directory hierarchy. + * and the fact that it is sorted alphabetically per level + */ + virtual QCString trDirDescription() + { return "Tiu ĉi dosieruja hierarkio estas plimalpli, " + "sed ne tute, ordigita alfabete:"; + } + + /*! This returns the title of a directory page. The name of the + * directory is passed via \a dirName. + */ + virtual QCString trDirReference(const char *dirName) + { QCString result=dirName; result+=" Dosieruja Referenco"; return result; } + + /*! This returns the word directory with or without starting capital + * (\a first_capital) and in sigular or plural form (\a singular). + */ + virtual QCString trDir(bool first_capital, bool singular) + { + QCString result((first_capital ? "Dosierujo" : "dosierujo")); + if (!singular) result+="j"; + return result; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.4.1 +////////////////////////////////////////////////////////////////////////// + + /*! This text is added to the documentation when the \\overload command + * is used for a overloaded function. + */ + virtual QCString trOverloadText() + { + return "Tiu ĉi estas superÅarÄita membra funkcio, " + "donita por faciligo. Äœi nur malsamas de la supra " + "funkcio nur pro la argumento(j) kiujn ili akceptas."; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.4.6 +////////////////////////////////////////////////////////////////////////// + + /*! This is used to introduce a caller (or called-by) graph */ + virtual QCString trCallerGraph() + { + return "Jen la vokdiagramo por tiu ĉi funkcio:"; + } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for enumeration values + */ + virtual QCString trEnumerationValueDocumentation() + { return "Enumeraciila Dokumentado"; } + +////////////////////////////////////////////////////////////////////////// +// new since 1.5.4 (mainly for Fortran) +////////////////////////////////////////////////////////////////////////// + + /*! header that is put before the list of member subprograms (Fortran). */ + virtual QCString trMemberFunctionDocumentationFortran() + { return "Dokumentado de Membraj Funkcioj/Subrutinoj"; } + + /*! This is put above each page as a link to the list of annotated data types (Fortran). */ + virtual QCString trCompoundListFortran() + { return "Datumtipa Listo"; } + + /*! This is put above each page as a link to all members of compounds (Fortran). */ + virtual QCString trCompoundMembersFortran() + { return "Datumkampoj"; } + + /*! This is an introduction to the annotated compound list (Fortran). */ + virtual QCString trCompoundListDescriptionFortran() + { return "Jen la datumtipoj kun mallongaj priskriboj:"; } + + /*! This is an introduction to the page with all data types (Fortran). */ + virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) + { + QCString result="Jen listo de ĉiuj "; + if (!extractAll) + { + result+="dokumentitaj "; + } + result+="datumtipaj membroj"; + result+=" kun ligiloj al "; + if (!extractAll) + { + result+="la datumstruktura dokumentado de ĉiu membro"; + } + else + { + result+="la datumtipoj al kiuj ili apartenas:"; + } + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * annotated compound index (Fortran). + */ + virtual QCString trCompoundIndexFortran() + { return "Datumtipa Indekso"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all data types (Fortran). + */ + virtual QCString trTypeDocumentation() + { return "Datumtipa Dokumentado"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) subprograms (Fortran). + */ + virtual QCString trSubprograms() + { return "Funkcioj/Subrutinoj"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for subprograms (Fortran) + */ + virtual QCString trSubprogramDocumentation() + { return "Funkcia/Subrutina Dokumentado"; } + + /*! This is used in the documentation of a file/namespace/group before + * the list of links to documented compounds (Fortran) + */ + virtual QCString trDataTypes() + { return "Datumtipoj"; } + + /*! used as the title of page containing all the index of all modules (Fortran). */ + virtual QCString trModulesList() + { return "Modula Listo"; } + + /*! used as an introduction to the modules list (Fortran) */ + virtual QCString trModulesListDescription(bool extractAll) + { + QCString result="Jen listo de ĉiuj "; + if (!extractAll) result+="dokumentitaj "; + result+="moduloj kun mallongaj priskriboj:"; + 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="Referenco de la "; + if (isTemplate) result+=" Åablono de la "; + switch(compType) + { + case ClassDef::Class: result+="modulo "; break; + case ClassDef::Struct: result+="tipo "; break; + case ClassDef::Union: result+="kunigo "; break; + case ClassDef::Interface: result+="interfaco "; break; + case ClassDef::Protocol: result+="protokolo "; break; + case ClassDef::Category: result+="kategorio "; break; + case ClassDef::Exception: result+="escepto "; break; + } + result+=(QCString)clName; + return result; + } + /*! used as the title of the HTML page of a module (Fortran) */ + virtual QCString trModuleReference(const char *namespaceName) + { + QCString result=namespaceName; + result+=" Modula Referenco"; + return result; + } + + /*! This is put above each page as a link to all members of modules. (Fortran) */ + virtual QCString trModulesMembers() + { return "Modulaj Membroj"; } + + /*! This is an introduction to the page with all modules members (Fortran) */ + virtual QCString trModulesMemberDescription(bool extractAll) + { + QCString result="Jen listo de ĉiuj "; + if (!extractAll) result+="dokumentitaj "; + result+="modulaj membroj kun ligiloj al la "; + if (extractAll) + { + result+="modula dokumentado de ĉiu membro:"; + } + else + { + result+="moduloj al kiuj ili apartenas:"; + } + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * index of all modules (Fortran). + */ + virtual QCString trModulesIndex() + { return "Indekso de Moduloj"; } + + /*! 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 ? "Modulo" : "modulo")); + if (!singular) result+="j"; + 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) + { + // single is true implies a single file + QCString result=(QCString)"La dokumentado por tiu ĉi "; + switch(compType) + { + case ClassDef::Class: result+="modulo"; break; + case ClassDef::Struct: result+="tipo"; break; + case ClassDef::Union: result+="kunigo"; break; + case ClassDef::Interface: result+="interfaco"; break; + case ClassDef::Protocol: result+="protokolo"; break; + case ClassDef::Category: result+="kategorio"; break; + case ClassDef::Exception: result+="escepto"; break; + } + result+=" kreiÄis el la "; + if (single) result+="sekva dosiero:"; else result+="sekvaj dosieroj:"; + 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 ? "Tipo" : "tipo")); + if (!singular) result+="j"; + 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 ? "Subprogramo" : "subprogramo")); + if (!singular) result+="j"; + return result; + } + + /*! C# Type Constraint list */ + virtual QCString trTypeConstraints() + { + return "Tipaj Limigoj"; + } + +}; + +#endif diff --git a/src/translator_es.h b/src/translator_es.h index 6d146ab..0640e0a 100644 --- a/src/translator_es.h +++ b/src/translator_es.h @@ -23,12 +23,13 @@ * Updated from 1.3.8 to 1.4.6 by Guillermo Ballester Valor (May-05-2006) * Updated fron 1.4.6 to 1.5.1 by Bartomeu Creus Navarro (22-enero-2007) * Updated fron 1.5.1 to 1.5.5 by Bartomeu Creus Navarro (5-febrero-2008) + * Updated from 1.5.5 to 1.5.6, converted to utf-8 output by David Vaquero (28-febrero-2009) */ #ifndef TRANSLATOR_ES_H #define TRANSLATOR_ES_H -class TranslatorSpanish : public TranslatorAdapter_1_5_4 +class TranslatorSpanish : public Translator { public: @@ -66,7 +67,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! return the language charset. This will be used for the HTML output */ virtual QCString idLanguageCharset() { - return "iso-8859-1"; + return "utf-8"; } // --- Language translation methods ------------------- @@ -81,36 +82,36 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! header that is put before the detailed description of files, classes and namespaces. */ virtual QCString trDetailedDescription() - { return "Descripción detallada"; } + { return "Descripción detallada"; } /*! header that is put before the list of typedefs. */ virtual QCString trMemberTypedefDocumentation() - { return "Documentación de los 'Tipos Definidos' miembros de la clase"; } + { return "Documentación de los 'Tipos Definidos' miembros de la clase"; } /*! header that is put before the list of enumerations. */ virtual QCString trMemberEnumerationDocumentation() - { return "Documentación de las enumeraciones miembro de la clase"; } + { return "Documentación de las enumeraciones miembro de la clase"; } /*! header that is put before the list of member functions. */ virtual QCString trMemberFunctionDocumentation() - { return "Documentación de las funciones miembro"; } + { return "Documentación de las funciones miembro"; } /*! header that is put before the list of member attributes. */ virtual QCString trMemberDataDocumentation() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Documentación de los campos"; + return "Documentación de los campos"; } else { - return "Documentación de los datos miembro"; + return "Documentación de los datos miembro"; } } /*! this is the text of a link put after brief descriptions. */ virtual QCString trMore() - { return "Más..."; } + { return "Más..."; } /*! put in the class documentation */ virtual QCString trListOfAllMembers() @@ -132,15 +133,15 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 * parameter s is name of the project name. */ virtual QCString trGeneratedAutomatically(const char *s) - { QCString result="Generado automáticamente por Doxygen"; + { QCString result="Generado automáticamente por Doxygen"; if (s) result+=(QCString)" para "+s; - result+=" del código fuente."; + result+=" del código fuente."; return result; } /*! put after an enum name in the list of all members */ virtual QCString trEnumName() - { return "nombre de la enumeración"; } + { return "nombre de la enumeración"; } /*! put after an enum value in the list of all members */ virtual QCString trEnumValue() @@ -156,11 +157,11 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 * compounds or files (see the \\group command). */ virtual QCString trModules() - { return "Módulos"; } + { return "Módulos"; } /*! This is put above each page as a link to the class hierarchy */ virtual QCString trClassHierarchy() - { return "Jerarquía de la clase"; } + { return "JerarquÃa de la clase"; } /*! This is put above each page as a link to the list of annotated classes */ virtual QCString trCompoundList() @@ -207,7 +208,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! This is put above each page as a link to all related pages. */ virtual QCString trRelatedPages() - { return "Páginas relacionadas"; } + { return "Páginas relacionadas"; } /*! This is put above each page as a link to all examples. */ virtual QCString trExamples() @@ -220,7 +221,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! This is an introduction to the class hierarchy. */ virtual QCString trClassHierarchyDescription() { return "Esta lista de herencias esta ordenada " - "aproximadamente por orden alfabético:"; + "aproximadamente por orden alfabético:"; } /*! This is an introduction to the list with all files. */ @@ -237,12 +238,12 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Lista de estructuras con una breve descripción:"; + return "Lista de estructuras con una breve descripción:"; } else { return "Lista de las clases, estructuras, " - "uniones e interfaces con una breve descripción:"; + "uniones e interfaces con una breve descripción:"; } } @@ -267,11 +268,11 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - result+="la documentación de la estructura/unión para cada campo:"; + result+="la documentación de la estructura/unión para cada campo:"; } else { - result+="la documentación de la clase para cada miembro:"; + result+="la documentación de la clase para cada miembro:"; } } else @@ -305,7 +306,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 if (extractAll) result+="a los ficheros a los que corresponden:"; else - result+="a la documentación:"; + result+="a la documentación:"; return result; } @@ -315,29 +316,29 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! This is an introduction to the page with the list of related pages */ virtual QCString trRelatedPagesDescription() - { return "Lista de toda la documentación relacionada:"; } + { return "Lista de toda la documentación relacionada:"; } /*! This is an introduction to the page with the list of class/file groups */ virtual QCString trModulesDescription() - { return "Lista de todos los módulos:"; } + { return "Lista de todos los módulos:"; } // index titles (the project name is prepended for these) /*! This is used in HTML as the title of index.html. */ virtual QCString trDocumentation() - { return "Documentación"; } + { return "Documentación"; } /*! This is used in LaTeX as the title of the chapter with the * index of all groups. */ virtual QCString trModuleIndex() - { return "Indice de módulos"; } + { return "Indice de módulos"; } /*! This is used in LaTeX as the title of the chapter with the * class hierarchy. */ virtual QCString trHierarchicalIndex() - { return "Indice jerárquico"; } + { return "Indice jerárquico"; } /*! This is used in LaTeX as the title of the chapter with the * annotated compound index. @@ -346,11 +347,11 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Índice de estructura de datos"; + return "Ãndice de estructura de datos"; } else { - return "Índice de clases"; + return "Ãndice de clases"; } } @@ -364,7 +365,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 * the documentation of all groups. */ virtual QCString trModuleDocumentation() - { return "Documentación de módulos"; } + { return "Documentación de módulos"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all classes, structs and unions. @@ -373,11 +374,11 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Documentación de las estructuras de datos"; + return "Documentación de las estructuras de datos"; } else { - return "Documentación de las clases"; + return "Documentación de las clases"; } } @@ -385,19 +386,19 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 * the documentation of all files. */ virtual QCString trFileDocumentation() - { return "Documentación de archivos"; } + { return "Documentación de archivos"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all examples. */ virtual QCString trExampleDocumentation() - { return "Documentación de ejemplos"; } + { return "Documentación de ejemplos"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all related pages. */ virtual QCString trPageDocumentation() - { return "Documentación de páginas"; } + { return "Documentación de páginas"; } /*! This is used in LaTeX as the title of the document */ virtual QCString trReferenceManual() @@ -443,43 +444,43 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 * list of (global) variables */ virtual QCString trEnumerationValues() - { return "Valores de la enumeración"; } + { return "Valores de la enumeración"; } /*! This is used in the documentation of a file before the list of * documentation blocks for defines */ virtual QCString trDefineDocumentation() - { return "Documentación de las definiciones"; } + { return "Documentación de las definiciones"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for function prototypes */ virtual QCString trFunctionPrototypeDocumentation() - { return "Documentación de las funciones prototipo"; } + { return "Documentación de las funciones prototipo"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for typedefs */ virtual QCString trTypedefDocumentation() - { return "Documentación de los tipos definidos"; } + { return "Documentación de los tipos definidos"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration types */ virtual QCString trEnumerationTypeDocumentation() - { return "Documentación de las enumeraciones"; } + { return "Documentación de las enumeraciones"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for functions */ virtual QCString trFunctionDocumentation() - { return "Documentación de las funciones"; } + { return "Documentación de las funciones"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for variables */ virtual QCString trVariableDocumentation() - { return "Documentación de las variables"; } + { return "Documentación de las variables"; } /*! This is used in the documentation of a file/namespace/group before * the list of links to documented compounds @@ -526,11 +527,11 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! this text is generated when the \\warning command is used. */ virtual QCString trWarning() - { return "Atención"; } + { return "Atención"; } /*! this text is generated when the \\version command is used. */ virtual QCString trVersion() - { return "Versión"; } + { return "Versión"; } /*! this text is generated when the \\date command is used. */ virtual QCString trDate() @@ -542,11 +543,11 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! this text is generated when the \\sa command is used. */ virtual QCString trSeeAlso() - { return "Ver también"; } + { return "Ver también"; } /*! this text is generated when the \\param command is used. */ virtual QCString trParameters() - { return "Parámetros"; } + { return "Parámetros"; } /*! this text is generated when the \\exception command is used. */ virtual QCString trExceptions() @@ -568,8 +569,8 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 virtual QCString trNamespaceListDescription(bool extractAll) { QCString result="Lista de "; - if (!extractAll) result+="toda la documentación de "; - result+="los namespaces con una breve descripción:"; + if (!extractAll) result+="toda la documentación de "; + result+="los namespaces con una breve descripción:"; return result; } @@ -587,7 +588,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 * related classes */ virtual QCString trRelatedFunctionDocumentation() - { return "Documentación de las funciones relacionadas y clases amigas"; } + { return "Documentación de las funciones relacionadas y clases amigas"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990425 @@ -604,11 +605,11 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { case ClassDef::Class: result+=" la Clase "; break; case ClassDef::Struct: result+=" la Estructura "; break; - case ClassDef::Union: result+=" la Unión "; break; + case ClassDef::Union: result+=" la Unión "; break; case ClassDef::Interface: result+=" la Interfaz "; break; case ClassDef::Protocol: result+="l Protocolo "; break; case ClassDef::Category: result+=" la Categoria "; break; - case ClassDef::Exception: result+=" la Excepción "; break; + case ClassDef::Exception: result+=" la Excepción "; break; } result+=(QCString)clName; return result; @@ -631,34 +632,34 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 } virtual QCString trPublicMembers() - { return "Métodos públicos"; } + { return "Métodos públicos"; } virtual QCString trPublicSlots() - { return "Slots públicos"; } + { return "Slots públicos"; } virtual QCString trSignals() - { return "Señales"; } + { return "Señales"; } virtual QCString trStaticPublicMembers() - { return "Métodos públicos estáticos"; } + { return "Métodos públicos estáticos"; } virtual QCString trProtectedMembers() - { return "Métodos protegidos"; } + { return "Métodos protegidos"; } virtual QCString trProtectedSlots() { return "Slots protegidos"; } virtual QCString trStaticProtectedMembers() - { return "Métodos protegidos estáticos"; } + { return "Métodos protegidos estáticos"; } virtual QCString trPrivateMembers() - { return "Métodos privados"; } + { return "Métodos privados"; } virtual QCString trPrivateSlots() { return "Slots privados"; } virtual QCString trStaticPrivateMembers() - { return "Métodos privados estáticos"; } + { return "Métodos privados estáticos"; } /*! this function is used to produce a comma-separated list of items. * use generateMarker(i) to indicate where item i should be put. @@ -725,12 +726,12 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 virtual QCString trNamespaceMemberDescription(bool extractAll) { QCString result="Lista de "; - if (!extractAll) result+="toda la documentación de "; + if (!extractAll) result+="toda la documentación de "; result+="los miembros del namespace con enlace a "; if (extractAll) result+="los namespace de cada miembro:"; else - result+="la documentación de los namespaces pertenecientes a:"; + result+="la documentación de los namespaces pertenecientes a:"; return result; } /*! This is used in LaTeX as the title of the chapter with the @@ -743,7 +744,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 * the documentation of all namespaces. */ virtual QCString trNamespaceDocumentation() - { return "Documentación de namespaces"; } + { return "Documentación de namespaces"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990522 @@ -766,16 +767,16 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 bool single) { // here s is one of " Class", " Struct" or " Union" // single is true implies a single file - QCString result=(QCString)"La documentación para est"; + QCString result=(QCString)"La documentación para est"; switch(compType) { case ClassDef::Class: result+="a clase"; break; case ClassDef::Struct: result+="a estructura"; break; - case ClassDef::Union: result+="a unión"; break; + case ClassDef::Union: result+="a unión"; break; case ClassDef::Interface: result+="e interfaz"; break; case ClassDef::Protocol: result+="e protocolo"; break; - case ClassDef::Category: result+="a categoría"; break; - case ClassDef::Exception: result+="a excepción"; break; + case ClassDef::Category: result+="a categorÃa"; break; + case ClassDef::Exception: result+="a excepción"; break; } result+=" fue generada a partir de"; if (single) result+="l siguiente fichero:"; @@ -787,7 +788,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 * list. */ virtual QCString trAlphabeticalList() - { return "Lista alfabética"; } + { return "Lista alfabética"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990901 @@ -800,7 +801,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! This is in the (quick) index as a link to the main page (index.html) */ virtual QCString trMainPage() - { return "Página principal"; } + { return "Página principal"; } /*! This is used in references to page that are put in the LaTeX * documentation. It should be an abbreviation of the word page. @@ -814,11 +815,11 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 virtual QCString trDefinedAtLineInSourceFile() { - return "Definición en la línea @0 del archivo @1."; + return "Definición en la lÃnea @0 del archivo @1."; } virtual QCString trDefinedInSourceFile() { - return "Definición en el archivo @0."; + return "Definición en el archivo @0."; } ////////////////////////////////////////////////////////////////////////// @@ -837,43 +838,43 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! this text is put before a collaboration diagram */ virtual QCString trCollaborationDiagram(const char *clName) { - return (QCString)"Diagrama de colaboración para "+clName+":"; + return (QCString)"Diagrama de colaboración para "+clName+":"; } /*! this text is put before an include dependency graph */ virtual QCString trInclDepGraph(const char *fName) { - return (QCString)"Dependencia gráfica adjunta para "+fName+":"; + return (QCString)"Dependencia gráfica adjunta para "+fName+":"; } /*! header that is put before the list of constructor/destructors. */ virtual QCString trConstructorDocumentation() { - return "Documentación del constructor y destructor"; + return "Documentación del constructor y destructor"; } /*! Used in the file documentation to point to the corresponding sources. */ virtual QCString trGotoSourceCode() { - return "Ir al código fuente de este archivo."; + return "Ir al código fuente de este archivo."; } /*! Used in the file sources to point to the corresponding documentation. */ virtual QCString trGotoDocumentation() { - return "Ir a la documentación de este archivo."; + return "Ir a la documentación de este archivo."; } /*! Text for the \\pre command */ virtual QCString trPrecondition() { - return "Precondición"; + return "Precondición"; } /*! Text for the \\post command */ virtual QCString trPostcondition() { - return "Postcondición"; + return "Postcondición"; } /*! Text for the \\invariant command */ @@ -891,27 +892,27 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! Text used the source code in the file index */ virtual QCString trCode() { - return "código"; + return "código"; } virtual QCString trGraphicalHierarchy() { - return "Representación gráfica de la clase"; + return "Representación gráfica de la clase"; } virtual QCString trGotoGraphicalHierarchy() { - return "Ir a la representación gráfica de la jerarquía de la clase"; + return "Ir a la representación gráfica de la jerarquÃa de la clase"; } virtual QCString trGotoTextualHierarchy() { - return "Ir a la jerarquía textual de la clase"; + return "Ir a la jerarquÃa textual de la clase"; } virtual QCString trPageIndex() { - return "Página indice"; + return "Página indice"; } ////////////////////////////////////////////////////////////////////////// @@ -925,7 +926,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 virtual QCString trPublicTypes() { - return "Tipos públicos"; + return "Tipos públicos"; } virtual QCString trPublicAttribs() @@ -936,13 +937,13 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 } else { - return "Atributos públicos"; + return "Atributos públicos"; } } virtual QCString trStaticPublicAttribs() { - return "Atributos públicos estáticos"; + return "Atributos públicos estáticos"; } virtual QCString trProtectedTypes() @@ -957,7 +958,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 virtual QCString trStaticProtectedAttribs() { - return "Atributos protegidos estáticos"; + return "Atributos protegidos estáticos"; } virtual QCString trPrivateTypes() @@ -972,7 +973,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 virtual QCString trStaticPrivateAttribs() { - return "Atributos privados estáticos"; + return "Atributos privados estáticos"; } ////////////////////////////////////////////////////////////////////////// @@ -1007,12 +1008,12 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 virtual QCString trAttention() { - return "Atención"; + return "Atención"; } virtual QCString trInclByDepGraph() { - return "Gráfico de los archivos que directa o " + return "Gráfico de los archivos que directa o " "indirectamente incluyen a este archivo:"; } @@ -1028,7 +1029,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! title of the graph legend page */ QCString trLegendTitle() { - return "Leyenda del Gráfico"; + return "Leyenda del Gráfico"; } /*! page explaining how the dot graph's should be interpreted @@ -1037,13 +1038,13 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 virtual QCString trLegendDocs() { return - "Esta página explica como interpretar los gráficos que son generados " + "Esta página explica como interpretar los gráficos que son generados " "por doxygen.<p>\n" "Considere el siguiente ejemplo:\n" "\\code\n" "/*! Clase invisible por truncamiento */\n" "class Invisible { };\n\n" - "/*! Clase truncada, relación de herencia escondida */\n" + "/*! Clase truncada, relación de herencia escondida */\n" "class Truncated : public Invisible { };\n\n" "/* Clase no documentada con comentarios de doxygen */\n" "class Undocumented { };\n\n" @@ -1068,31 +1069,31 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 " Used *m_usedClass;\n" "};\n" "\\endcode\n" - "Si la etiqueta \\c MAX_DOT_GRAPH_HEIGHT en el archivo de configuración " - "tiene valor 240 resultará en el siguiente gráfico:" + "Si la etiqueta \\c MAX_DOT_GRAPH_HEIGHT en el archivo de configuración " + "tiene valor 240 resultará en el siguiente gráfico:" "<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p>\n" - "Las cajas en el gráfico arriba tienen el significado que sigue:\n" + "Las cajas en el gráfico arriba tienen el significado que sigue:\n" "<ul>\n" - "<li>Una caja llena negra representa la estructura o clase para la cuál" - "se generó el gráfico.\n" - "<li>Una caja con borde negro señala una estructura o clase documentada.\n" - "<li>Una caja con borde griz señala una estructura o clase no documentada.\n" - "<li>una caja con borde rojo señala una estructura o clase documentada" - " de la cuál no toda las relaciones de jerarquía/contenido son " - "mostradas. El gráfico sera truncado si este no calza dentro de los " - "límites especificados." + "<li>Una caja llena negra representa la estructura o clase para la cuál" + "se generá el gráfico.\n" + "<li>Una caja con borde negro señala una estructura o clase documentada.\n" + "<li>Una caja con borde griz señala una estructura o clase no documentada.\n" + "<li>una caja con borde rojo señala una estructura o clase documentada" + " de la cuál no toda las relaciones de jerarquÃa/contenido son " + "mostradas. El gráfico sera truncado si este no calza dentro de los " + "lÃmites especificados." "</ul>\n" "Las flechas tienen el siguiente significado:\n" "<ul>\n" - "<li>Una flecha azul oscuro es usada para visualizar una relación herencia publica entre dos clases.\n" + "<li>Una flecha azul oscuro es usada para visualizar una relación herencia publica entre dos clases.\n" "<li>Una flecha verde oscura es usada para herencia protegida.\n" "<li>Una flecha rojo oscura es usada para herencia privada.\n" - "<li>Una flecha segmentada púrpura se usa si la clase es contenida o " - "usada por otra clase. La flecha está etiquetada por la variable " + "<li>Una flecha segmentada púrpura se usa si la clase es contenida o " + "usada por otra clase. La flecha está etiquetada por la variable " "con que se accede a la clase o estructura apuntada. \n" - "<li>Una flecha segmentada amarilla indica la relación entre una instancia template y la clase template de la que se ha instanciado." - " La flecha se etiqueta con los parámetros con que se llama al template.\n" + "<li>Una flecha segmentada amarilla indica la relación entre una instancia template y la clase template de la que se ha instanciado." + " La flecha se etiqueta con los parámetros con que se llama al template.\n" "</ul>\n"; } @@ -1125,7 +1126,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! Used as a section header for KDE-2 IDL methods */ virtual QCString trDCOPMethods() { - return "Métodos DCOP"; + return "Métodos DCOP"; } ////////////////////////////////////////////////////////////////////////// @@ -1141,7 +1142,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! Used as a section header for IDL property documentation */ virtual QCString trPropertyDocumentation() { - return "Documentación de Propiedades"; + return "Documentación de Propiedades"; } ////////////////////////////////////////////////////////////////////////// @@ -1176,7 +1177,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! The description of the package index page */ virtual QCString trPackageListDescription() { - return "Aquí van los paquetes con una breve descripción (si etá disponible):"; + return "Aquà van los paquetes con una breve descripción (si está disponible):"; } /*! The link name in the Quick links header for each page */ @@ -1253,7 +1254,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! Used as header RTF general index */ virtual QCString trRTFGeneralIndex() { - return "Índice"; + return "Ãndice"; } /*! This is used for translation of the word that will possibly @@ -1284,8 +1285,9 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 */ virtual QCString trNamespace(bool first_capital, bool singular) { - QCString result((first_capital ? "Namespace" : "namespace")); + QCString result((first_capital ? "Espacio" : "espacio")); if (!singular) result+="s"; + result+=" de nombres"; return result; } @@ -1306,7 +1308,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 */ virtual QCString trPage(bool first_capital, bool singular) { - QCString result((first_capital ? "Página" : "página")); + QCString result((first_capital ? "Página" : "página")); if (!singular) result+="s"; return result; } @@ -1416,7 +1418,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! Header used for the documentation section of a class' events. */ virtual QCString trEventDocumentation() { - return "Documentación de los Eventos"; + return "Documentación de los Eventos"; } ////////////////////////////////////////////////////////////////////////// @@ -1443,7 +1445,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 */ virtual QCString trStaticPackageMembers() { - return "Funciones Estáticas del Paquete"; + return "Funciones Estáticas del Paquete"; } /*! Used as a heading for a list of Java class variables with package @@ -1459,7 +1461,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 */ virtual QCString trStaticPackageAttribs() { - return "Atributos Estáticos del Paquete"; + return "Atributos Estáticos del Paquete"; } ////////////////////////////////////////////////////////////////////////// @@ -1477,7 +1479,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! Put in front of the call graph for a function. */ virtual QCString trCallGraph() { - return "Gráfico de llamadas para esta función:"; + return "Gráfico de llamadas para esta función:"; } ////////////////////////////////////////////////////////////////////////// @@ -1498,7 +1500,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 */ virtual QCString trSearchResultsTitle() { - return "Resultados de la Búsqueda"; + return "Resultados de la Búsqueda"; } /*! This string is put just before listing the search results. The @@ -1513,15 +1515,15 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { if (numDocuments==0) { - return "Disculpe, no se encontraron documentos que coincidan con su búsqueda."; + return "Disculpe, no se encontraron documentos que coincidan con su búsqueda."; } else if (numDocuments==1) { - return "Se encontró <b>1</b> documento que coincide con su búsqueda."; + return "Se encontró <b>1</b> documento que coincide con su búsqueda."; } else { - return "Se encontraron <b>$num</b> documentos que coinciden con su búsqueda. " + return "Se encontraron <b>$num</b> documentos que coinciden con su búsqueda. " "Se muestran los mejores resultados primero."; } } @@ -1553,13 +1555,13 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 * hierarchy. */ virtual QCString trDirIndex() - { return "Jerarquía de Directorio"; } + { return "JerarquÃa de Directorio"; } /*! This is used as the name of the chapter containing the documentation * of the directories. */ virtual QCString trDirDocumentation() - { return "Documentación de Directorio"; } + { return "Documentación de Directorio"; } /*! This is used as the title of the directory index and also in the * Quick links of an HTML page, to link to the directory hierarchy. @@ -1571,8 +1573,8 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 * and the fact that it is sorted alphabetically per level */ virtual QCString trDirDescription() - { return "La jeraquía de este directorio está ordenada" - " alfabéticamente, de manera aproximada:"; + { return "La jeraquÃa de este directorio está ordenada" + " alfabéticamente, de manera aproximada:"; } /*! This returns the title of a directory page. The name of the @@ -1604,9 +1606,9 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 */ virtual QCString trOverloadText() { - return "Esta es una función miembro sobrecargada que se " + return "Esta es una función miembro sobrecargada que se " "suministra por conveniencia. Difiere de la anterior " - "función solamente en los argumentos que acepta."; + "función solamente en los argumentos que acepta."; } ////////////////////////////////////////////////////////////////////////// @@ -1616,28 +1618,28 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! This is used to introduce a caller (or called-by) graph */ virtual QCString trCallerGraph() { - return "Gráfico de llamadas a esta función:"; + return "Gráfico de llamadas a esta función:"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration values */ virtual QCString trEnumerationValueDocumentation() - { return "Documentación de los valores de la enumeración"; } + { return "Documentación de los valores de la enumeración"; } ////////////////////////////////////////////////////////////////////////// // new since 1.5.4 (mainly for Fortran) ////////////////////////////////////////////////////////////////////////// // De parte de Bartomeu: // No conozco el Fortran, salvo un par de ejercicios en la universidad - // hace muchos años. Por lo tanto, las traducciones son del inglés - // al español, no de un usuario de Fortran que puede que haya cosas que no + // hace muchos años. Por lo tanto, las traducciones son del inglés + // al español, no de un usuario de Fortran que puede que haya cosas que no // traduzca o traduzca de otra forma. Que los usuarios de Fortran disculpen - // y espero se animen a mejorar mi traducción. + // y espero se animen a mejorar mi traducción. /*! header that is put before the list of member subprograms (Fortran). */ virtual QCString trMemberFunctionDocumentationFortran() - { return "Documetación de miembros Function/Subroutine"; } + { return "Documetación de miembros Function/Subroutine"; } /*! This is put above each page as a link to the list of annotated data types (Fortran). */ virtual QCString trCompoundListFortran() @@ -1649,12 +1651,12 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! This is an introduction to the annotated compound list (Fortran). */ virtual QCString trCompoundListDescriptionFortran() - { return "Aquí están los tipos de datos con una breve descripción:"; } + { return "Aquà están los tipos de datos con una breve descripción:"; } /*! This is an introduction to the page with all data types (Fortran). */ virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) { - QCString result="Aquí está una lista de todos "; + QCString result="Aquà tiene una lista de todos "; result+="los miembros de los tipos de datos "; if (!extractAll) { @@ -1663,7 +1665,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 result+="con enlaces a "; if (!extractAll) { - result+="la documentación de la estructura de datos para cada miembro"; + result+="la documentación de la estructura de datos para cada miembro"; } else { @@ -1676,13 +1678,13 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 * annotated compound index (Fortran). */ virtual QCString trCompoundIndexFortran() - { return "Índice de tipos de datos"; } + { return "Ãndice de tipos de datos"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all data types (Fortran). */ virtual QCString trTypeDocumentation() - { return "Documentación de tipos de datos"; } + { return "Documentación de tipos de datos"; } /*! This is used in the documentation of a file as a header before the * list of (global) subprograms (Fortran). @@ -1694,7 +1696,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 * of documentation blocks for subprograms (Fortran) */ virtual QCString trSubprogramDocumentation() - { return "Documentación de Funciones/Subprogramas"; } + { return "Documentación de Funciones/Subprogramas"; } /*! This is used in the documentation of a file/namespace/group before * the list of links to documented compounds (Fortran) @@ -1704,14 +1706,14 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! used as the title of page containing all the index of all modules (Fortran). */ virtual QCString trModulesList() - { return "Lista de módulos"; } + { return "Lista de módulos"; } /*! used as an introduction to the modules list (Fortran) */ virtual QCString trModulesListDescription(bool extractAll) { - QCString result="Lista de todos los módulos "; + QCString result="Lista de todos los módulos "; if (!extractAll) result+="documentados "; - result+="con una breve descripción:"; + result+="con una breve descripción:"; return result; } @@ -1724,13 +1726,13 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 if (isTemplate) result+=" la plantilla de"; switch(compType) { - case ClassDef::Class: result+="l módulo"; break; + case ClassDef::Class: result+="l módulo"; break; case ClassDef::Struct: result+="l tipo"; break; - case ClassDef::Union: result+=" la unión"; break; + case ClassDef::Union: result+=" la unión"; break; case ClassDef::Interface: result+=" la interfaz"; break; case ClassDef::Protocol: result+="l protocolo"; break; - case ClassDef::Category: result+=" la categoría"; break; - case ClassDef::Exception: result+=" la excepción"; break; + case ClassDef::Category: result+=" la categorÃa"; break; + case ClassDef::Exception: result+=" la excepción"; break; } result+=(QCString)clName; return result; @@ -1739,28 +1741,28 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! used as the title of the HTML page of a module (Fortran) */ virtual QCString trModuleReference(const char *namespaceName) { - QCString result="Referencia módulo "; + QCString result="Referencia del módulo "; result+=namespaceName; return result; } /*! This is put above each page as a link to all members of modules. (Fortran) */ virtual QCString trModulesMembers() - { return "Miembros módulo"; } + { return "Miembros del módulo"; } /*! This is an introduction to the page with all modules members (Fortran) */ virtual QCString trModulesMemberDescription(bool extractAll) { - QCString result="Lista de todos los miembros del módulo "; + QCString result="Lista de todos los miembros del módulo "; if (!extractAll) result+="documentados "; result+="con enlaces "; if (extractAll) { - result+="a la documentación del módulo para cada uno:"; + result+="a la documentación del módulo para cada uno:"; } else { - result+="al módulo al que pertenecen:"; + result+="al módulo al que pertenecen:"; } return result; } @@ -1769,7 +1771,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 * index of all modules (Fortran). */ virtual QCString trModulesIndex() - { return "Índice de módulos"; } + { return "Ãndice de módulos"; } /*! This is used for translation of the word that will possibly * be followed by a single name or by a list of names @@ -1777,7 +1779,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 */ virtual QCString trModule(bool first_capital, bool singular) { - QCString result((first_capital ? "Módulo" : "módulo")); + QCString result((first_capital ? "Módulo" : "módulo")); if (!singular) result+="s"; return result; } @@ -1789,16 +1791,16 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 bool single) { // here s is one of " Module", " Struct" or " Union" // single is true implies a single file - QCString result=(QCString)"La documentación para est"; + QCString result=(QCString)"La documentación para est"; switch(compType) { - case ClassDef::Class: result+="e módulo"; break; + case ClassDef::Class: result+="e módulo"; break; case ClassDef::Struct: result+="e tipo"; break; - case ClassDef::Union: result+="a unión"; break; + case ClassDef::Union: result+="a unión"; break; case ClassDef::Interface: result+="e interfaz"; break; case ClassDef::Protocol: result+="e protocolo"; break; - case ClassDef::Category: result+="a categoría"; break; - case ClassDef::Exception: result+="a excepción"; break; + case ClassDef::Category: result+="a categorÃa"; break; + case ClassDef::Exception: result+="a excepción"; break; } result+=" fue generada de"; if (single) result+="l siguiente fichero:"; diff --git a/src/translator_jp.h b/src/translator_jp.h index 31b4c1f..76bd6ea 100644 --- a/src/translator_jp.h +++ b/src/translator_jp.h @@ -16,20 +16,23 @@ */ /* - * translator_jp.h - * + * translator_jp.h + * Updates: * 1.2.5) * First Translation * by Kenji Nagamatsu * 1.2.12) * Update and Shift-Jis(_WIN32) * by Ryunosuke Sato (30-Dec-2001) + * 1.5.8) + * Translation for 1.5.8. + * by Hiroki Iseri (18-Feb-2009) */ #ifndef TRANSLATOR_JP_H #define TRANSLATOR_JP_H -class TranslatorJapanese : public TranslatorAdapter_1_5_4 +class TranslatorJapanese : public Translator { private: /*! The decode() can change euc into sjis */ @@ -101,17 +104,17 @@ class TranslatorJapanese : public TranslatorAdapter_1_5_4 virtual QCString trMemberDataDocumentation() { if( Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return decode("¹½Â¤ÂÎ"); - } + { + return decode("¹½Â¤ÂÎ"); + } else - { - return decode("ÊÑ¿ô"); - } + { + return decode("ÊÑ¿ô"); + } } /*! this is the text of a link put after brief descriptions. */ - virtual QCString trMore() + virtual QCString trMore() { return decode("[¾ÜºÙ]"); } /*! put in the class documentation */ @@ -254,15 +257,15 @@ class TranslatorJapanese : public TranslatorAdapter_1_5_4 { QCString result=decode("¤³¤ì¤Ï"); if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - result+=decode("¥Õ¥£¡¼¥ë¥É¤Î°ìÍ÷¤Ç¤½¤ì¤¾¤ì"); - if (extractAll) result+=decode("¤¬Â°¤·¤Æ¤¤¤ë¹½Â¤ÂÎ/¶¦ÍÑÂÎ"); - } + { + result+=decode("¥Õ¥£¡¼¥ë¥É¤Î°ìÍ÷¤Ç¤½¤ì¤¾¤ì"); + if (extractAll) result+=decode("¤¬Â°¤·¤Æ¤¤¤ë¹½Â¤ÂÎ/¶¦ÍÑÂÎ"); + } else - { - result+=decode("¥¯¥é¥¹¥á¥ó¥Ð¤Î°ìÍ÷¤Ç¡¢¤½¤ì¤¾¤ì"); - if (extractAll) result+=decode("¤¬Â°¤·¤Æ¤¤¤ë¥¯¥é¥¹"); - } + { + result+=decode("¥¯¥é¥¹¥á¥ó¥Ð¤Î°ìÍ÷¤Ç¡¢¤½¤ì¤¾¤ì"); + if (extractAll) result+=decode("¤¬Â°¤·¤Æ¤¤¤ë¥¯¥é¥¹"); + } result+=decode("¤ÎÀâÌÀ¤Ø¥ê¥ó¥¯¤·¤Æ¤¤¤Þ¤¹¡£"); return result; } @@ -1582,5 +1585,188 @@ class TranslatorJapanese : public TranslatorAdapter_1_5_4 virtual QCString trEnumerationValueDocumentation() { return decode("Îóµó·¿"); } + +////////////////////////////////////////////////////////////////////////// +// new since 1.5.4 (mainly for Fortran) +////////////////////////////////////////////////////////////////////////// + + /*! header that is put before the list of member subprograms (Fortran). */ + virtual QCString trMemberFunctionDocumentationFortran() + { return decode("´Ø¿ô/¥µ¥Ö¥ë¡¼¥Á¥ó"); } + + /*! This is put above each page as a link to the list of annotated data types (Fortran). */ + virtual QCString trCompoundListFortran() + { return decode("¥Ç¡¼¥¿·¿"); } + + /*! This is put above each page as a link to all members of compounds (Fortran). */ + virtual QCString trCompoundMembersFortran() + { return decode("¥Ç¡¼¥¿¥Õ¥£¡¼¥ë¥É"); } + + /*! This is an introduction to the annotated compound list (Fortran). */ + virtual QCString trCompoundListDescriptionFortran() + { return decode("¤³¤ì¤Ï¥Ç¡¼¥¿·¿¤Î°ìÍ÷¤Ç¤¹"); } + + /*! This is an introduction to the page with all data types (Fortran). */ + virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) + { + QCString result=decode("¤³¤ì¤Ï"); + result+=decode("¥Õ¥£¡¼¥ë¥É¤Î°ìÍ÷¤Ç¤¹¡£¤½¤ì¤¾¤ì"); + if (extractAll) + { + result+=decode("¤¬Â°¤·¤Æ¤¤¤ë¥Ç¡¼¥¿·¿"); + } + result+=decode("¤ÎÀâÌÀ¤Ø¥ê¥ó¥¯¤·¤Æ¤¤¤Þ¤¹¡£"); + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * annotated compound index (Fortran). + */ + virtual QCString trCompoundIndexFortran() + { return decode("¥Ç¡¼¥¿·¿º÷°ú"); } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all data types (Fortran). + */ + virtual QCString trTypeDocumentation() + { return decode("¥Ç¡¼¥¿·¿"); } + + /*! This is used in the documentation of a file as a header before the + * list of (global) subprograms (Fortran). + */ + virtual QCString trSubprograms() + { return decode("´Ø¿ô/¥µ¥Ö¥ë¡¼¥Á¥ó"); } + + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for subprograms (Fortran) + */ + virtual QCString trSubprogramDocumentation() + { return decode("´Ø¿ô/¥µ¥Ö¥ë¡¼¥Á¥ó"); } + + /*! This is used in the documentation of a file/namespace/group before + * the list of links to documented compounds (Fortran) + */ + virtual QCString trDataTypes() + { return decode("¥Ç¡¼¥¿·¿"); } + + /*! used as the title of page containing all the index of all modules (Fortran). */ + virtual QCString trModulesList() + { return decode("¥â¥¸¥å¡¼¥ë°ìÍ÷"); } + + /*! used as an introduction to the modules list (Fortran) */ + virtual QCString trModulesListDescription(bool extractAll) + { + QCString result=decode("¤³¤ì¤Ï"); + if (!extractAll) result+=decode("À¸À®¤µ¤ì¤¿"); + result+=decode("¥â¥¸¥å¡¼¥ë°ìÍ÷¤Ç¤¹"); + 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=""; + switch(compType) + { + case ClassDef::Class: result+=decode("¥â¥¸¥å¡¼¥ë "); break; + case ClassDef::Struct: result+=decode("TYPE "); break; + case ClassDef::Union: result+=decode("¶¦ÍÑÂÎ "); break; + case ClassDef::Interface: result+=decode("¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹ "); break; + case ClassDef::Protocol: result+=decode("¥×¥í¥È¥³¥ë "); break; + case ClassDef::Category: result+=decode("¥«¥Æ¥´¥ê "); break; + case ClassDef::Exception: result+=decode("Îã³° "); break; + } + if (isTemplate) result += decode("¥Æ¥ó¥×¥ì¡¼¥È "); + result+=(QCString)clName; + return result; + } + /*! used as the title of the HTML page of a module (Fortran) */ + virtual QCString trModuleReference(const char *namespaceName) + { + QCString result=namespaceName; + result+=decode("¥â¥¸¥å¡¼¥ë"); + return result; + } + + /*! This is put above each page as a link to all members of modules. (Fortran) */ + virtual QCString trModulesMembers() + { return decode("¥â¥¸¥å¡¼¥ë¥á¥ó¥Ð"); } + + /*! This is an introduction to the page with all modules members (Fortran) */ + virtual QCString trModulesMemberDescription(bool extractAll) + { + QCString result=decode("¤³¤ì¤Ï¥â¥¸¥å¡¼¥ë¥á¥ó¥Ð°ìÍ÷¤Ç¤¹¡£¤½¤ì¤¾¤ì "); + if (extractAll) + { + result+=decode("°¤·¤Æ¤¤¤ë¥â¥¸¥å¡¼¥ë"); + } + result+=decode("¤ÎÀâÌÀ¤Ø¥ê¥ó¥¯¤·¤Æ¤¤¤Þ¤¹¡£"); + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * index of all modules (Fortran). + */ + virtual QCString trModulesIndex() + { return decode("¥â¥¸¥å¡¼¥ëº÷°ú"); } + + /*! 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*/) + { + return decode("¥â¥¸¥å¡¼¥ë"); + } + /*! 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=""; + switch(compType) + { + case ClassDef::Class: result+=decode("¥â¥¸¥å¡¼¥ë"); break; + case ClassDef::Struct: result+=decode("TYPE"); break; + case ClassDef::Union: result+=decode("¶¦ÍÑÂÎ"); break; + case ClassDef::Interface: result+=decode("¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹"); break; + case ClassDef::Protocol: result+=decode("¥×¥í¥È¥³¥ë"); break; + case ClassDef::Category: result+=decode("¥«¥Æ¥´¥ê"); break; + case ClassDef::Exception: result+=decode("Îã³°"); break; + } + result+=decode(decode("¤ÎÀâÌÀ¤Ï¼¡¤Î¥Õ¥¡¥¤¥ë¤«¤éÀ¸À®¤µ¤ì¤Þ¤·¤¿:")); + 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 = decode("TYPE"); + 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 = decode("¥µ¥Ö¥×¥í¥°¥é¥à"); + return result; + } + + /*! C# Type Constraint list */ + virtual QCString trTypeConstraints() + { + return decode("·¿À©Ìó"); + } + }; + #endif diff --git a/src/translator_se.h b/src/translator_sv.h index 04b74ec..d5ee58c 100644 --- a/src/translator_se.h +++ b/src/translator_sv.h @@ -69,7 +69,7 @@ Problem! #ifndef TRANSLATOR_SE_H #define TRANSLATOR_SE_H -class TranslatorSwedish : public TranslatorAdapter_1_4_6 +class TranslatorSwedish : public Translator { public: @@ -1431,6 +1431,231 @@ class TranslatorSwedish : public TranslatorAdapter_1_4_6 "argument den tar emot."; } +////////////////////////////////////////////////////////////////////////// +// new since 1.4.6 +////////////////////////////////////////////////////////////////////////// + + /*! This is used to introduce a caller (or called-by) graph */ + virtual QCString trCallerGraph() + { + return "Här är katalog-grafen för denna funktion:"; + } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for enumeration values + */ + virtual QCString trEnumerationValueDocumentation() + { + return "Uppräknings-dokumentation"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.5.4 (mainly for Fortran) +////////////////////////////////////////////////////////////////////////// + + /*! header that is put before the list of member subprograms (Fortran). */ + virtual QCString trMemberFunctionDocumentationFortran() + { return "Memlems-function/Subroutins Dokumentation"; } + + /*! This is put above each page as a link to the list of annotated data types (Fortran). */ + virtual QCString trCompoundListFortran() + { return "Datatyplista"; } + + /*! This is put above each page as a link to all members of compounds (Fortran). */ + virtual QCString trCompoundMembersFortran() + { return "Data fält"; } + + /*! This is an introduction to the annotated compound list (Fortran). */ + virtual QCString trCompoundListDescriptionFortran() + { return "Här är datatyperna med en kort beskrivning:"; } + + /*! This is an introduction to the page with all data types (Fortran). */ + virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) + { + QCString result="Här är en lista av alla "; + if (!extractAll) + { + result+="dokumenterade "; + } + result+="datatyps medlemmar"; + result+=" med länkar till "; + if (!extractAll) + { + result+="datastrukturs documentation för varje medlem"; + } + else + { + result+="klasserna de hör till:"; + } + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * annotated compound index (Fortran). + */ + virtual QCString trCompoundIndexFortran() + { return "Datatyps Index"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all data types (Fortran). + */ + virtual QCString trTypeDocumentation() + { return "Dataryps Dokumentation"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) subprograms (Fortran). + */ + virtual QCString trSubprograms() + { return "Funktions/Subroutins"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for subprograms (Fortran) + */ + virtual QCString trSubprogramDocumentation() + { return "Funktion/Subroutin Dokumentation"; } + + /*! This is used in the documentation of a file/namespace/group before + * the list of links to documented compounds (Fortran) + */ + virtual QCString trDataTypes() + { return "Datatyper"; } + + /*! used as the title of page containing all the index of all modules (Fortran). */ + virtual QCString trModulesList() + { return "Modullista"; } + + /*! used as an introduction to the modules list (Fortran) */ + virtual QCString trModulesListDescription(bool extractAll) + { + QCString result="Här är en lista på alla "; + if (!extractAll) result+="dokumenterade "; + result+="moduler med en kort beskrivning:"; + 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; + switch(compType) + { + case ClassDef::Class: result+=" Modul"; break; + case ClassDef::Struct: result+=" Typ"; break; + case ClassDef::Union: result+=" Union"; break; + case ClassDef::Interface: result+=" Gränssnitt"; break; + case ClassDef::Protocol: result+=" Protokoll"; break; + case ClassDef::Category: result+=" Kategori"; break; + case ClassDef::Exception: result+=" Undantag"; break; + } + if (isTemplate) result+=" Mall"; + result+=" Referens"; + return result; + } + /*! used as the title of the HTML page of a module (Fortran) */ + virtual QCString trModuleReference(const char *namespaceName) + { + QCString result=namespaceName; + result+=" Modul Referens"; + return result; + } + + /*! This is put above each page as a link to all members of modules. (Fortran) */ + virtual QCString trModulesMembers() + { return "Modul Medlemmar"; } + + /*! This is an introduction to the page with all modules members (Fortran) */ + virtual QCString trModulesMemberDescription(bool extractAll) + { + QCString result="Här är en lista på alla "; + if (!extractAll) result+="documented "; + result+="modul medlemmar med länkar till "; + if (extractAll) + { + result+="modul dokumentationen för varje medlem:"; + } + else + { + result+="modulerna de hör till:"; + } + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * index of all modules (Fortran). + */ + virtual QCString trModulesIndex() + { return "Modul Index"; } + + /*! 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) + { + return createNoun(first_capital, singular, "modul", "er"); + } + /*! 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) + { + // single is true implies a single file + QCString result=(QCString)"Dokumentationen för denna "; + switch(compType) + { + case ClassDef::Class: result+="modul"; break; + case ClassDef::Struct: result+="typ"; break; + case ClassDef::Union: result+="union"; break; + case ClassDef::Interface: result+="gränssnitt"; break; + case ClassDef::Protocol: result+="protokoll"; break; + case ClassDef::Category: result+="kategori"; break; + case ClassDef::Exception: result+="undantag"; break; + } + result+=" genererades från följade fil"; + if (single) result+=":"; else result+="er:"; + 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) + { + return createNoun(first_capital, singular, "typ", "er"); + } + /*! 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 ? "Subprogram" : "subprogram")); + return result; + } + + /*! C# Type Constraint list */ + virtual QCString trTypeConstraints() + { + return "Typbegränsningar"; + } + +/*---------- For internal use: ----------------------------------------*/ + protected: + /*! For easy flexible-noun implementation. + * \internal + */ + QCString createNoun(bool first_capital, bool singular, + const char* base, const char* plurSuffix) + { + QCString result(base); + if (first_capital) result.at(0) = toupper(result.at(0)); + if (!singular) result+=plurSuffix; + return result; + } + }; diff --git a/src/vhdlscanner.l b/src/vhdlscanner.l index eb435b5..cedf780 100644 --- a/src/vhdlscanner.l +++ b/src/vhdlscanner.l @@ -1426,6 +1426,10 @@ ALLID [^;()\t ] line=line.left(pos); } comment.stripWhiteSpace(); + // must subtract "(" and ")" in comments because they are used for determining the + // end of a port/generic construct + openCount-=comment.contains('('); + closeCount-=comment.contains(')'); if (!comment.stripPrefix("!")) // not a special comment { comment.resize(0); diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index 1ae435e..dd65f5f 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -564,7 +564,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De // enum values are written as part of the enum if (md->memberType()==MemberDef::EnumValue) return; if (md->isHidden()) return; - if (md->name().at(0)=='@') return; // anonymous member + //if (md->name().at(0)=='@') return; // anonymous member // group members are only visible in their group //if (def->definitionType()!=Definition::TypeGroup && md->getGroupDef()) return; |