diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2002-06-02 22:07:26 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2002-06-02 22:07:26 (GMT) |
commit | 4c054d8406f9e4ceb582001c48cf659262774d0c (patch) | |
tree | bd8f2ab65015f145bfdba953a3546c2340641c4a /src | |
parent | 66db5d8497c9a97b4cd09fb5c12f7914cc3e9d91 (diff) | |
download | Doxygen-4c054d8406f9e4ceb582001c48cf659262774d0c.zip Doxygen-4c054d8406f9e4ceb582001c48cf659262774d0c.tar.gz Doxygen-4c054d8406f9e4ceb582001c48cf659262774d0c.tar.bz2 |
Doxygen-1.2.16-20020603
Diffstat (limited to 'src')
-rw-r--r-- | src/code.l | 15 | ||||
-rw-r--r-- | src/doc.l | 263 | ||||
-rw-r--r-- | src/doxygen.cpp | 2 | ||||
-rw-r--r-- | src/translator_pl.h | 279 |
4 files changed, 501 insertions, 58 deletions
@@ -1057,13 +1057,16 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" if (!name.isEmpty() && g_sourceFileDef) { FileName *fn = Doxygen::inputNameDict->find(name); - FileNameIterator fni(*fn); - // for each include name - for (fni.toFirst();!found && (fd=fni.current());++fni) + if (fn) { - // see if this source file actually includes the file - found = g_sourceFileDef->isIncluded(fd->absFilePath()); - //printf(" include file %s found=%d\n",fd->absFilePath().data(),found); + FileNameIterator fni(*fn); + // for each include name + for (fni.toFirst();!found && (fd=fni.current());++fni) + { + // see if this source file actually includes the file + found = g_sourceFileDef->isIncluded(fd->absFilePath()); + //printf(" include file %s found=%d\n",fd->absFilePath().data(),found); + } } } } @@ -39,6 +39,7 @@ #include "language.h" #include "outputlist.h" #include "reflist.h" +#include "page.h" #ifndef WIN32 #include <unistd.h> @@ -105,6 +106,44 @@ static QCString caption; static QStack<char> currentListIndent; // indent stack of all list items static bool insideItemList = FALSE; +struct DocLexerContext +{ + int rule; + int position; + const char *inputString; + YY_BUFFER_STATE lexerState; +}; + +static QStack<DocLexerContext> lexerStack; + +static void pushContext() +{ + DocLexerContext *ctx = new DocLexerContext; + ctx->rule = YY_START; + ctx->position = inputPosition; + ctx->inputString = inputString; + ctx->lexerState = YY_CURRENT_BUFFER; + lexerStack.push(ctx); + yy_switch_to_buffer(yy_create_buffer(docYYin, YY_BUF_SIZE)); +} + +static bool popContext() +{ + if (lexerStack.isEmpty()) return TRUE; + DocLexerContext *ctx = lexerStack.pop(); + inputPosition = ctx->position; + inputString = ctx->inputString; + yy_delete_buffer(YY_CURRENT_BUFFER); + yy_switch_to_buffer(ctx->lexerState); + BEGIN(ctx->rule); + delete ctx; + return TRUE; +} + +static QCString copyDocString; +static QCString copyDocScope; +static QList<void> copyDocDefList; + //----------------------------------------------------------------------------- static void initParser() @@ -926,6 +965,119 @@ static void checkArgName(const QCString &name,bool isParam) } /* ----------------------------------------------------------------- */ + +bool findDocsForMemberOrCompound(const char *commandName, + QCString *pDoc, + Definition **pDef) +{ + pDoc->resize(0); + *pDef=0; + QCString cmdArg=commandName; + int l=cmdArg.length(); + if (l==0) return FALSE; + + int scopeOffset=copyDocScope.length(); + do // for each scope + { + int funcStart=cmdArg.find('('); + if (funcStart==-1) funcStart=l; + int lastScopeStart=cmdArg.findRev("::",funcStart); + int lastScopeEnd = lastScopeStart==-1 ? 0 : lastScopeStart+2; + QCString scope=cmdArg.left(QMAX(lastScopeStart,0)); + QCString name=cmdArg.mid(lastScopeEnd,funcStart-lastScopeEnd); + QCString args=cmdArg.right(l-funcStart); + + if (scope.isEmpty()) + { + if (scopeOffset>0) + { + scope=copyDocScope.left(scopeOffset); + } + } + else + { + if (scopeOffset>0) + { + scope.prepend(copyDocScope.left(scopeOffset)+"::"); + } + } + //printf("findDocsForMemberOrCompound: scope=`%s' name=`%s' arg=`%s'\n",scope.data(),name.data(),args.data()); + + // try if the link is to a member + MemberDef *md=0; + ClassDef *cd=0; + FileDef *fd=0; + NamespaceDef *nd=0; + GroupDef *gd=0; + PageInfo *pi=0; + bool found = getDefs(scope,name,args,md,cd,fd,nd,gd,FALSE,0,TRUE); + if (found && md) + { + *pDoc=md->documentation(); + *pDef=md; + return TRUE; + } + + QCString fullName=cmdArg; + if (scopeOffset>0) + { + fullName.prepend(copyDocScope.left(scopeOffset)+"::"); + } + + // try class, namespace, group, page, file reference + cd = Doxygen::classSDict[fullName]; + if (cd) // class + { + *pDoc=cd->documentation(); + *pDef=cd; + return TRUE; + } + nd = Doxygen::namespaceSDict[fullName]; + if (nd) // namespace + { + *pDoc=nd->documentation(); + *pDef=nd; + return TRUE; + } + gd = Doxygen::groupSDict[cmdArg]; + if (gd) // group + { + *pDoc=gd->documentation(); + *pDef=gd; + return TRUE; + } + pi = Doxygen::pageSDict->find(cmdArg); + if (pi) // page + { + *pDoc=pi->doc; + *pDef=(Definition *)pi; + return TRUE; + } + bool ambig; + fd = findFileDef(Doxygen::inputNameDict,cmdArg,ambig); + if (fd && !ambig) // file + { + *pDoc=fd->documentation(); + *pDef=fd; + return TRUE; + } + + if (scopeOffset==0) + { + scopeOffset=-1; + } + else + { + scopeOffset = copyDocScope.findRev("::",scopeOffset-1); + if (scopeOffset==-1) scopeOffset=0; + } + } while (scopeOffset>0); + + + return FALSE; +} + +/* ----------------------------------------------------------------- */ #undef YY_INPUT #define YY_INPUT(buf,result,max_size) result=yyread(buf,max_size); @@ -943,7 +1095,6 @@ static int yyread(char *buf,int max_size) //ATTR ((({BN}+[^\>]+)/">")?) %} - CMD ("\\"|"@") BN [ \t\n\r] BL [ \t\r]*"\n" @@ -1012,6 +1163,7 @@ OPARG "("[a-z_A-Z0-9,\<\> \t\*\&]*")" OPNORM {OPNEW}|{OPDEL}|"+"|"-"|"*"|"/"|"%"|"^"|"&"|"|"|"~"|"!"|"="|"<"|">"|"+="|"-="|"*="|"/="|"%="|"^="|"&="|"|="|"<<"|">>"|"<<="|">>="|"=="|"!="|"<="|">="|"&&"|"||"|"++"|"--"|","|"->*"|"->"|"[]"|"()" OPCAST {B}+[^(\r\n.,]+ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) +LINKMASK [a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))? %option noyywrap @@ -1064,6 +1216,9 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) %x DocDotFile %x DocDotFileOpt %x DocSkipLanguage +%x DocCopyFind +%x DocCopyArg +%x DocCopySkipVerb %% @@ -1219,13 +1374,12 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) <DocScan>{CMD}"link"/{BN} { BEGIN( DocLink ); } <DocScan>"{"{CMD}"link"{BN}+ { BEGIN( DocJavaLink ); } <DocSkipWord>[a-z_A-Z0-9.:()]+ { BEGIN( DocScan ); } -<DocLink>[a-z_A-Z0-9:#.,~&*/\[\]<>()\-\+]+({B}*("const"|"volatile"))? { // TODO: support operators as well! +<DocLink>{LINKMASK} { // TODO: support operators as well! linkRef = stripKnownExtensions(yytext); linkText = ""; BEGIN( DocLinkText ); } -<DocJavaLink>([a-z_A-Z0-9]+".")+ { /* Skip scope prefix (TODO: fix) */ } -<DocJavaLink>([a-z_A-Z0-9]*"#")?[a-z_A-Z0-9]+("("[a-z_A-Z0-9.,:~&*()\ \[\]]*")")?({B}*("const"|"volatile"))? { // TODO: support operators as well! +<DocJavaLink>{LINKMASK} { // TODO: support operators as well! linkRef = yytext; linkText = ""; BEGIN( DocJavaLinkText ); @@ -2663,6 +2817,51 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) <DocCode,DocEmphasis,DocBold,DocScan,Text>. { outDoc->writeChar(*yytext); } +<DocCopyFind>{CMD}"copydoc"{B}+ { // found copydoc command + BEGIN(DocCopyArg); + } +<DocCopyFind>{CMD}"verbatim"/[^a-z_A-Z0-9] { // skip verbatim sections + copyDocString+=yytext; + BEGIN(DocCopySkipVerb); + } +<DocCopyFind>[^@\\\n]+ { copyDocString+=yytext; } +<DocCopyFind>"\\\\"|"@@" { copyDocString+=yytext; /* skip escaped commands */ } +<DocCopySkipVerb>[^@\\\n]+ { copyDocString+=yytext; } +<DocCopySkipVerb>{CMD}"endverbatim" { copyDocString+=yytext; + BEGIN(DocCopyFind); + } +<DocCopyFind,DocCopySkipVerb>\n { copyDocString+=yytext; } +<DocCopyFind,DocCopySkipVerb>. { copyDocString+=yytext; } +<DocCopyArg>{LINKMASK} { //printf("found @copydoc with arg `%s'\n",yytext); + QCString doc; + Definition *def; + if (findDocsForMemberOrCompound(yytext,&doc,&def)) + { + //printf("found docs `%s'\n",doc.data()); + if (copyDocDefList.findRef(def)!=-1) + { + warn(yyFileName,yyLineNr,"Recursive @copydoc relation!"); + } + else + { + copyDocDefList.append(def); + pushContext(); + inputString = doc; + inputPosition = 0; + BEGIN(DocCopyFind); + docYYlex(); + popContext(); + copyDocDefList.remove(def); + BEGIN(DocCopyFind); + } + } + else // reference not found! + { + warn(yyFileName,yyLineNr,"Argument `%s' of @copydoc command " + "could not be resolved!",yytext); + } + BEGIN(DocCopyFind); + } <*>\n { yyLineNr++ ; } <*>. @@ -2672,57 +2871,33 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) void scanString(const char *s) { - const char *oldInputString = inputString; - int oldInputPosition = inputPosition; - int oldRule = YY_START; - YY_BUFFER_STATE oldBuffer = YY_CURRENT_BUFFER; - yy_switch_to_buffer(yy_create_buffer(docYYin, YY_BUF_SIZE)); + pushContext(); inputString = s; inputPosition = 0; BEGIN( Text ); docYYlex(); - yy_delete_buffer(YY_CURRENT_BUFFER); - yy_switch_to_buffer(oldBuffer); - inputString = oldInputString; - inputPosition = oldInputPosition; - BEGIN( oldRule ); + popContext(); } void scanDoc(const char *s) { - const char *oldInputString = inputString; - int oldInputPosition = inputPosition; - int oldRule = YY_START; - YY_BUFFER_STATE oldBuffer = YY_CURRENT_BUFFER; - yy_switch_to_buffer(yy_create_buffer(docYYin, YY_BUF_SIZE)); + pushContext(); inputString = s; inputPosition = 0; BEGIN( DocScan ); docYYlex(); - yy_delete_buffer(YY_CURRENT_BUFFER); - yy_switch_to_buffer(oldBuffer); - inputString = oldInputString; - inputPosition = oldInputPosition; - BEGIN( oldRule ); + popContext(); } void internalParseDocument(const char *s) { if (s==0) return; - const char *oldInputString = inputString; - int oldInputPosition = inputPosition; - int oldRule = YY_START; - YY_BUFFER_STATE oldBuffer = YY_CURRENT_BUFFER; - yy_switch_to_buffer(yy_create_buffer(docYYin, YY_BUF_SIZE)); + pushContext(); inputString = s; inputPosition = 0; BEGIN( DocScan ); docYYlex(); - yy_delete_buffer(YY_CURRENT_BUFFER); - yy_switch_to_buffer(oldBuffer); - inputString = oldInputString; - inputPosition = oldInputPosition; - BEGIN( oldRule ); + popContext(); } //---------------------------------------------------------------------------- @@ -2790,9 +2965,27 @@ void parseDocument(OutputDocInterface &od,const QCString &docString) //---------------------------------------------------------------------------- +// in this pass all @copydoc commands are resolved. +void resolveCopyDocCommands(const char *scope,QCString &docString) +{ + copyDocString.resize(0); + copyDocScope = scope; + inputString = docString; + inputPosition = 0; + docYYrestart( docYYin ); + BEGIN( DocCopyFind ); + docYYlex(); + docString = copyDocString; +} + +//---------------------------------------------------------------------------- + void parseDoc(OutputDocInterface &od,const char *fileName,int startLine, - const char *clName,MemberDef *md,const QCString &docString) + const char *clName,MemberDef *md,const QCString &docStr) { + QCString docString=docStr; + resolveCopyDocCommands(clName,docString); + //printf("parseDoc(file=`%s',line=%d)\n",fileName,startLine); initParser(); initParseCodeContext(); diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 76a9a2d..20a7b57 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -2166,6 +2166,7 @@ static void findFriends() fmd->setBodyDef(mmd->getBodyDef()); fmd->setBodyMember(mmd); } + mmd->setDocsForDefinition(fmd->isDocsForDefinition()); } } } @@ -7419,7 +7420,6 @@ void parseInput() msg("Adding todo/test/bug list items...\n"); addListReferences(); - } void generateOutput() diff --git a/src/translator_pl.h b/src/translator_pl.h index bee4553..0e3ce6b 100644 --- a/src/translator_pl.h +++ b/src/translator_pl.h @@ -13,6 +13,8 @@ * Documents produced by Doxygen are derivative works derived from the * input used in their production; they are not affected by this license. * + * Polish translation was updated to version 1.2.16 by + * Piotr Kaminski (Piotr.Kaminski@ctm.gdynia.pl) */ #ifndef TRANSLATOR_PL_H @@ -20,7 +22,7 @@ #include "translator_adapter.h" -class TranslatorPolish : public TranslatorAdapter_1_2_1 +class TranslatorPolish : public Translator { public: @@ -48,6 +50,10 @@ class TranslatorPolish : public TranslatorAdapter_1_2_1 QCString latexBabelPackage() { return "polish"; } + /*! return the language charset. This will be used for the HTML output */ + virtual QCString idLanguageCharset() + { return "iso-8859-2"; } + // --- Language translation methods ------------------- /*! used in the compound documentation before a list of related functions. */ @@ -457,7 +463,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_1 /*! this text is generated when the \\return command is used. */ QCString trReturns() - { return "Powroty"; } + { return "Zwraca"; } /*! this text is generated when the \\sa command is used. */ QCString trSeeAlso() @@ -479,14 +485,14 @@ class TranslatorPolish : public TranslatorAdapter_1_2_1 /*! used as the title of page containing all the index of all namespaces. */ QCString trNamespaceList() - { return "Lista Obszarów Nazw"; } + { return "Lista Przestrzeni Nazw"; } /*! used as an introduction to the namespace list */ QCString trNamespaceListDescription(bool extractAll) { QCString result="Tutaj znajdują się wszystkie "; if (!extractAll) result+="udokumentowane "; - result+="obszary nazw wraz z ich krótkimi opisami:"; + result+="przestrzenie nazw wraz z ich krótkimi opisami:"; return result; } @@ -540,7 +546,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_1 /*! used as the title of the HTML page of a namespace */ QCString trNamespaceReference(const char *namespaceName) { - QCString result="Referencje Obszaru Nazw "; + QCString result="Referencje Przestrzeni Nazw "; result+=namespaceName; return result; } @@ -626,7 +632,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_1 /*! This is put above each page as a link to all members of namespaces. */ QCString trNamespaceMembers() - { return "Składowe Obszaru Nazw"; } + { return "Składowe Przestrzeni Nazw"; } /*! This is an introduction to the page with all namespace members */ QCString trNamespaceMemberDescription(bool extractAll) @@ -635,22 +641,22 @@ class TranslatorPolish : public TranslatorAdapter_1_2_1 if (!extractAll) result+="udokumentowanych "; result+="składowych wraz z odnośnikami do "; if (extractAll) - result+="dokumentacji obszarów nazw dla każdej składowej:"; + result+="dokumentacji przestrzeni nazw dla każdej składowej:"; else - result+="obszarów nazw do których składowe te należą:"; + result+="przestrzeni nazw do których składowe te należą:"; return result; } /*! This is used in LaTeX as the title of the chapter with the * index of all namespaces. */ QCString trNamespaceIndex() - { return "Indeks Obszarów Nazw"; } + { return "Indeks Przestrzeni Nazw"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all namespaces. */ QCString trNamespaceDocumentation() - { return "Dokumentacja Obszarów Nazw"; } + { return "Dokumentacja Przestrzeni Nazw"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990522 @@ -660,7 +666,7 @@ class TranslatorPolish : public TranslatorAdapter_1_2_1 * namespaces in a file. */ QCString trNamespaces() - { return "Obszary Nazw"; } + { return "Przestrzenie Nazw"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990728 @@ -940,13 +946,13 @@ class TranslatorPolish : public TranslatorAdapter_1_2_1 "jest ustawiony na 200, odniesie to rezultat w następującym wykresie:" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p>\n" - "Pudełka w powyższym wykresie mają następujące znaczenie:\n" + "Prostokąty w powyższym wykresie mają następujące znaczenie:\n" "<ul>\n" - "<li>Wypełnione czarne pudełko reprezentuje strukturę lub klasę dla " + "<li>Wypełniony czarny prostokąt reprezentuje strukturę lub klasę dla " "której został wygenerowany wykres.\n" - "<li>Pudełko z czarną obwolutą oznacza udokumentowaną strukturę lub klasę.\n" - "<li>Pudełko z szarą obwolutą oznacza nieudokumentowaną strukturę lub klasę.\n" - "<li>Pudełko z czerwoną obwolutą oznacza udokumentowaną strukturę lub klasę dla\n" + "<li>Prostokąt z czarną obwolutą oznacza udokumentowaną strukturę lub klasę.\n" + "<li>Prostokąt z szarą obwolutą oznacza nieudokumentowaną strukturę lub klasę.\n" + "<li>Prostokąt z czerwoną obwolutą oznacza udokumentowaną strukturę lub klasę dla\n" "której nie są pokazane wszystkie relacje dziedziczenia/zawierania. Wykres jest " "okrojony, jeśli nie mieści się w określonych brzegach." "</ul>\n" @@ -981,6 +987,247 @@ class TranslatorPolish : public TranslatorAdapter_1_2_1 { return "Lista Testu"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.1 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a section header for KDE-2 IDL methods */ + virtual QCString trDCOPMethods() + { + return "Metody DCOP"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.2 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a section header for IDL properties */ + virtual QCString trProperties() + { + return "Właściwości"; + } + /*! Used as a section header for IDL property documentation */ + virtual QCString trPropertyDocumentation() + { + return "Dokumentacja Właściwości"; + } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.4 +////////////////////////////////////////////////////////////////////////// + + /*! Used for Java interfaces in the summary section of Java packages */ + virtual QCString trInterfaces() + { + return "Interfejsy"; + } + /*! Used for Java classes in the summary section of Java packages */ + virtual QCString trClasses() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Struktury Danych"; + } + else + { + return "Klasy"; + } + } + /*! Used as the title of a Java package */ + virtual QCString trPackage(const char *name) + { + return (QCString)"Pakiet "+name; + } + /*! Title of the package index page */ + virtual QCString trPackageList() + { + return "Lista Pakietów"; + } + /*! The description of the package index page */ + virtual QCString trPackageListDescription() + { + return "Oto lista pakietów wraz z krótkim opisem (o ile jest dostępny):"; + } + /*! The link name in the Quick links header for each page */ + virtual QCString trPackages() + { + return "Pakiety"; + } + /*! Used as a chapter title for Latex & RTF output */ + virtual QCString trPackageDocumentation() + { + return "Dokumentacja Pakietu"; + } + /*! Text shown before a multi-line define */ + virtual QCString trDefineValue() + { + return "Wartość:"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.5 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a marker that is put before a \\bug item */ + virtual QCString trBug() + { + return "Błąd"; + } + /*! Used as the header of the bug list */ + virtual QCString trBugList() + { + return "Lista błędów"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.6-20010422 +////////////////////////////////////////////////////////////////////////// + + /*! Used as ansicpg for RTF file */ + virtual QCString trRTFansicp() + { + return "1250"; + } + + /*! Used as ansicpg for RTF fcharset */ + virtual QCString trRTFCharSet() + { + return "238"; + } + + /*! Used as header RTF general index */ + virtual QCString trRTFGeneralIndex() + { + return "Indeks"; + } + + /*! 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 ? "Klas" : "klas")); + result+=(singular ? "a" : "y"); + 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 ? "Plik" : "plik")); + if (!singular) result+="i"; + 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 ? "Przestrze" : "przestrze")); + result+=(singular ? "ń" : "nie"); + result+=" nazw"; + 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 ? "Grupa" : "grupa")); + result+=(singular ? "a" : "y"); + 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 ? "Ston" : "stron")); + result+=(singular ? "a" : "y"); + 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 ? "Składow" : "składow")); + result+=(singular ? "a" : "e"); + 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 trField(bool first_capital, bool singular) + { + QCString result((first_capital ? "Pol" : "pol")); + result+=(singular ? "e" : "a"); + 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 ? "Global" : "global")); + result+=(singular ? "ny" : "ne"); + 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 ? "Auto" : "auto")); + result += (singular) ? "r" : "rzy"; + return result; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.11 +////////////////////////////////////////////////////////////////////////// + + /*! This text is put before the list of members referenced by a member + */ + virtual QCString trReferences() + { + return "Wskazuje na"; + } + + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.13 +////////////////////////////////////////////////////////////////////////// + + + virtual QCString trImplementedFromList(int numEntries) + { + return "Implementuje "+trWriteList(numEntries)+"."; + } + + virtual QCString trImplementedInList(int numEntries) + { + return "Implementowany w "+trWriteList(numEntries)+"."; + } }; |