diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2008-02-10 12:31:40 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2008-02-10 12:31:40 (GMT) |
commit | 95fd5f1c991ee66f7122801276a133ebfce86aaa (patch) | |
tree | b6882cdef0c60182168c8c11e298dcd76cc02bbc /src | |
parent | 38c6a14b15d87348076be142abea8663009ace82 (diff) | |
download | Doxygen-95fd5f1c991ee66f7122801276a133ebfce86aaa.zip Doxygen-95fd5f1c991ee66f7122801276a133ebfce86aaa.tar.gz Doxygen-95fd5f1c991ee66f7122801276a133ebfce86aaa.tar.bz2 |
Release-1.5.5
Diffstat (limited to 'src')
46 files changed, 1732 insertions, 543 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp index f52b083..f2edcda 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -3058,6 +3058,11 @@ QCString ClassDef::className() const return m_impl->className; }; +void ClassDef::setClassName(const char *name) +{ + m_impl->className = name; +} + void ClassDef::addListReferences() { bool fortranOpt=Config_getBool("OPTIMIZE_FOR_FORTRAN"); diff --git a/src/classdef.h b/src/classdef.h index 20d4df7..fbac227 100644 --- a/src/classdef.h +++ b/src/classdef.h @@ -284,6 +284,7 @@ class ClassDef : public Definition void setIsStatic(bool b); void setIsObjectiveC(bool b); void setCompoundType(CompoundType t); + void setClassName(const char *name); void setTemplateArguments(ArgumentList *al); void setTemplateBaseClassNames(QDict<int> *templateNames); diff --git a/src/cmdmapper.cpp b/src/cmdmapper.cpp index bca36df..4ad3b38 100644 --- a/src/cmdmapper.cpp +++ b/src/cmdmapper.cpp @@ -91,6 +91,7 @@ CommandMap cmdMap[] = { "version", CMD_VERSION }, { "warning", CMD_WARNING }, { "throws", CMD_EXCEPTION }, + { "tparam", CMD_TPARAM }, { "\\", CMD_BSLASH }, { "@", CMD_AT }, { "<", CMD_LESS }, @@ -154,27 +155,29 @@ CommandMap htmlTagMap[] = { "span", HTML_SPAN }, { "div", HTML_DIV }, - { "c", XML_C }, + { "c", XML_C }, // { "code", XML_CODE }, <= ambigious <code> is also a HTML tag - { "description",XML_DESCRIPTION }, - { "example", XML_EXAMPLE }, - { "exception", XML_EXCEPTION }, - { "include", XML_INCLUDE }, - { "item", XML_ITEM }, - { "list", XML_LIST }, // type="table|bullet|number" - { "listheader", XML_LISTHEADER }, - { "para", XML_PARA }, - { "param", XML_PARAM }, - { "paramref", XML_PARAMREF }, - { "permission", XML_PERMISSION }, - { "remarks", XML_REMARKS }, - { "returns", XML_RETURNS }, - { "see", XML_SEE }, - { "seealso", XML_SEEALSO }, - { "summary", XML_SUMMARY }, - { "term", XML_TERM }, - { "value", XML_VALUE }, - { 0, 0 } + { "description", XML_DESCRIPTION }, + { "example", XML_EXAMPLE }, + { "exception", XML_EXCEPTION }, + { "include", XML_INCLUDE }, + { "item", XML_ITEM }, + { "list", XML_LIST }, // type="table|bullet|number" + { "listheader", XML_LISTHEADER }, + { "para", XML_PARA }, + { "param", XML_PARAM }, + { "paramref", XML_PARAMREF }, + { "typeparam", XML_TYPEPARAM }, + { "typeparamref", XML_TYPEPARAMREF }, + { "permission", XML_PERMISSION }, + { "remarks", XML_REMARKS }, + { "returns", XML_RETURNS }, + { "see", XML_SEE }, + { "seealso", XML_SEEALSO }, + { "summary", XML_SUMMARY }, + { "term", XML_TERM }, + { "value", XML_VALUE }, + { 0, 0 } }; //---------------------------------------------------------------------------- diff --git a/src/cmdmapper.h b/src/cmdmapper.h index 796284f..95ba3e1 100644 --- a/src/cmdmapper.h +++ b/src/cmdmapper.h @@ -109,7 +109,8 @@ enum CommandType CMD_MANONLY = 75, CMD_ENDMANONLY = 76, CMD_INCWITHLINES = 77, - CMD_INHERITDOC = 78 + CMD_INHERITDOC = 78, + CMD_TPARAM = 79 | SIMPLESECT_BIT }; enum HtmlTagType @@ -150,27 +151,28 @@ enum HtmlTagType XML_CmdMask = 0x100, - XML_C = XML_CmdMask + 0, - XML_CODE = XML_CmdMask + 1, - XML_DESCRIPTION= XML_CmdMask + 2, - XML_EXAMPLE = XML_CmdMask + 3, - XML_EXCEPTION = XML_CmdMask + 4, - XML_INCLUDE = XML_CmdMask + 5, - XML_ITEM = XML_CmdMask + 6, - XML_LIST = XML_CmdMask + 7, - XML_LISTHEADER = XML_CmdMask + 8, - XML_PARA = XML_CmdMask + 9, - XML_PARAM = XML_CmdMask + 10, - XML_PARAMREF = XML_CmdMask + 11, - XML_PERMISSION = XML_CmdMask + 12, - XML_REMARKS = XML_CmdMask + 13, - XML_RETURNS = XML_CmdMask + 14, - XML_SEE = XML_CmdMask + 15, - XML_SEEALSO = XML_CmdMask + 16, - XML_SUMMARY = XML_CmdMask + 17, - XML_TERM = XML_CmdMask + 18, - XML_VALUE = XML_CmdMask + 19 - + XML_C = XML_CmdMask + 0, + XML_CODE = XML_CmdMask + 1, + XML_DESCRIPTION = XML_CmdMask + 2, + XML_EXAMPLE = XML_CmdMask + 3, + XML_EXCEPTION = XML_CmdMask + 4, + XML_INCLUDE = XML_CmdMask + 5, + XML_ITEM = XML_CmdMask + 6, + XML_LIST = XML_CmdMask + 7, + XML_LISTHEADER = XML_CmdMask + 8, + XML_PARA = XML_CmdMask + 9, + XML_PARAM = XML_CmdMask + 10, + XML_PARAMREF = XML_CmdMask + 11, + XML_PERMISSION = XML_CmdMask + 12, + XML_REMARKS = XML_CmdMask + 13, + XML_RETURNS = XML_CmdMask + 14, + XML_SEE = XML_CmdMask + 15, + XML_SEEALSO = XML_CmdMask + 16, + XML_SUMMARY = XML_CmdMask + 17, + XML_TERM = XML_CmdMask + 18, + XML_TYPEPARAM = XML_CmdMask + 19, + XML_TYPEPARAMREF = XML_CmdMask + 20, + XML_VALUE = XML_CmdMask + 21 }; class Mapper @@ -766,9 +766,9 @@ static void addDocCrossReference(MemberDef *src,MemberDef *dst) static bool callerGraph = Config_getBool("CALLER_GRAPH"); static bool callGraph = Config_getBool("CALL_GRAPH"); + //printf("--> addDocCrossReference src=%s,dst=%s\n",src->name().data(),dst->name().data()); if (dst->isTypedef() || dst->isEnumerate()) return; // don't add types - //printf("addDocCrossReference src=%s,dst=%s\n",src->name().data(),dst->name().data()); - if ((referencedByRelation || callerGraph) && + if ((referencedByRelation || callerGraph || dst->hasCallerGraph()) && (src->isFunction() || src->isSlot()) ) { @@ -784,7 +784,7 @@ static void addDocCrossReference(MemberDef *src,MemberDef *dst) mdDecl->addSourceReferencedBy(src); } } - if ((referencesRelation || callGraph) && + if ((referencesRelation || callGraph || src->hasCallGraph()) && (src->isFunction() || src->isSlot()) ) { @@ -2407,7 +2407,7 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP} g_code->codify(yytext); endFontClass(); } -<Body>"$"?"this->" { g_code->codify(yytext); } +<Body,FuncCall>"$"?"this->" { g_code->codify(yytext); } <Body>"."|"->" { g_code->codify(yytext); g_memCallContext = YY_START; diff --git a/src/commentscan.l b/src/commentscan.l index 115aac4..18bb9a5 100644 --- a/src/commentscan.l +++ b/src/commentscan.l @@ -122,33 +122,33 @@ static DocCmdMap docCmdMap[] = // command name handler function ends brief description { "brief", &handleBrief, FALSE }, { "short", &handleBrief, FALSE }, - { "fn", &handleFn, TRUE }, - { "var", &handleFn, TRUE }, - { "typedef", &handleFn, TRUE }, - { "property", &handleFn, TRUE }, - { "def", &handleDef, TRUE }, - { "overload", &handleOverload, TRUE }, - { "enum", &handleEnum, TRUE }, - { "defgroup", &handleDefGroup, TRUE }, - { "addtogroup", &handleAddToGroup, TRUE }, - { "weakgroup", &handleWeakGroup, TRUE }, - { "namespace", &handleNamespace, TRUE }, - { "package", &handlePackage, TRUE }, - { "class", &handleClass, TRUE }, - { "headerfile", &handleHeaderFile, TRUE }, - { "protocol", &handleProtocol, TRUE }, - { "category", &handleCategory, TRUE }, - { "union", &handleUnion, TRUE }, - { "struct", &handleStruct, TRUE }, - { "interface", &handleInterface, TRUE }, - { "idlexcept", &handleIdlException, TRUE }, - { "page", &handlePage, TRUE }, - { "mainpage", &handleMainpage, TRUE }, - { "file", &handleFile, TRUE }, - { "dir", &handleDir, TRUE }, - { "example", &handleExample, TRUE }, + { "fn", &handleFn, FALSE }, + { "var", &handleFn, FALSE }, + { "typedef", &handleFn, FALSE }, + { "property", &handleFn, FALSE }, + { "def", &handleDef, FALSE }, + { "overload", &handleOverload, FALSE }, + { "enum", &handleEnum, FALSE }, + { "defgroup", &handleDefGroup, FALSE }, + { "addtogroup", &handleAddToGroup, FALSE }, + { "weakgroup", &handleWeakGroup, FALSE }, + { "namespace", &handleNamespace, FALSE }, + { "package", &handlePackage, FALSE }, + { "class", &handleClass, FALSE }, + { "headerfile", &handleHeaderFile, FALSE }, + { "protocol", &handleProtocol, FALSE }, + { "category", &handleCategory, FALSE }, + { "union", &handleUnion, FALSE }, + { "struct", &handleStruct, FALSE }, + { "interface", &handleInterface, FALSE }, + { "idlexcept", &handleIdlException, FALSE }, + { "page", &handlePage, FALSE }, + { "mainpage", &handleMainpage, FALSE }, + { "file", &handleFile, FALSE }, + { "dir", &handleDir, FALSE }, + { "example", &handleExample, FALSE }, { "details", &handleDetails, TRUE }, - { "name", &handleName, TRUE }, + { "name", &handleName, FALSE }, { "todo", &handleTodo, TRUE }, { "test", &handleTest, TRUE }, { "bug", &handleBug, TRUE }, @@ -174,28 +174,28 @@ static DocCmdMap docCmdMap[] = { "dot", &handleFormatBlock, TRUE }, { "msc", &handleFormatBlock, TRUE }, { "code", &handleFormatBlock, TRUE }, - { "addindex", &handleAddIndex, TRUE }, + { "addindex", &handleAddIndex, FALSE }, { "if", &handleIf, FALSE }, { "ifnot", &handleIfNot, FALSE }, { "elseif", &handleElseIf, FALSE }, { "else", &handleElse, FALSE }, { "endif", &handleEndIf, FALSE }, - { "ingroup", &handleIngroup, TRUE }, - { "nosubgrouping", &handleNoSubGrouping, TRUE }, - { "showinitializer", &handleShowInitializer, TRUE }, - { "hideinitializer", &handleHideInitializer, TRUE }, - { "callgraph", &handleCallgraph, TRUE }, - { "callergraph", &handleCallergraph, TRUE }, + { "ingroup", &handleIngroup, FALSE }, + { "nosubgrouping", &handleNoSubGrouping, FALSE }, + { "showinitializer", &handleShowInitializer, FALSE }, + { "hideinitializer", &handleHideInitializer, FALSE }, + { "callgraph", &handleCallgraph, FALSE }, + { "callergraph", &handleCallergraph, FALSE }, { "internal", &handleInternal, TRUE }, { "_linebr", &handleLineBr, FALSE }, - { "static", &handleStatic, TRUE }, - { "pure", &handlePure, TRUE }, - { "private", &handlePrivate, TRUE }, - { "privatesection", &handlePrivateSection, TRUE }, - { "protected", &handleProtected, TRUE }, - { "protectedsection",&handleProtectedSection, TRUE }, - { "public", &handlePublic, TRUE }, - { "publicsection", &handlePublicSection, TRUE }, + { "static", &handleStatic, FALSE }, + { "pure", &handlePure, FALSE }, + { "private", &handlePrivate, FALSE }, + { "privatesection", &handlePrivateSection, FALSE }, + { "protected", &handleProtected, FALSE }, + { "protectedsection",&handleProtectedSection, FALSE }, + { "public", &handlePublic, FALSE }, + { "publicsection", &handlePublicSection, FALSE }, { "inherit", &handleInherit, TRUE }, { "arg", 0, TRUE }, { "attention", 0, TRUE }, @@ -213,6 +213,7 @@ static DocCmdMap docCmdMap[] = { "note", 0, TRUE }, { "par", 0, TRUE }, { "param", 0, TRUE }, + { "tparam", 0, TRUE }, { "post", 0, TRUE }, { "pre", 0, TRUE }, { "remark", 0, TRUE }, @@ -728,14 +729,14 @@ static inline void addOutput(char c) *pOutputString+=c; } -static void endBrief() +static void endBrief(bool addToOutput=TRUE) { if (!current->brief.stripWhiteSpace().isEmpty()) { // only go to the detailed description if we have // found some brief description and not just whitespace briefEndsAtDot=FALSE; setOutput(OutputDoc); - addOutput(yytext); + if (addToOutput) addOutput(yytext); } } @@ -1009,13 +1010,13 @@ RCSTAG "$"{ID}":"[^\n$]+"$" <Comment>(\n|\\_linebr)({B}*(\n|\\_linebr))+ { // at least one blank line (or blank line command) if (inContext!=OutputBrief) { - addOutput(yytext); + addOutput("\n\n"); setOutput(OutputDoc); } else { // only go to the detailed description if we have // found some brief description and not just whitespace - endBrief(); + endBrief(FALSE); } lineCount(); } @@ -2216,6 +2217,12 @@ static bool handleInternal(const QCString &) { if (!Config_getBool("INTERNAL_DOCS")) { + // make sure some whitespace before a \internal command + // is not treated as "documentation" + if (current->doc.stripWhiteSpace().isEmpty()) + { + current->doc.resize(0); + } BEGIN( SkipInternal ); } else diff --git a/src/compound.xsd b/src/compound.xsd index a407210..a200f8b 100644 --- a/src/compound.xsd +++ b/src/compound.xsd @@ -775,6 +775,7 @@ <xsd:enumeration value="param" /> <xsd:enumeration value="retval" /> <xsd:enumeration value="exception" /> + <xsd:enumeration value="templateparam" /> </xsd:restriction> </xsd:simpleType> diff --git a/src/compound_xsd.h b/src/compound_xsd.h index ded516c..47de4d3 100644 --- a/src/compound_xsd.h +++ b/src/compound_xsd.h @@ -775,6 +775,7 @@ " <xsd:enumeration value=\"param\" />\n" " <xsd:enumeration value=\"retval\" />\n" " <xsd:enumeration value=\"exception\" />\n" +" <xsd:enumeration value=\"templateparam\" />\n" " </xsd:restriction>\n" " </xsd:simpleType>\n" "\n" diff --git a/src/config.l b/src/config.l index b328d50..c12426a 100644 --- a/src/config.l +++ b/src/config.l @@ -1291,6 +1291,7 @@ void Config::check() annotationFromBrief.append("the"); } +#if 0 if (Config_getBool("CALL_GRAPH") && (!Config_getBool("SOURCE_BROWSER") || !Config_getBool("REFERENCES_RELATION")) ) @@ -1311,6 +1312,7 @@ void Config::check() Config_getBool("SOURCE_BROWSER")=TRUE; Config_getBool("REFERENCED_BY_RELATION")=TRUE; } +#endif // some default settings for vhdl if (Config_getBool("OPTIMIZE_OUTPUT_VHDL") && (Config_getBool("INLINE_INHERITED_MEMB") || @@ -1413,10 +1415,11 @@ void Config::create() "information to generate all constant output in the proper language. \n" "The default language is English, other supported languages are: \n" "Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, \n" - "Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, \n" - "Italian, Japanese, Japanese-en (Japanese with English messages), Korean, \n" - "Korean-en, Lithuanian, Norwegian, Macedonian, Polish, Portuguese, Romanian, \n" - "Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.\n", + "Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, \n" + "Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), \n" + "Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, \n" + "Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, \n" + "and Ukrainian.\n", "English" ); #ifdef LANG_ZA @@ -1486,6 +1489,7 @@ void Config::create() ce->addValue("Macedonian"); #endif #ifdef LANG_FA + ce->addValue("Farsi"); ce->addValue("Persian"); #endif #ifdef LANG_PL @@ -1892,6 +1896,13 @@ void Config::create() FALSE ); cb = addBool( + "SORT_GROUP_NAMES", + "If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the \n" + "hierarchy of group names into alphabetical order. If set to NO (the default) \n" + "the group names will appear in their defined order. \n", + FALSE + ); + cb = addBool( "SORT_BY_SCOPE_NAME", "If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be \n" "sorted by fully-qualified names, including namespaces. If set to \n" @@ -2159,9 +2170,7 @@ void Config::create() "If the SOURCE_BROWSER tag is set to YES then a list of source files will \n" "be generated. Documented entities will be cross-referenced with these sources. \n" "Note: To get rid of all source code in the generated output, make sure also \n" - "VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH \n" - "then you must also enable this option. If you don't then doxygen will produce \n" - "a warning and turn it on anyway \n", + "VERBATIM_HEADERS is set to NO. \n", FALSE ); cb = addBool( @@ -2181,16 +2190,14 @@ void Config::create() "If the REFERENCED_BY_RELATION tag is set to YES (the default) \n" "then for each documented function all documented \n" "functions referencing it will be listed. \n", - TRUE + FALSE ); - cb->addDependency("SOURCE_BROWSER"); cb = addBool( "REFERENCES_RELATION", "If the REFERENCES_RELATION tag is set to YES (the default) \n" "then for each documented function all documented entities \n" "called/used by that function will be listed. \n", - TRUE + FALSE ); - cb->addDependency("SOURCE_BROWSER"); cb = addBool( "REFERENCES_LINK_SOURCE", "If the REFERENCES_LINK_SOURCE tag is set to YES (the default)\n" "and SOURCE_BROWSER tag is set to YES, then the hyperlinks from\n" @@ -2198,7 +2205,6 @@ void Config::create() "link to the source code. Otherwise they will link to the documentstion.\n", TRUE ); - cb->addDependency("SOURCE_BROWSER"); cb = addBool( "USE_HTAGS", "If the USE_HTAGS tag is set to YES then the references to source code \n" @@ -2961,7 +2967,7 @@ void Config::create() cb->addDependency("HAVE_DOT"); cb = addBool( "CALL_GRAPH", - "If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then \n" + "If the CALL_GRAPH and HAVE_DOT options are set to YES then \n" "doxygen will generate a call dependency graph for every global function \n" "or class method. Note that enabling this option will significantly increase \n" "the time of a run. So in most cases it will be better to enable call graphs \n" @@ -2971,7 +2977,7 @@ void Config::create() cb->addDependency("HAVE_DOT"); cb = addBool( "CALLER_GRAPH", - "If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then \n" + "If the CALLER_GRAPH and HAVE_DOT tags are set to YES then \n" "doxygen will generate a caller dependency graph for every global function \n" "or class method. Note that enabling this option will significantly increase \n" "the time of a run. So in most cases it will be better to enable caller \n" diff --git a/src/defargs.l b/src/defargs.l index ea37c45..81832a9 100644 --- a/src/defargs.l +++ b/src/defargs.l @@ -159,6 +159,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]* } <ReadFuncArgPtr>")"/{B}*"[" { // pointer to fixed size array g_curArgTypeName+=yytext; + g_curArgTypeName+=g_curArgName; //g_curArgTypeName=g_curArgTypeName.simplifyWhiteSpace(); BEGIN( ReadFuncArgType ); } @@ -307,6 +308,19 @@ ID [a-z_A-Z][a-z_A-Z0-9]* a->type = removeRedundantWhiteSpace(g_curArgTypeName); } a->array += removeRedundantWhiteSpace(g_curArgArray); + //printf("array=%s\n",a->array.data()); + int alen = a->array.length(); + if (alen>2 && a->array.at(0)=='(' && + a->array.at(alen-1)==')') // fix-up for int *(a[10]) + { + int i=a->array.find('[')-1; + a->array = a->array.mid(1,alen-2); + if (i>0 && a->name.isEmpty()) + { + a->name = a->array.left(i); + a->array = a->array.mid(i); + } + } a->defval = g_curArgDefValue.copy(); //printf("a->type=%s a->name=%s a->defval=\"%s\"\n",a->type.data(),a->name.data(),a->defval.data()); a->docs = g_curArgDocs.stripWhiteSpace(); diff --git a/src/definition.cpp b/src/definition.cpp index 3d742ef..2eab6a9 100644 --- a/src/definition.cpp +++ b/src/definition.cpp @@ -301,6 +301,32 @@ Definition::~Definition() } } +void Definition::setName(const char *name) +{ + if (name==0) return; + m_name = name; +#if 0 + makeResident(); + if (m_isSymbol) + { + removeFromMap(this); + } + if (m_name!="<globalScope>") + { + //extractNamespaceName(m_name,m_localName,ns); + m_impl->localName=stripScope(m_name); + } + else + { + m_impl->localName=m_name; + } + if (m_isSymbol) + { + addToMap(m_name,this); + } +#endif +} + void Definition::addSectionsToDefinition(QList<SectionInfo> *anchorList) { if (!anchorList) return; @@ -765,7 +791,7 @@ void Definition::_writeSourceRefList(OutputList &ol,const char *scopeName, const QCString &text,MemberSDict *members,bool /*funcOnly*/) { ol.pushGeneratorState(); - if (Config_getBool("SOURCE_BROWSER") && members) + if (/*Config_getBool("SOURCE_BROWSER") &&*/ members) { ol.startParagraph(); ol.parseText(text); @@ -938,7 +964,6 @@ void Definition::addSourceReferences(MemberDef *md) } if (m_impl->sourceRefsDict->find(name)==0) { - //printf("Adding reference %s->%s\n",md->name().data(),name.data()); m_impl->sourceRefsDict->inSort(name,md); } } diff --git a/src/definition.h b/src/definition.h index afaf34f..765118d 100644 --- a/src/definition.h +++ b/src/definition.h @@ -245,7 +245,7 @@ class Definition : public DefinitionIntf, public LockableObj //----------------------------------------------------------------------------------- /*! Sets a new \a name for the definition */ - void setName(const char *name) { m_name = name; } + void setName(const char *name); /*! Sets the documentation of this definition to \a d. */ void setDocumentation(const char *d,const char *docFile,int docLine,bool stripWhiteSpace=TRUE); diff --git a/src/dirdef.cpp b/src/dirdef.cpp index 415a2fa..9107627 100644 --- a/src/dirdef.cpp +++ b/src/dirdef.cpp @@ -558,145 +558,7 @@ DirDef *DirDef::mergeDirectoryInTree(const QCString &path) void DirDef::writeDepGraph(QTextStream &t) { - t << "digraph G {\n"; - if (Config_getBool("DOT_TRANSPARENT")) - { - t << " bgcolor=transparent;\n"; - } - t << " compound=true\n"; - t << " node [ fontsize=10, fontname=\"FreeSans.ttf\"];\n"; - t << " edge [ labelfontsize=9, labelfontname=\"FreeSans.ttf\"];\n"; - - QDict<DirDef> dirsInGraph(257); - - dirsInGraph.insert(getOutputFileBase(),this); - if (parent()) - { - t << " subgraph cluster" << parent()->getOutputFileBase() << " {\n"; - t << " graph [ bgcolor=\"#ddddee\", pencolor=\"black\", label=\"" - << parent()->shortName() - << "\" fontname=\"FreeSans.ttf\", fontsize=10, URL=\""; - t << parent()->getOutputFileBase() << Doxygen::htmlFileExtension; - t << "\"]\n"; - } - if (isCluster()) - { - t << " subgraph cluster" << getOutputFileBase() << " {\n"; - t << " graph [ bgcolor=\"#eeeeff\", pencolor=\"black\", label=\"\"" - << " URL=\"" << getOutputFileBase() << Doxygen::htmlFileExtension - << "\"];\n"; - t << " " << getOutputFileBase() << " [shape=plaintext label=\"" - << shortName() << "\"];\n"; - - // add nodes for sub directories - QListIterator<DirDef> sdi(m_subdirs); - DirDef *sdir; - for (sdi.toFirst();(sdir=sdi.current());++sdi) - { - t << " " << sdir->getOutputFileBase() << " [shape=box label=\"" - << sdir->shortName() << "\""; - if (sdir->isCluster()) - { - t << " color=\"red\""; - } - else - { - t << " color=\"black\""; - } - t << " fillcolor=\"white\" style=\"filled\""; - t << " URL=\"" << sdir->getOutputFileBase() - << Doxygen::htmlFileExtension << "\""; - t << "];\n"; - dirsInGraph.insert(sdir->getOutputFileBase(),sdir); - } - t << " }\n"; - } - else - { - t << " " << getOutputFileBase() << " [shape=box, label=\"" - << shortName() << "\", style=\"filled\", fillcolor=\"#eeeeff\"," - << " pencolor=\"black\", URL=\"" << getOutputFileBase() - << Doxygen::htmlFileExtension << "\"];\n"; - } - if (parent()) - { - t << " }\n"; - } - - // add nodes for other used directories - QDictIterator<UsedDir> udi(*m_usedDirs); - UsedDir *udir; - //printf("*** For dir %s\n",shortName().data()); - for (udi.toFirst();(udir=udi.current());++udi) - // for each used dir (=directly used or a parent of a directly used dir) - { - const DirDef *usedDir=udir->dir(); - DirDef *dir=this; - while (dir) - { - //printf("*** check relation %s->%s same_parent=%d !%s->isParentOf(%s)=%d\n", - // dir->shortName().data(),usedDir->shortName().data(), - // dir->parent()==usedDir->parent(), - // usedDir->shortName().data(), - // shortName().data(), - // !usedDir->isParentOf(this) - // ); - if (dir!=usedDir && dir->parent()==usedDir->parent() && !usedDir->isParentOf(this)) - // include if both have the same parent (or no parent) - { - t << " " << usedDir->getOutputFileBase() << " [shape=box label=\"" - << usedDir->shortName() << "\""; - if (usedDir->isCluster()) - { - if (!Config_getBool("DOT_TRANSPARENT")) - { - t << " fillcolor=\"white\" style=\"filled\""; - } - t << " color=\"red\""; - } - t << " URL=\"" << usedDir->getOutputFileBase() - << Doxygen::htmlFileExtension << "\"];\n"; - dirsInGraph.insert(usedDir->getOutputFileBase(),usedDir); - break; - } - dir=dir->parent(); - } - } - - // add relations between all selected directories - DirDef *dir; - QDictIterator<DirDef> di(dirsInGraph); - for (di.toFirst();(dir=di.current());++di) // foreach dir in the graph - { - QDictIterator<UsedDir> udi(*dir->usedDirs()); - UsedDir *udir; - for (udi.toFirst();(udir=udi.current());++udi) // foreach used dir - { - const DirDef *usedDir=udir->dir(); - if ((dir!=this || !udir->inherited()) && // only show direct dependendies for this dir - (usedDir!=this || !udir->inherited()) && // only show direct dependendies for this dir - !usedDir->isParentOf(dir) && // don't point to own parent - dirsInGraph.find(usedDir->getOutputFileBase())) // only point to nodes that are in the graph - { - QCString relationName; - relationName.sprintf("dir_%06d_%06d",dir->m_dirCount,usedDir->m_dirCount); - if (Doxygen::dirRelations.find(relationName)==0) - { - // new relation - Doxygen::dirRelations.append(relationName, - new DirRelation(relationName,dir,udir)); - } - int nrefs = udir->filePairs().count(); - t << " " << dir->getOutputFileBase() << "->" - << usedDir->getOutputFileBase(); - t << " [headlabel=\"" << nrefs << "\", labeldistance=1.5"; - t << " headhref=\"" << relationName << Doxygen::htmlFileExtension - << "\"];\n"; - } - } - } - - t << "}\n"; + writeDotDirDepGraph(t,this); } //---------------------------------------------------------------------- diff --git a/src/dirdef.h b/src/dirdef.h index c88ffa9..49dca57 100644 --- a/src/dirdef.h +++ b/src/dirdef.h @@ -62,6 +62,7 @@ class DirDef : public Definition bool isCluster() const { return m_subdirs.count()>0; } int level() const { return m_level; } DirDef *parent() const { return m_parent; } + int dirCount() const { return m_dirCount; } const QDict<UsedDir> *usedDirs() const { return m_usedDirs; } bool isParentOf(DirDef *dir) const; bool depGraphIsTrivial() const; diff --git a/src/docparser.cpp b/src/docparser.cpp index 529d0e7..63ff330 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -162,7 +162,7 @@ static void docParserPushContext() g_parserStack.push(ctx); } -static void docParserPopContext() +static void docParserPopContext(bool keepParamInfo=FALSE) { DocParserContext *ctx = g_parserStack.pop(); g_context = ctx->context; @@ -175,10 +175,13 @@ static void docParserPopContext() g_fileName = ctx->fileName; g_relPath = ctx->relPath; - g_hasParamCommand = ctx->hasParamCommand; - g_hasReturnCommand = ctx->hasReturnCommand; + if (!keepParamInfo) + { + g_hasParamCommand = ctx->hasParamCommand; + g_hasReturnCommand = ctx->hasReturnCommand; + g_paramsFound = ctx->paramsFound; + } g_memberDef = ctx->memberDef; - g_paramsFound = ctx->paramsFound; g_isExample = ctx->isExample; g_exampleName = ctx->exampleName; g_sectionDict = ctx->sectionDict; @@ -1754,6 +1757,8 @@ void DocCopy::parse() g_copyStack.append(def); // make sure the descriptions end with a newline, so the parser will correctly // handle them in all cases. + //printf("doc='%s'\n",doc.data()); + //printf("brief='%s'\n",brief.data()); brief+='\n'; doc+='\n'; internalValidatingParseDoc(this,m_children,brief); @@ -1761,7 +1766,7 @@ void DocCopy::parse() g_copyStack.remove(def); ASSERT(g_styleStack.isEmpty()); ASSERT(g_nodeStack.isEmpty()); - docParserPopContext(); + docParserPopContext(TRUE); } else // oops, recursion { @@ -4001,6 +4006,7 @@ int DocParamList::parseXml(const QString ¶mName) } while (retval==RetVal_CloseXml && Mappers::htmlTagMapper->map(g_token->name)!=XML_PARAM && + Mappers::htmlTagMapper->map(g_token->name)!=XML_TYPEPARAM && Mappers::htmlTagMapper->map(g_token->name)!=XML_EXCEPTION); @@ -4419,7 +4425,7 @@ void DocPara::handleInheritDoc() internalValidatingParseDoc(this,m_children,reMd->briefDescription()); internalValidatingParseDoc(this,m_children,reMd->documentation()); g_copyStack.remove(reMd); - docParserPopContext(); + docParserPopContext(TRUE); g_memberDef = thisMd; } } @@ -4641,6 +4647,9 @@ int DocPara::handleCommand(const QString &cmdName) case CMD_PARAM: retval = handleParamSection(cmdName,DocParamSect::Param,FALSE,g_token->paramDir); break; + case CMD_TPARAM: + retval = handleParamSection(cmdName,DocParamSect::TemplateParam,FALSE,g_token->paramDir); + break; case CMD_RETVAL: retval = handleParamSection(cmdName,DocParamSect::RetVal); break; @@ -5012,11 +5021,14 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag handleStyleEnter(this,m_children,DocStyleChange::Code,&g_token->attribs); break; case XML_PARAM: + case XML_TYPEPARAM: { QString paramName; if (findAttribute(tagHtmlAttribs,"name",¶mName)) { - retval = handleParamSection(paramName,DocParamSect::Param,TRUE); + retval = handleParamSection(paramName, + tagId==XML_PARAM ? DocParamSect::Param : DocParamSect::TemplateParam, + TRUE); } else { @@ -5025,6 +5037,7 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag } break; case XML_PARAMREF: + case XML_TYPEPARAMREF: { QString paramName; if (findAttribute(tagHtmlAttribs,"name",¶mName)) @@ -5037,7 +5050,7 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag } else { - warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Missing 'name' attribute from <paramref> tag."); + warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Missing 'name' attribute from <param%sref> tag.",tagId==XML_PARAMREF?"":"type"); } } break; @@ -5330,6 +5343,7 @@ int DocPara::handleHtmlEndTag(const QString &tagName) case XML_LIST: case XML_EXAMPLE: case XML_PARAM: + case XML_TYPEPARAM: case XML_RETURNS: case XML_SEEALSO: case XML_EXCEPTION: @@ -5344,6 +5358,7 @@ int DocPara::handleHtmlEndTag(const QString &tagName) case XML_PERMISSION: case XML_DESCRIPTION: case XML_PARAMREF: + case XML_TYPEPARAMREF: // These tags are defined in .Net but are currently unsupported break; case HTML_UNKNOWN: diff --git a/src/docparser.h b/src/docparser.h index 93a6a76..478f1b9 100644 --- a/src/docparser.h +++ b/src/docparser.h @@ -939,7 +939,7 @@ class DocParamSect : public CompAccept<DocParamSect>, public DocNode public: enum Type { - Unknown, Param, RetVal, Exception + Unknown, Param, RetVal, Exception, TemplateParam }; enum Direction { diff --git a/src/dot.cpp b/src/dot.cpp index 83c9eec..c745ef6 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -34,6 +34,7 @@ #include "debug.h" #include "pagedef.h" #include "portable.h" +#include "dirdef.h" #include <qdir.h> #include <qfile.h> @@ -42,6 +43,8 @@ #define MAP_CMD "cmap" +#define FONTNAME "FreeSans" + //-------------------------------------------------------------------- static const int maxCmdLine = 40960; @@ -81,9 +84,9 @@ static void writeGraphHeader(QTextStream &t) { t << " bgcolor=\"transparent\";" << endl; } - t << " edge [fontname=\"FreeSans.ttf\",fontsize=10," - "labelfontname=\"FreeSans.ttf\",labelfontsize=10];\n"; - t << " node [fontname=\"FreeSans.ttf\",fontsize=10,shape=record];\n"; + t << " edge [fontname=\"" << FONTNAME << "\",fontsize=10," + "labelfontname=\"" << FONTNAME << "\",labelfontsize=10];\n"; + t << " node [fontname=\"" << FONTNAME << "\",fontsize=10,shape=record];\n"; } static void writeGraphFooter(QTextStream &t) @@ -528,6 +531,8 @@ static QCString convertLabel(const QCString &l) case '<': result+="\\<"; break; case '>': result+="\\>"; break; case '|': result+="\\|"; break; + case '{': result+="\\{"; break; + case '}': result+="\\}"; break; case '"': result+="\\\""; break; default: result+=c; break; } @@ -715,7 +720,7 @@ void DotNode::writeArrow(QTextStream &t, t << ",arrowhead=\"" << arrowStyle[ei->m_color] << "\""; } - if (format==BITMAP) t << ",fontname=\"FreeSans.ttf\""; + if (format==BITMAP) t << ",fontname=\"" << FONTNAME << "\""; t << "];" << endl; } @@ -2717,23 +2722,23 @@ void generateGraphLegend(const char *path) } QTextStream dotText(&dotFile); writeGraphHeader(dotText); - dotText << " Node9 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",fillcolor=\"grey75\",style=\"filled\" fontcolor=\"black\"];\n"; - dotText << " Node10 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"FreeSans.ttf\"];\n"; - dotText << " Node10 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"black\",URL=\"$classPublicBase" << Doxygen::htmlFileExtension << "\"];\n"; - dotText << " Node11 -> Node10 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"FreeSans.ttf\"];\n"; - dotText << " Node11 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"red\",URL=\"$classTruncated" << Doxygen::htmlFileExtension << "\"];\n"; - dotText << " Node13 -> Node9 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"FreeSans.ttf\"];\n"; - dotText << " Node13 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"black\",URL=\"$classProtectedBase" << Doxygen::htmlFileExtension << "\"];\n"; - dotText << " Node14 -> Node9 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"FreeSans.ttf\"];\n"; - dotText << " Node14 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"black\",URL=\"$classPrivateBase" << Doxygen::htmlFileExtension << "\"];\n"; - dotText << " Node15 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"FreeSans.ttf\"];\n"; - dotText << " Node15 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"grey75\"];\n"; - dotText << " Node16 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"FreeSans.ttf\"];\n"; - dotText << " Node16 [shape=\"box\",label=\"Templ< int >\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"black\",URL=\"$classTempl" << Doxygen::htmlFileExtension << "\"];\n"; - dotText << " Node17 -> Node16 [dir=back,color=\"orange\",fontsize=10,style=\"dashed\",label=\"< int >\",fontname=\"FreeSans.ttf\"];\n"; - dotText << " Node17 [shape=\"box\",label=\"Templ< T >\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"black\",URL=\"$classTempl" << Doxygen::htmlFileExtension << "\"];\n"; - dotText << " Node18 -> Node9 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"FreeSans.ttf\"];\n"; - dotText << " Node18 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"FreeSans.ttf\",color=\"black\",URL=\"$classUsed" << Doxygen::htmlFileExtension << "\"];\n"; + dotText << " Node9 [shape=\"box\",label=\"Inherited\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",fillcolor=\"grey75\",style=\"filled\" fontcolor=\"black\"];\n"; + dotText << " Node10 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n"; + dotText << " Node10 [shape=\"box\",label=\"PublicBase\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classPublicBase" << Doxygen::htmlFileExtension << "\"];\n"; + dotText << " Node11 -> Node10 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n"; + dotText << " Node11 [shape=\"box\",label=\"Truncated\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"red\",URL=\"$classTruncated" << Doxygen::htmlFileExtension << "\"];\n"; + dotText << " Node13 -> Node9 [dir=back,color=\"darkgreen\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n"; + dotText << " Node13 [shape=\"box\",label=\"ProtectedBase\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classProtectedBase" << Doxygen::htmlFileExtension << "\"];\n"; + dotText << " Node14 -> Node9 [dir=back,color=\"firebrick4\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n"; + dotText << " Node14 [shape=\"box\",label=\"PrivateBase\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classPrivateBase" << Doxygen::htmlFileExtension << "\"];\n"; + dotText << " Node15 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n"; + dotText << " Node15 [shape=\"box\",label=\"Undocumented\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"grey75\"];\n"; + dotText << " Node16 -> Node9 [dir=back,color=\"midnightblue\",fontsize=10,style=\"solid\",fontname=\"" << FONTNAME << "\"];\n"; + dotText << " Node16 [shape=\"box\",label=\"Templ< int >\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classTempl" << Doxygen::htmlFileExtension << "\"];\n"; + dotText << " Node17 -> Node16 [dir=back,color=\"orange\",fontsize=10,style=\"dashed\",label=\"< int >\",fontname=\"" << FONTNAME << "\"];\n"; + dotText << " Node17 [shape=\"box\",label=\"Templ< T >\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classTempl" << Doxygen::htmlFileExtension << "\"];\n"; + dotText << " Node18 -> Node9 [dir=back,color=\"darkorchid3\",fontsize=10,style=\"dashed\",label=\"m_usedClass\",fontname=\"" << FONTNAME << "\"];\n"; + dotText << " Node18 [shape=\"box\",label=\"Used\",fontsize=10,height=0.2,width=0.4,fontname=\"" << FONTNAME << "\",color=\"black\",URL=\"$classUsed" << Doxygen::htmlFileExtension << "\"];\n"; writeGraphFooter(dotText); dotFile.close(); @@ -3273,8 +3278,152 @@ void DotGroupCollaboration::writeGraphHeader(QTextStream &t) const { t << " bgcolor=\"transparent\";" << endl; } - t << " edge [fontname=\"FreeSans.ttf\",fontsize=8," - "labelfontname=\"FreeSans.ttf\",labelfontsize=8];\n"; - t << " node [fontname=\"FreeSans.ttf\",fontsize=10,shape=record];\n"; + t << " edge [fontname=\"" << FONTNAME << "\",fontsize=8," + "labelfontname=\"" << FONTNAME << "\",labelfontsize=8];\n"; + t << " node [fontname=\"" << FONTNAME << "\",fontsize=10,shape=record];\n"; t << " rankdir=LR;\n"; } + +void writeDotDirDepGraph(QTextStream &t,DirDef *dd) +{ + t << "digraph G {\n"; + if (Config_getBool("DOT_TRANSPARENT")) + { + t << " bgcolor=transparent;\n"; + } + t << " compound=true\n"; + t << " node [ fontsize=10, fontname=\"" << FONTNAME << "\"];\n"; + t << " edge [ labelfontsize=9, labelfontname=\"" << FONTNAME << "\"];\n"; + + QDict<DirDef> dirsInGraph(257); + + dirsInGraph.insert(dd->getOutputFileBase(),dd); + if (dd->parent()) + { + t << " subgraph cluster" << dd->parent()->getOutputFileBase() << " {\n"; + t << " graph [ bgcolor=\"#ddddee\", pencolor=\"black\", label=\"" + << dd->parent()->shortName() + << "\" fontname=\"" << FONTNAME << "\", fontsize=10, URL=\""; + t << dd->parent()->getOutputFileBase() << Doxygen::htmlFileExtension; + t << "\"]\n"; + } + if (dd->isCluster()) + { + t << " subgraph cluster" << dd->getOutputFileBase() << " {\n"; + t << " graph [ bgcolor=\"#eeeeff\", pencolor=\"black\", label=\"\"" + << " URL=\"" << dd->getOutputFileBase() << Doxygen::htmlFileExtension + << "\"];\n"; + t << " " << dd->getOutputFileBase() << " [shape=plaintext label=\"" + << dd->shortName() << "\"];\n"; + + // add nodes for sub directories + QListIterator<DirDef> sdi(dd->subDirs()); + DirDef *sdir; + for (sdi.toFirst();(sdir=sdi.current());++sdi) + { + t << " " << sdir->getOutputFileBase() << " [shape=box label=\"" + << sdir->shortName() << "\""; + if (sdir->isCluster()) + { + t << " color=\"red\""; + } + else + { + t << " color=\"black\""; + } + t << " fillcolor=\"white\" style=\"filled\""; + t << " URL=\"" << sdir->getOutputFileBase() + << Doxygen::htmlFileExtension << "\""; + t << "];\n"; + dirsInGraph.insert(sdir->getOutputFileBase(),sdir); + } + t << " }\n"; + } + else + { + t << " " << dd->getOutputFileBase() << " [shape=box, label=\"" + << dd->shortName() << "\", style=\"filled\", fillcolor=\"#eeeeff\"," + << " pencolor=\"black\", URL=\"" << dd->getOutputFileBase() + << Doxygen::htmlFileExtension << "\"];\n"; + } + if (dd->parent()) + { + t << " }\n"; + } + + // add nodes for other used directories + QDictIterator<UsedDir> udi(*dd->usedDirs()); + UsedDir *udir; + //printf("*** For dir %s\n",shortName().data()); + for (udi.toFirst();(udir=udi.current());++udi) + // for each used dir (=directly used or a parent of a directly used dir) + { + const DirDef *usedDir=udir->dir(); + DirDef *dir=dd; + while (dir) + { + //printf("*** check relation %s->%s same_parent=%d !%s->isParentOf(%s)=%d\n", + // dir->shortName().data(),usedDir->shortName().data(), + // dir->parent()==usedDir->parent(), + // usedDir->shortName().data(), + // shortName().data(), + // !usedDir->isParentOf(this) + // ); + if (dir!=usedDir && dir->parent()==usedDir->parent() && + !usedDir->isParentOf(dd)) + // include if both have the same parent (or no parent) + { + t << " " << usedDir->getOutputFileBase() << " [shape=box label=\"" + << usedDir->shortName() << "\""; + if (usedDir->isCluster()) + { + if (!Config_getBool("DOT_TRANSPARENT")) + { + t << " fillcolor=\"white\" style=\"filled\""; + } + t << " color=\"red\""; + } + t << " URL=\"" << usedDir->getOutputFileBase() + << Doxygen::htmlFileExtension << "\"];\n"; + dirsInGraph.insert(usedDir->getOutputFileBase(),usedDir); + break; + } + dir=dir->parent(); + } + } + + // add relations between all selected directories + DirDef *dir; + QDictIterator<DirDef> di(dirsInGraph); + for (di.toFirst();(dir=di.current());++di) // foreach dir in the graph + { + QDictIterator<UsedDir> udi(*dir->usedDirs()); + UsedDir *udir; + for (udi.toFirst();(udir=udi.current());++udi) // foreach used dir + { + const DirDef *usedDir=udir->dir(); + if ((dir!=dd || !udir->inherited()) && // only show direct dependendies for this dir + (usedDir!=dd || !udir->inherited()) && // only show direct dependendies for this dir + !usedDir->isParentOf(dir) && // don't point to own parent + dirsInGraph.find(usedDir->getOutputFileBase())) // only point to nodes that are in the graph + { + QCString relationName; + relationName.sprintf("dir_%06d_%06d",dir->dirCount(),usedDir->dirCount()); + if (Doxygen::dirRelations.find(relationName)==0) + { + // new relation + Doxygen::dirRelations.append(relationName, + new DirRelation(relationName,dir,udir)); + } + int nrefs = udir->filePairs().count(); + t << " " << dir->getOutputFileBase() << "->" + << usedDir->getOutputFileBase(); + t << " [headlabel=\"" << nrefs << "\", labeldistance=1.5"; + t << " headhref=\"" << relationName << Doxygen::htmlFileExtension + << "\"];\n"; + } + } + } + + t << "}\n"; +} @@ -337,5 +337,6 @@ void writeDotGraphFromFile(const char *inFile,const char *outDir, QString getDotImageMapFromFile(const QString& inFile, const QString& outDir, const QCString& relPath,const QString &context); +void writeDotDirDepGraph(QTextStream &t,DirDef *dd); #endif diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 0d163cd..f66be45 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -2482,6 +2482,44 @@ static void buildVarList(EntryNav *rootNav) else mtype=MemberDef::Variable; +#if 0 // does not work correctly + //static bool typedefHidesStruct = Config_getBool("TYPEDEF_HIDES_STRUCT"); + if (typedefHidesStruct) // substitute names with typedef'ed names + { + QCString baseType = type; + baseType.stripPrefix("typedef "); + if (baseType.stripPrefix("enum ")) + { + MemberName *mn=Doxygen::functionNameSDict->find(baseType.stripWhiteSpace()); + MemberNameIterator mni(*mn); + MemberDef *md; + for (mni.toFirst();(md=mni.current());++mni) + { + if (md->isEnumerate()) + { + md->setName(name); + md->setDefinition(name); + goto nextMember; + } + } + } + else + { + baseType.stripPrefix("struct "); + baseType.stripPrefix("union "); + { + ClassDef *typedefClass = Doxygen::classSDict->find(baseType); + if (typedefClass) + { + typedefClass->setName(name); + typedefClass->setClassName(name); + goto nextMember; + } + } + } + } +#endif + if (!root->relates.isEmpty()) // related variable { isRelated=TRUE; @@ -7019,7 +7057,8 @@ static void addSourceReferences() if (fd && md->getStartBodyLine()!=-1 && md->isLinkableInProject() && - fd->generateSourceFile()) + (fd->generateSourceFile() || Doxygen::parseSourcesNeeded) + ) { //printf("Found member `%s' in file `%s' at line `%d' def=%s\n", // md->name().data(),fd->name().data(),md->getStartBodyLine(),md->getOuterScope()->name().data()); @@ -7035,12 +7074,15 @@ static void addSourceReferences() for (mni.toFirst();(md=mni.current());++mni) { FileDef *fd=md->getBodyDef(); - //printf("member %s body=[%d,%d] fd=%p\n",md->name().data(), - // md->getStartBodyLine(),md->getEndBodyLine(),fd); + //printf("member %s body=[%d,%d] fd=%p link=%d parseSources=%d\n", + // md->name().data(), + // md->getStartBodyLine(),md->getEndBodyLine(),fd, + // md->isLinkableInProject(), + // Doxygen::parseSourcesNeeded); if (fd && md->getStartBodyLine()!=-1 && md->isLinkableInProject() && - fd->generateSourceFile() + (fd->generateSourceFile() || Doxygen::parseSourcesNeeded) ) { //printf("Found member `%s' in file `%s' at line `%d' def=%s\n", @@ -9267,7 +9309,9 @@ void checkConfiguration() Doxygen::xrefLists->setAutoDelete(TRUE); Doxygen::parseSourcesNeeded = Config_getBool("CALL_GRAPH") || - Config_getBool("CALLER_GRAPH"); + Config_getBool("CALLER_GRAPH") || + Config_getBool("REFERENCES_RELATION") || + Config_getBool("REFERENCED_BY_RELATION"); } diff --git a/src/entry.h b/src/entry.h index 04db9ac..f87182c 100644 --- a/src/entry.h +++ b/src/entry.h @@ -266,7 +266,7 @@ class Entry NonAtomic = 0x040000, Copy = 0x080000, Retain = 0x100000, - Assign = 0x200000, + Assign = 0x200000 }; enum ClassSpecifier { diff --git a/src/filedef.cpp b/src/filedef.cpp index 9123976..47304c2 100644 --- a/src/filedef.cpp +++ b/src/filedef.cpp @@ -835,7 +835,7 @@ void FileDef::addSourceRef(int line,Definition *d,MemberDef *md) srcDefDict->insert(line,d); if (md) srcMemberDict->insert(line,md); //printf("Adding member %s with anchor %s at line %d to file %s\n", - // d->name().data(),anchor,line,name().data()); + // md->name().data(),md->anchor().data(),line,name().data()); } } diff --git a/src/fortrancode.l b/src/fortrancode.l index a2a3ad8..5ca162e 100644 --- a/src/fortrancode.l +++ b/src/fortrancode.l @@ -630,7 +630,7 @@ IGNORE (IMPLICIT{BS}NONE|CONTAINS|WRITE|READ|ALLOCATE|DEALLOCATE|SIZE) codifyLines(yytext); endFontClass(); } -<Start>"end"({BS_}{COMMANDS})?/[ \t\n].* { +<Start>"end"({BS_}{COMMANDS})?/[ \t\n] { startFontClass("keyword"); codifyLines(yytext); endFontClass(); diff --git a/src/groupdef.h b/src/groupdef.h index dcbe1e4..7a4070f 100644 --- a/src/groupdef.h +++ b/src/groupdef.h @@ -142,10 +142,19 @@ class GroupSDict : public SDict<GroupDef> public: GroupSDict(uint size) : SDict<GroupDef>(size) {} virtual ~GroupSDict() {} + int compareItems(GCI item1,GCI item2) + { + return strcmp(((GroupDef*)item1)->groupTitle(),((GroupDef*)item2)->groupTitle()); + } }; class GroupList : public QList<GroupDef> { + public: + int compareItems(GCI item1,GCI item2) + { + return strcmp(((GroupDef*)item1)->groupTitle(),((GroupDef*)item2)->groupTitle()); + } }; class GroupListIterator : public QListIterator<GroupDef> diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp index b3739fe..fcd8157 100644 --- a/src/htmldocvisitor.cpp +++ b/src/htmldocvisitor.cpp @@ -935,6 +935,11 @@ void HtmlDocVisitor::visitPre(DocParamSect *s) m_t << theTranslator->trReturnValues(); break; case DocParamSect::Exception: m_t << theTranslator->trExceptions(); break; + case DocParamSect::TemplateParam: + /* TODO: add this + m_t << theTranslator->trTemplateParam(); break; + */ + m_t << "Template Parameters"; break; default: ASSERT(0); } diff --git a/src/index.cpp b/src/index.cpp index a762ecf..beb0477 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -152,7 +152,7 @@ QCString abbreviate(const char *s,const char *name) { QCString scopelessName=name; int i=scopelessName.findRev("::"); - if (i!=-1) scopelessName=scopelessName.mid(i); + if (i!=-1) scopelessName=scopelessName.mid(i+2); QCString result=s; result=result.stripWhiteSpace(); // strip trailing . @@ -2433,6 +2433,8 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) if (hasSubGroups) { startIndexHierarchy(ol,level+1); + if (Config_getBool("SORT_GROUP_NAMES")) + gd->groupList->sort(); QListIterator<GroupDef> gli(*gd->groupList); GroupDef *subgd = 0; for (gli.toFirst();(subgd=gli.current());++gli) @@ -2544,6 +2546,8 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,int level) void writeGroupHierarchy(OutputList &ol) { startIndexHierarchy(ol,0); + if (Config_getBool("SORT_GROUP_NAMES")) + Doxygen::groupSDict->sort(); GroupSDict::Iterator gli(*Doxygen::groupSDict); GroupDef *gd; for (gli.toFirst();(gd=gli.current());++gli) diff --git a/src/language.cpp b/src/language.cpp index 39c9e66..727eea9 100644 --- a/src/language.cpp +++ b/src/language.cpp @@ -355,7 +355,7 @@ bool setTranslator(const char *langName) } #endif #ifdef LANG_FA - else if (L_EQUAL("persian")) + else if (L_EQUAL("persian") || L_EQUAL("farsi")) { theTranslator=new TranslatorDecoder(new TranslatorPersian); } diff --git a/src/latexdocvisitor.cpp b/src/latexdocvisitor.cpp index 3d7b8c7..0516e37 100644 --- a/src/latexdocvisitor.cpp +++ b/src/latexdocvisitor.cpp @@ -927,6 +927,11 @@ void LatexDocVisitor::visitPre(DocParamSect *s) filter(theTranslator->trReturnValues()); break; case DocParamSect::Exception: filter(theTranslator->trExceptions()); break; + case DocParamSect::TemplateParam: + /* TODO: add this + filter(theTranslator->trTemplateParam()); break; + */ + filter("Template Parameters"); break; default: ASSERT(0); } diff --git a/src/mandocvisitor.cpp b/src/mandocvisitor.cpp index 61e8d0e..4dd8010 100644 --- a/src/mandocvisitor.cpp +++ b/src/mandocvisitor.cpp @@ -807,6 +807,11 @@ void ManDocVisitor::visitPre(DocParamSect *s) m_t << theTranslator->trReturnValues(); break; case DocParamSect::Exception: m_t << theTranslator->trExceptions(); break; + case DocParamSect::TemplateParam: + /* TODO: add this + m_t << theTranslator->trTemplateParam(); break; + */ + m_t << "Template Parameters"; break; default: ASSERT(0); } diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp index 95034dd..9c7f033 100644 --- a/src/perlmodgen.cpp +++ b/src/perlmodgen.cpp @@ -1161,6 +1161,7 @@ void PerlModDocVisitor::visitPre(DocParamSect *s) case DocParamSect::Param: type = "params"; break; case DocParamSect::RetVal: type = "retvals"; break; case DocParamSect::Exception: type = "exceptions"; break; + case DocParamSect::TemplateParam: type = "templateparam"; break; case DocParamSect::Unknown: err("Error: unknown parameter section found\n"); break; diff --git a/src/printdocvisitor.h b/src/printdocvisitor.h index eca9943..30e919e 100644 --- a/src/printdocvisitor.h +++ b/src/printdocvisitor.h @@ -589,6 +589,7 @@ class PrintDocVisitor : public DocVisitor case DocParamSect::Param: printf("param"); break; case DocParamSect::RetVal: printf("retval"); break; case DocParamSect::Exception: printf("exception"); break; + case DocParamSect::TemplateParam: printf("templateparam"); break; case DocParamSect::Unknown: printf("unknown"); break; } printf(">\n"); diff --git a/src/rtfdocvisitor.cpp b/src/rtfdocvisitor.cpp index 3eb5ae8..4ed7c16 100644 --- a/src/rtfdocvisitor.cpp +++ b/src/rtfdocvisitor.cpp @@ -1174,6 +1174,11 @@ void RTFDocVisitor::visitPre(DocParamSect *s) m_t << theTranslator->trReturnValues(); break; case DocParamSect::Exception: m_t << theTranslator->trExceptions(); break; + case DocParamSect::TemplateParam: + /* TODO: add this + m_t << theTranslator->trTemplateParam(); break; + */ + m_t << "Template Parameters"; break; default: ASSERT(0); } diff --git a/src/scanner.l b/src/scanner.l index 50edea9..8125b9c 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -2773,7 +2773,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) initEntry(); BEGIN( FindMembers ); } -<IDLProp>. { +<IDLProp>. { // spaces, *, or other stuff + idlProp+=yytext; } <Array>"]" { current->args += *yytext ; if (--squareCount<=0) diff --git a/src/search.php b/src/search.php index 6253e67..f86184c 100644 --- a/src/search.php +++ b/src/search.php @@ -288,7 +288,7 @@ function main() { $query=$_GET["query"]; } - end_form($query); + end_form(ereg_replace("[^[:alnum:]:\\.\\t ]", " ", $query )); echo " \n<div class=\"searchresults\">\n"; $results = array(); $requiredWords = array(); diff --git a/src/search_php.h b/src/search_php.h index f155f5f..afbfc74 100644 --- a/src/search_php.h +++ b/src/search_php.h @@ -288,7 +288,7 @@ " {\n" " $query=$_GET[\"query\"];\n" " }\n" -" end_form($query);\n" +" end_form(ereg_replace(\"[^[:alnum:]:\\\\.\\\\t ]\", \" \", $query ));\n" " echo \" \\n<div class=\\\"searchresults\\\">\\n\";\n" " $results = array();\n" " $requiredWords = array();\n" diff --git a/src/sortdict.h b/src/sortdict.h index b9f6f7c..bc0488d 100644 --- a/src/sortdict.h +++ b/src/sortdict.h @@ -168,6 +168,18 @@ class SDict return item ? m_list->remove(item) : FALSE; } + /*! Take an item out of the dictionary without deleting it */ + T *take(const char *key) + { + T *item = m_dict->take(key); + if (item) + { + int i = m_list->find(item); + m_list->take(i); + } + return item; + } + /*! Sorts the members of the dictionary. First appending a number * of members and then sorting them is faster (O(NlogN) than using * inSort() for each member (O(N^2)). diff --git a/src/translator_br.h b/src/translator_br.h index e61ef48..56708cf 100644 --- a/src/translator_br.h +++ b/src/translator_br.h @@ -15,8 +15,10 @@ * Thanks to Jorge Ramos and others for their contributions. * * History: + * 20080206: + * - Method trTypeContraints() renamed to trTypeConstraints(). * 20071216: - * - New methods since 1.5.4 updated. + * - New methods since 1.5.4 updated. * 20070914 * - "Translate me" fixed * - Revision number changed from doxygen version to a date string. @@ -30,7 +32,7 @@ #ifndef TRANSLATOR_BR_H #define TRANSLATOR_BR_H -class TranslatorBrazilian : public TranslatorAdapter_1_5_4 +class TranslatorBrazilian : public Translator { public: @@ -1768,7 +1770,7 @@ class TranslatorBrazilian : public TranslatorAdapter_1_5_4 } /*! C# Type Contraint list */ - virtual QCString trTypeContraints() + virtual QCString trTypeConstraints() { return "Restrições do Tipo"; } diff --git a/src/translator_cn.h b/src/translator_cn.h index 80d7720..0648c6a 100644 --- a/src/translator_cn.h +++ b/src/translator_cn.h @@ -24,7 +24,7 @@ */ #define CN_SPC -class TranslatorChinese : public TranslatorAdapter_1_5_4 +class TranslatorChinese : public Translator { public: /*! Used for identification of the language. The identification @@ -1535,7 +1535,258 @@ class TranslatorChinese : public TranslatorAdapter_1_5_4 return "öٱĵ"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.5.4 (mainly for Fortran) +////////////////////////////////////////////////////////////////////////// + + /*! header that is put before the list of member subprograms (Fortran). */ + virtual QCString trMemberFunctionDocumentationFortran() + // { return "Member Function/Subroutine Documentation"; } + { return "Աĵ"; } + + /*! This is put above each page as a link to the list of annotated data types (Fortran). */ + virtual QCString trCompoundListFortran() + // { return "Data Types List"; } + { return "б"; } + + /*! This is put above each page as a link to all members of compounds (Fortran). */ + virtual QCString trCompoundMembersFortran() + // { return "Data Fields"; } + { return ""; } + + /*! This is an introduction to the annotated compound list (Fortran). */ + virtual QCString trCompoundListDescriptionFortran() + // { return "Here are the data types with brief descriptions:"; } + { return "Ҫб:"; } + + /*! This is an introduction to the page with all data types (Fortran). */ + virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) + { + // QCString result="Here is a list of all "; + // if (!extractAll) + // { + // result+="documented "; + // } + // result+="data types members"; + // result+=" with links to "; + // if (!extractAll) + // { + // result+="the data structure documentation for each member"; + // } + // else + // { + // result+="the data types they belong to:"; + // } + // return result; + if(!extractAll) { + return "ĵͳԱбеÿԱݽṹĵ"; + } else { + return "ͳԱбеԱ͵:"; + } + + } + + /*! This is used in LaTeX as the title of the chapter with the + * annotated compound index (Fortran). + */ + virtual QCString trCompoundIndexFortran() + // { return "Data Type Index"; } + { return ""; } + + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all data types (Fortran). + */ + virtual QCString trTypeDocumentation() + // { return "Data Type Documentation"; } + { return "ĵ"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) subprograms (Fortran). + */ + virtual QCString trSubprograms() + //{ return "Functions/Subroutines"; } + { return "/"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for subprograms (Fortran) + */ + virtual QCString trSubprogramDocumentation() + //{ return "Function/Subroutine Documentation"; } + { return "/ĵ"; } + + /*! This is used in the documentation of a file/namespace/group before + * the list of links to documented compounds (Fortran) + */ + virtual QCString trDataTypes() + // { return "Data Types"; } + { return ""; } + + /*! used as the title of page containing all the index of all modules (Fortran). */ + virtual QCString trModulesList() + // { return "Modules List"; } + { return "ģб"; } + + /*! used as an introduction to the modules list (Fortran) */ + virtual QCString trModulesListDescription(bool extractAll) + { + // QCString result="Here is a list of all "; + // if (!extractAll) result+="documented "; + // result+="modules with brief descriptions:"; + // return result; + if(!extractAll) { + return "Ҫĵģб:"; + } else { + return "Ҫģб:"; + } + } + + /*! used as the title of the HTML page of a module/type (Fortran) */ + virtual QCString trCompoundReferenceFortran(const char *clName, + ClassDef::CompoundType compType, + bool isTemplate) + { + // QCString result=(QCString)clName; + // switch(compType) + // { + // case ClassDef::Class: result+=" Module"; break; + // case ClassDef::Struct: result+=" Type"; break; + // case ClassDef::Union: result+=" Union"; break; + // case ClassDef::Interface: result+=" Interface"; break; + // case ClassDef::Protocol: result+=" Protocol"; break; + // case ClassDef::Category: result+=" Category"; break; + // case ClassDef::Exception: result+=" Exception"; break; + // } + // if (isTemplate) result+=" Template"; + // result+=" Reference"; + // return result; + QCString result=(QCString)clName; + switch(compType) + { + case ClassDef::Class: result+=CN_SPC"ģ"; break; + case ClassDef::Struct: result+=CN_SPC""; break; + case ClassDef::Union: result+=CN_SPC""; break; + case ClassDef::Interface: result+=CN_SPC""; break; + case ClassDef::Protocol: result+=CN_SPC"ӿ"; break; + case ClassDef::Category: result+=CN_SPC"Ŀ¼"; break; + case ClassDef::Exception: result+=CN_SPC"쳣"; break; + } + if (isTemplate) result+="ģ"; + result+="οֲ"; + return result; + } + /*! used as the title of the HTML page of a module (Fortran) */ + virtual QCString trModuleReference(const char *namespaceName) + { + QCString result=namespaceName; + // result+=" Module Reference"; + result += CN_SPC"ģοֲ"; + return result; + } + + /*! This is put above each page as a link to all members of modules. (Fortran) */ + virtual QCString trModulesMembers() + // { return "Module Members"; } + { return "ģԱ"; } + + /*! This is an introduction to the page with all modules members (Fortran) */ + virtual QCString trModulesMemberDescription(bool extractAll) + { + // QCString result="Here is a list of all "; + // if (!extractAll) result+="documented "; + // result+="module members with links to "; + // if (extractAll) + // { + // result+="the module documentation for each member:"; + // } + // else + // { + // result+="the modules they belong to:"; + // } + // return result; + if(!extractAll) { + return "ĵģԱбеÿԱģĵ"; + } else { + return "ģԱбеԱģ:"; + } + } + + /*! This is used in LaTeX as the title of the chapter with the + * index of all modules (Fortran). + */ + virtual QCString trModulesIndex() + // { return "Modules Index"; } + { return "ģ"; } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trModule(bool, bool) + { + // QCString result((first_capital ? "Module" : "module")); + // if (!singular) result+="s"; + // return result; + return "ģ"; + } + /*! This is put at the bottom of a module documentation page and is + * followed by a list of files that were used to generate the page. + */ + virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, + bool) + { // here s is one of " Module", " Struct" or " Union" + // single is true implies a single file + // QCString result=(QCString)"The documentation for this "; + // switch(compType) + // { + // case ClassDef::Class: result+="module"; break; + // case ClassDef::Struct: result+="type"; break; + // case ClassDef::Union: result+="union"; break; + // case ClassDef::Interface: result+="interface"; break; + // case ClassDef::Protocol: result+="protocol"; break; + // case ClassDef::Category: result+="category"; break; + // case ClassDef::Exception: result+="exception"; break; + // } + // result+=" was generated from the following file"; + // if (single) result+=":"; else result+="s:"; + // return result; + QCString result=""; + switch(compType) + { + case ClassDef::Class: result+=CN_SPC"ģ"; break; + case ClassDef::Struct: result+=CN_SPC""; break; + case ClassDef::Union: result+=CN_SPC""; break; + case ClassDef::Interface: result+=CN_SPC""; break; + case ClassDef::Protocol: result+=CN_SPC"ӿ"; break; + case ClassDef::Category: result+=CN_SPC"Ŀ¼"; break; + case ClassDef::Exception: result+=CN_SPC"쳣"; break; + } + result+="ĵļ:"; + return result; + } + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trType(bool, bool) + { + return ""; + } + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trSubprogram(bool, bool) + { + return "ӳ"; + } + + /*! C# Type Constraint list */ + virtual QCString trTypeConstraints() + { + return ""; + } }; #endif diff --git a/src/translator_de.h b/src/translator_de.h index 1bbe711..99e4e2d 100644 --- a/src/translator_de.h +++ b/src/translator_de.h @@ -111,13 +111,16 @@ // 2006/06/12 Jens Seidel (jensseidel@users.sourceforge.net) // - Updated for "new since 1.4.6" version // +// 2008/02/04 Jens Seidel (jensseidel@users.sourceforge.net) +// - Updated for "new since 1.5.4" version +// // Todo: // - see FIXME #ifndef TRANSLATOR_DE_H #define TRANSLATOR_DE_H -class TranslatorGerman : public TranslatorAdapter_1_5_4 +class TranslatorGerman : public Translator { public: @@ -1663,6 +1666,206 @@ class TranslatorGerman : public TranslatorAdapter_1_5_4 virtual QCString trEnumerationValueDocumentation() { return "Enumerator-Dokumentation"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.5.4 (mainly for Fortran) +////////////////////////////////////////////////////////////////////////// + + /*! header that is put before the list of member subprograms (Fortran). */ + virtual QCString trMemberFunctionDocumentationFortran() + { return "Elementfunktionen/Unterroutinen-Dokumentation"; } + + /*! This is put above each page as a link to the list of annotated data types (Fortran). */ + virtual QCString trCompoundListFortran() + { return "Datentyp-Liste"; } + + /*! This is put above each page as a link to all members of compounds (Fortran). */ + virtual QCString trCompoundMembersFortran() + { return "Datenfelder"; } + + /*! This is an introduction to the annotated compound list (Fortran). */ + virtual QCString trCompoundListDescriptionFortran() + { return "Hier folgen die Datentypen mit Kurzbeschreibungen:"; } + + /*! This is an introduction to the page with all data types (Fortran). */ + virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) + { + QCString result="Hier folgt eine Liste aller "; + if (!extractAll) + { + result+="dokumentierten "; + } + result+="Datentypelemente"; + result+=" mit Links "; + if (!extractAll) + { + result+="zur Datenstruktur-Dokumentation fr jedes Element"; + } + else + { + result+="zu den Datentypen, zu denen sie gehren:"; + } + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * annotated compound index (Fortran). + */ + virtual QCString trCompoundIndexFortran() + { return "Datentyp-Index"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all data types (Fortran). + */ + virtual QCString trTypeDocumentation() + { return "Datentyp-Dokumentation"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) subprograms (Fortran). + */ + virtual QCString trSubprograms() + { return "Funktionen/Unterroutinen"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for subprograms (Fortran) + */ + virtual QCString trSubprogramDocumentation() + { return "Funktionen/Unterroutinen-Dokumentation"; } + + /*! This is used in the documentation of a file/namespace/group before + * the list of links to documented compounds (Fortran) + */ + virtual QCString trDataTypes() + { return "Datentypen"; } + + /*! used as the title of page containing all the index of all modules (Fortran). */ + virtual QCString trModulesList() + { return "Modulliste"; } + + /*! used as an introduction to the modules list (Fortran) */ + virtual QCString trModulesListDescription(bool extractAll) + { + QCString result="Hier folgt eine Liste aller "; + if (!extractAll) result+="dokumentierten "; + result+="Module mit ihren Kurzbeschreibungen:"; + return result; + } + + /*! used as the title of the HTML page of a module/type (Fortran) */ + virtual QCString trCompoundReferenceFortran(const char *clName, + ClassDef::CompoundType compType, + bool isTemplate) + { + QCString result=(QCString)clName; + result += "-"; + switch(compType) + { + case ClassDef::Class: result+="Modul"; break; + case ClassDef::Struct: result+="Typ"; break; + case ClassDef::Union: result+="Union"; break; + case ClassDef::Interface: result+="Interface"; break; + case ClassDef::Protocol: result+="Protokoll"; break; + case ClassDef::Category: result+="Kategorie"; break; + case ClassDef::Exception: result+="Ausnahmen"; break; + } + if (isTemplate) result+="-Template"; + result+="-Referenz"; + return result; + } + /*! used as the title of the HTML page of a module (Fortran) */ + virtual QCString trModuleReference(const char *namespaceName) + { + QCString result=namespaceName; + result+="-Modul-Referenz"; + return result; + } + + /*! This is put above each page as a link to all members of modules. (Fortran) */ + virtual QCString trModulesMembers() + { return "Modul-Elemente"; } + + /*! This is an introduction to the page with all modules members (Fortran) */ + virtual QCString trModulesMemberDescription(bool extractAll) + { + QCString result="Hier folgt eine Liste aller "; + if (!extractAll) result+="dokumentierten "; + result+="Modulelemente mit Links "; + if (extractAll) + { + result+="zur Moduldokumentation fr jedes Element:"; + } + else + { + result+="zu den Modulen, zu denen sie gehren:"; + } + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * index of all modules (Fortran). + */ + virtual QCString trModulesIndex() + { return "Modul-Index"; } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trModule(bool /*first_capital*/, bool singular) + { + QCString result("Modul"); + if (!singular) result+="e"; + return result; + } + /*! This is put at the bottom of a module documentation page and is + * followed by a list of files that were used to generate the page. + */ + virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, + bool single) + { + // single is true implies a single file + QCString result=(QCString)"Die Dokumentation fr "; + switch(compType) + { + case ClassDef::Class: result+="dieses Modul"; break; + case ClassDef::Struct: result+="diesen Typ"; break; + case ClassDef::Union: result+="diese Union"; break; + case ClassDef::Interface: result+="dieses Interface"; break; + case ClassDef::Protocol: result+="dieses Protokoll"; break; + case ClassDef::Category: result+="diese Kategorie"; break; + case ClassDef::Exception: result+="diese Ausnahme"; break; + } + if (single) + result+=" wurde aus der folgenden Datei erzeugt:"; + else + result+=" wurde aus den folgenden Dateien erzeugt:"; + return result; + } + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trType(bool /*first_capital*/, bool singular) + { + QCString result("Typ"); + if (!singular) result+="en"; + return result; + } + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trSubprogram(bool /*first_capital*/, bool singular) + { + QCString result("Unterprogramm"); + if (!singular) result+="e"; + return result; + } + + /*! C# Type Constraint list */ + virtual QCString trTypeConstraints() + { + return "Type Constraints"; + } }; diff --git a/src/translator_es.h b/src/translator_es.h index 7ae0072..6d146ab 100644 --- a/src/translator_es.h +++ b/src/translator_es.h @@ -22,6 +22,7 @@ * some words haven't got translate in spanish. * Updated from 1.3.8 to 1.4.6 by Guillermo Ballester Valor (May-05-2006) * Updated fron 1.4.6 to 1.5.1 by Bartomeu Creus Navarro (22-enero-2007) + * Updated fron 1.5.1 to 1.5.5 by Bartomeu Creus Navarro (5-febrero-2008) */ #ifndef TRANSLATOR_ES_H @@ -181,7 +182,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! This is put above each page as a link to all members of compounds. */ virtual QCString trCompoundMembers() { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return "Campos de datos"; } @@ -189,7 +190,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Miembros de las clases"; } - } + } /*! This is put above each page as a link to all members of files. */ virtual QCString trFileMembers() @@ -219,7 +220,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! This is an introduction to the class hierarchy. */ virtual QCString trClassHierarchyDescription() { return "Esta lista de herencias esta ordenada " - "aproximadamente por orden alfabtico:"; + "aproximadamente por orden alfabtico:"; } /*! This is an introduction to the list with all files. */ @@ -233,8 +234,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! This is an introduction to the annotated compound list. */ virtual QCString trCompoundListDescription() - { - + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return "Lista de estructuras con una breve descripcin:"; @@ -506,6 +506,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 result+=(QCString)" por"; return result; } + /*! This is part of the sentence used in the standard footer of each page. */ virtual QCString trWrittenBy() @@ -550,7 +551,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 /*! this text is generated when the \\exception command is used. */ virtual QCString trExceptions() { return "Excepciones"; } - + /*! this text is used in the title page of a LaTeX document. */ virtual QCString trGeneratedBy() { return "Generado por"; } @@ -558,7 +559,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 ////////////////////////////////////////////////////////////////////////// // new since 0.49-990307 ////////////////////////////////////////////////////////////////////////// - + /*! used as the title of page containing all the index of all namespaces. */ virtual QCString trNamespaceList() { return "Lista de namespace"; } @@ -577,38 +578,38 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 */ virtual QCString trFriends() { return "Amigas"; } - + ////////////////////////////////////////////////////////////////////////// // new since 0.49-990405 ////////////////////////////////////////////////////////////////////////// - + /*! used in the class documentation as a header before the list of all * related classes */ virtual QCString trRelatedFunctionDocumentation() { return "Documentacin de las funciones relacionadas y clases amigas"; } - + ////////////////////////////////////////////////////////////////////////// // new since 0.49-990425 ////////////////////////////////////////////////////////////////////////// /*! used as the title of the HTML page of a class/struct/union */ virtual QCString trCompoundReference(const char *clName, - ClassDef::CompoundType compType, - bool isTemplate) + ClassDef::CompoundType compType, + bool isTemplate) { - QCString result="Referencia de "; + QCString result="Referencia de"; + if (isTemplate) result+=" la plantilla de"; switch(compType) { - case ClassDef::Class: result+="la Clase "; break; - case ClassDef::Struct: result+="la Estructura "; break; - case ClassDef::Union: result+="la Unin "; break; - case ClassDef::Interface: result+="la Interfaz "; break; - case ClassDef::Protocol: result+="el Protocolo "; break; - case ClassDef::Category: result+="la Categoria "; break; - case ClassDef::Exception: result+="la Excepcin "; break; + case ClassDef::Class: result+=" la Clase "; break; + case ClassDef::Struct: result+=" la Estructura "; break; + case ClassDef::Union: result+=" la Unin "; break; + case ClassDef::Interface: result+=" la Interfaz "; break; + case ClassDef::Protocol: result+="l Protocolo "; break; + case ClassDef::Category: result+=" la Categoria "; break; + case ClassDef::Exception: result+=" la Excepcin "; break; } - if (isTemplate) result+=" <template>"; result+=(QCString)clName; return result; } @@ -628,28 +629,37 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 result+=namespaceName; return result; } - + virtual QCString trPublicMembers() { return "Mtodos pblicos"; } + virtual QCString trPublicSlots() { return "Slots pblicos"; } + virtual QCString trSignals() { return "Seales"; } + virtual QCString trStaticPublicMembers() { return "Mtodos pblicos estticos"; } + virtual QCString trProtectedMembers() { return "Mtodos protegidos"; } + virtual QCString trProtectedSlots() { return "Slots protegidos"; } + virtual QCString trStaticProtectedMembers() { return "Mtodos protegidos estticos"; } + virtual QCString trPrivateMembers() { return "Mtodos privados"; } + virtual QCString trPrivateSlots() { return "Slots privados"; } + virtual QCString trStaticPrivateMembers() { return "Mtodos privados estticos"; } - + /*! this function is used to produce a comma-separated list of items. * use generateMarker(i) to indicate where item i should be put. */ @@ -674,7 +684,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 } return result; } - + /*! used in class documentation to produce a list of base classes, * if class diagrams are disabled. */ @@ -727,13 +737,13 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 * index of all namespaces. */ virtual QCString trNamespaceIndex() - { return "Indice de namespace"; } + { return "Indice de namespaces"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all namespaces. */ virtual QCString trNamespaceDocumentation() - { return "Documentacin de namespace"; } + { return "Documentacin de namespaces"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990522 @@ -767,9 +777,9 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 case ClassDef::Category: result+="a categora"; break; case ClassDef::Exception: result+="a excepcin"; break; } - result+=" fu generada a partir de"; + result+=" fue generada a partir de"; if (single) result+="l siguiente fichero:"; - else result+=" los siguientes ficheros:"; + else result+=" los siguientes ficheros:"; return result; } @@ -817,7 +827,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 virtual QCString trDeprecated() { - return "Obsoleto"; + return "Obsoleto"; } ////////////////////////////////////////////////////////////////////////// @@ -829,63 +839,76 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return (QCString)"Diagrama de colaboracin para "+clName+":"; } + /*! this text is put before an include dependency graph */ virtual QCString trInclDepGraph(const char *fName) { return (QCString)"Dependencia grfica adjunta para "+fName+":"; } + /*! header that is put before the list of constructor/destructors. */ virtual QCString trConstructorDocumentation() { return "Documentacin del constructor y destructor"; } + /*! Used in the file documentation to point to the corresponding sources. */ virtual QCString trGotoSourceCode() { return "Ir al cdigo fuente de este archivo."; } + /*! Used in the file sources to point to the corresponding documentation. */ virtual QCString trGotoDocumentation() { return "Ir a la documentacin de este archivo."; } + /*! Text for the \\pre command */ virtual QCString trPrecondition() { return "Precondicin"; } + /*! Text for the \\post command */ virtual QCString trPostcondition() { return "Postcondicin"; } + /*! Text for the \\invariant command */ virtual QCString trInvariant() { return "Invariante"; } + /*! Text shown before a multi-line variable/enum initialization */ virtual QCString trInitialValue() { return "Valor inicial:"; } + /*! Text used the source code in the file index */ virtual QCString trCode() { return "cdigo"; } + virtual QCString trGraphicalHierarchy() { return "Representacin grfica de la clase"; } + virtual QCString trGotoGraphicalHierarchy() { return "Ir a la representacin grfica de la jerarqua de la clase"; } + virtual QCString trGotoTextualHierarchy() { return "Ir a la jerarqua textual de la clase"; } + virtual QCString trPageIndex() { return "Pgina indice"; @@ -894,15 +917,17 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 ////////////////////////////////////////////////////////////////////////// // new since 1.1.0 ////////////////////////////////////////////////////////////////////////// - + virtual QCString trNote() { return "Nota"; } + virtual QCString trPublicTypes() { return "Tipos pblicos"; } + virtual QCString trPublicAttribs() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) @@ -914,30 +939,37 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 return "Atributos pblicos"; } } + virtual QCString trStaticPublicAttribs() { return "Atributos pblicos estticos"; } + virtual QCString trProtectedTypes() { return "Tipos protegidos"; } + virtual QCString trProtectedAttribs() { return "Atributos protegidos"; } + virtual QCString trStaticProtectedAttribs() { return "Atributos protegidos estticos"; } + virtual QCString trPrivateTypes() { return "Tipos privados"; } + virtual QCString trPrivateAttribs() { return "Atributos privados"; } + virtual QCString trStaticPrivateAttribs() { return "Atributos privados estticos"; @@ -952,6 +984,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Tareas Pendientes"; } + /*! Used as the header of the todo list */ virtual QCString trTodoList() { @@ -966,24 +999,28 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Referenciado por"; } + virtual QCString trRemarks() { return "Comentarios"; } + virtual QCString trAttention() { return "Atencin"; } + virtual QCString trInclByDepGraph() { - return "Este grfico muestra que archivos directa o " - "indirectamente incluyen a este archivo:"; + return "Grfico de los archivos que directa o " + "indirectamente incluyen a este archivo:"; } + virtual QCString trSince() { return "Desde"; } - + ////////////////////////////////////////////////////////////////////////// // new since 1.1.5 ////////////////////////////////////////////////////////////////////////// @@ -993,6 +1030,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Leyenda del Grfico"; } + /*! page explaining how the dot graph's should be interpreted * The %A in the text below are to prevent link to classes called "A". */ @@ -1000,10 +1038,10 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Esta pgina explica como interpretar los grficos que son generados " - "por doxygen.<p>\n" - "Considere el siguiente ejemplo:\n" + "por doxygen.<p>\n" + "Considere el siguiente ejemplo:\n" "\\code\n" - "/*! Clase invisible por truncamiento */\n" + "/*! Clase invisible por truncamiento */\n" "class Invisible { };\n\n" "/*! Clase truncada, relacin de herencia escondida */\n" "class Truncated : public Invisible { };\n\n" @@ -1013,7 +1051,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 "class PublicBase : public Truncated { };\n\n" "/*! Clase plantilla */\n" "template<class T> class Templ { };\n\n" - "/*! Clase que es heredera usando herencia protegida */\n" + "/*! Clase que es heredera usando herencia protegida */\n" "class ProtectedBase { };\n\n" "/*! Clase que es heredera usando herencia privada */\n" "class PrivateBase { };\n\n" @@ -1037,13 +1075,13 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 "Las cajas en el grfico arriba tienen el significado que sigue:\n" "<ul>\n" "<li>Una caja llena negra representa la estructura o clase para la cul" - "se gener el grfico.\n" + "se gener el grfico.\n" "<li>Una caja con borde negro seala una estructura o clase documentada.\n" "<li>Una caja con borde griz seala una estructura o clase no documentada.\n" "<li>una caja con borde rojo seala una estructura o clase documentada" - " de la cul no toda las relaciones de jerarqua/contenido son " - "mostradas. El grfico sera truncado si este no calza dentro de los " - "lmites especificados." + " de la cul no toda las relaciones de jerarqua/contenido son " + "mostradas. El grfico sera truncado si este no calza dentro de los " + "lmites especificados." "</ul>\n" "Las flechas tienen el siguiente significado:\n" "<ul>\n" @@ -1051,12 +1089,13 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 "<li>Una flecha verde oscura es usada para herencia protegida.\n" "<li>Una flecha rojo oscura es usada para herencia privada.\n" "<li>Una flecha segmentada prpura se usa si la clase es contenida o " - "usada por otra clase. La flecha est etiquetada por la variable " - "con que se accede a la clase o estructura apuntada. \n" - "<li>Una flecha segmentada amarilla indica la relacin entre una instancia template y la clase template de la que se ha instanciado." - " La flecha se etiqueta con los parmetros con que se llama al template.\n" + "usada por otra clase. La flecha est etiquetada por la variable " + "con que se accede a la clase o estructura apuntada. \n" + "<li>Una flecha segmentada amarilla indica la relacin entre una instancia template y la clase template de la que se ha instanciado." + " La flecha se etiqueta con los parmetros con que se llama al template.\n" "</ul>\n"; } + /*! text for the link to the legend page */ virtual QCString trLegend() { @@ -1066,12 +1105,13 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 ////////////////////////////////////////////////////////////////////////// // new since 1.2.0 ////////////////////////////////////////////////////////////////////////// - + /*! Used as a marker that is put before a test item */ virtual QCString trTest() { return "Prueba"; } + /*! Used as the header of the test list */ virtual QCString trTestList() { @@ -1097,6 +1137,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Propiedades"; } + /*! Used as a section header for IDL property documentation */ virtual QCString trPropertyDocumentation() { @@ -1119,41 +1160,47 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 return "Clases"; } } + /*! Used as the title of a Java package */ virtual QCString trPackage(const char *name) { return (QCString)"Paquetes "+name; } + /*! Title of the package index page */ virtual QCString trPackageList() { return "Lista de Paquetes "; } + /*! The description of the package index page */ virtual QCString trPackageListDescription() { return "Aqu van los paquetes con una breve descripcin (si et disponible):"; } + /*! The link name in the Quick links header for each page */ virtual QCString trPackages() { return "Paquetes"; } + /*! Text shown before a multi-line define */ virtual QCString trDefineValue() { return "Valor:"; } - + ////////////////////////////////////////////////////////////////////////// // new since 1.2.5 ////////////////////////////////////////////////////////////////////////// - + /*! Used as a marker that is put before a \\bug item */ virtual QCString trBug() { return "Bug"; } + /*! Used as the header of the bug list */ virtual QCString trBugList() { @@ -1208,7 +1255,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "ndice"; } - + /*! This is used for translation of the word that will possibly * be followed by a single name or by a list of names * of the category. @@ -1365,6 +1412,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Eventos"; } + /*! Header used for the documentation section of a class' events. */ virtual QCString trEventDocumentation() { @@ -1381,6 +1429,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Tipos del Paquete"; } + /*! Used as a heading for a list of Java class functions with package * scope. */ @@ -1388,6 +1437,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Funciones del Paquete"; } + /*! Used as a heading for a list of static Java class functions with * package scope. */ @@ -1395,6 +1445,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Funciones Estticas del Paquete"; } + /*! Used as a heading for a list of Java class variables with package * scope. */ @@ -1402,6 +1453,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Atributos del Paquete"; } + /*! Used as a heading for a list of static Java class variables with * package scope. */ @@ -1409,7 +1461,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Atributos Estticos del Paquete"; } - + ////////////////////////////////////////////////////////////////////////// // new since 1.3.1 ////////////////////////////////////////////////////////////////////////// @@ -1421,6 +1473,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Todo"; } + /*! Put in front of the call graph for a function. */ virtual QCString trCallGraph() { @@ -1439,6 +1492,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Buscar"; } + /*! This string is used as the title for the page listing the search * results. */ @@ -1446,6 +1500,7 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 { return "Resultados de la Bsqueda"; } + /*! This string is put just before listing the search results. The * text can be different depending on the number of documents found. * Inside the text you can put the special marker $num to insert @@ -1467,9 +1522,10 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 else { return "Se encontraron <b>$num</b> documentos que coinciden con su bsqueda. " - "Se muestran los mejores resultados primero."; + "Se muestran los mejores resultados primero."; } } + /*! This string is put before the list of matched words, for each search * result. What follows is the list of words that matched the query. */ @@ -1516,22 +1572,26 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 */ virtual QCString trDirDescription() { return "La jeraqua de este directorio est ordenada" - " alfabticamente, de manera aproximada:"; + " alfabticamente, de manera aproximada:"; } /*! This returns the title of a directory page. The name of the * directory is passed via \a dirName. */ virtual QCString trDirReference(const char *dirName) - { QCString result="Referencia del Directorio "; result+=dirName; return result; } + { + QCString result="Referencia del Directorio "; + result+=dirName; + return result; + } /*! This returns the word directory with or without starting capital * (\a first_capital) and in sigular or plural form (\a singular). */ virtual QCString trDir(bool first_capital, bool singular) { - QCString result((first_capital ? "Directori" : "directori")); - if (singular) result+="o"; else result+="os"; + QCString result((first_capital ? "Directorio" : "directorio")); + if (!singular) result+="s"; return result; } @@ -1545,8 +1605,8 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 virtual QCString trOverloadText() { return "Esta es una funcin miembro sobrecargada que se " - "suministra por conveniencia. Difiere de la anterior " - "funcin solamente en los argumentos que acepta."; + "suministra por conveniencia. Difiere de la anterior " + "funcin solamente en los argumentos que acepta."; } ////////////////////////////////////////////////////////////////////////// @@ -1565,6 +1625,214 @@ class TranslatorSpanish : public TranslatorAdapter_1_5_4 virtual QCString trEnumerationValueDocumentation() { return "Documentacin de los valores de la enumeracin"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.5.4 (mainly for Fortran) +////////////////////////////////////////////////////////////////////////// + // De parte de Bartomeu: + // No conozco el Fortran, salvo un par de ejercicios en la universidad + // hace muchos aos. Por lo tanto, las traducciones son del ingls + // al espaol, no de un usuario de Fortran que puede que haya cosas que no + // traduzca o traduzca de otra forma. Que los usuarios de Fortran disculpen + // y espero se animen a mejorar mi traduccin. + + /*! header that is put before the list of member subprograms (Fortran). */ + virtual QCString trMemberFunctionDocumentationFortran() + { return "Documetacin de miembros Function/Subroutine"; } + + /*! This is put above each page as a link to the list of annotated data types (Fortran). */ + virtual QCString trCompoundListFortran() + { return "Lista de tipos de datos"; } + + /*! This is put above each page as a link to all members of compounds (Fortran). */ + virtual QCString trCompoundMembersFortran() + { return "Etiquetas de datos"; } + + /*! This is an introduction to the annotated compound list (Fortran). */ + virtual QCString trCompoundListDescriptionFortran() + { return "Aqu estn los tipos de datos con una breve descripcin:"; } + + /*! This is an introduction to the page with all data types (Fortran). */ + virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) + { + QCString result="Aqu est una lista de todos "; + result+="los miembros de los tipos de datos "; + if (!extractAll) + { + result+="documentados "; + } + result+="con enlaces a "; + if (!extractAll) + { + result+="la documentacin de la estructura de datos para cada miembro"; + } + else + { + result+="los tipos de dato a que pertenece:"; + } + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * annotated compound index (Fortran). + */ + virtual QCString trCompoundIndexFortran() + { return "ndice de tipos de datos"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all data types (Fortran). + */ + virtual QCString trTypeDocumentation() + { return "Documentacin de tipos de datos"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) subprograms (Fortran). + */ + virtual QCString trSubprograms() + { return "Funciones/Subprogramas"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for subprograms (Fortran) + */ + virtual QCString trSubprogramDocumentation() + { return "Documentacin de Funciones/Subprogramas"; } + + /*! This is used in the documentation of a file/namespace/group before + * the list of links to documented compounds (Fortran) + */ + virtual QCString trDataTypes() + { return "Tipos de datos"; } + + /*! used as the title of page containing all the index of all modules (Fortran). */ + virtual QCString trModulesList() + { return "Lista de mdulos"; } + + /*! used as an introduction to the modules list (Fortran) */ + virtual QCString trModulesListDescription(bool extractAll) + { + QCString result="Lista de todos los mdulos "; + if (!extractAll) result+="documentados "; + result+="con una breve descripcin:"; + return result; + } + + /*! used as the title of the HTML page of a module/type (Fortran) */ + virtual QCString trCompoundReferenceFortran(const char *clName, + ClassDef::CompoundType compType, + bool isTemplate) + { + QCString result="Referencia de"; + if (isTemplate) result+=" la plantilla de"; + switch(compType) + { + case ClassDef::Class: result+="l mdulo"; break; + case ClassDef::Struct: result+="l tipo"; break; + case ClassDef::Union: result+=" la unin"; break; + case ClassDef::Interface: result+=" la interfaz"; break; + case ClassDef::Protocol: result+="l protocolo"; break; + case ClassDef::Category: result+=" la categora"; break; + case ClassDef::Exception: result+=" la excepcin"; break; + } + result+=(QCString)clName; + return result; + } + + /*! used as the title of the HTML page of a module (Fortran) */ + virtual QCString trModuleReference(const char *namespaceName) + { + QCString result="Referencia mdulo "; + result+=namespaceName; + return result; + } + + /*! This is put above each page as a link to all members of modules. (Fortran) */ + virtual QCString trModulesMembers() + { return "Miembros mdulo"; } + + /*! This is an introduction to the page with all modules members (Fortran) */ + virtual QCString trModulesMemberDescription(bool extractAll) + { + QCString result="Lista de todos los miembros del mdulo "; + if (!extractAll) result+="documentados "; + result+="con enlaces "; + if (extractAll) + { + result+="a la documentacin del mdulo para cada uno:"; + } + else + { + result+="al mdulo al que pertenecen:"; + } + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * index of all modules (Fortran). + */ + virtual QCString trModulesIndex() + { return "ndice de mdulos"; } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trModule(bool first_capital, bool singular) + { + QCString result((first_capital ? "Mdulo" : "mdulo")); + if (!singular) result+="s"; + return result; + } + + /*! This is put at the bottom of a module documentation page and is + * followed by a list of files that were used to generate the page. + */ + virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, + bool single) + { // here s is one of " Module", " Struct" or " Union" + // single is true implies a single file + QCString result=(QCString)"La documentacin para est"; + switch(compType) + { + case ClassDef::Class: result+="e mdulo"; break; + case ClassDef::Struct: result+="e tipo"; break; + case ClassDef::Union: result+="a unin"; break; + case ClassDef::Interface: result+="e interfaz"; break; + case ClassDef::Protocol: result+="e protocolo"; break; + case ClassDef::Category: result+="a categora"; break; + case ClassDef::Exception: result+="a excepcin"; break; + } + result+=" fue generada de"; + if (single) result+="l siguiente fichero:"; + else result+=" los siguientes ficheros:"; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trType(bool first_capital, bool singular) + { + QCString result((first_capital ? "Tipo" : "tipo")); + if (!singular) result+="s"; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trSubprogram(bool first_capital, bool singular) + { + QCString result((first_capital ? "Subprograma" : "subprograma")); + if (!singular) result+="s"; + return result; + } + + /*! C# Type Constraint list */ + virtual QCString trTypeConstraints() + { + return "Restriciones de tipo"; + } }; diff --git a/src/translator_fa.h b/src/translator_fa.h index 1a245b2..588b5d4 100644 --- a/src/translator_fa.h +++ b/src/translator_fa.h @@ -2,7 +2,7 @@ * * * - * Copyright (C) 1997-2008 by Dimitri van Heesch. + * Copyright (C) 1997-2007 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 @@ -15,10 +15,12 @@ * * * Description : Doxygen Persian Translator - * Author : Ali Nadalizadeh < nadalisoft @ yahoo . com > + * Author : Ali Nadalizadeh < nadalizadeh @ gmail dot com > * ChangeLog : - * Thu 06 Jul 2006 11:54:09 PM IRDT <nadalisoft@yahoo.com> + * Thu 06 Jul 2006 11:54:09 PM IRDT <nadalizadeh at gmail dot com> * >> First version of persian language support has been completed. + * Mon Feb 4 11:52:09 IRST 2008 <nadalizadeh at gmail dot com> + * >> Obsolete methods removed. Translated more string(s) to persian. Upgraded to 1_5_4 adapter. * */ @@ -30,7 +32,7 @@ #define HtmlDivEnd QCString("</div>") -class TranslatorPersian : public TranslatorAdapter_1_4_6 +class TranslatorPersian : public Translator { public: @@ -133,23 +135,23 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 * parameter s is name of the project name. */ virtual QCString trGeneratedAutomatically(const char *s) - { QCString result="Generated automatically by Doxygen"; - if (s) result+=(QCString)" for "+s; - result+=" from the source code."; + { QCString result="تولید شده توسط نرم افزار دی اکسیژن "; + if (s) result+=(QCString)" برای "+s; + result+=" از کد برنامه "; return result; } /*! put after an enum name in the list of all members */ virtual QCString trEnumName() - { return "enum name"; } + { return "enum نام"; } /*! put after an enum value in the list of all members */ virtual QCString trEnumValue() - { return "enum value"; } + { return "enum مقدار"; } /*! put after an undocumented member in the list of all members */ virtual QCString trDefinedIn() - { return "defined in"; } + { return "تعریف شده در"; } // quick reference sections @@ -180,16 +182,12 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 virtual QCString trFileList() { return "ليست فايل ها"; } - /*! This is put above each page as a link to the list of all verbatim headers */ - virtual QCString trHeaderFiles() - { return "Header Files"; } - /*! This is put above each page as a link to all members of compounds. */ virtual QCString trCompoundMembers() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Data Fields"; + return "فضاهای داده ها"; } else { @@ -230,9 +228,9 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 /*! This is an introduction to the list with all files. */ virtual QCString trFileListDescription(bool extractAll) { - QCString result="هم اکنون ليست همه ي پرونده ها "; + QCString result="ليست همه ي پرونده های "; if (!extractAll) result+="(مستند شده) "; - result+="را مشاهده می کنيد :"; + result+=" :"; return result; } @@ -260,8 +258,9 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 } else { - result+="همه ی اعضاء ٫"; + result+="همه ی اعضاء "; } + result+=" به همراه ارتباطشان با "; if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { result+="ساختارهای داده "; @@ -270,29 +269,14 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 { result+="كلاس ها "; } - result+=" با ارتباطشان با "; - if (!extractAll) + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - result+="the struct/union documentation for each field:"; - } - else - { - result+="the class documentation for each member:"; - } + result+="و مستندات ساختار داده برای هر عضو "; } - else - { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - result+="ساختارهای داده ای که به آنها مربوط هستند"; - } else - { - result+="کلاس هايي که به آنها مربوط هستند"; - } + { + result+="و مستندات کلاس برای هر عضو "; } result+="را مشاهده ميکنيد :"; return result; @@ -301,39 +285,26 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 /*! This is an introduction to the page with all file members. */ virtual QCString trFileMembersDescription(bool extractAll) { - QCString result="هم اکنون ليست همه ی توابع ٫ متغيير ها ٫ تعاريف و ... "; + QCString result="ليست همه ی توابع ، متغيير ها، تعاريف و ... "; if (!extractAll) result+="(مستند شده) "; - result+=" با ارتباط های آنها "; - if (extractAll) - result+="به پرونده هايی که به آن مربوط اند را مشاهده می کنيد :"; - else - result+="به مستنداتشان را می بينيد :"; + result+=" به همراه ارتباط آنها "; + result+="با پرونده هايی که به آن مربوط اند :"; return result; } - /*! This is an introduction to the page with the list of all header files. */ - virtual QCString trHeaderFilesDescription() - { return "Here are the header files that make up the API:"; } - /*! This is an introduction to the page with the list of all examples */ virtual QCString trExamplesDescription() { return "ليست همه ی مثال ها :"; } /*! This is an introduction to the page with the list of related pages */ virtual QCString trRelatedPagesDescription() - { return "Here is a list of all related documentation pages:"; } + { return "لیست تمام صفحات و مستندات مربوطه :"; } /*! This is an introduction to the page with the list of class/file groups */ virtual QCString trModulesDescription() - { return "Here is a list of all modules:"; } + { return "لیست تمام ماژول ها:"; } - /*! This sentences is used in the annotated class/file lists if no brief - * description is given. - */ - virtual QCString trNoDescriptionAvailable() - { return "هيچ توضيحی موجود نمي باشد"; } - // index titles (the project name is prepended for these) @@ -345,13 +316,13 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 * index of all groups. */ virtual QCString trModuleIndex() - { return "Module Index"; } + { return "فهرست ماژول ها"; } /*! This is used in LaTeX as the title of the chapter with the * class hierarchy. */ virtual QCString trHierarchicalIndex() - { return "Hierarchical Index"; } + { return "فهرست سلسله مراتب"; } /*! This is used in LaTeX as the title of the chapter with the * annotated compound index. @@ -360,7 +331,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Data Structure Index"; + return "فهرست ساختار داده ها"; } else { @@ -378,7 +349,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 * the documentation of all groups. */ virtual QCString trModuleDocumentation() - { return "Module Documentation"; } + { return "مستندات ماژول"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all classes, structs and unions. @@ -387,11 +358,11 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Data Structure Documentation"; + return "مستندات ساختار داده ها"; } else { - return "Class Documentation"; + return "مستندات کلاس ها"; } } @@ -399,23 +370,23 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 * the documentation of all files. */ virtual QCString trFileDocumentation() - { return "File Documentation"; } + { return "مستندات فایل"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all examples. */ virtual QCString trExampleDocumentation() - { return "Example Documentation"; } + { return "مستندات مثال"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all related pages. */ virtual QCString trPageDocumentation() - { return "Page Documentation"; } + { return "مستندات صفحه"; } /*! This is used in LaTeX as the title of the document */ virtual QCString trReferenceManual() - { return "Reference Manual"; } + { return "راهنمای مرجع"; } /*! This is used in the documentation of a file as a header before the * list of defines @@ -427,7 +398,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 * list of function prototypes */ virtual QCString trFuncProtos() - { return "Function Prototypes"; } + { return "پیش تعریف های توابع"; } /*! This is used in the documentation of a file as a header before the * list of typedefs @@ -469,7 +440,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 * of documentation blocks for function prototypes */ virtual QCString trFunctionPrototypeDocumentation() - { return "Function Prototype Documentation"; } + { return "مستندات تعاریف اولیه توابع"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for typedefs @@ -543,18 +514,10 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 virtual QCString trForInternalUseOnly() { return ".فقط برای استعمال داخلی"; } - /*! this text is generated when the \\reimp command is used. */ - virtual QCString trReimplementedForInternalReasons() - { return "Reimplemented for internal reasons; the API is not affected."; } - /*! this text is generated when the \\warning command is used. */ virtual QCString trWarning() { return "اخطار"; } - /*! this text is generated when the \\bug command is used. */ - virtual QCString trBugsAndLimitations() - { return "Bugs and limitations"; } - /*! this text is generated when the \\version command is used. */ virtual QCString trVersion() { return "نسخه"; } @@ -565,7 +528,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 /*! this text is generated when the \\return command is used. */ virtual QCString trReturns() - { return "Returns"; } + { return "خروجی"; } /*! this text is generated when the \\sa command is used. */ virtual QCString trSeeAlso() @@ -614,7 +577,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 * related classes */ virtual QCString trRelatedFunctionDocumentation() - { return "Friends And Related Function Documentation"; } + { return "مستندات توابع مربوط و دوست"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990425 @@ -634,7 +597,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 case ClassDef::Interface: result=" Interface"; break; case ClassDef::Protocol: result=" Protocol"; break; case ClassDef::Category: result=" Category"; break; - case ClassDef::Exception: result=" Exception"; break; + case ClassDef::Exception: result=" استثناء"; break; } if (isTemplate) result+=" قالب"; result=QCString(clName) + " مرجع" +result ; @@ -732,7 +695,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 */ virtual QCString trReimplementedInList(int numEntries) { - return "Reimplemented in "+trWriteList(numEntries)+"."; + return "تعریف شده است "+trWriteList(numEntries)+"دوباره در "; } /*! This is put above each page as a link to all members of namespaces. */ @@ -826,11 +789,6 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 ////////////////////////////////////////////////////////////////////////// // new since 0.49-991003 ////////////////////////////////////////////////////////////////////////// - - virtual QCString trSources() - { - return "Sources"; - } virtual QCString trDefinedAtLineInSourceFile() { return ".در خط @0 از پرونده @1 تعريف شده است"; @@ -881,12 +839,12 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 /*! Text for the \\pre command */ virtual QCString trPrecondition() { - return "Precondition"; + return "پیش شرط"; } /*! Text for the \\post command */ virtual QCString trPostcondition() { - return "Postcondition"; + return "پس شرط"; } /*! Text for the \\invariant command */ virtual QCString trInvariant() @@ -936,7 +894,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Data Fields"; + return "فضاهای داده ها"; } else { @@ -1005,8 +963,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 } virtual QCString trInclByDepGraph() { - return "This graph shows which files directly or " - "indirectly include this file:"; + return "این نمودار فایل هایی را که این فایل را به طور مستقیم یا غیر مستقیم استفاده کرده اند نشان می دهد"; } virtual QCString trSince() { @@ -1125,23 +1082,18 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 /*! Used as a section header for IDL properties */ virtual QCString trProperties() { - return "Properties"; + return "خاصیت ها"; } /*! Used as a section header for IDL property documentation */ virtual QCString trPropertyDocumentation() { - return "Property Documentation"; + return "مستندات خاصیت"; } ////////////////////////////////////////////////////////////////////////// // new since 1.2.4 ////////////////////////////////////////////////////////////////////////// - /*! Used for Java interfaces in the summary section of Java packages */ - virtual QCString trInterfaces() - { - return "Interfaces"; - } /*! Used for Java classes in the summary section of Java packages */ virtual QCString trClasses() { @@ -1162,7 +1114,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 /*! Title of the package index page */ virtual QCString trPackageList() { - return "Package List"; + return "لیست بسته ها"; } /*! The description of the package index page */ virtual QCString trPackageListDescription() @@ -1172,12 +1124,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 /*! The link name in the Quick links header for each page */ virtual QCString trPackages() { - return "Packages"; - } - /*! Used as a chapter title for Latex & RTF output */ - virtual QCString trPackageDocumentation() - { - return "Package Documentation"; + return "بسته ها"; } /*! Text shown before a multi-line define */ virtual QCString trDefineValue() @@ -1319,17 +1266,6 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 * be followed by a single name or by a list of names * of the category. */ - virtual QCString trField(bool first_capital, bool singular) - { - QCString result((first_capital ? "Field" : "field")); - if (!singular) result+="s"; - return result; - } - - /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names - * of the category. - */ virtual QCString trGlobal(bool first_capital, bool singular) { QCString result((first_capital ? "Global" : "global")); @@ -1390,7 +1326,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 */ virtual QCString trRTFTableOfContents() { - return "Table of Contents"; + return "فهرست"; } ////////////////////////////////////////////////////////////////////////// @@ -1402,7 +1338,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 */ virtual QCString trDeprecatedList() { - return "Deprecated List"; + return "لیست آیتم های از رده خارج"; } ////////////////////////////////////////////////////////////////////////// @@ -1430,14 +1366,14 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 */ virtual QCString trPackageTypes() { - return "Package Types"; + return "انواع بسته ها"; } /*! Used as a heading for a list of Java class functions with package * scope. */ virtual QCString trPackageMembers() { - return "Package Functions"; + return "توابع بسته ها"; } /*! Used as a heading for a list of static Java class functions with * package scope. @@ -1451,7 +1387,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 */ virtual QCString trPackageAttribs() { - return "Package Attributes"; + return "خواص بسته ها"; } /*! Used as a heading for a list of static Java class variables with * package scope. @@ -1475,7 +1411,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 /*! Put in front of the call graph for a function. */ virtual QCString trCallGraph() { - return "Here is the call graph for this function:"; + return "نمودار صدا زدن برای این تابع :"; } ////////////////////////////////////////////////////////////////////////// @@ -1509,7 +1445,7 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 { if (numDocuments==0) { - return "Sorry, no documents matching your query."; + return "متاسفانه هیچ صفحه ای برای جستجو ی شما یافت نشد."; } else if (numDocuments==1) { @@ -1598,6 +1534,186 @@ class TranslatorPersian : public TranslatorAdapter_1_4_6 "provided for convenience. It differs from the above " "function only in what argument(s) it accepts."; } + +////////////////////////////////////////////////////////////////////////// +// new since 1.4.6 +////////////////////////////////////////////////////////////////////////// + + /*! This is used to introduce a caller (or called-by) graph */ + virtual QCString trCallerGraph() + { + return "نمودار صدا زننده های این تابع:"; + } +////////////////////////////////////////////////////////////////////////// +// new since 1.5.4 (mainly for Fortran) +////////////////////////////////////////////////////////////////////////// + + /*! header that is put before the list of member subprograms (Fortran). */ + virtual QCString trMemberFunctionDocumentationFortran() + { return "مستندات توابع عضو"; } + + /*! This is put above each page as a link to the list of annotated data types (Fortran). */ + virtual QCString trCompoundListFortran() + { return "لیست ساختار های داده"; } + + /*! This is put above each page as a link to all members of compounds (Fortran). */ + virtual QCString trCompoundMembersFortran() + { return "فیلدهای اطلاعات"; } + + /*! This is an introduction to the annotated compound list (Fortran). */ + virtual QCString trCompoundListDescriptionFortran() + { return "ساختارهای داده به همراه توضیح کوتاه :"; } + + /*! This is an introduction to the page with all data types (Fortran). */ + virtual QCString trCompoundMembersDescriptionFortran(bool) + { + return "توضیحات اعضا ساختارها به همراه مستندات ساختار داده ی مربوطه"; + } + + /*! This is used in LaTeX as the title of the chapter with the + * annotated compound index (Fortran). + */ + virtual QCString trCompoundIndexFortran() + { return "Data Type Index"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all data types (Fortran). + */ + virtual QCString trTypeDocumentation() + { return "Data Type Documentation"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) subprograms (Fortran). + */ + virtual QCString trSubprograms() + { return "توابع و زیربرنامه ها"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for subprograms (Fortran) + */ + virtual QCString trSubprogramDocumentation() + { return "مستندات توابع و زیربرنامه ها"; } + + /*! This is used in the documentation of a file/namespace/group before + * the list of links to documented compounds (Fortran) + */ + virtual QCString trDataTypes() + { return "ساختار های داده"; } + + /*! used as the title of page containing all the index of all modules (Fortran). */ + virtual QCString trModulesList() + { return "لیست ماژول ها"; } + + /*! used as an introduction to the modules list (Fortran) */ + virtual QCString trModulesListDescription(bool) + { + QCString result="لیست ماژول ها به همراه توضیحات کوتاه"; + return result; + } + + /*! used as the title of the HTML page of a module/type (Fortran) */ + virtual QCString trCompoundReferenceFortran(const char *clName, + ClassDef::CompoundType compType, + bool isTemplate) + { + QCString result=(QCString)clName; + switch(compType) + { + case ClassDef::Class: result+=" Module"; break; + case ClassDef::Struct: result+=" Type"; break; + case ClassDef::Union: result+=" Union"; break; + case ClassDef::Interface: result+=" Interface"; break; + case ClassDef::Protocol: result+=" Protocol"; break; + case ClassDef::Category: result+=" Category"; break; + case ClassDef::Exception: result+=" Exception"; break; + } + if (isTemplate) result+=" Template"; + result+=" Reference"; + return result; + } + /*! used as the title of the HTML page of a module (Fortran) */ + virtual QCString trModuleReference(const char *namespaceName) + { + QCString result=namespaceName; + result+=" Module Reference"; + return result; + } + + /*! This is put above each page as a link to all members of modules. (Fortran) */ + virtual QCString trModulesMembers() + { return "اعضاء ماژول"; } + + /*! This is an introduction to the page with all modules members (Fortran) */ + virtual QCString trModulesMemberDescription(bool) + { + QCString result="لیست اعضاء ماژول ها به همراه مستندات ماژول مربوطه"; + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * index of all modules (Fortran). + */ + virtual QCString trModulesIndex() + { return "Modules Index"; } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trModule(bool, bool singular) + { + QCString result("ماژول"); + if (!singular) result+=" ها"; + return result; + } + /*! This is put at the bottom of a module documentation page and is + * followed by a list of files that were used to generate the page. + */ + virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, + bool single) + { // here s is one of " Module", " Struct" or " Union" + // single is true implies a single file + QCString result=(QCString)"The documentation for this "; + switch(compType) + { + case ClassDef::Class: result+="module"; break; + case ClassDef::Struct: result+="type"; break; + case ClassDef::Union: result+="union"; break; + case ClassDef::Interface: result+="interface"; break; + case ClassDef::Protocol: result+="protocol"; break; + case ClassDef::Category: result+="category"; break; + case ClassDef::Exception: result+="exception"; break; + } + result+=" was generated from the following file"; + if (single) result+=":"; else result+="s:"; + return result; + } + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trType(bool first_capital, bool singular) + { + QCString result((first_capital ? "Type" : "type")); + if (!singular) result+="s"; + return result; + } + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trSubprogram(bool, bool singular) + { + QCString result("زیربرنامه"); + if (!singular) result+=" ها "; + return result; + } + + /*! C# Type Constraint list */ + virtual QCString trTypeConstraints() + { + return "Type Constraints"; + } }; #endif diff --git a/src/translator_fr.h b/src/translator_fr.h index 1ea6d00..45fec16 100644 --- a/src/translator_fr.h +++ b/src/translator_fr.h @@ -998,7 +998,7 @@ class TranslatorFrench : public TranslatorAdapter_1_5_4 /*! header that is put before the list of constructor/destructors. */ virtual QCString trConstructorDocumentation() { - return "Documentation des contructeurs et destructeur"; + return "Documentation des constructeurs et destructeur"; } /*! Used in the file documentation to point to the corresponding sources. */ virtual QCString trGotoSourceCode() diff --git a/src/translator_kr.h b/src/translator_kr.h index 5f059c1..026dafd 100644 --- a/src/translator_kr.h +++ b/src/translator_kr.h @@ -1617,20 +1617,21 @@ class TranslatorKorean : public Translator /*! This is an introduction to the page with all data types (Fortran). */ virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) { - QCString result="Here is a list of all "; + QCString result=" "; if (!extractAll) { - result+="documented "; + result+="ȭ "; } - result+="data types members"; - result+=" with links to "; + result+=" Ÿ Ÿ Դϴ. "; + + result+=" "; if (!extractAll) { - result+="the data structure documentation for each member"; + result+=" Ÿ ȭ ũ ֽϴ."; } else { - result+="the data types they belong to:"; + result+=" Ÿ Ÿ ũ ֽϴ. :"; } return result; } diff --git a/src/translator_tw.h b/src/translator_tw.h index 75fed57..ae5eef0 100644 --- a/src/translator_tw.h +++ b/src/translator_tw.h @@ -14,7 +14,7 @@ * input used in their production; they are not affected by this license. * * The translation into Chinesetraditional was provided by - * Daniel YC Lin (daniel@twpda.com) since v1.2.16 + * Daniel YC Lin (dlin.tw <at> gmail.com) since v1.2.16-v1.5.5 */ #ifndef TRANSLATOR_TW_H @@ -41,7 +41,7 @@ // Translator class (by the local maintainer) when the localized // translator is made up-to-date again. -class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6 +class TranslatorChinesetraditional : public Translator { public: @@ -191,10 +191,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6 virtual QCString trFileList() { return "ɮצC"; } - /*! This is put above each page as a link to the list of all verbatim headers */ - virtual QCString trHeaderFiles() - { return "Yɮ"; } - /*! This is put above each page as a link to all members of compounds. */ virtual QCString trCompoundMembers() { @@ -326,10 +322,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6 return result; } - /*! This is an introduction to the page with the list of all header files. */ - virtual QCString trHeaderFilesDescription() - { return "զAPIY:"; } - /*! This is an introduction to the page with the list of all examples */ virtual QCString trExamplesDescription() { return "ҦdҦC:"; } @@ -342,12 +334,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6 virtual QCString trModulesDescription() { return "ҦҲզC:"; } - /*! This sentences is used in the annotated class/file lists if no brief - * description is given. - */ - virtual QCString trNoDescriptionAvailable() - { return "SiΪyz"; } - // index titles (the project name is prepended for these) @@ -557,18 +543,10 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6 virtual QCString trForInternalUseOnly() { return "ȨѤϥ."; } - /*! this text is generated when the \\reimp command is used. */ - virtual QCString trReimplementedForInternalReasons() - { return "]]s@; vTAPI."; } - /*! this text is generated when the \\warning command is used. */ virtual QCString trWarning() { return "ĵi"; } - /*! this text is generated when the \\bug command is used. */ - virtual QCString trBugsAndLimitations() - { return "Τέ"; } - /*! this text is generated when the \\version command is used. */ virtual QCString trVersion() { return ""; } @@ -646,8 +624,8 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6 case ClassDef::Struct: result+=" c"; break; case ClassDef::Union: result+=" pX"; break; case ClassDef::Interface: result+=" "; break; - case ClassDef::Protocol: result+=" protocol"; break; // translate me! - case ClassDef::Category: result+=" category"; break; // translate me! + case ClassDef::Protocol: result+=" w"; break; + case ClassDef::Category: result+=" "; break; case ClassDef::Exception: result+=" ҥ~"; break; } if (isTemplate) result+=" ˪"; @@ -805,8 +783,8 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6 case ClassDef::Struct: result+="c(structure)"; break; case ClassDef::Union: result+="pX(union)"; break; case ClassDef::Interface: result+="(interface)"; break; - case ClassDef::Protocol: result+="protocol"; break; // translate me! - case ClassDef::Category: result+="category"; break; // translate me! + case ClassDef::Protocol: result+="w(protocol)"; break; + case ClassDef::Category: result+="(category)"; break; case ClassDef::Exception: result+="ҥ~(exception)"; break; } result+=" OѤUCɮפ"; @@ -843,10 +821,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6 // new since 0.49-991003 ////////////////////////////////////////////////////////////////////////// - virtual QCString trSources() - { - return "lX"; - } virtual QCString trDefinedAtLineInSourceFile() { return "wqb @1 ɮפ @0 ."; @@ -1153,11 +1127,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6 // new since 1.2.4 ////////////////////////////////////////////////////////////////////////// - /*! Used for Java interfaces in the summary section of Java packages */ - virtual QCString trInterfaces() - { - return ""; - } /*! Used for Java classes in the summary section of Java packages */ virtual QCString trClasses() { @@ -1190,11 +1159,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6 { return "Packages"; } - /*! Used as a chapter title for Latex & RTF output */ - virtual QCString trPackageDocumentation() - { - return "Package"; - } + /*! Text shown before a multi-line define */ virtual QCString trDefineValue() { @@ -1323,15 +1288,6 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6 * be followed by a single name or by a list of names * of the category. */ - virtual QCString trField(bool /*first_capital*/, bool /*singular*/) - { - return QCString(""); - } - - /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names - * of the category. - */ virtual QCString trGlobal(bool /*first_capital*/, bool /*singular*/) { return QCString(""); @@ -1593,6 +1549,211 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_4_6 return "oO@ӬFKQʩҴ overload ơA" "ubѼƤWAPe@ӨƤP."; } +////////////////////////////////////////////////////////////////////////// +// new since 1.4.6 +////////////////////////////////////////////////////////////////////////// + + /*! This is used to introduce a caller (or called-by) graph */ + virtual QCString trCallerGraph() + { + return "IsƪƦC:"; + } + + +////////////////////////////////////////////////////////////////////////// +// new since 1.5.4 (mainly for Fortran) +////////////////////////////////////////////////////////////////////////// + + /*! header that is put before the list of member subprograms (Fortran). */ + virtual QCString trMemberFunctionDocumentationFortran() + { return "/l{ "; } + + /*! This is put above each page as a link to the list of annotated data types (Fortran). */ + virtual QCString trCompoundListFortran() + { return "ƫAC"; } + + /*! This is put above each page as a link to all members of compounds (Fortran). */ + virtual QCString trCompoundMembersFortran() + { return ""; } + + /*! This is an introduction to the annotated compound list (Fortran). */ + virtual QCString trCompoundListDescriptionFortran() + { return "ƫA²uC:"; } + + /*! This is an introduction to the page with all data types (Fortran). */ + virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) + { + QCString result="BCXҦ"; + if (!extractAll) + { + result+=""; + } + result+="ƫO"; + result+=" as "; + if (!extractAll) + { + result+="CӦƪƵc"; + } + else + { + result+="LݩƫO"; + } + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * annotated compound index (Fortran). + */ + virtual QCString trCompoundIndexFortran() + { return "ƫO"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all data types (Fortran). + */ + virtual QCString trTypeDocumentation() + { return "ƫO"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) subprograms (Fortran). + */ + virtual QCString trSubprograms() + { return "/l{"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for subprograms (Fortran) + */ + virtual QCString trSubprogramDocumentation() + { return "/l{ "; } + + /*! This is used in the documentation of a file/namespace/group before + * the list of links to documented compounds (Fortran) + */ + virtual QCString trDataTypes() + { return "ƫO"; } + + /*! used as the title of page containing all the index of all modules (Fortran). */ + virtual QCString trModulesList() + { return "ҲզC"; } + + /*! used as an introduction to the modules list (Fortran) */ + virtual QCString trModulesListDescription(bool extractAll) + { + QCString result="BCXҦ"; + if (!extractAll) result+=""; + result+="Ҳժa²u:"; + return result; + } + + /*! used as the title of the HTML page of a module/type (Fortran) */ + virtual QCString trCompoundReferenceFortran(const char *clName, + ClassDef::CompoundType compType, + bool isTemplate) + { + QCString result=(QCString)clName; + switch(compType) + { + case ClassDef::Class: result+="Ҳ"; break; + case ClassDef::Struct: result+="A"; break; + case ClassDef::Union: result+="pX"; break; + case ClassDef::Interface: result+=""; break; + case ClassDef::Protocol: result+="ij"; break; + case ClassDef::Category: result+=""; break; + case ClassDef::Exception: result+="ҥ~"; break; + } + if (isTemplate) result+=" Template"; + result+="ѦҤ"; + return result; + } + /*! used as the title of the HTML page of a module (Fortran) */ + virtual QCString trModuleReference(const char *namespaceName) + { + QCString result=namespaceName; + result+="ҲհѦҤ"; + return result; + } + + /*! This is put above each page as a link to all members of modules. (Fortran) */ + virtual QCString trModulesMembers() + { return "Ҳզ"; } + + /*! This is an introduction to the page with all modules members (Fortran) */ + virtual QCString trModulesMemberDescription(bool extractAll) + { + QCString result="BCXҦ"; + if (!extractAll) result+=""; + result+="Ҳզas"; + if (extractAll) + { + result+="CӨƪҲդ:"; + } + else + { + result+="L̩ݪҲ:"; + } + return result; + } + + /*! This is used in LaTeX as the title of the chapter with the + * index of all modules (Fortran). + */ + virtual QCString trModulesIndex() + { return "Ҳկ"; } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trModule(bool /* first_capital */, bool /* singular */) + { + QCString result("Ҳ"); + return result; + } + /*! This is put at the bottom of a module documentation page and is + * followed by a list of files that were used to generate the page. + */ + virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, + bool /* single */) + { // here s is one of " Module", " Struct" or " Union" + // single is true implies a single file + QCString result=(QCString)"o"; + switch(compType) + { + case ClassDef::Class: result+="Ҳ"; break; + case ClassDef::Struct: result+="A"; break; + case ClassDef::Union: result+="pX"; break; + case ClassDef::Interface: result+=""; break; + case ClassDef::Protocol: result+="ij"; break; + case ClassDef::Category: result+=""; break; + case ClassDef::Exception: result+="ҥ~"; break; + } + result+="ѤUCɮײ"; + return result; + } + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trType(bool /* first_capital */, bool /* singular */) + { + QCString result("O"); + return result; + } + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trSubprogram(bool /* first_capital */, bool /* singular */) + { + QCString result("l{"); + return result; + } + + /*! C# Type Constraint list */ + virtual QCString trTypeConstraints() + { + return "O"; + } + }; #endif diff --git a/src/translatordecoder.h b/src/translatordecoder.h index 48cf7cd..4614863 100644 --- a/src/translatordecoder.h +++ b/src/translatordecoder.h @@ -215,11 +215,11 @@ class TranslatorDecoder : public Translator QCString trCompounds() { return toUtf8(m_translator->trCompounds()); } QCString trGeneratedAt(const char *date,const char *projName) - { return toUtf8(m_translator->trGeneratedAt(date,fromUtf8(projName))); } + { return toUtf8(m_translator->trGeneratedAt(fromUtf8(date),fromUtf8(projName))); } QCString trWrittenBy() { return toUtf8(m_translator->trWrittenBy()); } QCString trClassDiagram(const char *clName) - { return toUtf8(m_translator->trClassDiagram(clName)); } + { return toUtf8(m_translator->trClassDiagram(fromUtf8(clName))); } QCString trForInternalUseOnly() { return toUtf8(m_translator->trForInternalUseOnly()); } QCString trWarning() @@ -264,13 +264,13 @@ class TranslatorDecoder : public Translator QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) - { return toUtf8(m_translator->trCompoundReference(clName,compType,isTemplate)); } + { return toUtf8(m_translator->trCompoundReference(fromUtf8(clName),compType,isTemplate)); } QCString trFileReference(const char *fileName) { return toUtf8(m_translator->trFileReference(fromUtf8(fileName))); } QCString trNamespaceReference(const char *namespaceName) - { return toUtf8(m_translator->trNamespaceReference(namespaceName)); } + { return toUtf8(m_translator->trNamespaceReference(fromUtf8(namespaceName))); } QCString trPublicMembers() { return toUtf8(m_translator->trPublicMembers()); } @@ -363,7 +363,7 @@ class TranslatorDecoder : public Translator ////////////////////////////////////////////////////////////////////////// QCString trCollaborationDiagram(const char *clName) - { return toUtf8(m_translator->trCollaborationDiagram(clName)); } + { return toUtf8(m_translator->trCollaborationDiagram(fromUtf8(clName))); } QCString trInclDepGraph(const char *fName) { return toUtf8(m_translator->trInclDepGraph(fromUtf8(fName))); } QCString trConstructorDocumentation() @@ -484,7 +484,7 @@ class TranslatorDecoder : public Translator QCString trClasses() { return toUtf8(m_translator->trClasses()); } QCString trPackage(const char *name) - { return toUtf8(m_translator->trPackage(name)); } + { return toUtf8(m_translator->trPackage(fromUtf8(name))); } QCString trPackageList() { return toUtf8(m_translator->trPackageList()); } QCString trPackageListDescription() @@ -686,9 +686,9 @@ class TranslatorDecoder : public Translator QCString trCompoundReferenceFortran(const char *clName, ClassDef::CompoundType compType, bool isTemplate) - { return toUtf8(m_translator->trCompoundReferenceFortran(clName,compType,isTemplate)); } + { return toUtf8(m_translator->trCompoundReferenceFortran(fromUtf8(clName),compType,isTemplate)); } QCString trModuleReference(const char *namespaceName) - { return toUtf8(m_translator->trModuleReference(namespaceName)); } + { return toUtf8(m_translator->trModuleReference(fromUtf8(namespaceName))); } QCString trModulesMembers() { return toUtf8(m_translator->trModulesMembers()); } QCString trModulesMemberDescription(bool extractAll) diff --git a/src/vhdlscanner.l b/src/vhdlscanner.l index f669188..8fbd21b 100644 --- a/src/vhdlscanner.l +++ b/src/vhdlscanner.l @@ -247,7 +247,7 @@ void addSignals(const char* str,int line, Entry *e,const char *comment=0) for (int k=1;k<count;k++) { - printf("adding '%s' '%s'\n",ql.at(0)->data(),ql.at(k)->data()); + //printf("adding '%s' '%s'\n",ql.at(0)->data(),ql.at(k)->data()); Entry *pTemp=new Entry; initEntry(pTemp); pTemp->startLine = line; diff --git a/src/xmldocvisitor.cpp b/src/xmldocvisitor.cpp index 8c194ea..88ded55 100644 --- a/src/xmldocvisitor.cpp +++ b/src/xmldocvisitor.cpp @@ -778,6 +778,8 @@ void XmlDocVisitor::visitPre(DocParamSect *s) m_t << "retval"; break; case DocParamSect::Exception: m_t << "exception"; break; + case DocParamSect::TemplateParam: + m_t << "templateparam"; break; default: ASSERT(0); } |