diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/classdef.cpp | 22 | ||||
-rw-r--r-- | src/classdef.h | 1 | ||||
-rw-r--r-- | src/config.h | 3 | ||||
-rw-r--r-- | src/config.l | 23 | ||||
-rw-r--r-- | src/definition.h | 2 | ||||
-rw-r--r-- | src/doc.l | 9 | ||||
-rw-r--r-- | src/dot.cpp | 2 | ||||
-rw-r--r-- | src/doxygen.cpp | 58 | ||||
-rw-r--r-- | src/doxygen.h | 1 | ||||
-rw-r--r-- | src/doxygen.pro.in | 2 | ||||
-rw-r--r-- | src/entry.cpp | 6 | ||||
-rw-r--r-- | src/entry.h | 6 | ||||
-rw-r--r-- | src/filedef.cpp | 6 | ||||
-rw-r--r-- | src/filedef.h | 7 | ||||
-rw-r--r-- | src/index.cpp | 6 | ||||
-rw-r--r-- | src/language.cpp | 5 | ||||
-rw-r--r-- | src/latexgen.cpp | 3 | ||||
-rw-r--r-- | src/memberdef.cpp | 2 | ||||
-rw-r--r-- | src/memberdef.h | 4 | ||||
-rw-r--r-- | src/memberlist.cpp | 3 | ||||
-rw-r--r-- | src/rtfgen.cpp | 10 | ||||
-rw-r--r-- | src/scanner.l | 101 | ||||
-rw-r--r-- | src/translator.h | 93 | ||||
-rw-r--r-- | src/translator_cz.h | 434 | ||||
-rw-r--r-- | src/translator_hr.h | 121 | ||||
-rw-r--r-- | src/translator_kr.h | 803 | ||||
-rw-r--r-- | src/util.cpp | 34 | ||||
-rw-r--r-- | src/util.h | 1 |
28 files changed, 1319 insertions, 449 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp index 84e047d..a54724c 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -178,6 +178,7 @@ void ClassDef::addMembersToMemberGroup() addMemberListToGroup(&pubAttribs); addMemberListToGroup(&pubSlots); addMemberListToGroup(&signals); + addMemberListToGroup(&dcopMethods); addMemberListToGroup(&pubStaticMembers); addMemberListToGroup(&pubStaticAttribs); addMemberListToGroup(&proTypes); @@ -219,11 +220,15 @@ void ClassDef::insertMember(MemberDef *md) { switch (md->memberType()) { - case MemberDef::Signal: + case MemberDef::Signal: // Qt specific signals.append(md); md->setSectionList(&signals); break; - case MemberDef::Slot: + case MemberDef::DCOP: // KDE2 specific + dcopMethods.append(md); + md->setSectionList(&dcopMethods); + break; + case MemberDef::Slot: // Qt specific switch (md->protection()) { case Protected: @@ -358,7 +363,8 @@ void ClassDef::insertMember(MemberDef *md) { switch (md->memberType()) { - case MemberDef::Signal: + case MemberDef::Signal: // fall through + case MemberDef::DCOP: if (Config::sortMembersFlag) functionMembers.inSort(md); else @@ -511,6 +517,7 @@ void ClassDef::computeAnchors() setAnchors('s',&pubTypes); setAnchors('t',&proTypes); setAnchors('u',&priTypes); + setAnchors('v',&dcopMethods); } void ClassDef::distributeMemberGroupDocumentation() @@ -857,6 +864,8 @@ void ClassDef::writeDocumentation(OutputList &ol) pubAttribs.writeDeclarations(ol,this,0,0,0,theTranslator->trPublicAttribs(),0); pubSlots.writeDeclarations(ol,this,0,0,0,theTranslator->trPublicSlots(),0); signals.writeDeclarations(ol,this,0,0,0,theTranslator->trSignals(),0); + dcopMethods.writeDeclarations(ol,this,0,0,0,theTranslator->trDCOPMethods(),0); + // static public members pubStaticMembers.writeDeclarations(ol,this,0,0,0,theTranslator->trStaticPublicMembers(),0); pubStaticAttribs.writeDeclarations(ol,this,0,0,0,theTranslator->trStaticPublicAttribs(),0); @@ -1066,7 +1075,7 @@ void ClassDef::writeDocumentation(OutputList &ol) ol.docify(stripFromPath(path)); } - if (fd->generateSource() || (!fd->isReference() && Config::sourceBrowseFlag)) + if (fd->generateSourceFile()) { ol.writeObjectLink(0,fd->sourceName(),0,fd->name()); } @@ -1340,6 +1349,7 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup) pubAttribs.writePlainDeclarations(ol,this,0,0,0); pubSlots.writePlainDeclarations(ol,this,0,0,0); signals.writePlainDeclarations(ol,this,0,0,0); + dcopMethods.writePlainDeclarations(ol,this,0,0,0); pubStaticMembers.writePlainDeclarations(ol,this,0,0,0); pubStaticAttribs.writePlainDeclarations(ol,this,0,0,0); proTypes.writePlainDeclarations(ol,this,0,0,0); @@ -1856,7 +1866,8 @@ void ClassDef::generateXML(QTextStream &t) } int numMembers = pubTypes.count()+pubMembers.count()+pubAttribs.count()+ - pubSlots.count()+signals.count()+pubStaticMembers.count()+ + pubSlots.count()+signals.count()+dcopMethods.count()+ + pubStaticMembers.count()+ pubStaticAttribs.count()+proTypes.count()+proMembers.count()+ proAttribs.count()+proSlots.count()+proStaticMembers.count()+ proStaticAttribs.count()+priTypes.count()+priMembers.count()+ @@ -1870,6 +1881,7 @@ void ClassDef::generateXML(QTextStream &t) generateXMLSection(t,&pubAttribs,"public-attrib"); generateXMLSection(t,&pubSlots,"public-slot"); generateXMLSection(t,&signals,"signal"); + generateXMLSection(t,&dcopMethods,"dcop-func"); generateXMLSection(t,&pubStaticMembers,"public-static-func"); generateXMLSection(t,&pubStaticAttribs,"public-static-attrib"); generateXMLSection(t,&proTypes,"protected-type"); diff --git a/src/classdef.h b/src/classdef.h index 168d731..39c29d1 100644 --- a/src/classdef.h +++ b/src/classdef.h @@ -167,6 +167,7 @@ class ClassDef : public Definition MemberList related; MemberList signals; MemberList friends; + MemberList dcopMethods; /* member list by types */ MemberList constructors; diff --git a/src/config.h b/src/config.h index 7160451..bb5449e 100644 --- a/src/config.h +++ b/src/config.h @@ -1,4 +1,4 @@ -/* This file was generated by configgen on Fri Aug 25 21:22:11 2000 +/* This file was generated by configgen on Sat Sep 2 10:51:52 2000 * from config_templ.h * * DO NOT EDIT! @@ -64,6 +64,7 @@ struct Config static bool inheritDocsFlag; // inheritance of documentation enabled? static bool inlineInfoFlag; // show info about inline members? static bool sortMembersFlag; // sort members alphabetically? + static bool distributeDocFlag; // distribute docs over member group? static int tabSize; // number of spaces in a tab static QStrList sectionFilterList; // list of section filters that are enabled static bool generateTodoList; // do we want a todo list? diff --git a/src/config.l b/src/config.l index 1965934..5a6f318 100644 --- a/src/config.l +++ b/src/config.l @@ -1,4 +1,4 @@ -/* This file was generated by configgen on Fri Aug 25 21:22:11 2000 +/* This file was generated by configgen on Sat Sep 2 10:51:52 2000 * from config_templ.l * * DO NOT EDIT! @@ -101,6 +101,7 @@ bool Config::autoBriefFlag = TRUE; bool Config::inheritDocsFlag = TRUE; bool Config::inlineInfoFlag = TRUE; bool Config::sortMembersFlag = TRUE; +bool Config::distributeDocFlag = FALSE; int Config::tabSize = 8; QStrList Config::sectionFilterList; bool Config::generateTodoList = TRUE; @@ -357,6 +358,7 @@ static void readIncludeFile(const char *incName) <Start>"INHERIT_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::inheritDocsFlag; } <Start>"INLINE_INFO"[ \t]*"=" { BEGIN(GetBool); b=&Config::inlineInfoFlag; } <Start>"SORT_MEMBER_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::sortMembersFlag; } +<Start>"DISTRIBUTE_GROUP_DOC"[ \t]*"=" { BEGIN(GetBool); b=&Config::distributeDocFlag; } <Start>"TAB_SIZE"[ \t]*"=" { BEGIN(GetString); s=&tabSizeString; s->resize(0); } <Start>"ENABLED_SECTIONS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::sectionFilterList; l->clear(); elemStr=""; } <Start>"ENABLED_SECTIONS"[ \t]*"+=" { BEGIN(GetStrList); l=&Config::sectionFilterList; elemStr=""; } @@ -587,6 +589,7 @@ void dumpConfig() printf("inheritDocsFlag=`%d'\n",Config::inheritDocsFlag); printf("inlineInfoFlag=`%d'\n",Config::inlineInfoFlag); printf("sortMembersFlag=`%d'\n",Config::sortMembersFlag); + printf("distributeDocFlag=`%d'\n",Config::distributeDocFlag); printf("tabSize=`%d'\n",Config::tabSize); { char *is=Config::sectionFilterList.first(); @@ -824,6 +827,7 @@ void Config::init() Config::inheritDocsFlag = TRUE; Config::inlineInfoFlag = TRUE; Config::sortMembersFlag = TRUE; + Config::distributeDocFlag = FALSE; Config::tabSize = 8; Config::sectionFilterList.clear(); Config::generateTodoList = TRUE; @@ -1011,7 +1015,7 @@ void writeTemplateConfig(QFile *f,bool sl) t << "# information to generate all constant output in the proper language. \n"; t << "# The default language is English, other supported languages are: \n"; t << "# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, \n"; - t << "# Spanish, Russian, Croatian, Polish, and Portuguese.\n"; + t << "# Korean, Hungarian, Spanish, Russian, Croatian, Polish, and Portuguese.\n"; t << "\n"; } t << "OUTPUT_LANGUAGE = "; @@ -1280,6 +1284,18 @@ void writeTemplateConfig(QFile *f,bool sl) if (!sl) { t << "\n"; + t << "# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC \n"; + t << "# tag is set to YES, then doxygen will reuse the documentation of the first \n"; + t << "# member in the group (if any) for the other members of the group. By default \n"; + t << "# all members of a group must be documented explicitly.\n"; + t << "\n"; + } + t << "DISTRIBUTE_GROUP_DOC = "; + writeBoolValue(t,Config::distributeDocFlag); + t << "\n"; + if (!sl) + { + t << "\n"; t << "# The TAB_SIZE tag can be used to set the number of spaces in a tab. \n"; t << "# Doxygen uses this value to replace tabs by spaces in code fragments. \n"; t << "\n"; @@ -1323,10 +1339,11 @@ void writeTemplateConfig(QFile *f,bool sl) { t << "\n"; t << "# This tag can be used to specify a number of aliases that acts \n"; - t << "# as commands in the documentation. An alias has the form \"\\name=value\". \n"; + t << "# as commands in the documentation. An alias has the form \"name=value\". \n"; t << "# For example adding \"sideeffect=\\par Side Effects:\\n\" will allow you to \n"; t << "# put the command \\sideeffect (or @sideeffect) in the documentation, which \n"; t << "# will result in a user defined paragraph with heading \"Side Effects:\". \n"; + t << "# You can put \\n's in the value part of an alias to insert newlines. \n"; t << "# Predefined commands cannot be overwritten using aliases. \n"; t << "\n"; } diff --git a/src/definition.h b/src/definition.h index bc8c6c7..e8f71d7 100644 --- a/src/definition.h +++ b/src/definition.h @@ -69,7 +69,7 @@ class Definition virtual bool isLinkableInProject() = 0; virtual bool isLinkable() = 0; - bool isReference() { return !ref.isEmpty(); } + bool isReference() const { return !ref.isEmpty(); } void setReference(const char *r) { ref=r; } QCString getReference() { return ref; } @@ -2043,7 +2043,14 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"") } else { - outDoc->newParagraph(); + if (insidePre) + { + outDoc->docify(yytext); + } + else + { + outDoc->newParagraph(); + } } if (inBlock()) endBlock(); } diff --git a/src/dot.cpp b/src/dot.cpp index 3b61864..157b62a 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -1205,7 +1205,7 @@ void DotInclDepGraph::buildGraph(DotNode *n,FileDef *fd,int distance) { in = bfd->absFilePath(); doc = bfd->isLinkableInProject(); - src = bfd->generateSource() || (!bfd->isReference() && Config::sourceBrowseFlag); + src = bfd->generateSourceFile(); } if (doc || src) { diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 981d7d6..56c45ba 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -90,6 +90,7 @@ FileNameDict *includeNameDict; // include names FileNameDict *exampleNameDict; // examples FileNameDict *imageNameDict; // images StringDict typedefDict(1009); // all typedefs +StringDict namespaceAliasDict(257); // all namespace aliases GroupDict groupDict(257); // all groups FormulaDict formulaDict(1009); // all formulas FormulaDict formulaNameDict(1009); // the label name of all formulas @@ -502,7 +503,7 @@ static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root) // generate code for header { cd->setIncludeFile(fd,iName,local); - fd->setGenerateSource(TRUE); + //fd->setGenerateSource(TRUE); } else // put #include in the class documentation without link { @@ -526,7 +527,7 @@ static bool addNamespace(Entry *root,ClassDef *cd) //printf("addNameSpace() trying: %s\n",e->name.data()); QCString nsName = stripAnnonymousNamespaceScope(e->name); if (!nsName.isEmpty() && nsName.at(0)!='@' && - (nd=namespaceDict[nsName]) + (nd=getResolvedNamespace(nsName)) ) { cd->setNamespace(nd); @@ -688,7 +689,7 @@ static void buildClassList(Entry *root) // namespace is part of the class name if (!found && !namespaceName.isEmpty()) { - NamespaceDef *nd = namespaceDict[namespaceName]; + NamespaceDef *nd = getResolvedNamespace(namespaceName); if (nd) { cd->setNamespace(nd); @@ -850,7 +851,7 @@ static void findUsingDirectives(Entry *root) nsName=root->parent->name.copy(); if (!nsName.isEmpty()) { - nd = namespaceDict[nsName]; + nd = getResolvedNamespace(nsName); } } @@ -864,7 +865,7 @@ static void findUsingDirectives(Entry *root) QCString scope=scopeOffset>0 ? nsName.left(scopeOffset)+"::" : QCString(); //printf("Trying with scope=`%s'\n",scope.data()); - usingNd = namespaceDict[scope+root->name]; + usingNd = getResolvedNamespace(scope+root->name); if (scopeOffset==0) { scopeOffset=-1; @@ -959,7 +960,7 @@ static void findUsingDeclarations(Entry *root) scName=root->parent->name.copy(); if (!scName.isEmpty()) { - nd = namespaceDict[scName]; + nd = getResolvedNamespace(scName); } } @@ -1175,7 +1176,7 @@ static MemberDef *addVariableToFile( QCString nscope=removeAnnonymousScopes(scope); if (!nscope.isEmpty()) { - nd = namespaceDict[nscope]; + nd = getResolvedNamespace(nscope); } } QCString def; @@ -1221,7 +1222,7 @@ static MemberDef *addVariableToFile( NamespaceDef *nd=0; if (!nscope.isEmpty()) { - nd = namespaceDict[nscope]; + nd = getResolvedNamespace(nscope); } if (nd==0 || md->getNamespaceDef()==nd) // variable already in the scope @@ -1540,10 +1541,11 @@ static void buildMemberList(Entry *root) if (name.left(2)=="::") name=name.right(name.length()-2); MemberDef::MemberType mtype; - if (isFriend) mtype=MemberDef::Friend; - else if (root->sig) mtype=MemberDef::Signal; - else if (root->slot) mtype=MemberDef::Slot; - else mtype=MemberDef::Function; + if (isFriend) mtype=MemberDef::Friend; + else if (root->mtype==Signal) mtype=MemberDef::Signal; + else if (root->mtype==Slot) mtype=MemberDef::Slot; + else if (root->mtype==DCOP) mtype=MemberDef::DCOP; + else mtype=MemberDef::Function; // strip redundant template specifier for constructors if ((i=name.find('<'))!=-1 && name.find('>')!=-1) @@ -1699,7 +1701,7 @@ static void buildMemberList(Entry *root) NamespaceDef *rnd = 0; if (!root->parent->name.isEmpty()) { - rnd = namespaceDict[root->parent->name]; + rnd = getResolvedNamespace(root->parent->name); } FileDef *fd = md->getFileDef(); QCString nsName,rnsName; @@ -1811,7 +1813,7 @@ static void buildMemberList(Entry *root) QCString nscope=removeAnnonymousScopes(root->parent->name); if (!nscope.isEmpty()) { - nd = namespaceDict[nscope]; + nd = getResolvedNamespace(nscope); } } @@ -3197,7 +3199,7 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl bool ambig; FileDef *fd=findFileDef(inputNameDict,root->fileName,ambig); NamespaceDef *nd=0; - if (!namespaceName.isEmpty()) nd=namespaceDict[namespaceName]; + if (!namespaceName.isEmpty()) nd=getResolvedNamespace(namespaceName); tcd = findClassDefinition(fd,nd,scopeName,classTempList); if (cd && tcd==cd) // member's classes match @@ -3367,8 +3369,9 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl if (unique) { MemberDef::MemberType mtype; - if (root->sig) mtype=MemberDef::Signal; - else if (root->slot) mtype=MemberDef::Slot; + if (root->mtype==Signal) mtype=MemberDef::Signal; + else if (root->mtype==Slot) mtype=MemberDef::Slot; + else if (root->mtype==DCOP) mtype=MemberDef::DCOP; else mtype=MemberDef::Function; // new overloaded member function @@ -3440,10 +3443,12 @@ static void findMember(Entry *root,QCString funcDecl,QCString related,bool overl if (newMember) // need to create a new member { MemberDef::MemberType mtype; - if (root->sig) + if (root->mtype==Signal) mtype=MemberDef::Signal; - else if (root->slot) + else if (root->mtype==Slot) mtype=MemberDef::Slot; + else if (root->mtype==DCOP) + mtype=MemberDef::DCOP; else mtype=MemberDef::Function; @@ -3679,7 +3684,7 @@ static void findEnums(Entry *root) { QCString scope=root->name.left(i); // extract scope name=root->name.right(root->name.length()-i-2); // extract name - if ((cd=getClass(scope))==0) nd=namespaceDict[scope]; + if ((cd=getClass(scope))==0) nd=getResolvedNamespace(scope); } else // no scope, check the scope in which the docs where found { @@ -3688,7 +3693,7 @@ static void findEnums(Entry *root) ) // found enum docs inside a compound { QCString scope=root->parent->name; - if ((cd=getClass(scope))==0) nd=namespaceDict[scope]; + if ((cd=getClass(scope))==0) nd=getResolvedNamespace(scope); } name=root->name.copy(); } @@ -4103,7 +4108,9 @@ static void generateFileSources() for (;(fd=fni.current());++fni) { bool src = !fd->isReference() && - (fd->generateSource() || Config::sourceBrowseFlag); + (Config::verbatimHeaderFlag + //fd->generateSource() + || Config::sourceBrowseFlag); if (src) { msg("Generating code for file %s...\n",fd->name().data()); @@ -5883,8 +5890,11 @@ int main(int argc,char **argv) msg("Adding members to member groups.\n"); addMembersToMemberGroup(); - msg("Distributing member group documentation.\n"); - distributeMemberGroupDocumentation(); + if (Config::distributeDocFlag) + { + msg("Distributing member group documentation.\n"); + distributeMemberGroupDocumentation(); + } msg("Building full member lists recursively...\n"); buildCompleteMemberLists(); diff --git a/src/doxygen.h b/src/doxygen.h index 7b41698..efe2b83 100644 --- a/src/doxygen.h +++ b/src/doxygen.h @@ -91,6 +91,7 @@ extern QTextStream tagFile; extern SectionDict sectionDict; extern FileNameList inputNameList; extern StringDict typedefDict; +extern StringDict namespaceAliasDict; extern GroupList groupList; extern GroupDict groupDict; extern NamespaceList namespaceList; diff --git a/src/doxygen.pro.in b/src/doxygen.pro.in index 6de8edd..91549dd 100644 --- a/src/doxygen.pro.in +++ b/src/doxygen.pro.in @@ -26,7 +26,7 @@ HEADERS = doxygen.h scanner.h doc.h classdef.h classlist.h memberdef.h \ translator_nl.h translator_se.h translator_cz.h translator_fr.h \ translator_it.h formula.h debug.h membergroup.h htmlhelp.h \ translator_ru.h translator_pl.h dot.h rtfgen.h xml.h xml_dtd.h \ - reflist.h page.h sortdict.h translator_hu.h + reflist.h page.h sortdict.h translator_hu.h translator_kr.h SOURCES = doxygen.cpp scanner.cpp doc.cpp classdef.cpp classlist.cpp \ memberdef.cpp membername.cpp index.cpp memberlist.cpp \ entry.cpp logos.cpp instdox.cpp message.cpp code.cpp \ diff --git a/src/entry.cpp b/src/entry.cpp index 1c4ef6d..3e4bc89 100644 --- a/src/entry.cpp +++ b/src/entry.cpp @@ -48,8 +48,7 @@ Entry::Entry(const Entry &e) //printf("Copy New Entry %d\n",num); section = e.section; protection = e.protection; - sig = e.sig; - slot = e.slot; + mtype = e.mtype; stat = e.stat; explicitExternal = e.explicitExternal; virt = e.virt; @@ -219,9 +218,8 @@ void Entry::reset() todoId = 0; testId = 0; section = EMPTY_SEC; - sig = FALSE; + mtype = Method; virt = Normal; - slot = FALSE; stat = FALSE; proto = FALSE; explicitExternal = FALSE; diff --git a/src/entry.h b/src/entry.h index 1494bae..7736be7 100644 --- a/src/entry.h +++ b/src/entry.h @@ -23,6 +23,7 @@ enum Protection { Public, Protected, Private } ; enum Specifier { Normal, Virtual, Pure } ; +enum MethodTypes { Method, Signal, Slot, DCOP }; struct BaseInfo { @@ -161,8 +162,9 @@ class Entry int section; // entry type (see Sections); Protection protection; // class protection - bool sig; // a Qt signal ? - bool slot; // a Qt slot ? + //bool sig; // a Qt signal ? + //bool slot; // a Qt slot ? + MethodTypes mtype; // signal, slot or dcop method? bool stat; // static ? bool explicitExternal; // explicitly defined as external? bool proto; // prototype ? diff --git a/src/filedef.cpp b/src/filedef.cpp index 462ee79..3d20233 100644 --- a/src/filedef.cpp +++ b/src/filedef.cpp @@ -164,9 +164,7 @@ void FileDef::writeDocumentation(OutputList &ol) ol.docify(ii->includeName); ol.enableAll(); ol.disableAllBut(OutputGenerator::Html); - if (fd && fd->isLinkable() && - (fd->generateSource() || Config::sourceBrowseFlag) - ) + if (fd && fd->isLinkable() && fd->generateSourceFile()) { ol.writeObjectLink(fd->getReference(),fd->includeName(),0,ii->includeName); } @@ -222,7 +220,7 @@ void FileDef::writeDocumentation(OutputList &ol) //incDepGraph.writeGraph(Config::htmlOutputDir,fd->getOutputFileBase()); } - if (generateSource() || (!isReference() && Config::sourceBrowseFlag)) + if (generateSourceFile()) { ol.disableAllBut(OutputGenerator::Html); ol.newParagraph(); diff --git a/src/filedef.h b/src/filedef.h index ff9f5b5..78eb138 100644 --- a/src/filedef.h +++ b/src/filedef.h @@ -120,8 +120,11 @@ class FileDef : public Definition void addUsingDeclaration(ClassDef *cd); ClassList *getUsedClasses() const { return usingDeclList; } - void setGenerateSource(bool b) { isSource=b; } - bool generateSource() const { return isSource; } + //void setGenerateSource(bool b) { isSource=b; } + bool generateSourceFile() const + { return !isReference() && + (Config::sourceBrowseFlag || Config::verbatimHeaderFlag); + } void addIncludeDependency(FileDef *fd,const char *incName,bool local); void addIncludedByDependency(FileDef *fd,const char *incName,bool local); diff --git a/src/index.cpp b/src/index.cpp index bd4810b..75d5e92 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -333,7 +333,7 @@ void countFiles(int &htmlFiles,int &files) for (;(fd=fni.current());++fni) { bool doc = fd->isLinkableInProject(); - bool src = fd->generateSource() || Config::sourceBrowseFlag; + bool src = fd->generateSourceFile(); if (doc || src) { htmlFiles++; @@ -415,7 +415,7 @@ void writeFileIndex(OutputList &ol) { //printf("Found filedef %s\n",fd->name().data()); bool doc = fd->isLinkableInProject(); - bool src = fd->generateSource() || Config::sourceBrowseFlag; + bool src = fd->generateSourceFile(); if ((doc || src) && !fd->isReference()) { QCString path; @@ -849,7 +849,7 @@ void writeAlphabeticalClassList(OutputList &ol) if (!namesp.isEmpty()) { ol.docify(" ("); - NamespaceDef *nd = namespaceDict[namesp]; + NamespaceDef *nd = getResolvedNamespace(namesp); if (nd && nd->isLinkable()) { ol.writeObjectLink(nd->getReference(), diff --git a/src/language.cpp b/src/language.cpp index 31928a4..5d2c92d 100644 --- a/src/language.cpp +++ b/src/language.cpp @@ -32,6 +32,7 @@ #include "translator_pl.h" #include "translator_pt.h" #include "translator_hu.h" +#include "translator_kr.h" #endif #define L_EQUAL(a) !stricmp(langName,a) @@ -105,6 +106,10 @@ bool setTranslator(const char *langName) { theTranslator=new TranslatorHungarian; } + else if (L_EQUAL("korean")) + { + theTranslator=new TranslatorKorean; + } #endif else // use the default language (i.e. english) { diff --git a/src/latexgen.cpp b/src/latexgen.cpp index 28c7915..14a797f 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -1134,6 +1134,7 @@ void LatexGenerator::docify(const char *str) { static bool isCzech = theTranslator->idLanguage()=="czech"; static bool isJapanese = theTranslator->idLanguage()=="japanese"; + static bool isKorean = theTranslator->idLanguage()=="korean"; static bool isRussian = theTranslator->idLanguage()=="russian"; static bool isGerman = theTranslator->idLanguage()=="german"; if (str) @@ -1192,7 +1193,7 @@ void LatexGenerator::docify(const char *str) break; default: - if (isJapanese) + if (isJapanese || isKorean) { // Japanese language uses wide characters if (c>=128) { diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 80c5ce6..c3632ed 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -1414,6 +1414,7 @@ void MemberDef::generateXML(QTextStream &t,Definition *def) case Signal: // fall through case Prototype: // fall through case Friend: // fall through + case DCOP: // fall through case Slot: t << "functiondef"; xmlType=function_t; break; } t << " id=\""; @@ -1562,6 +1563,7 @@ void MemberDef::generateXML(QTextStream &t,Definition *def) case Signal: // fall through case Prototype: // fall through case Friend: // fall through + case DCOP: // fall through case Slot: t << "functiondef"; break; } t << ">" << endl; diff --git a/src/memberdef.h b/src/memberdef.h index 288dc94..279d5b3 100644 --- a/src/memberdef.h +++ b/src/memberdef.h @@ -57,7 +57,8 @@ class MemberDef : public Definition Prototype, Signal, Slot, - Friend + Friend, + DCOP }; enum @@ -107,6 +108,7 @@ class MemberDef : public Definition bool isFunction() const { return mtype==Function; } bool isDefine() const { return mtype==Define; } bool isFriend() const { return mtype==Friend; } + bool isDCOP() const { return mtype==DCOP; } bool isRelated() const { return related; } bool isStatic() const { return stat; } bool isInline() const { return (memSpec&Entry::Inline)!=0; } diff --git a/src/memberlist.cpp b/src/memberlist.cpp index ee46fc5..2ad3061 100644 --- a/src/memberlist.cpp +++ b/src/memberlist.cpp @@ -73,6 +73,7 @@ void MemberList::countDecMembers(bool inGroup,bool countSubGroups,bool sectionPe case MemberDef::Variable: varCnt++,m_count++; break; case MemberDef::Function: // fall through case MemberDef::Signal: // fall through + case MemberDef::DCOP: // fall through case MemberDef::Slot: if (!md->isRelated() || md->getClassDef()) funcCnt++,m_count++; break; @@ -409,7 +410,7 @@ void MemberList::writePlainDeclarations(OutputList &ol, for ( ; (md=mli.current()) ; ++mli ) { if ( - ( md->isFunction() || md->isSignal() || md->isSlot()) && + ( md->isFunction() || md->isSignal() || md->isSlot() || md->isDCOP()) && ( !md->isRelated() || md->getClassDef() ) && inGroup==md->visibleMemberGroup(sectionPerType) ) diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp index cb35eeb..5dd7aeb 100644 --- a/src/rtfgen.cpp +++ b/src/rtfgen.cpp @@ -326,19 +326,19 @@ static const struct { "ListEnum4", "\\s94\\fi-360\\li1800\\widctlpar\\fs20\\cgrid " }, - { "ListEnum4", + { "ListEnum5", "\\s95\\fi-360\\li2160\\widctlpar\\fs20\\cgrid " }, - { "ListEnum5", + { "ListEnum6", "\\s96\\fi-360\\li2520\\widctlpar\\fs20\\cgrid " }, - { "ListEnum6", + { "ListEnum7", "\\s97\\fi-360\\li2880\\widctlpar\\fs20\\cgrid " }, - { "ListEnum7", + { "ListEnum8", "\\s98\\fi-360\\li3240\\widctlpar\\fs20\\cgrid " }, - { "ListEnum8", + { "ListEnum9", "\\s99\\fi-360\\li3600\\widctlpar\\fs20\\cgrid " }, { 0, diff --git a/src/scanner.l b/src/scanner.l index a8aefd9..9f419f8 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -100,8 +100,7 @@ static int yyLineNr = 1 ; static int anonCount = 0 ; static char yyFileName[4096] ; static int lastMemberGroupLine; -static bool sig; -static bool slot; +static MethodTypes mtype; static bool gstat; static bool removeSlashes; static Specifier virt; @@ -119,6 +118,7 @@ static SectionInfo::SectionType sectionType; static QCString funcPtrType; static QCString templateStr; +static QCString aliasName; static QCString baseName; static QCString* specName; static QCString formulaText; @@ -157,8 +157,7 @@ static void initParser() curlyCount = 0; ifCount = 0; memberGroupId = NOGROUP; - sig = FALSE; - slot = FALSE; + mtype = Method; gstat = FALSE; virt = Normal; baseVirt = Normal; @@ -442,6 +441,8 @@ TITLE [tT][iI][tT][lL][eE] %x CopyRound %x CopyCurly %x IDLUnionCase +%x NSAliasName +%x NSAliasArg %% @@ -512,8 +513,16 @@ TITLE [tT][iI][tT][lL][eE] unput(*yytext); BEGIN( FindMembers ) ; } -<FindMembers>{B}*"signals"{BN}*":"{BN}* { current->sig = sig = TRUE; - current->slot = slot = FALSE; +<FindMembers>{B}*"k_dcop"{BN}*":"{BN}* { current->mtype = mtype = DCOP; + current->protection = protection = Public ; + current->type.resize(0); + current->name.resize(0); + current->args.resize(0); + current->argList->clear(); + lineCount() ; + } + +<FindMembers>{B}*"signals"{BN}*":"{BN}* { current->mtype = mtype = Signal; current->protection = protection = Public ; current->type.resize(0); current->name.resize(0); @@ -524,8 +533,7 @@ TITLE [tT][iI][tT][lL][eE] <FindMembers>{B}*"public"{BN}*"slots"{BN}*":"{BN}* { current->protection = protection = Public ; - current->slot = slot = TRUE; - current->sig = sig = FALSE; + current->mtype = mtype = Slot; current->type.resize(0); current->name.resize(0); current->args.resize(0); @@ -535,8 +543,7 @@ TITLE [tT][iI][tT][lL][eE] <FindMembers>{B}*"protected"{BN}*"slots"{BN}*":"{BN}* { current->protection = protection = Protected ; - current->slot = slot = TRUE; - current->sig = sig = FALSE; + current->mtype = mtype = Slot; current->type.resize(0); current->name.resize(0); current->args.resize(0); @@ -546,8 +553,7 @@ TITLE [tT][iI][tT][lL][eE] <FindMembers>{B}*"private"{BN}*"slots"{BN}*":"{BN}* { current->protection = protection = Private ; - current->slot = slot = TRUE; - current->sig = sig = FALSE; + current->mtype = mtype = Slot; current->type.resize(0); current->name.resize(0); current->args.resize(0); @@ -558,8 +564,7 @@ TITLE [tT][iI][tT][lL][eE] <FindMembers>{B}*"methods"{B}":" { /* M$-IDL only: ignored */ } <FindMembers>{B}*"public"{BN}*":"{BN}* { current->protection = protection = Public ; - current->slot = slot = FALSE; - current->sig = sig = FALSE; + current->mtype = mtype = Method; current->type.resize(0); current->name.resize(0); current->args.resize(0); @@ -568,8 +573,7 @@ TITLE [tT][iI][tT][lL][eE] } <FindMembers>{B}*"protected"{BN}*":"{BN}* { current->protection = protection = Protected ; - current->slot = slot = FALSE; - current->sig = sig = FALSE; + current->mtype = mtype = Method; current->type.resize(0); current->name.resize(0); current->args.resize(0); @@ -578,8 +582,7 @@ TITLE [tT][iI][tT][lL][eE] } <FindMembers>{B}*"private"{BN}*":"{BN}* { current->protection = protection = Private ; - current->slot = slot = FALSE; - current->sig = sig = FALSE; + current->mtype = mtype = Method; current->type.resize(0); current->name.resize(0); current->args.resize(0); @@ -766,6 +769,20 @@ TITLE [tT][iI][tT][lL][eE] //printf("Start template list\n"); BEGIN( ReadTempArgs ); } +<FindMembers>"namespace"{BN}+/{ID}{BN}*"=" { // namespace alias + lineCount(); + BEGIN( NSAliasName ); + } +<NSAliasName>{ID} { + aliasName = yytext; + BEGIN( NSAliasArg ); + } +<NSAliasArg>({ID}"::")*{ID} { + namespaceAliasDict.insert(aliasName,new QCString(yytext)); + } +<NSAliasArg>";" { + BEGIN( FindMembers ); + } <FindMembers>"using"{BN}+ { current->startLine=yyLineNr; lineCount(); @@ -780,10 +797,9 @@ TITLE [tT][iI][tT][lL][eE] current_root->addSubEntry(current); current = new Entry ; current->protection = protection ; - current->sig = sig; + current->mtype = mtype; current->virt = virt; current->stat = gstat; - current->slot = slot; current->mGrpId = memberGroupId; BEGIN(Using); } @@ -794,10 +810,9 @@ TITLE [tT][iI][tT][lL][eE] current_root->addSubEntry(current); current = new Entry ; current->protection = protection ; - current->sig = sig; + current->mtype = mtype; current->virt = virt; current->stat = gstat; - current->slot = slot; current->mGrpId = memberGroupId; BEGIN(Using); } @@ -958,10 +973,9 @@ TITLE [tT][iI][tT][lL][eE] current_root->addSubEntry(current); current = new Entry ; current->protection = protection ; - current->sig = sig; + current->mtype = mtype; current->virt = virt; current->stat = gstat; - current->slot = slot; current->mGrpId = memberGroupId; BEGIN(FindMembers); } @@ -1258,8 +1272,7 @@ TITLE [tT][iI][tT][lL][eE] // variable found current->section = Entry::EMPTY_SEC ; current->protection = protection; - current->slot = slot = FALSE; - current->sig = sig = FALSE; + current->mtype = Method; current->virt = Normal; current->stat = gstat; current->mGrpId = memberGroupId; @@ -1355,10 +1368,9 @@ TITLE [tT][iI][tT][lL][eE] current_root->parent->addSubEntry(current); current = new Entry ; current->protection = protection ; - current->sig = sig; + current->mtype = mtype; current->virt = virt; current->stat = gstat; - current->slot = slot; current->mGrpId = memberGroupId; } else // probably a redundant , @@ -1429,10 +1441,9 @@ TITLE [tT][iI][tT][lL][eE] { // namespaces and interfaces ends with a closing bracket without semicolon current->reset(); current->protection = protection ; - current->sig = sig; + current->mtype = mtype; current->virt = virt; current->stat = gstat; - current->slot = slot; current->mGrpId = memberGroupId; BEGIN( FindMembers ) ; } @@ -1457,10 +1468,9 @@ TITLE [tT][iI][tT][lL][eE] current_root->addSubEntry( current ) ; current = new Entry; current->protection = protection ; - current->sig = sig; + current->mtype = mtype; current->virt = virt; current->stat = gstat; - current->slot = slot; current->mGrpId = memberGroupId; BEGIN(MemberSpecSkip); } @@ -1509,10 +1519,9 @@ TITLE [tT][iI][tT][lL][eE] { Entry *varEntry=new Entry; varEntry->protection = current->protection ; - varEntry->sig = current->sig; + varEntry->mtype = current->mtype; varEntry->virt = current->virt; varEntry->stat = current->stat; - varEntry->slot = current->slot; varEntry->section = Entry::VARIABLE_SEC; varEntry->name = msName.stripWhiteSpace(); varEntry->type = current->type.simplifyWhiteSpace()+" "; @@ -1548,10 +1557,9 @@ TITLE [tT][iI][tT][lL][eE] isTypedef=FALSE; current->reset(); current->protection = protection ; - current->sig = sig; + current->mtype = mtype; current->virt = virt; current->stat = gstat; - current->slot = slot; current->mGrpId = memberGroupId; BEGIN( FindMembers ); } @@ -1962,10 +1970,9 @@ TITLE [tT][iI][tT][lL][eE] current_root->addSubEntry(current); current = new Entry ; current->protection = protection; - current->sig = sig; + current->mtype = mtype; current->virt = virt; current->stat = gstat; - current->slot = slot; current->mGrpId = memberGroupId; lastCurlyContext = FindMembers; if( *yytext == '{' ) @@ -2564,6 +2571,12 @@ TITLE [tT][iI][tT][lL][eE] } <SkipHtmlComment>"--"[!]?">" { BEGIN(lastSkipHtmlCommentContext); } <SkipHtmlComment>. +<AfterDoc,Doc,ClassDoc,PageDoc>("\\\\"|"@@")("todo"|"test")/[^a-z_A-Z0-9] { + current->doc+=yytext; + } +<AfterDocLine,LineDoc,JavaDoc>("\\\\"|"@@")("todo"|"test")/[^a-z_A-Z0-9] { + current->brief+=yytext; + } <AfterDoc,AfterDocLine,LineDoc,Doc,JavaDoc,ClassDoc,PageDoc>{CMD}"todo"/[^a-z_A-Z0-9] { todoStartContext = YY_START; lastBriefContext = TodoParam; // this is where we will continue at the end of the argument @@ -3019,10 +3032,9 @@ TITLE [tT][iI][tT][lL][eE] current_root->addSubEntry(current); current = new Entry ; current->protection = protection ; - current->sig = sig; + current->mtype = mtype; current->virt = virt; current->stat = gstat; - current->slot = slot; current->mGrpId = memberGroupId; BEGIN( FindMembers ); } @@ -3300,10 +3312,9 @@ TITLE [tT][iI][tT][lL][eE] current_root->addSubEntry(current); current = new Entry ; current->protection = protection ; - current->sig = sig; + current->mtype = mtype; current->virt = virt; current->stat = gstat; - current->slot = slot; current->mGrpId = memberGroupId; BEGIN( FindMembers ); } @@ -3399,8 +3410,7 @@ static void parseCompounds(Entry *rt) current->protection = protection = ce->protection; else // named struct, union, or interface current->protection = protection = Public ; - sig = FALSE; - slot = FALSE; + mtype = Method; gstat = FALSE; virt = Normal; current->mGrpId = memberGroupId = ce->mGrpId; @@ -3419,8 +3429,7 @@ void parseMain(Entry *rt) initParser(); anonCount = 0; protection = Public; - sig = FALSE; - slot = FALSE; + mtype = Method; gstat = FALSE; virt = Normal; current_root = rt; diff --git a/src/translator.h b/src/translator.h index d5a82f4..5808ae1 100644 --- a/src/translator.h +++ b/src/translator.h @@ -24,6 +24,89 @@ class Translator { + protected: + /*! Returns the string converted from windows-1250 to iso-8859-2. */ + /* The method was designed initially for translator_cz.h. + It is used for on-line encoding conversion related to conditional + compilation in Unix/MS Windows environments (both use different + encoding). Later, the translator_hr.h (by Boris Bralo) used and + improved the same style. As the method with the translation table + was the same, the decision to move it to this base class was made. + The same holds for ISO88592ToWin1250() method. It is recommended + for possibly other similar methods in future. + */ + QCString Win1250ToISO88592(const QCString & sInput) + { + // The conversion table for characters >127 + // + static const char WinToISOTab[] = { + '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87', + '\x88', '\x89', '\xA9', '\x8B', '\xA6', '\xAB', '\xAE', '\xAC', + '\x90', '\x91', '\x92', '\x93', '\x94', '\x2E', '\x96', '\x97', + '\x98', '\x99', '\xB9', '\x9B', '\xB6', '\xBB', '\xBE', '\xBC', + '\xA0', '\x20', '\x20', '\xA3', '\xA4', '\xA1', '\xA6', '\xA7', + '\x22', '\xA9', '\xAA', '\x3C', '\xAC', '\x2D', '\xAE', '\xAF', + '\x2E', '\x2B', '\x20', '\xB3', '\x27', '\x75', '\xB6', '\xB7', + '\x20', '\xB1', '\xBA', '\x3E', '\xA5', '\x22', '\xB5', '\xBF', + '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7', + '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF', + '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7', + '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF', + '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7', + '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF', + '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\x2D', + '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF', + '\0' + }; + + QCString result; + int len = sInput.length(); + + for (int i = 0; i < len; ++i) + { + unsigned int c = sInput[i]; + result += (c > 127) ? WinToISOTab[c & 0x7F] : c; + } + return result; + } + + /*! returns the string converted from iso-8859-2 to windows-1250 */ + /* See the comments of the Win1250ToISO88592() method for details. */ + QCString ISO88592ToWin1250(const QCString & sInput) + { + // The conversion table for characters >127 + // + static const char ISOToWinTab[] = { + '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87', + '\x88', '\x89', '\x8A', '\x8B', '\x8C', '\x8D', '\x8E', '\x8F', + '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97', + '\x98', '\x99', '\x9A', '\x9B', '\x9C', '\x9D', '\x9E', '\x9F', + '\xA0', '\xA5', '\xA2', '\xA3', '\xA4', '\xBC', '\x8C', '\xA7', + '\xA8', '\x8A', '\xAA', '\x8D', '\x8F', '\xAD', '\x8E', '\xAF', + '\xB0', '\xB9', '\xB2', '\xB3', '\xB4', '\xBE', '\x9C', '\xB7', + '\xB8', '\x9A', '\xBA', '\x9D', '\x9F', '\xBD', '\x9E', '\xBF', + '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7', + '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF', + '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7', + '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF', + '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7', + '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF', + '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\xF7', + '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF', + '\0' + }; + QCString result; + int len = sInput.length(); + + for (int i = 0; i < len; ++i) + { + unsigned int c = sInput[i]; + result += (c > 127) ? ISOToWinTab[c & 0x7F] : c; + } + return result; + } + + public: // --- Language contol methods ------------------- @@ -993,6 +1076,16 @@ class Translator return "Test List"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.1 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a section header for KDE-2 IDL methods */ + virtual QCString trDCOPMethods() + { + return "DCOP Methods"; + } + }; #endif diff --git a/src/translator_cz.h b/src/translator_cz.h index b17fa90..c833a15 100644 --- a/src/translator_cz.h +++ b/src/translator_cz.h @@ -48,105 +48,48 @@ // 2000/08/02 (Petr Prikryl) // - Updated for 1.2.0 // +// 2000/08/24 (Petr Prikryl) +// - Changed trTodo() text from "Udelat" to "Planovane upravy" +// which seems more appropriate in the document context. +// - Typo corrected in trMemberTypedefDocumentation(). +// +// 2000/08/30 (Petr Prikryl) +// - Macro DECODE replaced by the inline Decode() (proposed by +// Boris Bralo <boris.bralo@zg.tel.hr> in translator_hr.h). +// +// 2000/08/31 (Petr Prikryl) +// - Methods ISOToWin() and WinToISO() renamed and moved to the +// base class (in translator.h) to be shared with the Croatian +// translator. +// +// 2000/09/06 (Petr Prikryl) +// - Reimplementation of the method trInheritsList() which takes +// into account quantity of base classes. +// // Notices: // -------- // The conditional compilation ensures or the neutral functionality -// of the macro DECODE, or calling the WinToISO() method for -// on-line encoding conversion. If you want to maintain the source -// in the iso-8859-2, do convert the source, change the conditional -// definition of the DECODE macro using the method ISOToWin() -- -// for conversion of strings for the Windows version. The version -// which does not call the function is slightly faster. -// -// Only one of the private method WinToISO() and ISOToWin() is -// necessary depending on whether this source is maintained in -// windows-1250 or iso-8859-2 encoding. However, there is not a -// big loose of space when both methods with the conversion tables -// are supported. The other (not used now) may be handy in future. -// Do not erase it. - - -// Here the DECODE macro assumes the source written in Windows encoding. -// -#ifdef _WIN32 - #define DECODE(sInput) sInput -#else - #define DECODE(sInput) WinToISO(sInput) -#endif - +// of the private inline Decode(), or calling the WinToISO() method +// for on-line encoding conversion. If you want to maintain the +// source in the iso-8859-2, do convert the source encoding, change +// the conditional definition of the inline Decode() using the +// method ISO88592ToWin1250() -- for conversion of strings for the +// Windows version. The version which does not call the function is +// probably slightly faster (if the inline is well optimized). class TranslatorCzech : public Translator { private: - /*! returns the string converted from windows-1250 to iso-8859-2 */ - QCString WinToISO(const QCString sInput) - { - // The conversion table for characters >127 - // - static const char WinToISOTab[] = { - '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87', - '\x88', '\x89', '\xA9', '\x8B', '\xA6', '\xAB', '\xAE', '\xAC', - '\x90', '\x91', '\x92', '\x93', '\x94', '\x2E', '\x96', '\x97', - '\x98', '\x99', '\xB9', '\x9B', '\xB6', '\xBB', '\xBE', '\xBC', - '\xA0', '\x20', '\x20', '\xA3', '\xA4', '\xA1', '\xA6', '\xA7', - '\x22', '\xA9', '\xAA', '\x3C', '\xAC', '\x2D', '\xAE', '\xAF', - '\x2E', '\x2B', '\x20', '\xB3', '\x27', '\x75', '\xB6', '\xB7', - '\x20', '\xB1', '\xBA', '\x3E', '\xA5', '\x22', '\xB5', '\xBF', - '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7', - '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF', - '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7', - '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF', - '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7', - '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF', - '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\x2D', - '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF', - '\0' - }; - - QCString result; - int len = sInput.length(); - - for (int i = 0; i < len; ++i) - { - unsigned int c = sInput[i]; - result += (c > 127) ? WinToISOTab[c & 0x7F] : c; - } - return result; - } - - /*! returns the string converted from iso-8859-2 to windows-1250 */ - QCString ISOToWin(const QCString sInput) - { - // The conversion table for characters >127 - // - static const char ISOToWinTab[] = { - '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87', - '\x88', '\x89', '\x8A', '\x8B', '\x8C', '\x8D', '\x8E', '\x8F', - '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97', - '\x98', '\x99', '\x9A', '\x9B', '\x9C', '\x9D', '\x9E', '\x9F', - '\xA0', '\xA5', '\xA2', '\xA3', '\xA4', '\xBC', '\x8C', '\xA7', - '\xA8', '\x8A', '\xAA', '\x8D', '\x8F', '\xAD', '\x8E', '\xAF', - '\xB0', '\xB9', '\xB2', '\xB3', '\xB4', '\xBE', '\x9C', '\xB7', - '\xB8', '\x9A', '\xBA', '\x9D', '\x9F', '\xBD', '\x9E', '\xBF', - '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7', - '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF', - '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7', - '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF', - '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7', - '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF', - '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\xF7', - '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF', - '\0' - }; - QCString result; - int len = sInput.length(); - - for (int i = 0; i < len; ++i) - { - unsigned int c = sInput[i]; - result += (c > 127) ? ISOToWinTab[c & 0x7F] : c; - } - return result; + /*! The Decode() inline assumes the source written in the + Windows encoding (maintainer dependent). + */ + inline QCString Decode(const QCString & sInput) + { +#ifdef _WIN32 + return sInput; +#else + return Win1250ToISO88592(sInput); +#endif } public: @@ -176,51 +119,51 @@ class TranslatorCzech : public Translator /*! used in the compound documentation before a list of related functions. */ virtual QCString trRelatedFunctions() - { return DECODE("Související funkce"); } + { return Decode("Související funkce"); } /*! subscript for the related functions. */ virtual QCString trRelatedSubscript() - { return DECODE("(Uvedené funkce nejsou èlenskými funkcemi.)"); } + { return Decode("(Uvedené funkce nejsou èlenskými funkcemi.)"); } /*! header that is put before the detailed description of files, classes and namespaces. */ virtual QCString trDetailedDescription() - { return DECODE("Detailní popis"); } + { return Decode("Detailní popis"); } /*! header that is put before the list of typedefs. */ virtual QCString trMemberTypedefDocumentation() - { return DECODE("Dokumentace k èlenských typùm"); } + { return Decode("Dokumentace k èlenským typùm"); } /*! header that is put before the list of enumerations. */ virtual QCString trMemberEnumerationDocumentation() - { return DECODE("Dokumentace k èlenským výètùm"); } + { return Decode("Dokumentace k èlenským výètùm"); } /*! header that is put before the list of member functions. */ virtual QCString trMemberFunctionDocumentation() - { return DECODE("Dokumentace k metodám"); } + { return Decode("Dokumentace k metodám"); } /*! header that is put before the list of member attributes. */ virtual QCString trMemberDataDocumentation() - { return DECODE("Dokumentace k datovým èlenùm"); } + { return Decode("Dokumentace k datovým èlenùm"); } /*! this is the text of a link put after brief descriptions. */ virtual QCString trMore() - { return DECODE("(...)"); } + { return Decode("(...)"); } /*! put in the class documentation */ virtual QCString trListOfAllMembers() - { return DECODE("Seznam všech èlenù."); } + { return Decode("Seznam všech èlenù."); } /*! used as the title of the "list of all members" page of a class */ virtual QCString trMemberList() - { return DECODE("Seznam èlenù tøídy"); } + { return Decode("Seznam èlenù tøídy"); } /*! this is the first part of a sentence that is followed by a class name */ virtual QCString trThisIsTheListOfAllMembers() - { return DECODE("Zde naleznete úplný seznam èlenù tøídy "); } + { return Decode("Zde naleznete úplný seznam èlenù tøídy "); } /*! this is the remainder of the sentence after the class name */ virtual QCString trIncludingInheritedMembers() - { return DECODE(", vèetnì všech zdìdìných èlenù."); } + { return Decode(", vèetnì všech zdìdìných èlenù."); } /*! this is put at the author sections at the bottom of man pages. * parameter s is name of the project name. @@ -230,26 +173,26 @@ class TranslatorCzech : public Translator "ze zdrojových textù"; if (s) result+=(QCString)" projektu "+s; result+="."; - return DECODE(result); + return Decode(result); } /*! put after an enum name in the list of all members */ virtual QCString trEnumName() - { return DECODE("jméno výètu"); } + { return Decode("jméno výètu"); } /*! put after an enum value in the list of all members */ virtual QCString trEnumValue() - { return DECODE("hodnota výètu"); } + { return Decode("hodnota výètu"); } /*! put after an undocumented member in the list of all members */ virtual QCString trDefinedIn() - { return DECODE("definován v"); } + { return Decode("definován v"); } /*! put as in introduction in the verbatim header file of a class. * parameter f is the name of the include file. */ virtual QCString trVerbatimText(const char *f) - { return DECODE((QCString)"Úplný text vkládaného souboru "+f+"."); } + { return Decode((QCString)"Úplný text vkládaného souboru "+f+"."); } // quick reference sections @@ -257,47 +200,47 @@ class TranslatorCzech : public Translator * compounds or files (see the \group command). */ virtual QCString trModules() - { return DECODE("Moduly"); } + { return Decode("Moduly"); } /*! This is put above each page as a link to the class hierarchy */ virtual QCString trClassHierarchy() - { return DECODE("Hierarchie tøíd"); } + { return Decode("Hierarchie tøíd"); } /*! This is put above each page as a link to the list of annotated classes */ virtual QCString trCompoundList() - { return DECODE("Seznam tøíd"); } + { return Decode("Seznam tøíd"); } /*! This is put above each page as a link to the list of documented files */ virtual QCString trFileList() - { return DECODE("Seznam souborù"); } + { return Decode("Seznam souborù"); } /*! This is put above each page as a link to the list of all verbatim headers */ virtual QCString trHeaderFiles() - { return DECODE("Seznam hlavièkových souborù"); } + { return Decode("Seznam hlavièkových souborù"); } /*! This is put above each page as a link to all members of compounds. */ virtual QCString trCompoundMembers() - { return DECODE("Seznam èlenù tøíd"); } + { return Decode("Seznam èlenù tøíd"); } /*! This is put above each page as a link to all members of files. */ virtual QCString trFileMembers() - { return DECODE("Symboly v souborech"); } + { return Decode("Symboly v souborech"); } /*! This is put above each page as a link to all related pages. */ virtual QCString trRelatedPages() - { return DECODE("Související stránky"); } + { return Decode("Související stránky"); } /*! This is put above each page as a link to all examples. */ virtual QCString trExamples() - { return DECODE("Pøíklady"); } + { return Decode("Pøíklady"); } /*! This is put above each page as a link to the search engine. */ virtual QCString trSearch() - { return DECODE("Hledat"); } + { return Decode("Hledat"); } /*! This is an introduction to the class hierarchy. */ virtual QCString trClassHierarchyDescription() - { return DECODE("Zde naleznete seznam, vyjadøující vztah dìdiènosti tøíd. " + { return Decode("Zde naleznete seznam, vyjadøující vztah dìdiènosti tøíd. " "Je seøazen pøibližnì (ale ne úplnì) podle abecedy:"); } @@ -307,12 +250,12 @@ class TranslatorCzech : public Translator QCString result="Zde naleznete seznam všech "; if (!extractAll) result+="dokumentovaných "; result+="souborù se struènými popisy:"; - return DECODE(result); + return Decode(result); } /*! This is an introduction to the annotated compound list. */ virtual QCString trCompoundListDescription() - { return DECODE("Následující seznam obsahuje pøedevším identifikace tøíd, " + { return Decode("Následující seznam obsahuje pøedevším identifikace tøíd, " "ale nachází se zde i další netriviální prvky, jako jsou " "struktury (struct), unie (union) a rozhraní (interface). " "V seznamu jsou uvedeny jejich struèné popisy:"); @@ -328,7 +271,7 @@ class TranslatorCzech : public Translator result+="dokumentaci tøíd, ke kterým pøíslušejí:"; else result+="tøídy, ke kterým pøíslušejí:"; - return DECODE(result); + return Decode(result); } /*! This is an introduction to the page with all file members. */ @@ -349,197 +292,197 @@ class TranslatorCzech : public Translator "Symbol mùže oznaèovat makro, typ, instanci tøídy, " "promìnnou, konstantu, funkci, výèet, hodnotu výètu a podobnì:"; - return DECODE(result); + return Decode(result); } /*! This is an introduction to the page with the list of all header files. */ virtual QCString trHeaderFilesDescription() - { return DECODE("Zde naleznete hlavièkové soubory, které tvoøí " + { return Decode("Zde naleznete hlavièkové soubory, které tvoøí " "aplikaèní programátorské rozhraní (API):"); } /*! This is an introduction to the page with the list of all examples */ virtual QCString trExamplesDescription() - { return DECODE("Zde naleznete seznam všech pøíkladù:"); } + { return Decode("Zde naleznete seznam všech pøíkladù:"); } /*! This is an introduction to the page with the list of related pages */ virtual QCString trRelatedPagesDescription() - { return DECODE("Zde naleznete seznam všech souvisejících stránek " + { return Decode("Zde naleznete seznam všech souvisejících stránek " "dokumentace:"); } /*! This is an introduction to the page with the list of class/file groups */ virtual QCString trModulesDescription() - { return DECODE("Zde naleznete seznam všech modulù:"); } + { return Decode("Zde naleznete seznam všech modulù:"); } /*! This sentences is used in the annotated class/file lists if no brief * description is given. */ virtual QCString trNoDescriptionAvailable() - { return DECODE("Popis není k dispozici"); } + { return Decode("Popis není k dispozici"); } // index titles (the project name is prepended for these) /*! This is used in HTML as the title of index.html. */ virtual QCString trDocumentation() - { return DECODE("Dokumentace"); } + { return Decode("Dokumentace"); } /*! This is used in LaTeX as the title of the chapter with the * index of all groups. */ virtual QCString trModuleIndex() - { return DECODE("Rejstøík modulù"); } + { return Decode("Rejstøík modulù"); } /*! This is used in LaTeX as the title of the chapter with the * class hierarchy. */ virtual QCString trHierarchicalIndex() - { return DECODE("Rejstøík hierarchie tøíd"); } + { return Decode("Rejstøík hierarchie tøíd"); } /*! This is used in LaTeX as the title of the chapter with the * annotated compound index. */ virtual QCString trCompoundIndex() - { return DECODE("Rejstøík tøíd"); } + { return Decode("Rejstøík tøíd"); } /*! This is used in LaTeX as the title of the chapter with the * list of all files. */ virtual QCString trFileIndex() - { return DECODE("Rejstøík souborù"); } + { return Decode("Rejstøík souborù"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all groups. */ virtual QCString trModuleDocumentation() - { return DECODE("Dokumentace modulù"); } + { return Decode("Dokumentace modulù"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all classes, structs and unions. */ virtual QCString trClassDocumentation() - { return DECODE("Dokumentace tøíd"); } + { return Decode("Dokumentace tøíd"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all files. */ virtual QCString trFileDocumentation() - { return DECODE("Dokumentace souborù"); } + { return Decode("Dokumentace souborù"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all examples. */ virtual QCString trExampleDocumentation() - { return DECODE("Dokumentace pøíkladù"); } + { return Decode("Dokumentace pøíkladù"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all related pages. */ virtual QCString trPageDocumentation() - { return DECODE("Dokumentace souvisejících stránek"); } + { return Decode("Dokumentace souvisejících stránek"); } /*! This is used in LaTeX as the title of the document */ virtual QCString trReferenceManual() - { return DECODE("Referenèní pøíruèka"); } + { return Decode("Referenèní pøíruèka"); } /*! This is used in the documentation of a file as a header before the * list of defines */ virtual QCString trDefines() - { return DECODE("Definice maker"); } + { return Decode("Definice maker"); } /*! This is used in the documentation of a file as a header before the * list of function prototypes */ virtual QCString trFuncProtos() - { return DECODE("Prototypy"); } + { return Decode("Prototypy"); } /*! This is used in the documentation of a file as a header before the * list of typedefs */ virtual QCString trTypedefs() - { return DECODE("Definice typù"); } + { return Decode("Definice typù"); } /*! This is used in the documentation of a file as a header before the * list of enumerations */ virtual QCString trEnumerations() - { return DECODE("Výèty"); } + { return Decode("Výèty"); } /*! This is used in the documentation of a file as a header before the * list of (global) functions */ virtual QCString trFunctions() - { return DECODE("Funkce"); } + { return Decode("Funkce"); } /*! This is used in the documentation of a file as a header before the * list of (global) variables */ virtual QCString trVariables() - { return DECODE("Promìnné"); } + { return Decode("Promìnné"); } /*! This is used in the documentation of a file as a header before the * list of (global) variables */ virtual QCString trEnumerationValues() - { return DECODE("Hodnoty výètù"); } + { return Decode("Hodnoty výètù"); } /*! This is used in man pages as the author section. */ virtual QCString trAuthor() - { return DECODE("Autor"); } + { return Decode("Autor"); } /*! This is used in the documentation of a file before the list of * documentation blocks for defines */ virtual QCString trDefineDocumentation() - { return DECODE("Dokumentace k definicím maker"); } + { return Decode("Dokumentace k definicím maker"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for function prototypes */ virtual QCString trFunctionPrototypeDocumentation() - { return DECODE("Dokumentace prototypù"); } + { return Decode("Dokumentace prototypù"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for typedefs */ virtual QCString trTypedefDocumentation() - { return DECODE("Dokumentace definic typù"); } + { return Decode("Dokumentace definic typù"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration types */ virtual QCString trEnumerationTypeDocumentation() - { return DECODE("Dokumentace výètových typù"); } + { return Decode("Dokumentace výètových typù"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration values */ virtual QCString trEnumerationValueDocumentation() - { return DECODE("Dokumentace výètových hodnot"); } + { return Decode("Dokumentace výètových hodnot"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for functions */ virtual QCString trFunctionDocumentation() - { return DECODE("Dokumentace funkcí"); } + { return Decode("Dokumentace funkcí"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for variables */ virtual QCString trVariableDocumentation() - { return DECODE("Dokumentace promìnných"); } + { return Decode("Dokumentace promìnných"); } /*! This is used in the documentation of a file/namespace/group before * the list of links to documented compounds */ virtual QCString trCompounds() - { return DECODE("Tøídy"); } + { return Decode("Tøídy"); } /*! This is used in the documentation of a group before the list of * links to documented files */ virtual QCString trFiles() - { return DECODE("Soubory"); } + { return Decode("Soubory"); } /*! This is used in the standard footer of each page and indicates when * the page was generated @@ -549,75 +492,75 @@ class TranslatorCzech : public Translator QCString result=(QCString)"Generováno "+date; if (projName) result+=(QCString)" pro projekt "+projName; result+=(QCString)" programem"; - return DECODE(result); + return Decode(result); } /*! This is part of the sentence used in the standard footer of each page. */ virtual QCString trWrittenBy() { - return DECODE(" -- autor "); + return Decode(" -- autor "); } /*! this text is put before a class diagram */ virtual QCString trClassDiagram(const char *clName) { - return DECODE((QCString)"Diagram dìdiènosti pro tøídu "+clName); + return Decode((QCString)"Diagram dìdiènosti pro tøídu "+clName); } /*! this text is generated when the \internal command is used. */ virtual QCString trForInternalUseOnly() - { return DECODE("Pouze pro vnitøní použití."); } + { return Decode("Pouze pro vnitøní použití."); } /*! this text is generated when the \reimp command is used. */ virtual QCString trReimplementedForInternalReasons() - { return DECODE("Reimplementováno z interních dùvodù; " + { return Decode("Reimplementováno z interních dùvodù; " "aplikaèní rozhraní zachováno."); } /*! this text is generated when the \warning command is used. */ virtual QCString trWarning() - { return DECODE("Pozor"); } + { return Decode("Pozor"); } /*! this text is generated when the \bug command is used. */ virtual QCString trBugsAndLimitations() - { return DECODE("Chyby a omezení"); } + { return Decode("Chyby a omezení"); } /*! this text is generated when the \version command is used. */ virtual QCString trVersion() - { return DECODE("Verze"); } + { return Decode("Verze"); } /*! this text is generated when the \date command is used. */ virtual QCString trDate() - { return DECODE("Datum"); } + { return Decode("Datum"); } /*! this text is generated when the \author command is used. */ virtual QCString trAuthors() - { return DECODE("Autor/autoøi"); } + { return Decode("Autor/autoøi"); } /*! this text is generated when the \return command is used. */ virtual QCString trReturns() - { return DECODE("Návratová hodnota"); } + { return Decode("Návratová hodnota"); } /*! this text is generated when the \sa command is used. */ virtual QCString trSeeAlso() - { return DECODE("Viz také"); } + { return Decode("Viz také"); } /*! this text is generated when the \param command is used. */ virtual QCString trParameters() - { return DECODE("Parametry"); } + { return Decode("Parametry"); } /*! this text is generated when the \exception command is used. */ virtual QCString trExceptions() - { return DECODE("Výjimky"); } + { return Decode("Výjimky"); } /*! this text is used in the title page of a LaTeX document. */ virtual QCString trGeneratedBy() - { return DECODE("Generováno programem"); } + { return Decode("Generováno programem"); } // new since 0.49-990307 /*! used as the title of page containing all the index of all namespaces. */ virtual QCString trNamespaceList() - { return DECODE("Seznam prostorù jmen"); } + { return Decode("Seznam prostorù jmen"); } /*! used as an introduction to the namespace list */ virtual QCString trNamespaceListDescription(bool extractAll) @@ -625,14 +568,14 @@ class TranslatorCzech : public Translator QCString result="Zde naleznete seznam všech "; if (!extractAll) result+="dokumentovaných "; result+="prostorù jmen se struèným popisem:"; - return DECODE(result); + return Decode(result); } /*! used in the class documentation as a header before the list of all * friends of a class */ virtual QCString trFriends() - { return DECODE("Friends"); } + { return Decode("Friends"); } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990405 @@ -642,7 +585,7 @@ class TranslatorCzech : public Translator * related classes */ virtual QCString trRelatedFunctionDocumentation() - { return DECODE("Dokumentace k friends"); } + { return Decode("Dokumentace k friends"); } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990425 @@ -664,7 +607,7 @@ class TranslatorCzech : public Translator case ClassDef::Exception: result+="výjimky "; break; } result+=clName; - return DECODE(result); + return Decode(result); } /*! used as the title of the HTML page of a file */ @@ -672,7 +615,7 @@ class TranslatorCzech : public Translator { QCString result("Dokumentace souboru "); result+=fileName; - return DECODE(result); + return Decode(result); } /*! used as the title of the HTML page of a namespace */ @@ -680,32 +623,32 @@ class TranslatorCzech : public Translator { QCString result("Dokumentace prostoru jmen "); result+=namespaceName; - return DECODE(result); + return Decode(result); } /*! \mgroup Class sections * these are for the member sections of a class, struct or union */ virtual QCString trPublicMembers() - { return DECODE("Veøejné metody"); } + { return Decode("Veøejné metody"); } virtual QCString trPublicSlots() - { return DECODE("Veøejné sloty"); } + { return Decode("Veøejné sloty"); } virtual QCString trSignals() - { return DECODE("Signály"); } + { return Decode("Signály"); } virtual QCString trStaticPublicMembers() - { return DECODE("Statické veøejné metody"); } + { return Decode("Statické veøejné metody"); } virtual QCString trProtectedMembers() - { return DECODE("Chránìné metody"); } + { return Decode("Chránìné metody"); } virtual QCString trProtectedSlots() - { return DECODE("Chránìné sloty"); } + { return Decode("Chránìné sloty"); } virtual QCString trStaticProtectedMembers() - { return DECODE("Statické chránìné metody"); } + { return Decode("Statické chránìné metody"); } virtual QCString trPrivateMembers() - { return DECODE("Privátní metody"); } + { return Decode("Privátní metody"); } virtual QCString trPrivateSlots() - { return DECODE("Privátní sloty"); } + { return Decode("Privátní sloty"); } virtual QCString trStaticPrivateMembers() - { return DECODE("Statické privátní metody"); } + { return Decode("Statické privátní metody"); } /*! \endmgroup */ /*! this function is used to produce a comma-separated list of items. @@ -730,7 +673,7 @@ class TranslatorCzech : public Translator result+=" a "; } } - return DECODE(result); + return Decode(result); } /*! used in class documentation to produce a list of base classes, @@ -738,7 +681,10 @@ class TranslatorCzech : public Translator */ virtual QCString trInheritsList(int numEntries) { - return DECODE("Dìdí "+trWriteList(numEntries)+"."); + QCString result("Dìdí z "); + result += (numEntries == 1) ? "bázové tøídy " : "bázových tøíd "; + result += trWriteList(numEntries)+"."; + return Decode(result); } /*! used in class documentation to produce a list of super classes, @@ -749,7 +695,7 @@ class TranslatorCzech : public Translator QCString result("Zdìdìna "); result += (numEntries == 1) ? "tøídou " : "tøídami "; result += trWriteList(numEntries)+"."; - return DECODE(result); + return Decode(result); } /*! used in member documentation blocks to produce a list of @@ -760,7 +706,7 @@ class TranslatorCzech : public Translator QCString result("Reimplementuje "); result += (numEntries == 1) ? "metodu tøídy " : "metody tøíd "; result += trWriteList(numEntries)+"."; - return DECODE(result); + return Decode(result); } /*! used in member documentation blocks to produce a list of @@ -771,12 +717,12 @@ class TranslatorCzech : public Translator QCString result("Reimplementováno "); result += (numEntries == 1) ? "tøídou " : "tøídami "; result += trWriteList(numEntries)+"."; - return DECODE(result); + return Decode(result); } /*! This is put above each page as a link to all members of namespaces. */ virtual QCString trNamespaceMembers() - { return DECODE("Symboly v prostorech jmen"); } + { return Decode("Symboly v prostorech jmen"); } /*! This is an introduction to the page with all namespace members */ virtual QCString trNamespaceMemberDescription(bool extractAll) @@ -789,19 +735,19 @@ class TranslatorCzech : public Translator result+="dokumentaci pøíslušného prostoru jmen:"; else result+="pøíslušný prostor jmen:"; - return DECODE(result); + return Decode(result); } /*! This is used in LaTeX as the title of the chapter with the * index of all namespaces. */ virtual QCString trNamespaceIndex() - { return DECODE("Rejstøík prostorù jmen"); } + { return Decode("Rejstøík prostorù jmen"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all namespaces. */ virtual QCString trNamespaceDocumentation() - { return DECODE("Dokumentace prostorù jmen"); } + { return Decode("Dokumentace prostorù jmen"); } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990522 @@ -811,7 +757,7 @@ class TranslatorCzech : public Translator * namespaces in a file. */ virtual QCString trNamespaces() - { return DECODE("Prostory jmen"); } + { return Decode("Prostory jmen"); } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990728 @@ -836,14 +782,14 @@ class TranslatorCzech : public Translator result+=" byla generována z "; if (single) result+="následujícího souboru:"; else result+="následujících souborù:"; - return DECODE(result); + return Decode(result); } /*! This is in the (quick) index as a link to the alphabetical compound * list. */ virtual QCString trAlphabeticalList() - { return DECODE("Rejstøík tøíd"); } + { return Decode("Rejstøík tøíd"); } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990901 @@ -851,18 +797,18 @@ class TranslatorCzech : public Translator /*! This is used as the heading text for the retval command. */ virtual QCString trReturnValues() - { return DECODE("Vracené hodnoty"); } + { return Decode("Vracené hodnoty"); } /*! This is in the (quick) index as a link to the main page (index.html) */ virtual QCString trMainPage() - { return DECODE("Hlavní stránka"); } + { return Decode("Hlavní stránka"); } /*! This is used in references to page that are put in the LaTeX * documentation. It should be an abbreviation of the word page. */ virtual QCString trPageAbbreviation() - { return DECODE("s."); } + { return Decode("s."); } ////////////////////////////////////////////////////////////////////////// // new since 0.49-991003 @@ -870,15 +816,15 @@ class TranslatorCzech : public Translator virtual QCString trSources() { - return DECODE("Zdroje"); + return Decode("Zdroje"); } virtual QCString trDefinedAtLineInSourceFile() { - return DECODE("Definice je uvedena na øádku @0 v souboru @1."); + return Decode("Definice je uvedena na øádku @0 v souboru @1."); } virtual QCString trDefinedInSourceFile() { - return DECODE("Definice v souboru @0."); + return Decode("Definice v souboru @0."); } ////////////////////////////////////////////////////////////////////////// @@ -887,7 +833,7 @@ class TranslatorCzech : public Translator virtual QCString trDeprecated() { - return DECODE("Zastaralé"); + return Decode("Zastaralé"); } ////////////////////////////////////////////////////////////////////////// @@ -897,69 +843,69 @@ class TranslatorCzech : public Translator /*! this text is put before a collaboration diagram */ virtual QCString trCollaborationDiagram(const char *clName) { - return DECODE((QCString)"Diagram tøíd pro "+clName+":"); + return Decode((QCString)"Diagram tøíd pro "+clName+":"); } /*! this text is put before an include dependency graph */ virtual QCString trInclDepGraph(const char *fName) { - return DECODE((QCString)"Graf závislostí na vkládaných souborech " + return Decode((QCString)"Graf závislostí na vkládaných souborech " "pro "+fName+":"); } /*! header that is put before the list of constructor/destructors. */ virtual QCString trConstructorDocumentation() { - return DECODE("Dokumentace konstruktoru a destruktoru"); + return Decode("Dokumentace konstruktoru a destruktoru"); } /*! Used in the file documentation to point to the corresponding sources. */ virtual QCString trGotoSourceCode() { - return DECODE("Zobrazit zdrojový text tohoto souboru."); + return Decode("Zobrazit zdrojový text tohoto souboru."); } /*! Used in the file sources to point to the corresponding documentation. */ virtual QCString trGotoDocumentation() { - return DECODE("Zobrazit dokumentaci tohoto souboru."); + return Decode("Zobrazit dokumentaci tohoto souboru."); } /*! Text for the \pre command */ virtual QCString trPrecondition() { - return DECODE("Precondition"); + return Decode("Precondition"); } /*! Text for the \post command */ virtual QCString trPostcondition() { - return DECODE("Postcondition"); + return Decode("Postcondition"); } /*! Text for the \invariant command */ virtual QCString trInvariant() { - return DECODE("Invariant"); + return Decode("Invariant"); } /*! Text shown before a multi-line variable/enum initialization */ virtual QCString trInitialValue() { - return DECODE("Initializer:"); + return Decode("Initializer:"); } /*! Text used the source code in the file index */ virtual QCString trCode() { - return DECODE("zdrojový text"); + return Decode("zdrojový text"); } virtual QCString trGraphicalHierarchy() { - return DECODE("Grafické zobrazení hierarchie tøíd"); + return Decode("Grafické zobrazení hierarchie tøíd"); } virtual QCString trGotoGraphicalHierarchy() { - return DECODE("Zobrazit grafickou podobu hierarchie tøíd"); + return Decode("Zobrazit grafickou podobu hierarchie tøíd"); } virtual QCString trGotoTextualHierarchy() { - return DECODE("Zobrazit textovou podobu hierarchie tøíd"); + return Decode("Zobrazit textovou podobu hierarchie tøíd"); } virtual QCString trPageIndex() { - return DECODE("Rejstøík stránek"); + return Decode("Rejstøík stránek"); } ////////////////////////////////////////////////////////////////////////// @@ -968,43 +914,43 @@ class TranslatorCzech : public Translator virtual QCString trNote() { - return DECODE("Poznámka"); + return Decode("Poznámka"); } virtual QCString trPublicTypes() { - return DECODE("Veøejné typy"); + return Decode("Veøejné typy"); } virtual QCString trPublicAttribs() { - return DECODE("Veøejné atributy"); + return Decode("Veøejné atributy"); } virtual QCString trStaticPublicAttribs() { - return DECODE("Statické veøejné atributy"); + return Decode("Statické veøejné atributy"); } virtual QCString trProtectedTypes() { - return DECODE("Chránìné typy"); + return Decode("Chránìné typy"); } virtual QCString trProtectedAttribs() { - return DECODE("Chránìné atributy"); + return Decode("Chránìné atributy"); } virtual QCString trStaticProtectedAttribs() { - return DECODE("Statické chránìné atributy"); + return Decode("Statické chránìné atributy"); } virtual QCString trPrivateTypes() { - return DECODE("Privátní typy"); + return Decode("Privátní typy"); } virtual QCString trPrivateAttribs() { - return DECODE("Privátní atributy"); + return Decode("Privátní atributy"); } virtual QCString trStaticPrivateAttribs() { - return DECODE("Statické privátní atributy"); + return Decode("Statické privátní atributy"); } ////////////////////////////////////////////////////////////////////////// @@ -1014,12 +960,12 @@ class TranslatorCzech : public Translator /*! Used as a marker that is put before a todo item */ virtual QCString trTodo() { - return DECODE("Udìlat"); + return Decode("Plánované úpravy"); } /*! Used as the header of the todo list */ virtual QCString trTodoList() { - return DECODE("Seznam plánovaných úprav"); + return Decode("Seznam plánovaných úprav"); } ////////////////////////////////////////////////////////////////////////// @@ -1028,24 +974,24 @@ class TranslatorCzech : public Translator virtual QCString trReferencedBy() { - return DECODE("Používá se v"); + return Decode("Používá se v"); } virtual QCString trRemarks() { - return DECODE("Poznámky"); // ??? not checked in a context + return Decode("Poznámky"); // ??? not checked in a context } virtual QCString trAttention() { - return DECODE("Upozornìní"); // ??? not checked in a context + return Decode("Upozornìní"); // ??? not checked in a context } virtual QCString trInclByDepGraph() { - return DECODE("Následující graf ukazuje, které soubory pøímo nebo " + return Decode("Následující graf ukazuje, které soubory pøímo nebo " "nepøímo vkládají tento soubor:"); } virtual QCString trSince() { - return DECODE("Od"); // ??? not checked in a context + return Decode("Od"); // ??? not checked in a context } //////////////////////////////////////////////////////////////////////////// @@ -1055,7 +1001,7 @@ class TranslatorCzech : public Translator /*! title of the graph legend page */ virtual QCString trLegendTitle() { - return DECODE("Vysvìtlivky ke grafu"); + return Decode("Vysvìtlivky ke grafu"); } /*! page explaining how the dot graph's should be interpreted */ virtual QCString trLegendDocs() @@ -1124,12 +1070,12 @@ class TranslatorCzech : public Translator "je tøída nebo struktura zpøístupnìna.\n" "</ul>\n"); - return DECODE(result); + return Decode(result); } /*! text for the link to the legend page */ virtual QCString trLegend() { - return DECODE("vysvìtlivky"); + return Decode("vysvìtlivky"); } ////////////////////////////////////////////////////////////////////////// @@ -1139,13 +1085,13 @@ class TranslatorCzech : public Translator /*! Used as a marker that is put before a test item */ virtual QCString trTest() { - return "Test"; + return Decode("Test"); } /*! Used as the header of the test list */ virtual QCString trTestList() { - return "Seznam testù"; + return Decode("Seznam testù"); } }; diff --git a/src/translator_hr.h b/src/translator_hr.h index 8b619e3..338ad17 100644 --- a/src/translator_hr.h +++ b/src/translator_hr.h @@ -31,96 +31,27 @@ class TranslatorCroatian : public Translator { private: - /*! to avoid macro redefinition from translator_cz.h */ - /* Speed loss is actualy less than in Czech version due to - fewer QCString copying. - */ - inline QCString& decode(const QCString& sInput) - { + /*! to avoid macro redefinition from translator_cz.h */ + /* Speed loss is actualy less than in Czech version due to + fewer QCString copying. + */ + inline QCString decode(const QCString& sInput) + { #ifdef _WIN32 - return ISOToWin(sInput); + return ISO88592ToWin1250(sInput); #else - return const_cast<QCString&>(sInput); + return sInput; #endif - } - /*! returns the string converted from windows-1250 to iso-8859-2 */ - QCString WinToISO(const QCString& sInput) - { - // The conversion table for characters >127 - // - static const char WinToISOTab[] = { - '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87', - '\x88', '\x89', '\xA9', '\x8B', '\xA6', '\xAB', '\xAE', '\xAC', - '\x90', '\x91', '\x92', '\x93', '\x94', '\x2E', '\x96', '\x97', - '\x98', '\x99', '\xB9', '\x9B', '\xB6', '\xBB', '\xBE', '\xBC', - '\xA0', '\x20', '\x20', '\xA3', '\xA4', '\xA1', '\xA6', '\xA7', - '\x22', '\xA9', '\xAA', '\x3C', '\xAC', '\x2D', '\xAE', '\xAF', - '\x2E', '\x2B', '\x20', '\xB3', '\x27', '\x75', '\xB6', '\xB7', - '\x20', '\xB1', '\xBA', '\x3E', '\xA5', '\x22', '\xB5', '\xBF', - '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7', - '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF', - '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7', - '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF', - '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7', - '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF', - '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\x2D', - '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF', - '\0' - }; - - QCString result; - int len = sInput.length(); - - for (int i = 0; i < len; ++i) - { - unsigned int c = sInput[i]; - result += (c > 127) ? WinToISOTab[c & 0x7F] : c; - } - return result; - } - - /*! returns the string converted from iso-8859-2 to windows-1250 */ - QCString ISOToWin(const QCString& sInput) - { - // The conversion table for characters >127 - // - static const char ISOToWinTab[] = { - '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87', - '\x88', '\x89', '\x8A', '\x8B', '\x8C', '\x8D', '\x8E', '\x8F', - '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97', - '\x98', '\x99', '\x9A', '\x9B', '\x9C', '\x9D', '\x9E', '\x9F', - '\xA0', '\xA5', '\xA2', '\xA3', '\xA4', '\xBC', '\x8C', '\xA7', - '\xA8', '\x8A', '\xAA', '\x8D', '\x8F', '\xAD', '\x8E', '\xAF', - '\xB0', '\xB9', '\xB2', '\xB3', '\xB4', '\xBE', '\x9C', '\xB7', - '\xB8', '\x9A', '\xBA', '\x9D', '\x9F', '\xBD', '\x9E', '\xBF', - '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7', - '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF', - '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7', - '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF', - '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7', - '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF', - '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\xF7', - '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF', - '\0' - }; - QCString result; - int len = sInput.length(); - - for (int i = 0; i < len; ++i) - { - unsigned int c = sInput[i]; - result += (c > 127) ? ISOToWinTab[c & 0x7F] : c; - } - return result; - } + } + public: QCString idLanguage() { return "croatian"; } QCString idLanguageCharset() #ifdef _WIN32 - { return "windows-1250"; } + { return "windows-1250"; } #else - { return "iso-8859-2"; } + { return "iso-8859-2"; } #endif QCString latexBabelPackage() { return "croatian"; } @@ -137,7 +68,7 @@ class TranslatorCroatian : public Translator QCString trEnumerationValueDocumentation() { return decode("Dokumentacija enum vrijednosti"); } QCString trMemberFunctionDocumentation() - { return decode("Dokumentacija funkcija"); } + { return decode("Dokumentacija funkcija"); } QCString trMemberDataDocumentation() { return decode("Documentacija varijabli"); } QCString trGeneratedFrom(const char *s,bool single) @@ -145,9 +76,9 @@ class TranslatorCroatian : public Translator QCString result= decode("Dokumentacija za ")+s+ decode("je generirana iz "); if (single) - result+= decode("datoteke :"); - else - result+= decode("slijedeæih datoteka:"); + result+= decode("datoteke :"); + else + result+= decode("slijedeæih datoteka:"); return result; } QCString trMore() @@ -196,7 +127,7 @@ class TranslatorCroatian : public Translator { return decode("Tra¾i"); } QCString trClassHierarchyDescription() { return decode("Stablo naslijeðivanja je poslo¾eno " - "pribli¾no po abecedi:"); + "pribli¾no po abecedi:"); } QCString trFileListDescription(bool extractAll) { @@ -207,7 +138,7 @@ class TranslatorCroatian : public Translator } QCString trCompoundListDescription() { return decode("Popis svih klasa, unija i struktura " - "s kratkim opisom :"); + "s kratkim opisom :"); } QCString trCompoundMembersDescription(bool extractAll) { @@ -311,8 +242,8 @@ class TranslatorCroatian : public Translator QCString trForInternalUseOnly() { return decode("Iskljuèivo za internu uporabu."); } QCString trReimplementedForInternalReasons() - { return decode("Reimplementirano zbog internih razloga; " - "Nema utjecaja na API."); + { return decode("Reimplementirano zbog internih razloga; " + "Nema utjecaja na API."); } QCString trWarning() { return decode("Upozorenje"); } @@ -376,7 +307,7 @@ class TranslatorCroatian : public Translator case ClassDef::Interface: result+=decode(" suèelja (interface) "); break; case ClassDef::Exception: result+=decode(" iznimke (exception) "); break; } - result += (QCString)clName; + result += (QCString)clName; return result; } @@ -384,14 +315,14 @@ class TranslatorCroatian : public Translator // used as the title of the HTML page of a file { QCString result=decode("Opis datoteke "); - result+=fileName; - return result; + result+=fileName; + return result; } QCString trNamespaceReference(const char *namespaceName) // used as the title of the HTML page of a namespace { QCString result =decode("Opis namespace-a "); - result+=namespaceName; + result+=namespaceName; return result; } @@ -712,12 +643,12 @@ class TranslatorCroatian : public Translator } virtual QCString trAttention() { - return decode("Pa¾nja"); + return decode("Pa¾nja"); } virtual QCString trInclByDepGraph() { return decode("Ovaj graf pokazuje koje datoteke izravno " - "ili neizravno ukljuèuju ovu datoteku:"); + "ili neizravno ukljuèuju ovu datoteku:"); } virtual QCString trSince() { diff --git a/src/translator_kr.h b/src/translator_kr.h new file mode 100644 index 0000000..6703fe0 --- /dev/null +++ b/src/translator_kr.h @@ -0,0 +1,803 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2000 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_KR_H +#define TRANSLATOR_KR_H + +#include "translator.h" + +class TranslatorKorean : public Translator +{ + public: + QCString idLanguage() + { return "korean"; } + /*! returns the name of the package that is included by LaTeX */ + QCString latexBabelPackage() + { return ""; } // What is the correct value here? + + /*! return the language charset. This will be used for the HTML output */ + virtual QCString idLanguageCharset() + { + return "euc-kr"; + } + + /*! used in the compound documentation before a list of related functions. */ + QCString trRelatedFunctions() + { return "°ü·ÃµÈ ÇÔ¼öµé"; } + + /*! subscript for the related functions. */ + QCString trRelatedSubscript() + { return "°ü·ÃÁÖ¼®"; } + + /*! header that is put before the detailed description of files, classes and namespaces. */ + QCString trDetailedDescription() + { return "»ó¼¼ÇÑ ³»¿ë"; } + + /*! header that is put before the list of typedefs. */ + QCString trMemberTypedefDocumentation() + { return "¸â¹ö ŸÀÔÁ¤ÀÇ ¹®¼È"; } + + /*! header that is put before the list of enumerations. */ + QCString trMemberEnumerationDocumentation() + { return "±¸¼º¿ø(member) ¿°Å ¹®¼È"; } + + /*! header that is put before the list of member functions. */ + QCString trMemberFunctionDocumentation() + { return "¸â¹ö ÇÔ¼ö ¹®¼È"; } + + /*! header that is put before the list of member attributes. */ + QCString trMemberDataDocumentation() + { return "¸â¼ µ¥ÀÌŸ ¹®¼È"; } + + /*! this is the text of a link put after brief descriptions. */ + QCString trMore() + { return "More..."; } + + /*! put in the class documentation */ + QCString trListOfAllMembers() + { return "¸ðµç ±¸¼º¿øµé(members)ÀÇ ¸í´Ü"; } + + /*! used as the title of the "list of all members" page of a class */ + QCString trMemberList() + { return "±¸¼º¿ø(member) ¸í´Ü"; } + + /*! this is the first part of a sentence that is followed by a class name */ + QCString trThisIsTheListOfAllMembers() + { return "¿ÏÀüÇÑ ±¸¼º¿øµé(members)ÀÇ ¸í´Ü " ; } // "This is the complete list of members for " + + /*! this is the remainder of the sentence after the class name */ + QCString trIncludingInheritedMembers() + { return ", »ó¼Ó¹ÞÀº ¸ðµç ±¸¼º¿ø(members)µéµµ Æ÷ÇÔ"; } // ", including all inherited members." + + /*! this is put at the author sections at the bottom of man pages. + * parameter s is name of the project name. + */ + QCString trGeneratedAutomatically(const char *s) + { QCString result=""; + if (s) result+=(QCString)s+"¿¡ "; + result+="source ÄÚµå·Î ºÎÅÍ Doxygen¿¡ ÀÇÇØ ÀÚµ¿ÀûÀ¸·Î »ý¼º"; + return result; + } + + /*! put after an enum name in the list of all members */ + QCString trEnumName() + { return "¿°Åü À̸§"; } + + /*! put after an enum value in the list of all members */ + QCString trEnumValue() + { return "¿°Åü °ª"; } + + /*! put after an undocumented member in the list of all members */ + QCString trDefinedIn() + { return "¿¡¼ Á¤ÀǵÈ"; } + + /*! put as in introduction in the verbatim header file of a class. + * parameter f is the name of the include file. + */ + QCString trVerbatimText(const char *f) + { return (QCString)"ÀÌ°ÍÀº "+f+" Æ÷ÇÔ ÆÄÀÏÀÇ Ãà¾àÀûÀÎ ¹®¼ÀÌ´Ù"; } + + // 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). + */ + QCString trModules() + { return "¸ðµâµé"; } + + /*! This is put above each page as a link to the class hierarchy */ + QCString trClassHierarchy() + { return "Ŭ·¡½º °èÃþ(µµ)"; } // "Ŭ·¡½º Á¶Á÷" or "Ŭ·¡½º ºÐ·ùü°è" + + /*! This is put above each page as a link to the list of annotated classes */ + QCString trCompoundList() + { return "È¥ÇÕ ¸ñ·Ï"; } //"È¥ÇÕ ¸ñ·Ï", "ÇÕ¼º(ÁýÇÕ) ¸í´Ü(¸®½ºÆ®)" + + /*! This is put above each page as a link to the list of documented files */ + QCString trFileList() + { return "ÆÄÀÏ ¸ñ·Ï"; } //"ÆÄÀÏ ¸ñ·Ï", "ÆÄÀÏ ¸®½ºÆ®" + + /*! This is put above each page as a link to the list of all verbatim headers */ + QCString trHeaderFiles() + { return "Çì´õ ÆÄÀϵé"; } + + /*! This is put above each page as a link to all members of compounds. */ + QCString trCompoundMembers() + { return "È¥ÇÕ ¸â¹öµé"; } // "ÇÕ¼º(ÁýÇÕ) ¸í´Ü(¸â¹öµé)" + + /*! This is put above each page as a link to all members of files. */ + QCString trFileMembers() + { return "ÆÄÀÏ ¸â¹öµé"; } + + /*! This is put above each page as a link to all related pages. */ + QCString trRelatedPages() + { return "°ü·ÃµÈ ÆäÀÌÁöµé"; } + + /*! This is put above each page as a link to all examples. */ + QCString trExamples() + { return "¿¹Á¦µé"; } + + /*! This is put above each page as a link to the search engine. */ + QCString trSearch() + { return "°Ë»ö"; } + + /*! This is an introduction to the class hierarchy. */ + QCString trClassHierarchyDescription() + { return "ÀÌ »ó¼Ó ¸ñ·ÏÀº ¿ÏÀüÇÏÁö´Â ¾ÊÁö¸¸ ¾ËÆĺª¼øÀ¸·Î ºÐ·ùµÇ¾ú½À´Ï´Ù.";} + + /*! This is an introduction to the list with all files. */ + QCString trFileListDescription(bool extractAll) + { + QCString result="ÀÌ°ÍÀº °£·«ÇÑ ¼³¸íÀ» °¡Áø ¸ðµç "; // "Here is a list of all " + if (!extractAll) result+="¹®¼ÈµÈ "; // "documented " + result+="ÆÄÀϵ鿡 ´ëÇÑ ¸ñ·ÏÀÔ´Ï´Ù."; // "files with brief descriptions:" + return result; + } + + /*! This is an introduction to the annotated compound list. */ + QCString trCompoundListDescription() + { return "ÀÌ°ÍÀº °£·«ÇÑ ¼³¸íÀ» °¡Áø Ŭ·¡½ºµé, " + "±¸Á¶Ã¼µé, °ø¿ëüµé, ±×¸®°í ÀÎÅÍÆäÀ̽ºµéÀÔ´Ï´Ù."; + } + + /*! This is an introduction to the page with all class members. */ + QCString trCompoundMembersDescription(bool extractAll) + { + QCString result="ÀÌ°÷¿¡ ¸ðµç ¸®½ºÆ®°¡ ÀÖ½À´Ï´Ù"; //"Here is a list of all " + if (!extractAll) result+="¹®¼ÈµÈ "; //"documented " + result+="¸µÅ©°¡ µÈ Ŭ·¡½º ¸â¹öµé "; //"class members with links to " + if (extractAll) + result+="°¢°¢ÀÇ ¸â¹ö¸¦ À§ÇÑ Å¬·¡½º ¹®¼:"; //"the class documentation for each member:" + else + result+="ÀÌÇÏ·Î ¼ÓÇÑ Å¬·¡½ºµé:"; //"the classes they belong to:" + return result; + } + + /*! This is an introduction to the page with all file members. */ + QCString trFileMembersDescription(bool extractAll) + { + QCString result="ÀÌ°÷¿¡ ¸ðµç ¸®½ºÆ®°¡ ÀÖ½À´Ï´Ù"; + if (!extractAll) result+="¹®¼ÈµÈ "; + result+="¸µÅ©°¡ µÈ ÆÄÀÏ ¸â¹öµé "; + if (extractAll) + result+="°¢ ¸â¹öµé¿¡ ´ëÇÑ ÆÄÀÏ ¹®¼È"; // "the file documentation for each member:" + else + result+="±×°ÍµéÀÌ ¼ÓÇØÀÖ´Â ÆÄÀϵé"; // "the files they belong to:" + return result; + } + + /*! This is an introduction to the page with the list of all header files. */ + QCString trHeaderFilesDescription() + { return "ÀÌ°ÍÀº API¸¦ ±¸¼ºÇÏ´Â Çì´õ ÆÄÀϵéÀÔ´Ï´Ù."; } // "Here are the header files that make up the API:" + + /*! This is an introduction to the page with the list of all examples */ + QCString trExamplesDescription() + { return "ÀÌ°ÍÀº ¸ðµç ¿¹Á¦µéÀÇ ¸ñ·ÏÀÔ´Ï´Ù."; } // "Here is a list of all examples:" + + /*! This is an introduction to the page with the list of related pages */ + QCString trRelatedPagesDescription() + { return "ÀÌ°ÍÀº ¸ðµç °ü·ÃµÈ ¹®¼È ÆäÀÌÁöµéÀÇ ¸ñ·ÏÀÔ´Ï´Ù."; } + // "Here is a list of all related documentation pages:" + + /*! This is an introduction to the page with the list of class/file groups */ + QCString trModulesDescription() + { return "ÀÌ°ÍÀº ¸ðµç ¸ðµâµéÀÇ ¸ñ·ÏÀÔ´Ï´Ù."; } // "Here is a list of all modules:" + + /*! This sentences is used in the annotated class/file lists if no brief + * description is given. + */ + QCString trNoDescriptionAvailable() + { return "À¯¿ëÇÑ ¼³¸íÀÌ ¾ø½À´Ï´Ù."; } // "No description available" + + // index titles (the project name is prepended for these) + + + /*! This is used in HTML as the title of index.html. */ + QCString trDocumentation() + { return "¹®¼È"; } + + /*! This is used in LaTeX as the title of the chapter with the + * index of all groups. + */ + QCString trModuleIndex() + { return "¸ðµâ »öÀÎ"; } + + /*! This is used in LaTeX as the title of the chapter with the + * class hierarchy. + */ + QCString trHierarchicalIndex() + { return "ºÐ·ùü°è »öÀÎ"; } // "Á¶Á÷ »öÀÎ", "°èÃþÀû À妽º" + + /*! This is used in LaTeX as the title of the chapter with the + * annotated compound index. + */ + QCString trCompoundIndex() + { return "ÇÕ¼º À妽º"; } // "È¥ÇÕ »öÀÎ" + + /*! This is used in LaTeX as the title of the chapter with the + * list of all files. + */ + QCString trFileIndex() + { return "ÆÄÀÏ »öÀÎ"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all groups. + */ + QCString trModuleDocumentation() + { return "¸ðµâ ¹®¼È"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all classes, structs and unions. + */ + QCString trClassDocumentation() + { return "Ŭ·¡½º ¹®¼È"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all files. + */ + QCString trFileDocumentation() + { return "ÆÄÀÏ ¹®¼È"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all examples. + */ + QCString trExampleDocumentation() + { return "¿¹Á¦ ¹®¼È"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all related pages. + */ + QCString trPageDocumentation() + { return "ÆäÀÌÁö ¹®¼È"; } + + /*! This is used in LaTeX as the title of the document */ + QCString trReferenceManual() + { return "Âü°í¼"; } // "Âü°í¼","Âü°í ¸Å´º¾ó", "ÂüÁ¶ ¸Þ´º¾ó" + + /*! This is used in the documentation of a file as a header before the + * list of defines + */ + QCString trDefines() + { return "Á¤Àǵé"; } + + /*! This is used in the documentation of a file as a header before the + * list of function prototypes + */ + QCString trFuncProtos() + { return "ÇÔ¼ö ¿øÇüµé"; } + + /*! This is used in the documentation of a file as a header before the + * list of typedefs + */ + QCString trTypedefs() + { return "ŸÀÔ Á¤Àǵé"; } + + /*! This is used in the documentation of a file as a header before the + * list of enumerations + */ + QCString trEnumerations() + { return "Enumerations"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) functions + */ + QCString trFunctions() + { return "ÇÔ¼öµé"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) variables + */ + QCString trVariables() + { return "º¯¼öµé"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) variables + */ + QCString trEnumerationValues() + { return "¿°Åü °ªµé"; } + + /*! This is used in man pages as the author section. */ + QCString trAuthor() + { return "ÀúÀÚ"; } + + /*! This is used in the documentation of a file before the list of + * documentation blocks for defines + */ + QCString trDefineDocumentation() + { return "Á¤ÀÇ ¹®¼È"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for function prototypes + */ + QCString trFunctionPrototypeDocumentation() + { return "ÇÔ¼ö ¿øÇü ¹®¼È"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for typedefs + */ + QCString trTypedefDocumentation() + { return "ŸÀÔ Á¤ÀÇ ¹®¼È"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for enumeration types + */ + QCString trEnumerationTypeDocumentation() + { return "¿°Åü ŸÀÔ ¹®¼È"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for enumeration values + */ + QCString trEnumerationValueDocumentation() + { return "¿°Åü °ª ¹®¼È"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for functions + */ + QCString trFunctionDocumentation() + { return "ÇÔ¼ö ¹®¼È"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for variables + */ + QCString trVariableDocumentation() + { return "º¯¼ö ¹®¼È"; } + + /*! This is used in the documentation of a file/namespace/group before + * the list of links to documented compounds + */ + QCString trCompounds() + { return "È¥ÇÕµé"; } + + /*! This is used in the documentation of a group before the list of + * links to documented files + */ + QCString trFiles() + { return "ÆÄÀϵé"; } + + /*! This is used in the standard footer of each page and indicates when + * the page was generated + */ + QCString trGeneratedAt(const char *date,const char *projName) + { + QCString result=""; + if (projName) result+=(QCString)projName+"¿¡ ´ëÇØ "; + result += (QCString)date+" »ý¼º by"; + return result; + } + /*! This is part of the sentence used in the standard footer of each page. + */ + QCString trWrittenBy() + { + return "written by"; // "¿¡ ÀÇÇØ ¾²¿©Áø?" + } + + /*! this text is put before a class diagram */ + QCString trClassDiagram(const char *clName) + { + return (QCString)clName+"¿¡ ´ëÇÑ »ó¼Ó µµÇ¥"; // "Inheritance diagram for "+clName + } + + /*! this text is generated when the \internal command is used. */ + QCString trForInternalUseOnly() + { return "³»ºÎ »ç¿ë¸¸À» À§ÇØ"; } + + /*! this text is generated when the \reimp command is used. */ + QCString trReimplementedForInternalReasons() + { return "³»ºÎÀû ÀÌÀ¯¸¦ À§ÇØ À籸ÇöµÈ: API°¡ ¿µÇâÀ» ¹ÞÁö¾Ê¾Ò´Ù."; } + // "Reimplemented for internal reasons; the API is not affected." + + /*! this text is generated when the \warning command is used. */ + QCString trWarning() + { return "°æ°í"; } + + /*! this text is generated when the \bug command is used. */ + QCString trBugsAndLimitations() + { return "¹ö±×µé°ú ÇÑ°èµé"; } + + /*! this text is generated when the \version command is used. */ + QCString trVersion() + { return "¹öÀü"; } + + /*! this text is generated when the \date command is used. */ + QCString trDate() + { return "³¯Â¥"; } + + /*! this text is generated when the \author command is used. */ + QCString trAuthors() + { return "ÀúÀÚ(µé)"; } + + /*! this text is generated when the \return command is used. */ + QCString trReturns() + { return "¹Ýȯ"; } + + /*! this text is generated when the \sa command is used. */ + QCString trSeeAlso() + { return "ÂüÁ¶ÇϽÿä"; } + + /*! this text is generated when the \param command is used. */ + QCString trParameters() + { return "¸Å°³º¯¼öµé"; } + + /*! this text is generated when the \exception command is used. */ + QCString trExceptions() + { return "¿¹¿Üµé"; } + + /*! this text is used in the title page of a LaTeX document. */ + QCString trGeneratedBy() + { return "¿¡ ÀÇÇØ »ý¼ºµÈ"; } + + // new since 0.49-990307 + + /*! used as the title of page containing all the index of all namespaces. */ + QCString trNamespaceList() + { return "À̸§°ø°£ ¸ñ·Ï"; } + + /*! used as an introduction to the namespace list */ + QCString trNamespaceListDescription(bool extractAll) + { + QCString result="ÀÌ°ÍÀº ¸ðµç °£·«ÇÑ ¼³¸íÀ» °¡Áø "; + if (!extractAll) result+="¹®¼ÈµÈ "; + result+="À̸§°ø°£ÀÇ ¸ñ·ÏÀÔ´Ï´Ù:"; + return result; + } + + /*! used in the class documentation as a header before the list of all + * friends of a class + */ + QCString trFriends() + { return "ÇÁ·»µå"; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990405 +////////////////////////////////////////////////////////////////////////// + + /*! used in the class documentation as a header before the list of all + * related classes + */ + virtual QCString trRelatedFunctionDocumentation() + { return "ÇÁ·»µå, ±×¸®°í °ü·ÃµÈ ÇÔ¼ö ¹®¼È"; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990425 +////////////////////////////////////////////////////////////////////////// + + /*! used as the title of the HTML page of a class/struct/union */ + QCString trCompoundReference(const char *clName, + ClassDef::CompoundType compType, + bool isTemplate) + { + QCString result=(QCString)clName+" "; + if (isTemplate) result+=" ÅÛÇø´"; + switch(compType) + { + case ClassDef::Class: result+=" Ŭ·¡½º"; break; + case ClassDef::Struct: result+=" ±¸Á¶Ã¼"; break; + case ClassDef::Union: result+=" °ø¿ëü"; break; + case ClassDef::Interface: result+=" ÀÎÅÍÆäÀ̽º"; break; + case ClassDef::Exception: result+=" ¿¹¿Ü"; break; + } + result+=" ÂüÁ¶"; + return result; + } + + /*! used as the title of the HTML page of a file */ + QCString trFileReference(const char *fileName) + { + QCString result=fileName; + result+=" ÆÄÀÏ ÂüÁ¶"; + return result; + } + + /*! used as the title of the HTML page of a namespace */ + QCString trNamespaceReference(const char *namespaceName) + { + QCString result=namespaceName; + result+=" À̸§ °ø°£ ÂüÁ¶"; + return result; + } + + /*! \mgroup Class sections + * these are for the member sections of a class, struct or union + */ + QCString trPublicMembers() + { return "°ø¿ë ¸Þ¼Òµå"; } + QCString trPublicSlots() + { return "°ø¿ë Slots"; } + QCString trSignals() + { return "½ÅÈ£"; } + QCString trStaticPublicMembers() + { return "Á¤Àû °ø¿ë ¸Þ¼Òµå"; } + QCString trProtectedMembers() + { return "ÇÁ·ÎÅØƼµå ¸Þ¼Òµå"; } + QCString trProtectedSlots() + { return "Protected Slots"; } + QCString trStaticProtectedMembers() + { return "Á¤Àû ÇÁ·ÎÅØƼµå ¸Þ¼Òµå"; } + QCString trPrivateMembers() + { return "ÇÁ¶óÀ̺£ÀÌÆ® ¸Þ¼Òµå"; } + QCString trPrivateSlots() + { return "Private Slots"; } + QCString trStaticPrivateMembers() + { return "Á¤Àû ÇÁ¶óÀ̺£ÀÌÆ® ¸Þ¼Òµå"; } + /*! \endmgroup */ + + /*! this function is used to produce a comma-separated list of items. + * use generateMarker(i) to indicate where item i should be put. + */ + 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+=", and "; + } + } + return result; + } + + /*! used in class documentation to produce a list of base classes, + * if class diagrams are disabled. + */ + QCString trInheritsList(int numEntries) + { + return trWriteList(numEntries)+" µéÀ» »ó¼ÓÇÏ´Ù."; + } + + /*! used in class documentation to produce a list of super classes, + * if class diagrams are disabled. + */ + QCString trInheritedByList(int numEntries) + { + return trWriteList(numEntries)+"¿¡ ÀÇÇØ »ó¼ÓµÈ."; + } + + /*! used in member documentation blocks to produce a list of + * members that are hidden by this one. + */ + QCString trReimplementedFromList(int numEntries) + { + return trWriteList(numEntries)+"À¸·ÎºÎÅÍ À籸ÇöµÈ."; + } + + /*! used in member documentation blocks to produce a list of + * all member that overwrite the implementation of this member. + */ + QCString trReimplementedInList(int numEntries) + { + return trWriteList(numEntries)+"¿¡¼ À籸ÇöµÈ."; + } + + /*! This is put above each page as a link to all members of namespaces. */ + QCString trNamespaceMembers() + { return "À̸§°ø°£ ¸â¹öµé"; } + + /*! This is an introduction to the page with all namespace members */ + QCString trNamespaceMemberDescription(bool extractAll) + { + QCString result="ÀÌ°ÍÀº ¸ðµç "; + if (!extractAll) result+="¹®¼ÈµÈ "; + result+="À̸§°ø°£ ¸â¹öµéÀÇ ¸ñ·ÏÀÔ´Ï´Ù."; + if (extractAll) + result+="°¢ ¸â¹öµé¿¡ ´ëÇÑ ¹®¼È¿¡ "; + else + result+="¼ÓÇØÀÖ´Â À̸§°ø°£¿¡ "; + result+="¸µÅ©µµÀÖÀ¾´Ï´Ù."; + return result; + } + /*! This is used in LaTeX as the title of the chapter with the + * index of all namespaces. + */ + QCString trNamespaceIndex() + { return "À̸§°ø°£ »öÀÎ"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all namespaces. + */ + QCString trNamespaceDocumentation() + { return "À̸§°ø°£ ¹®¼È"; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990522 +////////////////////////////////////////////////////////////////////////// + + /*! This is used in the documentation before the list of all + * namespaces in a file. + */ + QCString trNamespaces() + { return "À̸§°ø°£"; } + +////////////////////////////////////////////////////////////////////////// +// 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. + */ + QCString trGeneratedFromFiles(ClassDef::CompoundType compType, + bool single) + { // here s is one of " Class", " Struct" or " Union" + // single is true implies a single file + QCString result=(QCString)"ÀÌ "; + switch(compType) + { + case ClassDef::Class: result+="Ŭ·¡½º"; break; + case ClassDef::Struct: result+="±¸Á¶Ã¼"; break; + case ClassDef::Union: result+="°ø¿ëü"; break; + case ClassDef::Interface: result+="ÀÎÅÍÆäÀ̽º"; break; + case ClassDef::Exception: result+="¿¹¿Ü"; break; + } + result+="À» À§ÇÑ ¹®¼È´Â ´ÙÀ½ÀÇ ÆÄÀÏ"; + if (!single) result+="µé"; + result+="·ÎºÎÅÍ »ý¼ºµÇ¾ú½À´Ï´Ù:"; + return result; + } + + /*! This is in the (quick) index as a link to the alphabetical compound + * list. + */ + QCString trAlphabeticalList() + { return "¾ËÆĺª¼ø¼ÀÇ ¸ñ·Ï"; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990901 +////////////////////////////////////////////////////////////////////////// + + /*! This is used as the heading text for the retval command. */ + QCString trReturnValues() + { return "¹Ýȯ°ª"; } + + /*! This is in the (quick) index as a link to the main page (index.html) + */ + QCString trMainPage() + { return "ÁÖ¿ä ÆäÀÌÁö"; } + + /*! This is used in references to page that are put in the LaTeX + * documentation. It should be an abbreviation of the word page. + */ + QCString trPageAbbreviation() + { return "ÆäÀÌÁö"; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-991003 +////////////////////////////////////////////////////////////////////////// + + QCString trSources() + { + return "Ãâó"; + } + QCString trDefinedAtLineInSourceFile() + { + return "ÆÄÀÏ @1. ÀÇ @0 ¹ø° ¶óÀο¡¼ Á¤ÀÇ"; // "Definition at line @0 of file @1." + } + QCString trDefinedInSourceFile() + { + return "ÆÄÀÏ @0. ¿¡¼ Á¤ÀÇ"; // "Definition in file @0." + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.0.0 +////////////////////////////////////////////////////////////////////////// + + QCString trDeprecated() + { + return "Deprecated"; // "ºñ³¹ÞÀº(??)","¹Ý´ëÇÏ´Â" + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.1.0 +////////////////////////////////////////////////////////////////////////// + + /*! this text is put before a collaboration diagram */ + QCString trCollaborationDiagram(const char *clName) + { + return (QCString)clName+"¿¡ ´ëÇÑ ¿øÁ¶ µµÇ¥:"; + } + /*! this text is put before an include dependency graph */ + QCString trInclDepGraph(const char *fName) + { + return (QCString)fName+"¿¡ ´ëÇÑ include ÀÇÁ¸ ±×·¡ÇÁ"; + } + /*! header that is put before the list of constructor/destructors. */ + QCString trConstructorDocumentation() + { + return "»ý¼ºÀÚ & ¼Ò¸êÀÚ ¹®¼È"; + } + /*! Used in the file documentation to point to the corresponding sources. */ + QCString trGotoSourceCode() + { + return "ÀÌ ÆÄÀÏ¿¡ ´ëÇÑ ¼Ò½º ÄÚµå·Î °¡½Ã¿À"; + } + /*! Used in the file sources to point to the corresponding documentation. */ + QCString trGotoDocumentation() + { + return "ÀÌ ÆÄÀÏÀÇ ¹®¼È·Î °¡½Ã¿À"; + } + /*! Text for the \pre command */ + QCString trPrecondition() + { + return "ÀüÁ¦ Á¶°Ç"; + } + /*! Text for the \post command */ + QCString trPostcondition() + { + return "ÈÄ¹Ì Á¶°Ç"; // "ÈÄÄ¡Á¶°Ç" + } + /*! Text for the \invariant command */ + QCString trInvariant() + { + return "º¯ÇÏÁö ¾Ê´Â"; + } + /*! Text shown before a multi-line variable/enum initialization */ + QCString trInitialValue() + { + return "Ãʱâȱâ"; + } + /*! Text used the source code in the file index */ + QCString trCode() + { + return "ÄÚµå"; + } + QCString trGraphicalHierarchy() + { + return "µµÇ¥ÀÇ Å¬·¡½º ºÐ·ùü°è"; // "µµÇ¥ÀÇ Å¬·¡½º Á¶Á÷" + } + QCString trGotoGraphicalHierarchy() + { + return "µµÇ¥ÀÇ Å¬·¡½º ºÐ·ùü°è·Î °¡½Ã¿À"; // "µµÇ¥ÀÇ Å¬·¡½º Á¶Á÷À¸·Î °¡½Ã¿À" + } + QCString trGotoTextualHierarchy() + { + return "¹®ÀÚÀÇ Å¬·¡½º ºÐ·ùü°è·Î °¡½Ã¿À"; // "¹®ÀÚÀÇ Å¬·¡½º Á¶Á÷À¸·Î °¡½Ã¿À" + } + QCString trPageIndex() + { + return "ÆäÀÌÁö »öÀÎ"; + } +}; + +#endif diff --git a/src/util.cpp b/src/util.cpp index 61770bc..d2691ce 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -314,6 +314,31 @@ ClassDef *getClass(const char *name) return classDict[name]; } +NamespaceDef *getResolvedNamespace(const char *name) +{ + if (name==0 || name[0]=='\0') return 0; + QCString *subst = namespaceAliasDict[name]; + if (subst) + { + int count=0; // recursion detection guard + QCString *newSubst; + while ((newSubst=namespaceAliasDict[*subst]) && count<10) + { + subst=newSubst; + count++; + } + if (count==10) + { + warn_cont("Warning: possible recursive namespace alias detected for %s!\n",name); + } + return namespaceDict[subst->data()]; + } + else + { + return namespaceDict[name]; + } +} + ClassDef *getResolvedClass(const char *name) { if (name==0 || name[0]=='\0') return 0; @@ -2434,9 +2459,10 @@ void extractNamespaceName(const QCString &scopeName, { QCString clName=scopeName.copy(); //QCString nsName; - if (!clName.isEmpty() && namespaceDict[clName] && getClass(clName)==0) + NamespaceDef *nd; + if (!clName.isEmpty() && (nd=getResolvedNamespace(clName)) && getClass(clName)==0) { // the whole name is a namespace (and not a class) - namespaceName=clName.copy(); + namespaceName=nd->name().copy(); className.resize(0); //printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(), // className.data(),namespaceName.data()); @@ -2446,9 +2472,9 @@ void extractNamespaceName(const QCString &scopeName, while (p>=0 && (i=clName.findRev("::",p))!=-1) // see if the first part is a namespace (and not a class) { - if (i>0 && namespaceDict[clName.left(i)] && getClass(clName.left(i))==0) + if (i>0 && (nd=getResolvedNamespace(clName.left(i))) && getClass(clName.left(i))==0) { - namespaceName=clName.left(i); + namespaceName=nd->name().copy(); className=clName.right(clName.length()-i-2); //printf("extractNamespace `%s' => `%s|%s'\n",scopeName.data(), // className.data(),namespaceName.data()); @@ -107,6 +107,7 @@ extern QCString substitute(const char *s,const char *src,const char *dst); extern QCString resolveDefines(const char *n); extern ClassDef *getClass(const char *key); extern ClassDef *getResolvedClass(const char *key); +extern NamespaceDef *getResolvedNamespace(const char *key); extern FileDef *findFileDef(const FileNameDict *fnDict,const char *n, bool &ambig); extern QCString showFileDefMatches(const FileNameDict *fnDict,const char *n); |