summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2008-06-26 19:24:36 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2008-06-26 19:24:36 (GMT)
commit039f53bb7a3f1c3dfdf03f120437f2daef454fb3 (patch)
treecc6b9b1f467451deab5096afece76012eec030b3 /src
parent52629ec8265ab9f6250ec9cd4bba55932e680b9d (diff)
downloadDoxygen-039f53bb7a3f1c3dfdf03f120437f2daef454fb3.zip
Doxygen-039f53bb7a3f1c3dfdf03f120437f2daef454fb3.tar.gz
Doxygen-039f53bb7a3f1c3dfdf03f120437f2daef454fb3.tar.bz2
Release-1.5.6-20080626
Diffstat (limited to 'src')
-rw-r--r--src/code.l104
-rw-r--r--src/commentscan.l2
-rw-r--r--src/config.l11
-rw-r--r--src/defargs.h2
-rw-r--r--src/defargs.l2
-rw-r--r--src/docparser.cpp9
-rw-r--r--src/doxygen.cpp127
-rw-r--r--src/language.cpp13
-rw-r--r--src/memberdef.cpp21
-rw-r--r--src/portable.cpp4
-rw-r--r--src/pyscanner.l15
-rw-r--r--src/scanner.l22
-rw-r--r--src/translator_en.h3
-rw-r--r--src/translator_mk.h205
-rw-r--r--src/translator_nl.h3
-rw-r--r--src/translator_sc.h1805
-rw-r--r--src/translator_sr.h742
-rw-r--r--src/util.cpp41
-rw-r--r--src/util.h3
-rw-r--r--src/vhdlscanner.l133
20 files changed, 2795 insertions, 472 deletions
diff --git a/src/code.l b/src/code.l
index 01e504e..fde0d82 100644
--- a/src/code.l
+++ b/src/code.l
@@ -1285,69 +1285,71 @@ static void startFontClass(const char *s)
static void writeObjCMethodCall(ObjCCallCtx *ctx)
{
if (ctx==0) return;
- if (ctx->methodName.isEmpty()) return;
- const char *p = ctx->format.data();
- //printf("writeObjCMethodCall(%s) obj=%s method=%s\n",
- // ctx->format.data(),ctx->objectTypeOrName.data(),ctx->methodName.data());
char c;
- if (!ctx->objectTypeOrName.isEmpty() && ctx->objectTypeOrName.at(0)!='$')
+ const char *p = ctx->format.data();
+ if (!ctx->methodName.isEmpty())
{
- //printf("Looking for object=%s method=%s\n",ctx->objectTypeOrName.data(),
- // ctx->methodName.data());
- ClassDef *cd = g_theVarContext.findVariable(ctx->objectTypeOrName);
- if (cd==0) // not a local variable
+ //printf("writeObjCMethodCall(%s) obj=%s method=%s\n",
+ // ctx->format.data(),ctx->objectTypeOrName.data(),ctx->methodName.data());
+ if (!ctx->objectTypeOrName.isEmpty() && ctx->objectTypeOrName.at(0)!='$')
{
- if (ctx->objectTypeOrName=="self")
+ //printf("Looking for object=%s method=%s\n",ctx->objectTypeOrName.data(),
+ // ctx->methodName.data());
+ ClassDef *cd = g_theVarContext.findVariable(ctx->objectTypeOrName);
+ if (cd==0) // not a local variable
{
- if (g_currentDefinition &&
- g_currentDefinition->definitionType()==Definition::TypeClass)
+ if (ctx->objectTypeOrName=="self")
{
- ctx->objectType = (ClassDef *)g_currentDefinition;
+ if (g_currentDefinition &&
+ g_currentDefinition->definitionType()==Definition::TypeClass)
+ {
+ ctx->objectType = (ClassDef *)g_currentDefinition;
+ }
}
- }
- else
- {
- ctx->objectType = getResolvedClass(
- g_currentDefinition,
- g_sourceFileDef,
- ctx->objectTypeOrName,
- &ctx->method);
- }
- //printf(" object is class? %p\n",ctx->objectType);
- if (ctx->objectType) // found class
- {
- ctx->method = ctx->objectType->getMemberByName(ctx->methodName);
- //printf(" yes->method=%s\n",ctx->method?ctx->method->name().data():"<none>");
- }
- else if (ctx->method==0) // search for class variable with the same name
- {
- //printf(" no\n");
- //printf("g_currentDefinition=%p\n",g_currentDefinition);
- if (g_currentDefinition &&
- g_currentDefinition->definitionType()==Definition::TypeClass)
+ else
{
- ctx->objectVar = ((ClassDef *)g_currentDefinition)->getMemberByName(ctx->objectTypeOrName);
- //printf(" ctx->objectVar=%p\n",ctx->objectVar);
- if (ctx->objectVar)
+ ctx->objectType = getResolvedClass(
+ g_currentDefinition,
+ g_sourceFileDef,
+ ctx->objectTypeOrName,
+ &ctx->method);
+ }
+ //printf(" object is class? %p\n",ctx->objectType);
+ if (ctx->objectType) // found class
+ {
+ ctx->method = ctx->objectType->getMemberByName(ctx->methodName);
+ //printf(" yes->method=%s\n",ctx->method?ctx->method->name().data():"<none>");
+ }
+ else if (ctx->method==0) // search for class variable with the same name
+ {
+ //printf(" no\n");
+ //printf("g_currentDefinition=%p\n",g_currentDefinition);
+ if (g_currentDefinition &&
+ g_currentDefinition->definitionType()==Definition::TypeClass)
{
- ctx->objectType = stripClassName(ctx->objectVar->typeString());
- //printf(" ctx->objectType=%p\n",ctx->objectType);
- if (ctx->objectType)
+ ctx->objectVar = ((ClassDef *)g_currentDefinition)->getMemberByName(ctx->objectTypeOrName);
+ //printf(" ctx->objectVar=%p\n",ctx->objectVar);
+ if (ctx->objectVar)
{
- ctx->method = ctx->objectType->getMemberByName(ctx->methodName);
- //printf(" ctx->method=%p\n",ctx->method);
+ ctx->objectType = stripClassName(ctx->objectVar->typeString());
+ //printf(" ctx->objectType=%p\n",ctx->objectType);
+ if (ctx->objectType)
+ {
+ ctx->method = ctx->objectType->getMemberByName(ctx->methodName);
+ //printf(" ctx->method=%p\n",ctx->method);
+ }
}
}
}
}
- }
- else // local variable
- {
- //printf(" object is local variable\n");
- if (cd!=VariableContext::dummyContext)
+ else // local variable
{
- ctx->method = cd->getMemberByName(ctx->methodName);
- //printf(" class=%p method=%p\n",cd,ctx->method);
+ //printf(" object is local variable\n");
+ if (cd!=VariableContext::dummyContext)
+ {
+ ctx->method = cd->getMemberByName(ctx->methodName);
+ //printf(" class=%p method=%p\n",cd,ctx->method);
+ }
}
}
}
@@ -1653,8 +1655,8 @@ SCOPENAME "$"?(({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
TEMPLIST "<"[^\"\}\{\(\)\/\n\>]*">"
SCOPETNAME ((({ID}{TEMPLIST}?){BN}*"::"{BN}*)*)((~{BN}*)?{ID})
SCOPEPREFIX ({ID}{TEMPLIST}?{BN}*"::"{BN}*)+
-KEYWORD_OBJC ("@public"|"@private"|"@protected"|"@class"|"@implementation"|"@interface"|"@end"|"@selector"|"@protocol")
-KEYWORD ("add"|"asm"|"__assume"|"auto"|"class"|"const"|"delete"|"enum"|"explicit"|"extern"|"false"|"friend"|"gcnew"|"gcroot"|"get"|"inline"|"internal"|"mutable"|"namespace"|"new"|"nullptr"|"override"|"operator"|"pin_ptr"|"private"|"protected"|"public"|"raise"|"register"|"remove"|"self"|"set"|"sizeof"|"static"|"struct"|"__super"|"template"|"generic"|"this"|"true"|"typedef"|"typeid"|"typename"|"union"|"using"|"virtual"|"volatile"|"abstract"|"final"|"import"|"synchronized"|"transient"|KEYWORD_OBJC)
+KEYWORD_OBJC ("@public"|"@private"|"@protected"|"@class"|"@implementation"|"@interface"|"@end"|"@selector"|"@protocol"|"@optional"|"@required"|"@throw")
+KEYWORD ("add"|"asm"|"__assume"|"auto"|"class"|"const"|"delete"|"enum"|"explicit"|"extern"|"false"|"friend"|"gcnew"|"gcroot"|"get"|"inline"|"internal"|"mutable"|"namespace"|"new"|"nullptr"|"override"|"operator"|"pin_ptr"|"private"|"protected"|"public"|"raise"|"register"|"remove"|"self"|"set"|"sizeof"|"static"|"struct"|"__super"|"template"|"generic"|"this"|"true"|"typedef"|"typeid"|"typename"|"union"|"using"|"virtual"|"volatile"|"abstract"|"final"|"import"|"synchronized"|"transient"|{KEYWORD_OBJC})
FLOWKW ("break"|"case"|"catch"|"continue"|"default"|"do"|"else"|"finally"|"for"|"foreach"|"for each"|"goto"|"if"|"return"|"switch"|"throw"|"throws"|"try"|"while")
TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"object"|"short"|"signed"|"unsigned"|"void"|"wchar_t"|"size_t"|"boolean"|"id"|"SEL"|"string")
CASTKW ("const_cast"|"dynamic_cast"|"reinterpret_cast"|"static_cast")
diff --git a/src/commentscan.l b/src/commentscan.l
index 87c9080..cfbc050 100644
--- a/src/commentscan.l
+++ b/src/commentscan.l
@@ -2486,7 +2486,7 @@ void closeGroup(Entry *e,const char *fileName,int)
if (g_memberGroupId!=DOX_NOGROUP) // end of member group
{
MemberGroupInfo *info=Doxygen::memGrpInfoDict.find(g_memberGroupId);
- if (info) // know group
+ if (info) // known group
{
info->doc = g_memberGroupDocs;
info->docFile = fileName;
diff --git a/src/config.l b/src/config.l
index 9d49c92..ee1ebab 100644
--- a/src/config.l
+++ b/src/config.l
@@ -1423,8 +1423,8 @@ void Config::create()
"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",
+ "Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene, \n"
+ "Spanish, Swedish, and Ukrainian.\n",
"English"
);
#ifdef LANG_ZA
@@ -1512,6 +1512,9 @@ void Config::create()
#ifdef LANG_SR
ce->addValue("Serbian");
#endif
+#ifdef LANG_SC
+ ce->addValue("Serbian-Cyrilic");
+#endif
#ifdef LANG_SK
ce->addValue("Slovak");
#endif
@@ -2354,7 +2357,9 @@ void Config::create()
"HTML output directory. Running make will produce the docset in that \n"
"directory and running \"make install\" will install the docset in \n"
"~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find \n"
- "it at startup.",
+ "it at startup. \n"
+ "See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html "
+ "for more information. \n",
FALSE
);
cb->addDependency("GENERATE_HTML");
diff --git a/src/defargs.h b/src/defargs.h
index cb0f81b..6f23269 100644
--- a/src/defargs.h
+++ b/src/defargs.h
@@ -23,7 +23,7 @@
class ArgumentList;
-extern void stringToArgumentList(const char *argsString,ArgumentList* &argList,
+extern void stringToArgumentList(const char *argsString,ArgumentList* argList,
QCString *extraTypeChars=0);
#endif
diff --git a/src/defargs.l b/src/defargs.l
index 9fe6372..f44c1f3 100644
--- a/src/defargs.l
+++ b/src/defargs.l
@@ -426,7 +426,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
* \param al a reference to resulting argument list pointer.
*/
-void stringToArgumentList(const char *argsString,ArgumentList* &al,QCString *extraTypeChars)
+void stringToArgumentList(const char *argsString,ArgumentList* al,QCString *extraTypeChars)
{
if (al==0) return;
if (argsString==0) return;
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 279d0e9..a434ac7 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -468,6 +468,7 @@ static void detectNoDocumentedParams()
LockingPtr<ArgumentList> al = g_memberDef->argumentList();
LockingPtr<ArgumentList> declAl = g_memberDef->declArgumentList();
QString returnType = g_memberDef->typeString();
+ bool isPython = getLanguageFromFileName(g_memberDef->getDefFileName())==SrcLangExt_Python;
if (!g_memberDef->hasDocumentedParams() &&
g_hasParamCommand)
@@ -489,7 +490,9 @@ static void detectNoDocumentedParams()
// see if all parameters have documentation
for (ali.toFirst();(a=ali.current()) && allDoc;++ali)
{
- if (!a->name.isEmpty() && a->type!="void")
+ if (!a->name.isEmpty() && a->type!="void" &&
+ !(isPython && a->name=="self")
+ )
{
allDoc = !a->docs.isEmpty();
}
@@ -503,7 +506,9 @@ static void detectNoDocumentedParams()
Argument *a;
for (ali.toFirst();(a=ali.current()) && allDoc;++ali)
{
- if (!a->name.isEmpty() && a->type!="void")
+ if (!a->name.isEmpty() && a->type!="void" &&
+ !(isPython && a->name=="self")
+ )
{
allDoc = !a->docs.isEmpty();
}
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 3c878b8..c2cd624 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -2350,28 +2350,8 @@ done:
return result;
}
-//----------------------------------------------------------------------
-// Searches the Entry tree for Variable documentation sections.
-// If found they are stored in their class or in the global list.
-
-static void buildVarList(EntryNav *rootNav)
+static void addVariable(EntryNav *rootNav,int isFuncPtr=-1)
{
- //printf("buildVarList(%s)\n",rootNav->name().data());
- int isFuncPtr=-1;
- if (!rootNav->name().isEmpty() &&
- (rootNav->type().isEmpty() || compoundKeywordDict.find(rootNav->type())==0) &&
- (
- (rootNav->section()==Entry::VARIABLE_SEC // it's a variable
- ) ||
- (rootNav->section()==Entry::FUNCTION_SEC && // or maybe a function pointer variable
- (isFuncPtr=findFunctionPtr(rootNav->type()))!=-1
- ) ||
- (rootNav->section()==Entry::FUNCTION_SEC && // class variable initialized by constructor
- isVarWithConstructor(rootNav)
- )
- )
- ) // documented variable
- {
rootNav->loadEntry(g_storage);
Entry *root = rootNav->entry();
@@ -2493,44 +2473,6 @@ 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;
@@ -2606,9 +2548,61 @@ static void buildVarList(EntryNav *rootNav)
//printf("Inserting member in global scope %s!\n",scope.data());
addVariableToFile(rootNav,mtype,scope,name,FALSE,/*0,*/0);
}
-nextMember:
+nextMember:
rootNav->releaseEntry();
+}
+
+//----------------------------------------------------------------------
+// Searches the Entry tree for typedef documentation sections.
+// If found they are stored in their class or in the global list.
+static void buildTypedefList(EntryNav *rootNav)
+{
+ //printf("buildVarList(%s)\n",rootNav->name().data());
+ if (!rootNav->name().isEmpty() &&
+ rootNav->section()==Entry::VARIABLE_SEC &&
+ rootNav->type().find("typedef ")!=-1 // its a typedef
+ )
+ {
+ addVariable(rootNav);
+ }
+ if (rootNav->children())
+ {
+ EntryNavListIterator eli(*rootNav->children());
+ EntryNav *e;
+ for (;(e=eli.current());++eli)
+ {
+ if (e->section()!=Entry::ENUM_SEC)
+ {
+ buildTypedefList(e);
+ }
+ }
+ }
+}
+
+//----------------------------------------------------------------------
+// Searches the Entry tree for Variable documentation sections.
+// If found they are stored in their class or in the global list.
+
+static void buildVarList(EntryNav *rootNav)
+{
+ //printf("buildVarList(%s)\n",rootNav->name().data());
+ int isFuncPtr=-1;
+ if (!rootNav->name().isEmpty() &&
+ (rootNav->type().isEmpty() || compoundKeywordDict.find(rootNav->type())==0) &&
+ (
+ (rootNav->section()==Entry::VARIABLE_SEC // it's a variable
+ ) ||
+ (rootNav->section()==Entry::FUNCTION_SEC && // or maybe a function pointer variable
+ (isFuncPtr=findFunctionPtr(rootNav->type()))!=-1
+ ) ||
+ (rootNav->section()==Entry::FUNCTION_SEC && // class variable initialized by constructor
+ isVarWithConstructor(rootNav)
+ )
+ )
+ ) // documented variable
+ {
+ addVariable(rootNav,isFuncPtr);
}
if (rootNav->children())
{
@@ -4110,8 +4104,10 @@ static bool findClassRelation(
{
baseClassName.prepend(scopeName.left(scopeOffset)+"::");
}
- baseClassName=stripTemplateSpecifiersFromScope
- (removeRedundantWhiteSpace(baseClassName));
+ //QCString stripped;
+ //baseClassName=stripTemplateSpecifiersFromScope
+ // (removeRedundantWhiteSpace(baseClassName),TRUE,
+ // &stripped);
MemberDef *baseClassTypeDef=0;
QCString templSpec;
ClassDef *baseClass=getResolvedClass(explicitGlobalScope ? 0 : cd,
@@ -9808,6 +9804,13 @@ void parseInput()
msg("Searching for enumerations...\n");
findEnums(rootNav);
+ // Since buildVarList calls isVarWithConstructor
+ // and this calls getResolvedClass we need to process
+ // typedefs first so the relations between classes via typedefs
+ // are properly resolved. See bug 536385 for an example.
+ msg("Searching for documented typedefs...\n");
+ buildTypedefList(rootNav);
+
msg("Searching for documented variables...\n");
buildVarList(rootNav);
diff --git a/src/language.cpp b/src/language.cpp
index aa5de7b..ebe6c84 100644
--- a/src/language.cpp
+++ b/src/language.cpp
@@ -131,6 +131,9 @@
#ifdef LANG_MK
#include "translator_mk.h"
#endif
+#ifdef LANG_SC
+#include "translator_sc.h"
+#endif
#endif // !ENGLISH_ONLY
#define L_EQUAL(a) !stricmp(langName,a)
@@ -217,9 +220,7 @@ bool setTranslator(const char *langName)
#ifdef LANG_FI
else if (L_EQUAL("finnish"))
{
- //theTranslator=new TranslatorFinnish;
- theTranslator=new TranslatorEnglish;
- err(obsoleteMsg);
+ theTranslator=new TranslatorDecoder(new TranslatorFinnish);
}
#endif
#ifdef LANG_RU
@@ -330,6 +331,12 @@ bool setTranslator(const char *langName)
theTranslator=new TranslatorDecoder(new TranslatorSerbian);
}
#endif
+#ifdef LANG_SC
+ else if (L_EQUAL("serbian-cyrilic"))
+ {
+ theTranslator=new TranslatorSerbian;
+ }
+#endif
#ifdef LANG_CA
else if (L_EQUAL("catalan"))
{
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index 2180bb9..824d8e9 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -1808,7 +1808,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
Specifier lvirt=virtualness();
- if (!isObjCMethod() &&
+ if ((!isObjCMethod() || isOptional() || isRequired()) &&
(protection()!=Public || lvirt!=Normal ||
isFriend() || isRelated() ||
(isInline() && Config_getBool("INLINE_INFO")) ||
@@ -1855,13 +1855,18 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
if (isAssign()) sl.append("assign");
else if (isCopy()) sl.append("copy");
else if (isRetain()) sl.append("retain");
- if (protection()==Protected) sl.append("protected");
- else if (protection()==Private) sl.append("private");
- else if (protection()==Package) sl.append("package");
- if (lvirt==Virtual) sl.append("virtual");
- else if (lvirt==Pure) sl.append("pure virtual");
- if (isSignal()) sl.append("signal");
- if (isSlot()) sl.append("slot");
+
+ if (!isObjCMethod())
+ {
+ if (protection()==Protected) sl.append("protected");
+ else if (protection()==Private) sl.append("private");
+ else if (protection()==Package) sl.append("package");
+
+ if (lvirt==Virtual) sl.append("virtual");
+ else if (lvirt==Pure) sl.append("pure virtual");
+ if (isSignal()) sl.append("signal");
+ if (isSlot()) sl.append("slot");
+ }
}
if (m_impl->classDef && m_impl->classDef!=container) sl.append("inherited");
}
diff --git a/src/portable.cpp b/src/portable.cpp
index 59484b2..7bbe33f 100644
--- a/src/portable.cpp
+++ b/src/portable.cpp
@@ -382,7 +382,9 @@ size_t portable_iconv (void *cd, const char** inbuf, size_t *inbytesleft,
// avoid a compile error, that is were the CASTNEEDED is for.
#if ((defined(_LIBICONV_VERSION) && (_LIBICONV_VERSION>=0x0109) && \
!((defined(_OS_MAC_) || defined(Q_OS_MACX) )&& (_LIBICONV_VERSION==0x010B))) \
- || defined(_OS_SOLARIS_))
+ || defined(_OS_SOLARIS_) \
+ || defined(_OS_NETBSD_) \
+ )
#define CASTNEEDED(x) (x)
#else
#define CASTNEEDED(x) (char **)(x)
diff --git a/src/pyscanner.l b/src/pyscanner.l
index b70c448..6c832f7 100644
--- a/src/pyscanner.l
+++ b/src/pyscanner.l
@@ -535,6 +535,16 @@ STARTDOCSYMS ^{B}"##"/[^#]
g_packageCommentAllowed = FALSE;
BEGIN( Import );
}
+ ^{B}{IDENTIFIER}/{B}"="{B}"property" { // property
+ current->section = Entry::VARIABLE_SEC;
+ current->mtype = Property;
+ current->name = QCString(yytext).stripWhiteSpace();
+ current->fileName = yyFileName;
+ current->startLine = yyLineNr;
+ current->bodyLine = yyLineNr;
+ g_packageCommentAllowed = FALSE;
+ BEGIN(VariableDec);
+ }
^{B}{IDENTIFIER}/{B}"="[^=] { // variable
g_indent=computeIndent(yytext);
current->section = Entry::VARIABLE_SEC;
@@ -1129,7 +1139,10 @@ STARTDOCSYMS ^{B}"##"/[^#]
BEGIN(TripleString);
}
"(" { // tuple
- current->type = "tuple";
+ if (current->mtype!=Property)
+ {
+ current->type = "tuple";
+ }
current->initializer+=*yytext;
g_atomStart='(';
g_atomEnd=')';
diff --git a/src/scanner.l b/src/scanner.l
index e05e38b..4557ac1 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -1254,10 +1254,12 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
<FindMembers>{B}*"explicit"{BN}+ { current->spec|=Entry::Explicit;
lineCount();
}
-<FindMembers>{B}*"@required"{BN}+ { current->spec|=Entry::Required;
+<FindMembers>{B}*"@required"{BN}+ { // Objective C 2.0 protocol required section
+ current->spec=(current->spec & ~Entry::Optional) | Entry::Required;
lineCount();
}
-<FindMembers>{B}*"@optional"{BN}+ { current->spec|=Entry::Optional;
+<FindMembers>{B}*"@optional"{BN}+ { // Objective C 2.0 protocol optional section
+ current->spec=(current->spec & ~Entry::Required) | Entry::Optional;
lineCount();
}
/*
@@ -4064,6 +4066,11 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
current_root->addSubEntry(current);
current = new Entry ;
initEntry();
+ // Objective C 2.0: Required/Optional section
+ if (previous->spec & (Entry::Optional | Entry::Required))
+ {
+ current->spec |= previous->spec & (Entry::Optional|Entry::Required);
+ }
lastCurlyContext = FindMembers;
if ( *yytext == ',' )
{
@@ -4754,7 +4761,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
<SkipRound>")" { if (--roundCount<=0)
BEGIN ( lastSkipRoundContext );
}
-<Bases>","|">"|({BN}+"implements"{BN}*) { lineCount();
+<Bases>","|(">"({BN}*"{")?)|({BN}+"implements"{BN}*) { lineCount();
if (insideProtocolList)
{
baseName+="-p";
@@ -4785,7 +4792,14 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
if (*yytext=='>')
{ // end of a ObjC protocol list
insideProtocolList=FALSE;
- unput('{'); // dummy start body
+ if (yyleng==1)
+ {
+ unput('{'); // dummy start body
+ }
+ else
+ {
+ yyless(1);
+ }
}
else
{
diff --git a/src/translator_en.h b/src/translator_en.h
index fda3b22..eeff2b6 100644
--- a/src/translator_en.h
+++ b/src/translator_en.h
@@ -1042,8 +1042,7 @@ class TranslatorEnglish : public Translator
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
- "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file "
- "is set to 240 this will result in the following graph:"
+ "This will result in the following graph:"
"<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n"
"The boxes in the above graph have the following meaning:\n"
diff --git a/src/translator_mk.h b/src/translator_mk.h
index 0500b66..49ab516 100644
--- a/src/translator_mk.h
+++ b/src/translator_mk.h
@@ -24,12 +24,15 @@
// 2007/12/09
// - Initial translation to Macedonian.
//
+// 2008/05/22
+// - Translation for 1.5.4.
+//
//
#ifndef TRANSLATOR_MK_H
#define TRANSLATOR_MK_H
-class TranslatorMacedonian : public TranslatorAdapter_1_4_6
+class TranslatorMacedonian : public Translator
{
public:
@@ -1558,7 +1561,207 @@ class TranslatorMacedonian : public TranslatorAdapter_1_4_6
virtual QCString trEnumerationValueDocumentation()
{ 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 extractAll)
+ {
+ QCString result="Список на сите ";
+ if (!extractAll)
+ {
+ result+="документирани ";
+ }
+ result+="членови на типови";
+ result+=" со врски до ";
+ if (!extractAll)
+ {
+ result+="документацијата за секој член:";
+ }
+ else
+ {
+ result+="типовите на кои што припаѓаат:";
+ }
+ return result;
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * annotated compound index (Fortran).
+ */
+ virtual QCString trCompoundIndexFortran()
+ { return "Попис на Типови"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all data types (Fortran).
+ */
+ virtual QCString trTypeDocumentation()
+ { return "Документација на Типови"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) subprograms (Fortran).
+ */
+ virtual QCString trSubprograms()
+ { return "Функции/Процедури"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for subprograms (Fortran)
+ */
+ virtual QCString trSubprogramDocumentation()
+ { return "Документација на Функции/Процедури"; }
+
+ /*! This is used in the documentation of a file/namespace/group before
+ * the list of links to documented compounds (Fortran)
+ */
+ virtual QCString trDataTypes()
+ { return "Типови"; }
+
+ /*! used as the title of page containing all the index of all modules (Fortran). */
+ virtual QCString trModulesList()
+ { return "Попис на Модули"; }
+
+ /*! used as an introduction to the modules list (Fortran) */
+ virtual QCString trModulesListDescription(bool extractAll)
+ {
+ QCString result="Список на сите ";
+ if (!extractAll) result+="документирани ";
+ result+="модули со кратки описи:";
+ return result;
+ }
+ /*! used as the title of the HTML page of a module/type (Fortran) */
+ virtual QCString trCompoundReferenceFortran(const char *clName,
+ ClassDef::CompoundType compType,
+ bool isTemplate)
+ {
+ QCString result=(QCString)clName + " - Повикување на";
+ switch(compType)
+ {
+ case ClassDef::Class: result+=" Класа"; break;
+ case ClassDef::Struct: result+=" Тип"; break;
+ case ClassDef::Union: result+=" Унија"; break;
+ case ClassDef::Interface: result+=" Интерфејс"; break;
+ case ClassDef::Protocol: result+=" Протокол"; break;
+ case ClassDef::Category: result+=" Категорија"; break;
+ case ClassDef::Exception: result+=" Исклучок"; break;
+ }
+ if (isTemplate) 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="Список на сите ";
+ if (!extractAll) result+="документирани ";
+ result+="членови на модулот со врски до ";
+ if (extractAll)
+ {
+ result+="документацијата за секој член:";
+ }
+ else
+ {
+ result+="модулите на кои што припаѓаат:";
+ }
+ return result;
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * index of all modules (Fortran).
+ */
+ virtual QCString trModulesIndex()
+ { return "Попис на Модули"; }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trModule(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Модул" : "модул"));
+ if (!singular) result+="и";
+ return result;
+ }
+ /*! This is put at the bottom of a module documentation page and is
+ * followed by a list of files that were used to generate the page.
+ */
+ virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
+ bool single)
+ { // here s is one of " Module", " Struct" or " Union"
+ // single is true implies a single file
+ QCString result=(QCString)"Документацијата за ";
+ switch(compType)
+ {
+ case ClassDef::Class: result+="оваа класа"; break;
+ case ClassDef::Struct: result+="овој тип"; break;
+ case ClassDef::Union: result+="оваа унија"; break;
+ case ClassDef::Interface: result+="овој интерфејс"; break;
+ case ClassDef::Protocol: result+="овој протокол"; break;
+ case ClassDef::Category: result+="оваа категорија"; break;
+ case ClassDef::Exception: result+="овој исклучок"; break;
+ }
+ result+=" беше создадена од ";
+ if (single) result+="следнава датотека:"; else result+="следниве датотеки:";
+ return result;
+ }
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trType(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Тип" : "тип"));
+ if (!singular) result+="ови";
+ return result;
+ }
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trSubprogram(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Потпрограм" : "потпрограм"));
+ if (singular){
+ result+="а";
+ }else{
+ result+="и";
+ }
+
+ return result;
+ }
+
+ /*! C# Type Constraint list */
+ virtual QCString trTypeConstraints()
+ {
+ return "Ограничувања на Тип";
+ }
};
#endif
diff --git a/src/translator_nl.h b/src/translator_nl.h
index 672926a..d7b61f7 100644
--- a/src/translator_nl.h
+++ b/src/translator_nl.h
@@ -674,8 +674,7 @@ class TranslatorDutch : public Translator
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
- "Als de \\c MAX_DOT_GRAPH_HEIGHT tag in the configuratie file "
- "op 200 gezet is, zal het bestaande voorbeeld resulteren in de volgende graaf:"
+ "Dit voorbeeld zal resulteren in de volgende graaf:"
"<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
"<p>\n"
"De rechthoeken in the bovenstaande graaf hebben de volgende betekenis:\n"
diff --git a/src/translator_sc.h b/src/translator_sc.h
new file mode 100644
index 0000000..1439e82
--- /dev/null
+++ b/src/translator_sc.h
@@ -0,0 +1,1805 @@
+/******************************************************************************
+ *
+ *
+ *
+ * Copyright (C) 1997-2008 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ * Documents produced by Doxygen are derivative works derived from the
+ * input used in their production; they are not affected by this license.
+ *
+ */
+
+#ifndef TRANSLATOR_SC_H
+#define TRANSLATOR_SC_H
+
+/*!
+ When defining a translator class for the new language, follow
+ the description in the documentation. One of the steps says
+ that you should copy the translator_en.h (this) file to your
+ translator_xx.h new file. Your new language should use the
+ Translator class as the base class. This means that you need to
+ implement exactly the same (pure virtual) methods as the
+ TranslatorEnglish does. Because of this, it is a good idea to
+ start with the copy of TranslatorEnglish and replace the strings
+ one by one.
+
+ It is not necessary to include "translator.h" or
+ "translator_adapter.h" here. The files are included in the
+ language.cpp correctly. Not including any of the mentioned
+ files frees the maintainer from thinking about whether the
+ first, the second, or both files should be included or not, and
+ why. This holds namely for localized translators because their
+ base class is changed occasionaly to adapter classes when the
+ Translator class changes the interface, or back to the
+ Translator class (by the local maintainer) when the localized
+ translator is made up-to-date again.
+*/
+class TranslatorSerbianCyrilic : public Translator
+{
+ public:
+
+ // --- Language control methods -------------------
+
+ /*! Used for identification of the language. The identification
+ * should not be translated. It should be replaced by the name
+ * of the language in English using lower-case characters only
+ * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
+ * the identification used in language.cpp.
+ */
+ virtual QCString idLanguage()
+ { return "serbiancyr"; }
+
+ /*! Used to get the LaTeX command(s) for the language support.
+ * This method should return string with commands that switch
+ * LaTeX to the desired language. For example
+ * <pre>"\\usepackage[german]{babel}\n"
+ * </pre>
+ * or
+ * <pre>"\\usepackage{polski}\n"
+ * "\\usepackage[latin2]{inputenc}\n"
+ * "\\usepackage[T1]{fontenc}\n"
+ * </pre>
+ *
+ * The English LaTeX does not use such commands. Because of this
+ * the empty string is returned in this implementation.
+ */
+ virtual QCString latexLanguageSupportCommand()
+ {
+ return "";
+ }
+
+ /*! return the language charset. This will be used for the HTML output */
+ virtual QCString idLanguageCharset()
+ {
+ return "utf-8";
+ }
+
+ // --- Language translation methods -------------------
+
+ /*! used in the compound documentation before a list of related functions. */
+ virtual QCString trRelatedFunctions()
+ { return "Повезане функције"; }
+
+ /*! subscript for the related functions. */
+ virtual QCString trRelatedSubscript()
+ { return "(Напомињемо да ово нису функције чланице.)"; }
+
+ /*! header that is put before the detailed description of files, classes and namespaces. */
+ virtual QCString trDetailedDescription()
+ { return "Опширније"; }
+
+ /*! header that is put before the list of typedefs. */
+ virtual QCString trMemberTypedefDocumentation()
+ { return "Документација дефиниције типа"; }
+
+ /*! header that is put before the list of enumerations. */
+ virtual QCString trMemberEnumerationDocumentation()
+ { return "Документација члана набрајања"; }
+
+ /*! header that is put before the list of member functions. */
+ virtual QCString trMemberFunctionDocumentation()
+ { return "Документација функције чланице"; }
+
+ /*! header that is put before the list of member attributes. */
+ virtual QCString trMemberDataDocumentation()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Документација поља";
+ }
+ else
+ {
+ return "Документација атрибута";
+ }
+ }
+
+ /*! this is the text of a link put after brief descriptions. */
+ virtual QCString trMore()
+ { return "Још..."; }
+
+ /*! put in the class documentation */
+ virtual QCString trListOfAllMembers()
+ { return "Списак свих чланова."; }
+
+ /*! used as the title of the "list of all members" page of a class */
+ virtual QCString trMemberList()
+ { return "Списак чланова"; }
+
+ /*! this is the first part of a sentence that is followed by a class name */
+ virtual QCString trThisIsTheListOfAllMembers()
+ { return "Ово је списак свих чланова од "; }
+
+ /*! this is the remainder of the sentence after the class name */
+ virtual QCString trIncludingInheritedMembers()
+ { return ", укључујући све наслеђене чланове."; }
+
+ /*! this is put at the author sections at the bottom of man pages.
+ * parameter s is name of the project name.
+ */
+ virtual QCString trGeneratedAutomatically(const char *s)
+ { QCString result="Аутоматски направљено помоћу Doxygen-а";
+ if (s) result+=(QCString)" за "+s;
+ result+=" из изворног кода.";
+ return result;
+ }
+
+ /*! put after an enum name in the list of all members */
+ virtual QCString trEnumName()
+ { return "назив набрајања"; }
+
+ /*! put after an enum value in the list of all members */
+ virtual QCString trEnumValue()
+ { return "вредност набрајања"; }
+
+ /*! put after an undocumented member in the list of all members */
+ virtual QCString trDefinedIn()
+ { return "дефинисано у"; }
+
+ // quick reference sections
+
+ /*! This is put above each page as a link to the list of all groups of
+ * compounds or files (see the \\group command).
+ */
+ virtual QCString trModules()
+ { return "Модули"; }
+
+ /*! This is put above each page as a link to the class hierarchy */
+ virtual QCString trClassHierarchy()
+ { return "Хијерархија класа"; }
+
+ /*! This is put above each page as a link to the list of annotated classes */
+ virtual QCString trCompoundList()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Структуре";
+ }
+ else
+ {
+ return "Списак класа";
+ }
+ }
+
+ /*! This is put above each page as a link to the list of documented files */
+ virtual QCString trFileList()
+ { return "Списак датотека"; }
+
+ /*! 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 "Поља";
+ }
+ else
+ {
+ return "Чланови класе";
+ }
+ }
+
+ /*! This is put above each page as a link to all members of files. */
+ virtual QCString trFileMembers()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Глобално";
+ }
+ else
+ {
+ return "Чланови датотеке";
+ }
+ }
+
+ /*! This is put above each page as a link to all related pages. */
+ virtual QCString trRelatedPages()
+ { return "Повезане странице"; }
+
+ /*! This is put above each page as a link to all examples. */
+ virtual QCString trExamples()
+ { return "Примери"; }
+
+ /*! This is put above each page as a link to the search engine. */
+ virtual QCString trSearch()
+ { return "Тражи"; }
+
+ /*! This is an introduction to the class hierarchy. */
+ virtual QCString trClassHierarchyDescription()
+ { return "Овај списак наслеђивања је уређен "
+ "скоро по абецеди:";
+ }
+
+ /*! This is an introduction to the list with all files. */
+ virtual QCString trFileListDescription(bool extractAll)
+ {
+ QCString result="Овде је списак свих ";
+ if (!extractAll) result+="документованих ";
+ result+="датотека са кратким описима:";
+ return result;
+ }
+
+ /*! This is an introduction to the annotated compound list. */
+ virtual QCString trCompoundListDescription()
+ {
+
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Овде су структуре са кратким описима:";
+ }
+ else
+ {
+ return "Овде су класе, структуре, "
+ "уније и интерфејси са кратким описима:";
+ }
+ }
+
+ /*! This is an introduction to the page with all class members. */
+ virtual QCString trCompoundMembersDescription(bool extractAll)
+ {
+ QCString result="Овде је списак свих ";
+ if (!extractAll)
+ {
+ result+="документованих ";
+ }
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ result+="поља структура и унија";
+ }
+ else
+ {
+ result+="чланова класа";
+ }
+ result+=" са везама ка ";
+ if (!extractAll)
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ result+="документацији структуре/уније за свако поље:";
+ }
+ else
+ {
+ result+="документацији класе за сваки члан:";
+ }
+ }
+ else
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ result+="структури/унији којој припадају:";
+ }
+ else
+ {
+ result+="класи којој припадају:";
+ }
+ }
+ return result;
+ }
+
+ /*! This is an introduction to the page with all file members. */
+ virtual QCString trFileMembersDescription(bool extractAll)
+ {
+ QCString result="Овде је списак свих ";
+ if (!extractAll) result+="документованих ";
+
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ result+="фрункција, променљивих, макро замена, набрајања, и дефиниција типова";
+ }
+ else
+ {
+ result+="чланова датотеке";
+ }
+ result+=" са везама ка ";
+ if (extractAll)
+ result+="датотекама којима припадају:";
+ else
+ result+="документацији:";
+ return result;
+ }
+
+ /*! 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 "Овде је списак свих повезаних страница документације:"; }
+
+ /*! This is an introduction to the page with the list of class/file groups */
+ virtual QCString trModulesDescription()
+ { return "Овде је списак свих модула:"; }
+
+ // index titles (the project name is prepended for these)
+
+ /*! This is used in HTML as the title of index.html. */
+ virtual QCString trDocumentation()
+ { return "Документација"; }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * index of all groups.
+ */
+ virtual QCString trModuleIndex()
+ { return "Индекс модула"; }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * class hierarchy.
+ */
+ virtual QCString trHierarchicalIndex()
+ { return "Хијерархијски индекс"; }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * annotated compound index.
+ */
+ virtual QCString trCompoundIndex()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Индекс структура";
+ }
+ else
+ {
+ return "Индекс класа";
+ }
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * list of all files.
+ */
+ virtual QCString trFileIndex()
+ { return "Индекс датотека"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all groups.
+ */
+ virtual QCString trModuleDocumentation()
+ { return "Документација модула"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all classes, structs and unions.
+ */
+ virtual QCString trClassDocumentation()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Документација структуре";
+ }
+ else
+ {
+ return "Документација класе";
+ }
+ }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all files.
+ */
+ virtual QCString trFileDocumentation()
+ { return "Документација датотеке"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all examples.
+ */
+ virtual QCString trExampleDocumentation()
+ { return "Документација примера"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all related pages.
+ */
+ virtual QCString trPageDocumentation()
+ { return "Документација странице"; }
+
+ /*! This is used in LaTeX as the title of the document */
+ virtual QCString trReferenceManual()
+ { return "Приручник"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of defines
+ */
+ virtual QCString trDefines()
+ { return "Дефиниције"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of function prototypes
+ */
+ virtual QCString trFuncProtos()
+ { return "Декларације функција"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of typedefs
+ */
+ virtual QCString trTypedefs()
+ { return "Дефиниције типова"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of enumerations
+ */
+ virtual QCString trEnumerations()
+ { return "Набрајања"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) functions
+ */
+ virtual QCString trFunctions()
+ { return "Функције"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) variables
+ */
+ virtual QCString trVariables()
+ { return "Променљиве"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) variables
+ */
+ virtual QCString trEnumerationValues()
+ { return "Вредности набрајања"; }
+
+ /*! This is used in the documentation of a file before the list of
+ * documentation blocks for defines
+ */
+ virtual QCString trDefineDocumentation()
+ { return "Документација дефиниције"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for function prototypes
+ */
+ virtual QCString trFunctionPrototypeDocumentation()
+ { return "Документација декларације функције"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for typedefs
+ */
+ virtual QCString trTypedefDocumentation()
+ { return "Документација дефиниције типа"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for enumeration types
+ */
+ virtual QCString trEnumerationTypeDocumentation()
+ { return "Документација набрајања"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for functions
+ */
+ virtual QCString trFunctionDocumentation()
+ { return "Документација функције"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for variables
+ */
+ virtual QCString trVariableDocumentation()
+ { return "Документација променљиве"; }
+
+ /*! This is used in the documentation of a file/namespace/group before
+ * the list of links to documented compounds
+ */
+ virtual QCString trCompounds()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Структуре";
+ }
+ else
+ {
+ return "Класе";
+ }
+ }
+
+ /*! This is used in the standard footer of each page and indicates when
+ * the page was generated
+ */
+ virtual QCString trGeneratedAt(const char *date,const char *projName)
+ {
+ QCString result=(QCString)"Направљено "+date;
+ if (projName) result+=(QCString)" за "+projName;
+ result+=(QCString)" помоћу";
+ return result;
+ }
+ /*! This is part of the sentence used in the standard footer of each page.
+ */
+ virtual QCString trWrittenBy()
+ {
+ return "написао";
+ }
+
+ /*! this text is put before a class diagram */
+ virtual QCString trClassDiagram(const char *clName)
+ {
+ return (QCString)"Дијаграм наслеђивања за "+clName+":";
+ }
+
+ /*! this text is generated when the \\internal command is used. */
+ virtual QCString trForInternalUseOnly()
+ { return "Само за унутрашњу употребу."; }
+
+ /*! this text is generated when the \\warning command is used. */
+ virtual QCString trWarning()
+ { return "Упозорење"; }
+
+ /*! this text is generated when the \\version command is used. */
+ virtual QCString trVersion()
+ { return "Верзија"; }
+
+ /*! this text is generated when the \\date command is used. */
+ virtual QCString trDate()
+ { return "Датум"; }
+
+ /*! this text is generated when the \\return command is used. */
+ virtual QCString trReturns()
+ { return "Враћа"; }
+
+ /*! this text is generated when the \\sa command is used. */
+ virtual QCString trSeeAlso()
+ { return "Види"; }
+
+ /*! this text is generated when the \\param command is used. */
+ virtual QCString trParameters()
+ { return "Параметри"; }
+
+ /*! this text is generated when the \\exception command is used. */
+ virtual QCString trExceptions()
+ { return "Изизеци"; }
+
+ /*! this text is used in the title page of a LaTeX document. */
+ virtual QCString trGeneratedBy()
+ { return "Направљено помоћу"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990307
+//////////////////////////////////////////////////////////////////////////
+
+ /*! used as the title of page containing all the index of all namespaces. */
+ virtual QCString trNamespaceList()
+ { return "Списак простора имена"; }
+
+ /*! used as an introduction to the namespace list */
+ virtual QCString trNamespaceListDescription(bool extractAll)
+ {
+ QCString result="Овде је списак свих ";
+ if (!extractAll) result+="документованих ";
+ result+="простора имена са кратким описима:";
+ return result;
+ }
+
+ /*! used in the class documentation as a header before the list of all
+ * friends of a class
+ */
+ virtual QCString trFriends()
+ { return "Пријатељи"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990405
+//////////////////////////////////////////////////////////////////////////
+
+ /*! used in the class documentation as a header before the list of all
+ * related classes
+ */
+ virtual QCString trRelatedFunctionDocumentation()
+ { return "Документација за пријатеље и повезане функције"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990425
+//////////////////////////////////////////////////////////////////////////
+
+ /*! used as the title of the HTML page of a class/struct/union */
+ virtual QCString trCompoundReference(const char *clName,
+ ClassDef::CompoundType compType,
+ bool isTemplate)
+ {
+ QCString result=(QCString)clName;
+ if (isTemplate) {
+ result+=" Шаблон";
+ switch(compType)
+ {
+ case ClassDef::Class: result+="ска класа"; break;
+ case ClassDef::Struct: result+="ска структура"; break;
+ case ClassDef::Union: result+="ска унија"; break;
+ case ClassDef::Interface: result+="ски интерфејс"; break;
+ case ClassDef::Protocol: result+="ски протокол"; break;
+ case ClassDef::Category: result+="ска категорија"; break;
+ case ClassDef::Exception: result+="ски изузетак"; break;
+ }
+ } else {
+ result+=" Референца";
+ switch(compType)
+ {
+ case ClassDef::Class: result+=" класе"; break;
+ case ClassDef::Struct: result+=" структуре"; break;
+ case ClassDef::Union: result+=" уније"; break;
+ case ClassDef::Interface: result+=" интерфејса"; break;
+ case ClassDef::Protocol: result+=" протокола"; break;
+ case ClassDef::Category: result+=" категорије"; break;
+ case ClassDef::Exception: result+=" изузетка"; break;
+ }
+ }
+ return result;
+ }
+
+ /*! used as the title of the HTML page of a file */
+ virtual QCString trFileReference(const char *fileName)
+ {
+ QCString result=fileName;
+ result+=" Референца датотеке";
+ return result;
+ }
+
+ /*! used as the title of the HTML page of a namespace */
+ virtual QCString trNamespaceReference(const char *namespaceName)
+ {
+ QCString result=namespaceName;
+ result+=" Референца простора имена";
+ return result;
+ }
+
+ virtual QCString trPublicMembers()
+ { return "Јавне функције чланице"; }
+ virtual QCString trPublicSlots()
+ { return "Јавни слотови"; }
+ virtual QCString trSignals()
+ { return "Сигнали"; }
+ virtual QCString trStaticPublicMembers()
+ { return "Статичке јавне функције чланице"; }
+ virtual QCString trProtectedMembers()
+ { return "Заштићене функције чланице"; }
+ virtual QCString trProtectedSlots()
+ { return "Заштићени слотови"; }
+ virtual QCString trStaticProtectedMembers()
+ { return "Статичке заштићене функције чланице"; }
+ virtual QCString trPrivateMembers()
+ { return "Приватне функције чланице"; }
+ virtual QCString trPrivateSlots()
+ { return "Приватни слотови"; }
+ virtual QCString trStaticPrivateMembers()
+ { return "Статичке приватне функције чланице"; }
+
+ /*! this function is used to produce a comma-separated list of items.
+ * use generateMarker(i) to indicate where item i should be put.
+ */
+ virtual QCString trWriteList(int numEntries)
+ {
+ QCString result;
+ int i;
+ // the inherits list contain `numEntries' classes
+ for (i=0;i<numEntries;i++)
+ {
+ // use generateMarker to generate placeholders for the class links!
+ result+=generateMarker(i); // generate marker for entry i in the list
+ // (order is left to right)
+
+ if (i!=numEntries-1) // not the last entry, so we need a separator
+ {
+ if (i<numEntries-2) // not the fore last entry
+ result+=", ";
+ else // the fore last entry
+ result+=" и ";
+ }
+ }
+ return result;
+ }
+
+ /*! used in class documentation to produce a list of base classes,
+ * if class diagrams are disabled.
+ */
+ virtual QCString trInheritsList(int numEntries)
+ {
+ return "Наслеђује "+trWriteList(numEntries)+".";
+ }
+
+ /*! used in class documentation to produce a list of super classes,
+ * if class diagrams are disabled.
+ */
+ virtual QCString trInheritedByList(int numEntries)
+ {
+ return "Наслеђују "+trWriteList(numEntries)+".";
+ }
+
+ /*! used in member documentation blocks to produce a list of
+ * members that are hidden by this one.
+ */
+ virtual QCString trReimplementedFromList(int numEntries)
+ {
+ return "Поново имплементирано од "+trWriteList(numEntries)+".";
+ }
+
+ /*! used in member documentation blocks to produce a list of
+ * all member that overwrite the implementation of this member.
+ */
+ virtual QCString trReimplementedInList(int numEntries)
+ {
+ return "Поново имплементирано у "+trWriteList(numEntries)+".";
+ }
+
+ /*! This is put above each page as a link to all members of namespaces. */
+ virtual QCString trNamespaceMembers()
+ { return "Чланови простора имена"; }
+
+ /*! This is an introduction to the page with all namespace members */
+ virtual QCString trNamespaceMemberDescription(bool extractAll)
+ {
+ QCString result="Овде је списак свих ";
+ if (!extractAll) result+="документованих ";
+ result+="чланова простора имена са везама ка ";
+ if (extractAll)
+ result+="документацији простора имена за сваки члан:";
+ else
+ result+="просторима имена којима припадају:";
+ return result;
+ }
+ /*! This is used in LaTeX as the title of the chapter with the
+ * index of all namespaces.
+ */
+ virtual QCString trNamespaceIndex()
+ { return "Индекс простора имена"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all namespaces.
+ */
+ virtual QCString trNamespaceDocumentation()
+ { return "Документација простора имена"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990522
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This is used in the documentation before the list of all
+ * namespaces in a file.
+ */
+ virtual QCString trNamespaces()
+ { return "Простори имена"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990728
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This is put at the bottom of a class documentation page and is
+ * followed by a list of files that were used to generate the page.
+ */
+ virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
+ bool single)
+ { // here s is one of " Class", " Struct" or " Union"
+ // single is true implies a single file
+ QCString result=(QCString)"Документација за ";
+ switch(compType)
+ {
+ case ClassDef::Class: result+="ову класу"; break;
+ case ClassDef::Struct: result+="ову структуру"; break;
+ case ClassDef::Union: result+="ову унију"; break;
+ case ClassDef::Interface: result+="овај интерфејс"; break;
+ case ClassDef::Protocol: result+="овај протокол"; break;
+ case ClassDef::Category: result+="ову категорију"; break;
+ case ClassDef::Exception: result+="овај изузетак"; break;
+ }
+ result+=" је произведена из";
+ if (single) result+="следеће датотеке:"; else result+="следећих датотека:";
+ return result;
+ }
+
+ /*! This is in the (quick) index as a link to the alphabetical compound
+ * list.
+ */
+ virtual QCString trAlphabeticalList()
+ { return "Абецедни списак"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-990901
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This is used as the heading text for the retval command. */
+ virtual QCString trReturnValues()
+ { return "Враћене вредности"; }
+
+ /*! This is in the (quick) index as a link to the main page (index.html)
+ */
+ virtual QCString trMainPage()
+ { return "Главна страница"; }
+
+ /*! This is used in references to page that are put in the LaTeX
+ * documentation. It should be an abbreviation of the word page.
+ */
+ virtual QCString trPageAbbreviation()
+ { return "стр."; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-991003
+//////////////////////////////////////////////////////////////////////////
+
+ virtual QCString trDefinedAtLineInSourceFile()
+ {
+ return "Дефиниција у линији @0 датотеке @1.";
+ }
+ virtual QCString trDefinedInSourceFile()
+ {
+ return "Дефиниција у датотеци @0.";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 0.49-991205
+//////////////////////////////////////////////////////////////////////////
+
+ virtual QCString trDeprecated()
+ {
+ return "Застарело";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.0.0
+//////////////////////////////////////////////////////////////////////////
+
+ /*! this text is put before a collaboration diagram */
+ virtual QCString trCollaborationDiagram(const char *clName)
+ {
+ return (QCString)"Дијаграм сарадње за "+clName+":";
+ }
+ /*! this text is put before an include dependency graph */
+ virtual QCString trInclDepGraph(const char *fName)
+ {
+ return (QCString)"Дијаграм зависности укључивања за "+fName+":";
+ }
+ /*! header that is put before the list of constructor/destructors. */
+ virtual QCString trConstructorDocumentation()
+ {
+ return "Документација конструктора и деструктора";
+ }
+ /*! Used in the file documentation to point to the corresponding sources. */
+ virtual QCString trGotoSourceCode()
+ {
+ return "Иди на изворни код овог фајла.";
+ }
+ /*! Used in the file sources to point to the corresponding documentation. */
+ virtual QCString trGotoDocumentation()
+ {
+ return "Иди на документацију овог фајла.";
+ }
+ /*! Text for the \\pre command */
+ virtual QCString trPrecondition()
+ {
+ return "Услов пре";
+ }
+ /*! Text for the \\post command */
+ virtual QCString trPostcondition()
+ {
+ return "Услов после";
+ }
+ /*! Text for the \\invariant command */
+ virtual QCString trInvariant()
+ {
+ return "Инваријанта";
+ }
+ /*! Text shown before a multi-line variable/enum initialization */
+ virtual QCString trInitialValue()
+ {
+ return "Почетна вредност:";
+ }
+ /*! Text used the source code in the file index */
+ virtual QCString trCode()
+ {
+ return "код";
+ }
+ virtual QCString trGraphicalHierarchy()
+ {
+ return "Графичка хијерархија класа";
+ }
+ virtual QCString trGotoGraphicalHierarchy()
+ {
+ return "Иди на графичку хијерархију класа";
+ }
+ virtual QCString trGotoTextualHierarchy()
+ {
+ return "Иди на текстуалну хијерархију класа";
+ }
+ virtual QCString trPageIndex()
+ {
+ return "Индекс страна";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.1.0
+//////////////////////////////////////////////////////////////////////////
+
+ virtual QCString trNote()
+ {
+ return "Напомена";
+ }
+ virtual QCString trPublicTypes()
+ {
+ return "Јавни типови";
+ }
+ virtual QCString trPublicAttribs()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Поља";
+ }
+ else
+ {
+ return "Јавни атрибути";
+ }
+ }
+ virtual QCString trStaticPublicAttribs()
+ {
+ return "Статички јавни атрибути";
+ }
+ virtual QCString trProtectedTypes()
+ {
+ return "Заштићени типови";
+ }
+ virtual QCString trProtectedAttribs()
+ {
+ return "Заштићени атрибути";
+ }
+ virtual QCString trStaticProtectedAttribs()
+ {
+ return "Статички заштићени атрибути";
+ }
+ virtual QCString trPrivateTypes()
+ {
+ return "Приватни типови";
+ }
+ virtual QCString trPrivateAttribs()
+ {
+ return "Приватни атрибути";
+ }
+ virtual QCString trStaticPrivateAttribs()
+ {
+ return "Статички приватни атрибути";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.1.3
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a marker that is put before a \\todo item */
+ virtual QCString trTodo()
+ {
+ return "Урадити";
+ }
+ /*! Used as the header of the todo list */
+ virtual QCString trTodoList()
+ {
+ return "Подсетник шта још урадити";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.1.4
+//////////////////////////////////////////////////////////////////////////
+
+ virtual QCString trReferencedBy()
+ {
+ return "Референцирано од";
+ }
+ virtual QCString trRemarks()
+ {
+ return "Напомене";
+ }
+ virtual QCString trAttention()
+ {
+ return "Пажња";
+ }
+ virtual QCString trInclByDepGraph()
+ {
+ return "Овај граф показује које датотеке директно или "
+ "или индиректно укључују овај фајл:";
+ }
+ virtual QCString trSince()
+ {
+ return "Од";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.1.5
+//////////////////////////////////////////////////////////////////////////
+
+ /*! title of the graph legend page */
+ virtual QCString trLegendTitle()
+ {
+ return "Легенда графова";
+ }
+ /*! page explaining how the dot graph's should be interpreted
+ * The %A in the text below are to prevent link to classes called "A".
+ */
+ virtual QCString trLegendDocs()
+ {
+ return
+ "Ова страница објашњава како тумачити графове који су направљени "
+ "doxygen-ом.<p>\n"
+ "Размотримо следећи пример:\n"
+ "\\code\n"
+ "/*! Невидљива класа због одсецања */\n"
+ "class Invisible { };\n\n"
+ "/*! Одсечена класа, веза наслеђивања је скривена */\n"
+ "class Truncated : public Invisible { };\n\n"
+ "/* Класа која није документована doxygen коментарима */\n"
+ "class Undocumented { };\n\n"
+ "/*! Класа која је наслеђена јавним наслеђивањем */\n"
+ "class PublicBase : public Truncated { };\n\n"
+ "/*! Шаблонска класа */\n"
+ "template<class T> class Templ { };\n\n"
+ "/*! Класа која је наслеђена заштићеним наслеђивањем */\n"
+ "class ProtectedBase { };\n\n"
+ "/*! Класа која је наслеђена јавним наслеђивањем */\n"
+ "class PrivateBase { };\n\n"
+ "/*! Класа коју користи наслеђена класа */\n"
+ "class Used { };\n\n"
+ "/*! Надкласа која наслеђује неки број других класа */\n"
+ "class Inherited : public PublicBase,\n"
+ " protected ProtectedBase,\n"
+ " private PrivateBase,\n"
+ " public Undocumented,\n"
+ " public Templ<int>\n"
+ "{\n"
+ " private:\n"
+ " Used *m_usedClass;\n"
+ "};\n"
+ "\\endcode\n"
+ "Ако је \\c MAX_DOT_GRAPH_HEIGHT таг у конфигурационој датотеци "
+ "подешен на 240, то ће резултовати на следећи начин:"
+ "<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
+ "<p>\n"
+ "Правоугаоници имају следеће значење:\n"
+ "<ul>\n"
+ "<li>%Пуни сиви правоугаоник представља структуру или класу за коју је "
+ "граф направљен.\n"
+ "<li>%Правоугаоник са црним оквиром означава документовану структуру или класу.\n"
+ "<li>%Правоугаоник са сивим оквиром означава недокументовану структуру или класу.\n"
+ "<li>%Правоугаоник са црвеним оквиром означава документовану структуру или класу за"
+ "за коју нису све релације наслеђивања/садржавања приказане. %Граф је "
+ "одсечен ако излази из специфицираних оквира.\n"
+ "</ul>\n"
+ "Стрелице имају следећа значења:\n"
+ "<ul>\n"
+ "<li>%Тамноплава стрелица се користи да прикаже релацију јавног извођења "
+ "између двеју класа.\n"
+ "<li>%Тамнозелена стрелица се користи за заштићено наслеђивање.\n"
+ "<li>%Тамноцрвена стрелица се користи за приватно наслеђивање.\n"
+ "<li>%Љубичаста испрекидана стрелица се користи ако класа садржи или користи "
+ "друга класа. Стрелица је означена променљивом/променљивама "
+ "кроз које је показивана класа или структура доступна.\n"
+ "<li>%Жута испрекидана стрелица означава везу између примерка шаблона и "
+ "и шаблонске класе из које је инстанцирана. Стрелица је означена "
+ "параметрима примерка шаблона.\n"
+ "</ul>\n";
+ }
+ /*! text for the link to the legend page */
+ virtual QCString trLegend()
+ {
+ return "легенда";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.0
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a marker that is put before a test item */
+ virtual QCString trTest()
+ {
+ return "Тест";
+ }
+ /*! Used as the header of the test list */
+ virtual QCString trTestList()
+ {
+ return "Списак тестова";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.1
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a section header for KDE-2 IDL methods */
+ virtual QCString trDCOPMethods()
+ {
+ return "DCOP функције чланице";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.2
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a section header for IDL properties */
+ virtual QCString trProperties()
+ {
+ return "Своства";
+ }
+ /*! Used as a section header for IDL property documentation */
+ virtual QCString trPropertyDocumentation()
+ {
+ return "Документација свосјтва";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.4
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used for Java classes in the summary section of Java packages */
+ virtual QCString trClasses()
+ {
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ return "Структуре";
+ }
+ else
+ {
+ return "Класе";
+ }
+ }
+ /*! Used as the title of a Java package */
+ virtual QCString trPackage(const char *name)
+ {
+ return (QCString)"Пакет "+name;
+ }
+ /*! Title of the package index page */
+ virtual QCString trPackageList()
+ {
+ return "Списак пакета";
+ }
+ /*! The description of the package index page */
+ virtual QCString trPackageListDescription()
+ {
+ return "Овде су пакети са кратким описима (ако су доступни):";
+ }
+ /*! The link name in the Quick links header for each page */
+ virtual QCString trPackages()
+ {
+ return "Пакети";
+ }
+ /*! Text shown before a multi-line define */
+ virtual QCString trDefineValue()
+ {
+ return "Вредност:";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.5
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a marker that is put before a \\bug item */
+ virtual QCString trBug()
+ {
+ return "Грешка";
+ }
+ /*! Used as the header of the bug list */
+ virtual QCString trBugList()
+ {
+ return "Списак грешака";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.6
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as ansicpg for RTF file
+ *
+ * The following table shows the correlation of Charset name, Charset Value and
+ * <pre>
+ * Codepage number:
+ * Charset Name Charset Value(hex) Codepage number
+ * ------------------------------------------------------
+ * DEFAULT_CHARSET 1 (x01)
+ * SYMBOL_CHARSET 2 (x02)
+ * OEM_CHARSET 255 (xFF)
+ * ANSI_CHARSET 0 (x00) 1252
+ * RUSSIAN_CHARSET 204 (xCC) 1251
+ * EE_CHARSET 238 (xEE) 1250
+ * GREEK_CHARSET 161 (xA1) 1253
+ * TURKISH_CHARSET 162 (xA2) 1254
+ * BALTIC_CHARSET 186 (xBA) 1257
+ * HEBREW_CHARSET 177 (xB1) 1255
+ * ARABIC _CHARSET 178 (xB2) 1256
+ * SHIFTJIS_CHARSET 128 (x80) 932
+ * HANGEUL_CHARSET 129 (x81) 949
+ * GB2313_CHARSET 134 (x86) 936
+ * CHINESEBIG5_CHARSET 136 (x88) 950
+ * </pre>
+ *
+ */
+ virtual QCString trRTFansicp()
+ {
+ return "1252";
+ }
+
+
+ /*! Used as ansicpg for RTF fcharset
+ * \see trRTFansicp() for a table of possible values.
+ */
+ virtual QCString trRTFCharSet()
+ {
+ return "0";
+ }
+
+ /*! Used as header RTF general index */
+ virtual QCString trRTFGeneralIndex()
+ {
+ 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 trClass(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Клас" : "клас"));
+ if (!singular) result+="e"; else result+="a";
+ return result;
+ }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trFile(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Датотек" : "датотек"));
+ if (!singular) result+="e"; else result+="a";
+ return result;
+ }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trNamespace(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Простор" : "простор"));
+ if (!singular) result+="и имена"; else result+=" имена";
+ return result;
+ }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trGroup(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Груп" : "груп"));
+ if (!singular) result+="е"; else result+="a";
+ return result;
+ }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trPage(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Страниц" : "страниц"));
+ if (!singular) result+="е"; else result += "a";
+ return result;
+ }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trMember(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Члан" : "члан"));
+ if (!singular) result+="ови";
+ return result;
+ }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trGlobal(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Глобалн" : "глобалн"));
+ if (!singular) result+="а"; else result+="о";
+ return result;
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.7
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This text is generated when the \\author command is used and
+ * for the author section in man pages. */
+ virtual QCString trAuthor(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Аутор" : "аутор"));
+ if (!singular) result+="и";
+ return result;
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.11
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This text is put before the list of members referenced by a member
+ */
+ virtual QCString trReferences()
+ {
+ return "Референце";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.13
+//////////////////////////////////////////////////////////////////////////
+
+ /*! used in member documentation blocks to produce a list of
+ * members that are implemented by this one.
+ */
+ virtual QCString trImplementedFromList(int numEntries)
+ {
+ return "Имплементира "+trWriteList(numEntries)+".";
+ }
+
+ /*! used in member documentation blocks to produce a list of
+ * all members that implement this abstract member.
+ */
+ virtual QCString trImplementedInList(int numEntries)
+ {
+ return "Имплементирано у "+trWriteList(numEntries)+".";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.16
+//////////////////////////////////////////////////////////////////////////
+
+ /*! used in RTF documentation as a heading for the Table
+ * of Contents.
+ */
+ virtual QCString trRTFTableOfContents()
+ {
+ return "Садржај";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.17
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as the header of the list of item that have been
+ * flagged deprecated
+ */
+ virtual QCString trDeprecatedList()
+ {
+ return "Списак застарелог";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.18
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a header for declaration section of the events found in
+ * a C# program
+ */
+ virtual QCString trEvents()
+ {
+ return "Догађаји";
+ }
+ /*! Header used for the documentation section of a class' events. */
+ virtual QCString trEventDocumentation()
+ {
+ return "Документација догажаја";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a heading for a list of Java class types with package scope.
+ */
+ virtual QCString trPackageTypes()
+ {
+ return "Типови пакета";
+ }
+ /*! Used as a heading for a list of Java class functions with package
+ * scope.
+ */
+ virtual QCString trPackageMembers()
+ {
+ return "Функције пакета";
+ }
+ /*! Used as a heading for a list of static Java class functions with
+ * package scope.
+ */
+ virtual QCString trStaticPackageMembers()
+ {
+ return "Статичке функције пакета";
+ }
+ /*! Used as a heading for a list of Java class variables with package
+ * scope.
+ */
+ virtual QCString trPackageAttribs()
+ {
+ return "Атрибути пакета";
+ }
+ /*! Used as a heading for a list of static Java class variables with
+ * package scope.
+ */
+ virtual QCString trStaticPackageAttribs()
+ {
+ return "Статички атрибути пакета";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3.1
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used in the quick index of a class/file/namespace member list page
+ * to link to the unfiltered list of all members.
+ */
+ virtual QCString trAll()
+ {
+ return "Све";
+ }
+ /*! Put in front of the call graph for a function. */
+ virtual QCString trCallGraph()
+ {
+ return "Овде је граф позивања за ову функцију:";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3.3
+//////////////////////////////////////////////////////////////////////////
+
+ /*! When the search engine is enabled this text is put in the header
+ * of each page before the field where one can enter the text to search
+ * for.
+ */
+ virtual QCString trSearchForIndex()
+ {
+ return "Тражим";
+ }
+ /*! This string is used as the title for the page listing the search
+ * results.
+ */
+ virtual QCString trSearchResultsTitle()
+ {
+ return "Резултати претраге";
+ }
+ /*! This string is put just before listing the search results. The
+ * text can be different depending on the number of documents found.
+ * Inside the text you can put the special marker $num to insert
+ * the number representing the actual number of search results.
+ * The @a numDocuments parameter can be either 0, 1 or 2, where the
+ * value 2 represents 2 or more matches. HTML markup is allowed inside
+ * the returned string.
+ */
+ virtual QCString trSearchResults(int numDocuments)
+ {
+ if (numDocuments==0)
+ {
+ return "Жао ми је, али нема докумената који одговарају упиту.";
+ }
+ else if (numDocuments==1)
+ {
+ return "Пронађен <b>1</b> документ који одговара упиту.";
+ }
+ else if (numDocuments==2)
+ {
+ return "Пронађена <b>а</b> документа која одговарају упиту.";
+ }
+ else if (numDocuments==3)
+ {
+ return "Пронађена <b>3</b> документа која одговарају упиту.";
+ }
+ else if (numDocuments==4)
+ {
+ return "Пронађена <b>4</b> документа која одговарају упиту.";
+ }
+ else
+ {
+ return "Пронађено <b>$num</b> докумената који одговарају упиту. "
+ "Приказују се прво најбољи поготци.";
+ }
+ }
+ /*! This string is put before the list of matched words, for each search
+ * result. What follows is the list of words that matched the query.
+ */
+ virtual QCString trSearchMatches()
+ {
+ return "Поготци:";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3.8
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This is used in HTML as the title of page with source code for file filename
+ */
+ virtual QCString trSourceFile(QCString& filename)
+ {
+ return filename + " Изворна датотека";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3.9
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This is used as the name of the chapter containing the directory
+ * hierarchy.
+ */
+ virtual QCString trDirIndex()
+ { return "Хијерархија директоријума"; }
+
+ /*! This is used as the name of the chapter containing the documentation
+ * of the directories.
+ */
+ virtual QCString trDirDocumentation()
+ { return "Документација директоријума"; }
+
+ /*! This is used as the title of the directory index and also in the
+ * Quick links of an HTML page, to link to the directory hierarchy.
+ */
+ virtual QCString trDirectories()
+ { return "Директоријуми"; }
+
+ /*! This returns a sentences that introduces the directory hierarchy.
+ * and the fact that it is sorted alphabetically per level
+ */
+ virtual QCString trDirDescription()
+ { return "Ова хијерархија директоријума је уређена "
+ "приближно по абецеди:";
+ }
+
+ /*! This returns the title of a directory page. The name of the
+ * directory is passed via \a dirName.
+ */
+ virtual QCString trDirReference(const char *dirName)
+ { QCString result=dirName; result+=" Референца директоријума"; 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 ? "Директоријум" : "директоријум"));
+ if (singular) result+=""; else result+="и";
+ return result;
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.4.1
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This text is added to the documentation when the \\overload command
+ * is used for a overloaded function.
+ */
+ virtual QCString trOverloadText()
+ {
+ return "Ово је преоптерећена функција чланица. "
+ "Разликује се од наведене само по врсти аргумената кое прихвата";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.4.6
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This is used to introduce a caller (or called-by) graph */
+ virtual QCString trCallerGraph()
+ {
+ return "Ово је граф функција које позивају ову функцију:";
+ }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for enumeration values
+ */
+ virtual QCString trEnumerationValueDocumentation()
+ { return "Документација вредности набрајања"; }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.5.4 (mainly for Fortran)
+//////////////////////////////////////////////////////////////////////////
+
+ /*! header that is put before the list of member subprograms (Fortran). */
+ virtual QCString trMemberFunctionDocumentationFortran()
+ { return "Документацијаr функције чланице, односно потпрограма члана"; }
+
+ /*! This is put above each page as a link to the list of annotated data types (Fortran). */
+ virtual QCString trCompoundListFortran()
+ { return "Списак типова података"; }
+
+ /*! This is put above each page as a link to all members of compounds (Fortran). */
+ virtual QCString trCompoundMembersFortran()
+ { return "Поља"; }
+
+ /*! This is an introduction to the annotated compound list (Fortran). */
+ virtual QCString trCompoundListDescriptionFortran()
+ { return "Овде су типови података са кратким описима:"; }
+
+ /*! This is an introduction to the page with all data types (Fortran). */
+ virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
+ {
+ QCString result="Овде је списак свих ";
+ if (!extractAll)
+ {
+ result+="документованих ";
+ }
+ result+="чланова типова података";
+ result+=" са везама ка ";
+ if (!extractAll)
+ {
+ result+="документацији структуре података за сваки члан";
+ }
+ else
+ {
+ result+="типовима података којима припадају:";
+ }
+ return result;
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * annotated compound index (Fortran).
+ */
+ virtual QCString trCompoundIndexFortran()
+ { return "Индекс типова података"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all data types (Fortran).
+ */
+ virtual QCString trTypeDocumentation()
+ { return "Документација типова података"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) subprograms (Fortran).
+ */
+ virtual QCString trSubprograms()
+ { return "Функције/потпрограми"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for subprograms (Fortran)
+ */
+ virtual QCString trSubprogramDocumentation()
+ { return "Документација функције/потпрограма"; }
+
+ /*! This is used in the documentation of a file/namespace/group before
+ * the list of links to documented compounds (Fortran)
+ */
+ virtual QCString trDataTypes()
+ { return "Типови података"; }
+
+ /*! used as the title of page containing all the index of all modules (Fortran). */
+ virtual QCString trModulesList()
+ { return "Списак модула"; }
+
+ /*! used as an introduction to the modules list (Fortran) */
+ virtual QCString trModulesListDescription(bool extractAll)
+ {
+ QCString result="Овде је списак свих ";
+ if (!extractAll) result+="документованих ";
+ result+="модула са кратким описима:";
+ return result;
+ }
+
+ /*! used as the title of the HTML page of a module/type (Fortran) */
+ virtual QCString trCompoundReferenceFortran(const char *clName,
+ ClassDef::CompoundType compType,
+ bool isTemplate)
+ {
+ QCString result=(QCString)clName;
+ if (isTemplate) result+=" Шаблон";
+ result+=" Референца";
+ switch(compType)
+ {
+ case ClassDef::Class: result+=" модула"; break;
+ case ClassDef::Struct: result+=" типа"; break;
+ case ClassDef::Union: result+=" уније"; break;
+ case ClassDef::Interface: result+=" интерфејса"; break;
+ case ClassDef::Protocol: result+=" протокола"; break;
+ case ClassDef::Category: result+=" категорије"; break;
+ case ClassDef::Exception: result+=" изузетка"; break;
+ }
+ return result;
+ }
+ /*! used as the title of the HTML page of a module (Fortran) */
+ virtual QCString trModuleReference(const char *namespaceName)
+ {
+ 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="Овде је списак свих ";
+ if (!extractAll) result+="документованих ";
+ result+="чланова модула са везама ка ";
+ if (extractAll)
+ {
+ result+="документацији модула за сваки члан:";
+ }
+ else
+ {
+ result+="модулима којима припадају:";
+ }
+ return result;
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * index of all modules (Fortran).
+ */
+ virtual QCString trModulesIndex()
+ { return "Индекс модула"; }
+
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trModule(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Модул" : "модул"));
+ if (!singular) result+="и";
+ return result;
+ }
+ /*! This is put at the bottom of a module documentation page and is
+ * followed by a list of files that were used to generate the page.
+ */
+ virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
+ bool single)
+ { // here s is one of " Module", " Struct" or " Union"
+ // single is true implies a single file
+ QCString result=(QCString)"Документација за ";
+ switch(compType)
+ {
+ case ClassDef::Class: result+="овај модул"; break;
+ case ClassDef::Struct: result+="овај тип"; break;
+ case ClassDef::Union: result+="ову унију"; break;
+ case ClassDef::Interface: result+="овај интерфејс"; break;
+ case ClassDef::Protocol: result+="овај протокол"; break;
+ case ClassDef::Category: result+="ову категорију"; break;
+ case ClassDef::Exception: result+="овај изузетак"; break;
+ }
+ result+=" је направљен из следећ";
+ if (single) result+="е датотеке:"; else result+="их датотека:";
+ return result;
+ }
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trType(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Тип" : "тип"));
+ if (!singular) result+="ови";
+ return result;
+ }
+ /*! This is used for translation of the word that will possibly
+ * be followed by a single name or by a list of names
+ * of the category.
+ */
+ virtual QCString trSubprogram(bool first_capital, bool singular)
+ {
+ QCString result((first_capital ? "Потпрограм" : "потпрограм"));
+ if (!singular) result+="и";
+ return result;
+ }
+
+ /*! C# Type Constraint list */
+ virtual QCString trTypeConstraints()
+ {
+ return "Ограничења типова";
+ }
+
+};
+
+#endif
diff --git a/src/translator_sr.h b/src/translator_sr.h
index 6f559dd..338bedf 100644
--- a/src/translator_sr.h
+++ b/src/translator_sr.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
@@ -14,16 +14,17 @@
* input used in their production; they are not affected by this license.
*
*/
-
+
#ifndef TRANSLATOR_SR_H
#define TRANSLATOR_SR_H
// translation by Dejan D. M. Milosavljevic <dmilos@email.com>;<dmilosx@ptt.yu>;<office@ddmrm.com>
-// // 10x 2 Ivana Miletic for gramatical consutation.
+// // 10x 2 Ivana Miletic for grammatical consultation.
// UTF-8 patch by Nenad Bulatovic <buletina@gmail.com>
+// translation update by Andrija M. Bosnjakovic <andrija@etf.bg.ac.yu>
-class TranslatorSerbian : public TranslatorAdapter_1_4_1
+class TranslatorSerbian : public Translator
{
private:
QCString decode(const QCString& sInput)
@@ -83,7 +84,9 @@ private:
/*! used in the compound documentation before a list of related functions. */
virtual QCString trRelatedFunctions()
- { return decode( "Povezane funkcije" ); }
+ //! Čini se da je ovako manje loše nego "Povezane funkcije",
+ //! što uopšte ne izgleda dobro jer ta kartica sadrži prijatelje i globalne funkcije
+ { return decode( "Relevantne funkcije" ); }
/*! subscript for the related functions. */
virtual QCString trRelatedSubscript()
@@ -91,15 +94,16 @@ private:
/*! header that is put before the detailed description of files, classes and namespaces. */
virtual QCString trDetailedDescription()
- { return decode( "Opširnije objašnjenje" ); } // detalj je francuska rec.
+ { return decode( "Opširniji opis" ); }
/*! header that is put before the list of typedefs. */
virtual QCString trMemberTypedefDocumentation()
- { return decode( "Dokumentacija typedef članova" ); }
+ { return decode( "Dokumentacija unutrašnjih definicija tipa" ); }
/*! header that is put before the list of enumerations. */
virtual QCString trMemberEnumerationDocumentation()
- { return decode( "Dokumentacija enum članova" ); }
+ //! Ovo je u skladu sa "unutrašnja klasa" što se može videti u knjizi.
+ { return decode( "Dokumentacija unutrašnjih nabrajanja" ); }
/*! header that is put before the list of member functions. */
virtual QCString trMemberFunctionDocumentation()
@@ -110,11 +114,11 @@ private:
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode( "Dokumentacija članova" );
+ return decode( "Dokumentacija polja" );
}
else
{
- return decode( "Dokumentacija javnih članova" );
+ return decode( "Dokumentacija atributa" );
}
}
@@ -142,23 +146,23 @@ private:
* parameter s is name of the project name.
*/
virtual QCString trGeneratedAutomatically(const char *s)
- { QCString result="Napravljeno automatski Doxygen-om";
- if( s ) result+=(QCString)" za " + s;
+ { QCString result="Napravljeno automatski korišćenjem alata Doxygen";
+ if( s ) result+=(QCString)" za projekat " + s;
result+=" od izvornog koda.";
return decode( result );
}
/*! put after an enum name in the list of all members */
virtual QCString trEnumName()
- { return decode( "ime enum-a " ); }
+ { return decode( "ime nabrajanja " ); }
/*! put after an enum value in the list of all members */
virtual QCString trEnumValue()
- { return decode( "vrednost enum-a" ); }
+ { return decode( "vrednost nabrojane konstante" ); }
/*! put after an undocumented member in the list of all members */
virtual QCString trDefinedIn()
- { return decode( "definisano u" ); }
+ { return decode( "definicija u" ); }
// quick reference sections
@@ -170,18 +174,18 @@ private:
/*! This is put above each page as a link to the class hierarchy */
virtual QCString trClassHierarchy()
- { return decode( "Stablo klasa" ); }
+ { return decode( "Hijerarhija klasa" ); }
/*! This is put above each page as a link to the list of annotated classes */
virtual QCString trCompoundList()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode( "Sve strukture" );
+ return decode( "Spisak struktura" );
}
else
{
- return decode( "Sve klase" );
+ return decode( "Spisak klasa" );
}
}
@@ -189,17 +193,13 @@ private:
virtual QCString trFileList()
{ return decode( "Spisak datoteka" ); }
- /*! This is put above each page as a link to the list of all verbatim headers */
- virtual QCString trHeaderFiles()
- { return decode( "Zaglavlja" ); }
-
/*! 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 decode( "Svi članovi struktura" );
- }
+ return decode( "Sva polja struktura" );
+ }
else
{
return decode( "Svi članovi klasa" );
@@ -221,7 +221,7 @@ private:
/*! This is put above each page as a link to all related pages. */
virtual QCString trRelatedPages()
- { return decode( "Stranice povezane sa ovom" ); }
+ { return decode( "Stranice koje imaju veze sa ovom stranicom" ); }
/*! This is put above each page as a link to all examples. */
virtual QCString trExamples()
@@ -233,15 +233,16 @@ private:
/*! This is an introduction to the class hierarchy. */
virtual QCString trClassHierarchyDescription()
- { return decode( "Stablo nasleđivanja je složeno "
- "približno po abecedi:" ); }
+ { return decode( "Hijerahija klasa uređena približno "
+ "po abecedi:" );
+ }
/*! This is an introduction to the list with all files. */
virtual QCString trFileListDescription(bool extractAll)
{
QCString result="Spisak svih ";
- if (!extractAll) result+="dokumetovanih ";
- result+="datoteka, sa kratkim opisom:";
+ if (!extractAll) result+="dokumentovanih ";
+ result+="datoteka, sa kratkim opisima:";
return decode( result );
}
@@ -251,12 +252,12 @@ private:
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode( "Spisak struktura sa kratkim opisom:" );
+ return decode( "Spisak struktura sa kratkim opisima:" );
}
else
{
- return decode( "Spisak klasa, struktura, unija i interfejsa sa kratkim opisom:" );
-
+ return decode( "Spisak klasa, struktura, "
+ "unija i interfejsa sa kratkim opisima:" );
}
}
@@ -270,33 +271,33 @@ private:
}
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- result+="članova struktura ili unija";
+ result+="članova struktura/unija";
}
else
{
result+="članova klasa";
}
- result+=" sa linkovima na ";
+ result+=" sa vezama ka ";
if (extractAll)
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- result+="dokumentaciju članova struktura/unija:";
+ result+="dokumentaciji svakog polja strukture/unije:";
}
else
{
- result+="dokumentaciju svakog člana klase:";
+ result+="dokumentaciji svakog člana klase:";
}
}
else
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- result+="strukture/unije koje pripadaju:";
+ result+="strukturama/unijama kojima pripadaju:";
}
else
{
- result+="klase koje pripadaju:";
+ result+="klasama kojima pripadaju:";
}
}
return decode( result );
@@ -310,48 +311,34 @@ private:
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- result+="funkcija, promenjiva, makro zamena, enum-ova, i typedef-ova";
+ result+="funkcija, promenljivih, makro zamena, nabrajanja i definicija tipa";
}
else
{
result+="članova";
}
-
- result+=" sa linkovima na ";
-
+ result+=" sa vezama ka ";
if (extractAll)
- result+="datoteke u kojima se nalaze:";
+ result+="datotekama u kojima se nalaze:";
else
- result+=" dokumentaciju:";
-
+ result+="dokumentaciji:";
return decode( result );
}
- /*! This is an introduction to the page with the list of all header files. */
- virtual QCString trHeaderFilesDescription()
- { return decode( "Zaglavlja koje izgrađuju API:" ); }
-
/*! This is an introduction to the page with the list of all examples */
virtual QCString trExamplesDescription()
- { return decode( "Spisak primera:" ); }
+ { return decode( "Spisak svih primera:" ); }
/*! This is an introduction to the page with the list of related pages */
virtual QCString trRelatedPagesDescription()
- { return decode( "Spisak svih sličnih stranica:" ); }
+ { return decode( "Spisak stranica koje imaju veze sa ovom stranicom:" ); }
/*! This is an introduction to the page with the list of class/file groups */
virtual QCString trModulesDescription()
{ return decode( "Spisak svih modula:" ); }
- /*! This sentences is used in the annotated class/file lists if no brief
- * description is given.
- */
- virtual QCString trNoDescriptionAvailable()
- { return decode( "Opis nije dostupan" ); }
-
// index titles (the project name is prepended for these)
-
/*! This is used in HTML as the title of index.html. */
virtual QCString trDocumentation()
{ return decode("Dokumentacija" ); }
@@ -360,13 +347,13 @@ private:
* index of all groups.
*/
virtual QCString trModuleIndex()
- { return decode( "Index modula" ); }
+ { return decode( "Indeks modula" ); }
/*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
*/
virtual QCString trHierarchicalIndex()
- { return decode( "Hijerarhijski sadžraj" ); }
+ { return decode( "Hijerarhijski sadržaj" ); }
/*! This is used in LaTeX as the title of the chapter with the
* annotated compound index.
@@ -375,11 +362,11 @@ private:
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode( "Glavni sadržaj" );
+ return decode( "Spisak struktura/unija" );
}
else
{
- return decode( "Glavni sadržaj" );
+ return decode( "Spisak klasa" );
}
}
@@ -402,11 +389,11 @@ private:
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return "Dokumentacija stuktura";
+ return decode( "Dokumentacija stuktura/unija" );
}
else
{
- return "Dokumentacija klasa";
+ return decode( "Dokumentacija klasa" );
}
}
@@ -414,19 +401,19 @@ private:
* the documentation of all files.
*/
virtual QCString trFileDocumentation()
- { return "Dokumentacija datoteke"; }
+ { return decode( "Dokumentacija datoteke" ); }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all examples.
*/
virtual QCString trExampleDocumentation()
- { return "Dokumentacija primera"; }
+ { return decode( "Dokumentacija primera" ); }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all related pages.
*/
virtual QCString trPageDocumentation()
- { return "Dokumentacija stranice"; }
+ { return decode( "Dokumentacija stranice" ); }
/*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual()
@@ -436,85 +423,79 @@ private:
* list of defines
*/
virtual QCString trDefines()
- { return "Makro zamene"; }
+ { return decode( "Makro zamene" ); }
/*! This is used in the documentation of a file as a header before the
* list of function prototypes
*/
virtual QCString trFuncProtos()
- { return "Deklaracija funkcije"; }
+ { return decode( "Deklaracije funkcija" ); }
/*! This is used in the documentation of a file as a header before the
* list of typedefs
*/
virtual QCString trTypedefs()
- { return "Typedef-ovi"; }
+ { return decode( "Definicije tipa" ); }
/*! This is used in the documentation of a file as a header before the
* list of enumerations
*/
virtual QCString trEnumerations()
- { return "Enum-ovi"; }
+ { return decode( "Nabrajanja" ); }
/*! This is used in the documentation of a file as a header before the
* list of (global) functions
*/
virtual QCString trFunctions()
- { return "Funkcije"; }
+ { return decode( "Funkcije" ); }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
virtual QCString trVariables()
- { return "Promenjive"; }
+ { return decode( "Promenljive" ); }
/*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
virtual QCString trEnumerationValues()
- { return "Vrednosti enum-ova"; }
+ { return decode( "Vrednosti nabrojanih konstanti" ); }
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
*/
virtual QCString trDefineDocumentation()
- { return "Dokumentacija makro zamene"; }
+ { return decode( "Dokumentacija makro zamene" ); }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for function prototypes
*/
virtual QCString trFunctionPrototypeDocumentation()
- { return "Dokumentacija deklaracije funkcije"; }
+ { return decode( "Dokumentacija deklaracije funkcije" ); }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs
*/
virtual QCString trTypedefDocumentation()
- { return "Dokumentacija typedef-a"; }
+ { return decode( "Dokumentacija definicije tipa" ); }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types
*/
virtual QCString trEnumerationTypeDocumentation()
- { return "Dokumetacija enum-a"; }
-
- /*! This is used in the documentation of a file/namespace before the list
- * of documentation blocks for enumeration values
- */
- virtual QCString trEnumerationValueDocumentation()
- { return "Dokumentacija enum vrednosti"; }
+ { return decode( "Dokumentacija nabrajanja" ); }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for functions
*/
virtual QCString trFunctionDocumentation()
- { return "Dokumentacija funkcije"; }
+ { return decode( "Dokumentacija funkcije" ); }
/*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for variables
*/
virtual QCString trVariableDocumentation()
- { return "Dokumentacija promenjive"; }
+ { return decode( "Dokumentacija promenljive" ); }
/*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds
@@ -523,11 +504,11 @@ private:
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return "Strukture";
+ return decode( "Strukture i unije" );
}
else
{
- return "Klase i strukture";
+ return decode( "Klase, strukture i unije" );
}
}
@@ -536,16 +517,16 @@ private:
*/
virtual QCString trGeneratedAt(const char *date,const char *projName)
{
- QCString result=(QCString)"Napravljeno " + date;
- if ( projName ) result+=(QCString)" za " + projName;
- result+=(QCString)" od";
+ QCString result=(QCString)"[" + date + "] Napravljeno automatski ";
+ if ( projName ) result+=(QCString)" za projekat " + projName;
+ result+=(QCString)" upotrebom ";
return decode( result );
}
/*! This is part of the sentence used in the standard footer of each page.
*/
virtual QCString trWrittenBy()
{
- return "napisao";
+ return decode( "napisao" );
}
/*! this text is put before a class diagram */
@@ -558,29 +539,21 @@ private:
virtual QCString trForInternalUseOnly()
{ return decode( "Samo za unutrašnju upotrebu." ); }
- /*! this text is generated when the \\reimp command is used. */
- virtual QCString trReimplementedForInternalReasons()
- { return decode("Preurađeno zbog unutrašnjih razloga; Nema uticaja na API." ); }
-
/*! this text is generated when the \\warning command is used. */
virtual QCString trWarning()
- { return "Upozorenje"; }
-
- /*! this text is generated when the \\bug command is used. */
- virtual QCString trBugsAndLimitations()
- { return decode( "Greške i ograničenja" ); }
+ { return decode( "Upozorenje" ); }
/*! this text is generated when the \\version command is used. */
virtual QCString trVersion()
- { return "Verzija"; } // inacica
+ { return decode( "Verzija" ); }
/*! this text is generated when the \\date command is used. */
virtual QCString trDate()
- { return "Datum"; }
+ { return decode( "Datum" ); }
/*! this text is generated when the \\return command is used. */
virtual QCString trReturns()
- { return decode( "Vraćene vrednosti" ); }
+ { return decode( "Vrednost funkcije" ); }
/*! this text is generated when the \\sa command is used. */
virtual QCString trSeeAlso()
@@ -588,15 +561,15 @@ private:
/*! this text is generated when the \\param command is used. */
virtual QCString trParameters()
- { return "Parametri"; }
+ { return decode( "Parametri" ); }
/*! this text is generated when the \\exception command is used. */
virtual QCString trExceptions()
- { return "Izuzeci"; }
+ { return decode( "Izuzeci" ); }
/*! this text is used in the title page of a LaTeX document. */
virtual QCString trGeneratedBy()
- { return "Napravio"; }
+ { return decode( "Napravio" ); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990307
@@ -604,7 +577,7 @@ private:
/*! used as the title of page containing all the index of all namespaces. */
virtual QCString trNamespaceList()
- { return "Spisak prostora imena"; }
+ { return decode( "Spisak prostora imena" ); }
/*! used as an introduction to the namespace list */
virtual QCString trNamespaceListDescription(bool extractAll)
@@ -619,7 +592,7 @@ private:
* friends of a class
*/
virtual QCString trFriends()
- { return "Prijatelji"; }
+ { return decode( "Prijatelji" ); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
@@ -629,7 +602,7 @@ private:
* related classes
*/
virtual QCString trRelatedFunctionDocumentation()
- { return decode( "Dokumentacija prijateljskih funkcija ili klasa" ); }
+ { return decode( "Dokumentacija prijatelja i relevantnih funkcija" ); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
@@ -641,19 +614,17 @@ private:
bool isTemplate)
{
QCString result( "Dokumentacija " );
-
switch(compType)
{
case ClassDef::Class: result+="klase "; break;
case ClassDef::Struct: result+="strukture "; break;
case ClassDef::Union: result+="unije "; break;
case ClassDef::Interface: result+="interfejsa "; break;
- case ClassDef::Protocol: result+="protokola "; break; // grcka rec
- case ClassDef::Category: result+="kategorije "; break; //
+ case ClassDef::Protocol: result+="protokola "; break;
+ case ClassDef::Category: result+="kategorije "; break;
case ClassDef::Exception: result+="izuzetka "; break;
}
if (isTemplate) result += "šablona ";
-
result += clName;
return decode( result );
}
@@ -671,15 +642,15 @@ private:
{
QCString result="Opis prostora imena ";
result += namespaceName;
- return result;
+ return decode( result );
}
virtual QCString trPublicMembers()
{ return decode("Javni članovi"); }
virtual QCString trPublicSlots()
- { return "Javni slotovi"; }
+ { return decode( "Javni slotovi" ); }
virtual QCString trSignals()
- { return "Signali"; }
+ { return decode( "Signali" ); }
virtual QCString trStaticPublicMembers()
{ return decode("Zajednički javni članovi"); }
virtual QCString trProtectedMembers()
@@ -725,15 +696,15 @@ private:
*/
virtual QCString trInheritsList(int numEntries)
{
- return decode("Nasleđeno od "+trWriteList(numEntries)+".");
+ return decode("Spisak osnovnih klasa: "+trWriteList(numEntries)+".");
}
- /*! used in class documentation to produce a list of super classes,
+ /*! used in class documentation to produce a list of derived classes,
* if class diagrams are disabled.
*/
virtual QCString trInheritedByList(int numEntries)
{
- return decode( "Nasleđeno u "+trWriteList(numEntries)+"." );
+ return decode( "Spisak izvedenih klasa: "+trWriteList(numEntries)+"." );
}
/*! used in member documentation blocks to produce a list of
@@ -741,15 +712,15 @@ private:
*/
virtual QCString trReimplementedFromList(int numEntries)
{
- return decode("Preurađeno od "+trWriteList(numEntries)+"." );
+ return decode("Menja definiciju iz "+trWriteList(numEntries)+"." );
}
/*! used in member documentation blocks to produce a list of
* all member that overwrite the implementation of this member.
*/
virtual QCString trReimplementedInList(int numEntries)
- {
- return decode("Preurađeno u "+trWriteList(numEntries)+"." );
+ { //! Ako već ne možemo jednu reč (redefinicija), da uskladimo sa prethodnim i izbacimo upotrebu roda
+ return decode("Definicija je izmenjena u "+trWriteList(numEntries)+"." );
}
/*! This is put above each page as a link to all members of namespaces. */
@@ -761,24 +732,24 @@ private:
{
QCString result="Spisak svih ";
if (!extractAll) result+="dokumentovanih ";
- result+="članova prostora imena sa linkovima na ";
+ result+="članova prostora imena sa vezama prema ";
if (extractAll)
- result+="dokumentaciju svakog člana prostora imena: ";
+ result+="dokumentaciji svakog člana prostora imena: ";
else
- result+="prostor imena kojima pripadaju: ";
+ result+="prostorima imena kojima pripadaju: ";
return decode( result );
}
/*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces.
*/
virtual QCString trNamespaceIndex()
- { return "Index prostora imena"; }
+ { return decode( "Indeks prostora imena" ); }
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all namespaces.
*/
virtual QCString trNamespaceDocumentation()
- { return "Dokumentacija prostora imena"; }
+ { return decode( "Dokumentacija prostora imena" ); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990522
@@ -788,7 +759,7 @@ private:
* namespaces in a file.
*/
virtual QCString trNamespaces()
- { return "Prostori imena"; }
+ { return decode( "Prostori imena" ); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990728
@@ -812,16 +783,16 @@ private:
case ClassDef::Category: result+="ove kategorije"; break;
case ClassDef::Exception: result+="ovog izuzetka"; break;
}
- result+=" je napravljena iz ";
- if (single) result+=":"; else result+=":";
- return result;
+ result+=" je napravljena na osnovu ";
+ if (single) result+="datoteke "; else result+="sledećih datoteka:";
+ return decode( result );
}
/*! This is in the (quick) index as a link to the alphabetical compound
* list.
*/
virtual QCString trAlphabeticalList()
- { return "Abecedni spisak"; }
+ { return decode( "Abecedni spisak" ); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990901
@@ -829,34 +800,30 @@ private:
/*! This is used as the heading text for the retval command. */
virtual QCString trReturnValues()
- { return decode( "Vraćena vrednost" ); }
+ { return decode( "Karakteristične vrednosti funkcije" ); }
/*! This is in the (quick) index as a link to the main page (index.html)
*/
virtual QCString trMainPage()
- { return "Glavna strana"; }
+ { return decode( "Glavna strana" ); }
/*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
*/
virtual QCString trPageAbbreviation()
- { return "str."; }
+ { return decode( "str." ); }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-991003
//////////////////////////////////////////////////////////////////////////
- virtual QCString trSources()
- {
- return "Izvorne datoteke";
- }
virtual QCString trDefinedAtLineInSourceFile()
- {
- return "Definisano u redu @0 datoteke @1.";
+ { //! Izbacujemo rod
+ return decode( "Definicija je u redu @0 datoteke @1." );
}
virtual QCString trDefinedInSourceFile()
- {
- return "Definisano u datoteci @0.";
+ { //! Izbacujemo rod
+ return decode( "Definicija je u datoteci @0." );
}
//////////////////////////////////////////////////////////////////////////
@@ -865,7 +832,7 @@ private:
virtual QCString trDeprecated()
{
- return "Zastarelo";
+ return decode( "Zastarelo" );
}
//////////////////////////////////////////////////////////////////////////
@@ -875,7 +842,7 @@ private:
/*! this text is put before a collaboration diagram */
virtual QCString trCollaborationDiagram(const char *clName)
{
- return decode( (QCString)"Dijagram nasleđenih članova za "+clName+":" );
+ return decode( (QCString)"Klasni dijagram za "+clName+":" );
}
/*! this text is put before an include dependency graph */
virtual QCString trInclDepGraph(const char *fName)
@@ -885,32 +852,32 @@ private:
/*! header that is put before the list of constructor/destructors. */
virtual QCString trConstructorDocumentation()
{
- return "Dokumentacija konstruktora i destruktora";
+ return decode( "Dokumentacija konstruktora i destruktora" );
}
/*! Used in the file documentation to point to the corresponding sources. */
virtual QCString trGotoSourceCode()
{
- return "Izvorni kod.";
+ return decode( "Izvorni kod." );
}
/*! Used in the file sources to point to the corresponding documentation. */
virtual QCString trGotoDocumentation()
{
- return "Dokumentacija.";
+ return decode( "Dokumentacija." );
}
/*! Text for the \\pre command */
virtual QCString trPrecondition()
{
- return "Preduslovi";
+ return decode( "Preduslovi" );
}
/*! Text for the \\post command */
virtual QCString trPostcondition()
{
- return "Postuslovi";
+ return decode( "Stanje po izvršenju" );
}
/*! Text for the \\invariant command */
virtual QCString trInvariant()
{
- return "Invarijanta";
+ return decode( "Invarijanta" );
}
/*! Text shown before a multi-line variable/enum initialization */
virtual QCString trInitialValue()
@@ -920,23 +887,23 @@ private:
/*! Text used the source code in the file index */
virtual QCString trCode()
{
- return "kod";
+ return decode( "programski kod" );
}
virtual QCString trGraphicalHierarchy()
{
- return decode("Grafički prikaz stabla klasa");
+ return decode( "Hijerarhija klasa u obliku grafa" );
}
virtual QCString trGotoGraphicalHierarchy()
{
- return decode("Prikaži stablo klasa u grafičkom obliku");
+ return decode( "Prikaz hijerarhije klasa u obliku grafa" );
}
virtual QCString trGotoTextualHierarchy()
{
- return decode( "Prikaži stablo klasa u tekstualnom obliku" );
+ return decode( "Prikaz hijerarhije klasa u obliku nazubljenog teksta" );
}
virtual QCString trPageIndex()
{
- return "Indeks stranice";
+ return decode( "Indeks stranice" );
}
//////////////////////////////////////////////////////////////////////////
@@ -945,17 +912,17 @@ private:
virtual QCString trNote()
{
- return "Primedba"; // ili Beleska ili Zapazanje. Primedba zvuci negativno
+ return decode( "Beleška" );
}
virtual QCString trPublicTypes()
{
- return "Javni tipovi";
+ return decode( "Javni tipovi" );
}
virtual QCString trPublicAttribs()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return decode( "Članovi" );
+ return decode( "Polja" );
}
else
{
@@ -998,12 +965,12 @@ private:
/*! Used as a marker that is put before a \\todo item */
virtual QCString trTodo()
{
- return decode( "Neurađeno" );
+ return decode( "Uraditi" );
}
/*! Used as the header of the todo list */
virtual QCString trTodoList()
{
- return decode("Spisak neurađenog");
+ return decode("Spisak stvari koje treba uraditi");
}
//////////////////////////////////////////////////////////////////////////
@@ -1011,12 +978,12 @@ private:
//////////////////////////////////////////////////////////////////////////
virtual QCString trReferencedBy()
- {
- return decode( "Korišćeno od" );
+ { //! Izbegavanje roda. Uskladjivanje sa trReferences
+ return decode( "Korisnici: " );
}
virtual QCString trRemarks()
{
- return decode( "Zapažanja" );
+ return decode( "Napomene" );
}
virtual QCString trAttention()
{
@@ -1024,12 +991,12 @@ private:
}
virtual QCString trInclByDepGraph()
{
- return decode("Ovaj graf pokazuje koja datoteka direktno "
+ return decode("Ovaj graf pokazuje koje datoteke direktno "
"ili indirektno uključuju ovu datoteku: ");
}
virtual QCString trSince()
{
- return "Od";
+ return decode( "Od" );
}
//////////////////////////////////////////////////////////////////////////
@@ -1051,23 +1018,23 @@ private:
"doxygen.<p>\n"
"Na primer:\n"
"\\code\n"
- "/*! Nevidljiva klasa ( nemoe stati na graf zbog zadatih ogranienja ) */\n"
+ "/*! Klasa nevidljiva zbog trenutnih ograničenja */\n"
"class Invisible { };\n\n"
- "/*! Odseena klasa, neke osnovne klase su sakrivene */\n"
+ "/*! Klasa kojoj se ne vidi način izvođenja */\n"
"class Truncated : public Invisible { };\n\n"
- "/* Nedokumentovana klasa */\n"
+ "/* Klasa bez doxygen komentara */\n"
"class Undocumented { };\n\n"
- "/*! Javno nasleena klasa */\n"
+ "/*! Klasa izvedena iz osnovne klase javnim izvođenjem */\n"
"class PublicBase : public Truncated { };\n\n"
- "/*! Sablon klasa */\n"
+ "/*! Šablonska klasa */\n"
"template<class T> class Templ { };\n\n"
- "/*! Zatieno nasleena klasa */\n"
+ "/*! Klasa izvedena iz osnovne klase zaštićenim izvođenjem */\n"
"class ProtectedBase { };\n\n"
- "/*! Privatno nasleena klasa */\n"
+ "/*! Klasa izvedena iz osnovne klase privatnim izvođenjem */\n"
"class PrivateBase { };\n\n"
- "/*! Klasa koja je koriena od drugih klasa*/\n"
+ "/*! Klasa korišćena u nekoj/nekim od drugih klasa */\n"
"class Used { };\n\n"
- "/*! Nadklasa koja nasleuje/koristi ostale */\n"
+ "/*! Klasa izvedena iz više osnovnih klasa */\n"
"class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n"
" private PrivateBase,\n"
@@ -1079,32 +1046,31 @@ private:
"};\n"
"\\endcode\n"
"Ako je \\c MAX_DOT_GRAPH_HEIGHT tag u konfiguracionoj datoteci "
- "postavljen na 200 gornje veze će izgledati:"
+ "postavljen na \\c 200 graf izvođenja će izgledati ovako:"
"<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
+ "Graf će biti odsečen ako ne stane unutar zadatih granica.\n"
"<p>\n"
-
"Pravougaonici imaju sledeća značenja:\n"
"<ul>\n"
- "<li>Puni crni predstavlja strukturu ili klasu za koju je graf napravljen.\n"
+ "<li>Puni sivi predstavlja strukturu ili klasu za koju je graf napravljen.\n"
"<li>Sa crnom ivicom predstavlja dokumentovanu strukturu ili klasu.\n"
- "<li>Sa sivom ivicom predstavlja nedokumentovanu strukturu ili klasu.\n"
+ "<li>Sa sivom ivicom predstavlja strukturu ili klasu bez doxygen komentara.\n"
"<li>Sa crvenom ivicom predstavlja dokumentovanu strukturu ili klasu\n"
- "za koju nije prikazan graf nasleđivanja/korišćenja. Graf je odsečen "
- "ako ne stane unutar određenih granica."
- "</ul>"
+ "za koju nisu prikazani svi relevantni grafovi.\n"
+ "</ul>"
"Strelice imaju sledeća značenja:\n"
"<ul>\n"
- "<li>Tamnoplava strelica označava javno nasleđivanje.\n"
- "<li>Tamnozelena strelica označava zaštićeno nasleđivanje.\n"
- "<li>Tamnocrvena strelica označava privatno nasleđivanje.\n"
- "<li>Ljubičasta isprekidana strelica ako je klasa koristi ili je njen član. "
- "Strelica je označena imenom člana.\n"
- "<li>Zuta strelica označava vezu između primerka šablona"
- " i šablon klase od koje je napravljena. "
- "Strelica je označena imenom parametra šablona.\n"
+ "<li>Tamnoplava strelica označava javno izvođenje.\n"
+ "<li>Tamnozelena strelica označava zaštićeno izvođenje.\n"
+ "<li>Tamnocrvena strelica označava privatno izvođenje.\n"
+ "<li>Ljubičasta isprekidana strelica označava da je klasa sadržana "
+ "ili korišćena u drugoj klasi. Strelica je označena imenom atributa "
+ "preko koga se pristupa klasi/strukturi na koju pokazuje.\n"
+ "<li>Žuta isprekidana strelica označava vezu između primerka šablona i"
+ " šablona klase od kojeg je primerak napravljen. "
+ "Strelica je označena stvarnim argumentima šablona.\n"
"</ul>\n"
);
-
}
/*! text for the link to the legend page */
virtual QCString trLegend()
@@ -1119,12 +1085,12 @@ private:
/*! Used as a marker that is put before a test item */
virtual QCString trTest()
{
- return "Test";
+ return decode( "Test" );
}
/*! Used as the header of the test list */
virtual QCString trTestList()
{
- return "Spisak testova";
+ return decode( "Spisak testova" );
}
//////////////////////////////////////////////////////////////////////////
@@ -1134,7 +1100,7 @@ private:
/*! Used as a section header for KDE-2 IDL methods */
virtual QCString trDCOPMethods()
{
- return "DCOP metode";
+ return decode( "DCOP metode" );
}
//////////////////////////////////////////////////////////////////////////
@@ -1156,21 +1122,16 @@ private:
// new since 1.2.4
//////////////////////////////////////////////////////////////////////////
- /*! Used for Java interfaces in the summary section of Java packages */
- virtual QCString trInterfaces()
- {
- return "Interfejsi"; // Radna okruzenja. Ali to je dve reci.
- }
/*! Used for Java classes in the summary section of Java packages */
virtual QCString trClasses()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return "Strukture";
+ return decode( "Strukture i unije" );
}
else
{
- return "Klase";
+ return decode( "Klase" );
}
}
/*! Used as the title of a Java package */
@@ -1181,27 +1142,22 @@ private:
/*! Title of the package index page */
virtual QCString trPackageList()
{
- return "Spisak paketa";
+ return decode( "Spisak paketa" );
}
/*! The description of the package index page */
virtual QCString trPackageListDescription()
{
- return "Paketi s kratkim opisom (ukoliko postoji):";
+ return decode( "Paketi s kratkim opisom (ukoliko postoji):" );
}
/*! The link name in the Quick links header for each page */
virtual QCString trPackages()
{
- return "Paketi";
- }
- /*! Used as a chapter title for Latex & RTF output */
- virtual QCString trPackageDocumentation()
- {
- return "Dokumentacija paketa";
+ return decode( "Paketi" );
}
/*! Text shown before a multi-line define */
virtual QCString trDefineValue()
{
- return "Vrednost:";
+ return decode( "Vrednost:" );
}
//////////////////////////////////////////////////////////////////////////
@@ -1276,7 +1232,7 @@ private:
{
QCString result( (first_capital ? "Klas" : "klas") );
result+= (singular ? "a" : "e");
- return result;
+ return decode( result );
}
/*! This is used for translation of the word that will possibly
@@ -1285,9 +1241,9 @@ private:
*/
virtual QCString trFile(bool first_capital, bool singular)
{
- QCString result((first_capital ? "Datotek" : "Datotek"));
+ QCString result((first_capital ? "Datotek" : "datotek"));
result+= (singular ? "a" : "e");
- return result;
+ return decode( result );
}
/*! This is used for translation of the word that will possibly
@@ -1297,9 +1253,9 @@ private:
virtual QCString trNamespace(bool first_capital, bool singular)
{
QCString result((first_capital ? "Prostor" : "prostor"));
- result += (singular ? "" : "i");
+ result += (singular ? "" : "i");
result += " imena";
- return result;
+ return decode( result );
}
/*! This is used for translation of the word that will possibly
@@ -1310,7 +1266,7 @@ private:
{
QCString result((first_capital ? "Grup" : "grup"));
result+= (singular ? "a" : "e");
- return result;
+ return decode( result );
}
/*! This is used for translation of the word that will possibly
@@ -1321,7 +1277,7 @@ private:
{
QCString result((first_capital ? "Stran" : "stran"));
result+= (singular ? "a" : "e");
- return result;
+ return decode( result );
}
/*! This is used for translation of the word that will possibly
@@ -1339,22 +1295,11 @@ private:
* 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 ? "Polj" : "polj"));
- result+= (singular ? "e" : "a");
- return result;
- }
-
- /*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
- * of the category.
- */
virtual QCString trGlobal(bool first_capital, bool singular)
{
- QCString result((first_capital ? "Global" : "global"));
- result+= (singular ? "no" : "ni");
- return result;
+ QCString result((first_capital ? "Globalni " : "globalni "));
+ result+= (singular ? "podatak" : "podaci");
+ return decode( result );
}
//////////////////////////////////////////////////////////////////////////
@@ -1389,16 +1334,16 @@ private:
* members that are implemented by this one.
*/
virtual QCString trImplementedFromList(int numEntries)
- {
- return decode( "Definiše "+trWriteList(numEntries)+"." );
+ { //! "Definiše" je previše kratko, ispada sa de definišu same apstraktne klase
+ return decode( "Definiše apstraktnu funkciju deklarisanu u "+trWriteList(numEntries)+"." );
}
/*! used in member documentation blocks to produce a list of
* all members that implement this abstract member.
*/
virtual QCString trImplementedInList(int numEntries)
- {
- return decode( "Definisano u " + trWriteList(numEntries) + "." );
+ { //! Izbegavanje roda
+ return decode( "Definicija u " + trWriteList(numEntries) + "." );
}
//////////////////////////////////////////////////////////////////////////
@@ -1422,8 +1367,9 @@ private:
*/
virtual QCString trDeprecatedList()
{
- return decode( "Spisak zastarelih funkcija članica" );
+ return decode( "Spisak zastarelih stvari" );
}
+
//////////////////////////////////////////////////////////////////////////
// new since 1.2.18
//////////////////////////////////////////////////////////////////////////
@@ -1440,6 +1386,7 @@ private:
{
return decode( "Dokumentacija događaja" );
}
+
//////////////////////////////////////////////////////////////////////////
// new since 1.3
//////////////////////////////////////////////////////////////////////////
@@ -1448,7 +1395,7 @@ private:
*/
virtual QCString trPackageTypes()
{
- return decode( "Tipovi u Paketu" );
+ return decode( "Tipovi u paketu" );
}
/*! Used as a heading for a list of Java class functions with package
* scope.
@@ -1493,7 +1440,7 @@ private:
/*! Put in front of the call graph for a function. */
virtual QCString trCallGraph()
{
- return decode( "Graf pozivanja funkcija:" );
+ return decode( "Graf poziva iz ove funkcije:" );
}
//////////////////////////////////////////////////////////////////////////
@@ -1527,22 +1474,17 @@ private:
{
if (numDocuments==0)
{
- return decode("Nema dokumenta koji odgovaraju vašem upitu");
+ return decode("Nema dokumenata koji odgovaraju Vašem upitu.");
}
else if (numDocuments==1)
- { // 10x 2 Ivana Miletic 4 gramatical consutation.
- return decode("Nađen je <b>1</b> dokument koji odgovara vašem upitu.");
- }
- else if (numDocuments<5)
- { // 10x 2 Ivana Miletic 4 gramatical consutation.
- return decode("Nađena su <b>$num</b> dokumenta koji odgovaraju vašem upitu."
- "Najbolji su prikazani prvi.");
- }
- else
- { // 10x 2 Ivana Miletic 4 gramatical consutation.
- return decode("Nađeno je <b>$num</b> dokumenata koji odgovaraju vašem upitu."
+ { return decode("Nađen je <b>1</b> dokument koji odgovara vašem upitu."); }
+ else if (numDocuments<5)
+ { return decode("Nađena su <b>$num</b> dokumenta koji odgovaraju vašem upitu."
+ "Najbolji su prikazani prvi."); }
+ else
+ { return decode("Nađeno je <b>$num</b> dokumenata koji odgovaraju vašem upitu."
"Najbolji su prikazani prvi.");
- }
+ }
}
/*! 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.
@@ -1571,7 +1513,7 @@ private:
* hierarchy.
*/
virtual QCString trDirIndex()
- { return decode( "Stablo direktorijuma" ); }
+ { return decode( "Hijerarhija direktorijuma" ); }
/*! This is used as the name of the chapter containing the documentation
* of the directories.
@@ -1583,13 +1525,14 @@ private:
* Quick links of a HTML page, to link to the directory hierarchy.
*/
virtual QCString trDirectories()
- { return decode( "direktorijumi" ); }
+ { return decode( "Direktorijumi" ); }
/*! This returns a sentences that introduces the directory hierarchy.
* and the fact that it is sorted alphabetically per level
*/
virtual QCString trDirDescription()
- { return decode( "Stablo direktorijuma slozeno približno po abecednom redu" );
+ { return decode( "Hijerarhija direktorijuma uređena približno "
+ "po abecedi:" );
}
/*! This returns the title of a directory page. The name of the
@@ -1608,13 +1551,288 @@ private:
return decode( result );
}
-
-};
+//////////////////////////////////////////////////////////////////////////
+// new since 1.4.1
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This text is added to the documentation when the \\overload command
+ * is used for a overloaded function.
+ */
+ virtual QCString trOverloadText()
+ {
+ return decode ( "Ovo je funkcija prekopljenog imena, razlikuje se "
+ "od gore navedene samo po argumentima koje prihvata." );
+ }
-// sh - - shashavo (,)
-// dj - - djordje
-// ch - , - chasha
-// cc - - cciccifu
-// zz - - zzaba
+//////////////////////////////////////////////////////////////////////////
+// new since 1.4.6
+//////////////////////////////////////////////////////////////////////////
+
+ /*! This is used to introduce a caller (or called-by) graph */
+ virtual QCString trCallerGraph()
+ { //! Možda je bolje "Graf pozivalaca ove funkcije"
+ return decode( "Graf funkcija koje pozivaju ovu funkciju:" );
+ }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for enumeration values
+ */
+ virtual QCString trEnumerationValueDocumentation()
+ { return decode( "Dokumentacija enum vrednosti" ); }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.5.4 (mainly for Fortran)
+//////////////////////////////////////////////////////////////////////////
+
+ /*! header that is put before the list of member subprograms (Fortran). */
+ virtual QCString trMemberFunctionDocumentationFortran()
+ { return "Dokumentacija funkcija i procedura"; }
+
+ /*! This is put above each page as a link to the list of annotated data types (Fortran). */
+ /*! @todo Koji je prevod za Compound u Fortran kontekstu */
+ virtual QCString trCompoundListFortran()
+ { return "Složeni tipovi podataka"; }
+
+ /*! This is put above each page as a link to all members of compounds (Fortran). */
+ virtual QCString trCompoundMembersFortran()
+ { return "Polja u složenim tipovima podataka"; }
+
+ /*! This is an introduction to the annotated compound list (Fortran). */
+ virtual QCString trCompoundListDescriptionFortran()
+ { return "Spisak složenih tipova podataka sa kratkim opisima:"; }
+
+ /*! This is an introduction to the page with all data types (Fortran). */
+ virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
+ {
+ QCString result=" Spisak svih ";
+ if (!extractAll)
+ {
+ result+="dokumentovanih ";
+ }
+ result+="polja složenih tipova podataka";
+ result+=" sa vezama ka ";
+ if (!extractAll)
+ {
+ result+="dokumentaciji strukture podataka za svakog člana";
+ }
+ else
+ {
+ result+="složenim tipovima podataka kojima pripadaju:";
+ }
+ return result;
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * annotated compound index (Fortran).
+ */
+ virtual QCString trCompoundIndexFortran()
+ { return "Sadržaj složenog tipa podataka"; }
+
+ /*! This is used in LaTeX as the title of the chapter containing
+ * the documentation of all data types (Fortran).
+ */
+ virtual QCString trTypeDocumentation()
+ { return "Dokumentacija tipova podataka"; }
+
+ /*! This is used in the documentation of a file as a header before the
+ * list of (global) subprograms (Fortran).
+ */
+ virtual QCString trSubprograms()
+ { return "Funkcije i procedure"; }
+
+ /*! This is used in the documentation of a file/namespace before the list
+ * of documentation blocks for subprograms (Fortran)
+ */
+ virtual QCString trSubprogramDocumentation()
+ { return "Dokumentacija funkcija i procedura"; }
+
+ /*! This is used in the documentation of a file/namespace/group before
+ * the list of links to documented compounds (Fortran)
+ */
+ virtual QCString trDataTypes()
+ { return "Složeni tipovi podataka"; }
+
+ /*! used as the title of page containing all the index of all modules (Fortran). */
+ virtual QCString trModulesList()
+ { return "Spisak modula"; }
+
+ /*! used as an introduction to the modules list (Fortran) */
+ virtual QCString trModulesListDescription(bool extractAll)
+ {
+ QCString result="Spisak svih ";
+ if (!extractAll) result+="dokumentovanih ";
+ result+="modula sa kratkim opisima:";
+ return result;
+ }
+
+ /*! used as the title of the HTML page of a module/type (Fortran) */
+ virtual QCString trCompoundReferenceFortran(const char *clName,
+ ClassDef::CompoundType compType,
+ bool isTemplate)
+ {
+ QCString result=(QCString)clName;
+ switch(compType)
+ {
+ case ClassDef::Class: result+=" Modul"; break;
+ case ClassDef::Struct: result+=" Tip"; break;
+ case ClassDef::Union: result+=" Unija"; break;
+ case ClassDef::Interface: result+=" Interfejs"; break;
+ case ClassDef::Protocol: result+=" Protokol"; break;
+ case ClassDef::Category: result+=" Kategorija"; break;
+ case ClassDef::Exception: result+=" Izuzetak"; break;
+ }
+ result+=" - sažet pregled";
+ if (isTemplate) result+=" šablona";
+ return result;
+ }
+ /*! used as the title of the HTML page of a module (Fortran) */
+ virtual QCString trModuleReference(const char *namespaceName)
+ {
+ QCString result=namespaceName;
+ result+=" - sažet pregled modula";
+ return result;
+ }
+
+ /*! This is put above each page as a link to all members of modules. (Fortran) */
+ virtual QCString trModulesMembers()
+ { return "Članovi modula"; }
+
+ /*! This is an introduction to the page with all modules members (Fortran) */
+ virtual QCString trModulesMemberDescription(bool extractAll)
+ {
+ QCString result="Spisak svih ";
+ if (!extractAll) result+="dokumentovanih ";
+ result+="članova modula sa vezama ka ";
+ if (extractAll)
+ {
+ result+="dokumentaciji za svakog člana modula:";
+ }
+ else
+ {
+ result+="modulima kojima pripadaju:";
+ }
+ return result;
+ }
+
+ /*! This is used in LaTeX as the title of the chapter with the
+ * index of all modules (Fortran).
+ */
+ virtual QCString trModulesIndex()
+ { return "Spisak modula"; }
+
+ /*! 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 ? "Modul" : "modul"));
+ if (!singular) result+="i";
+ 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)"Dokumentacija za ovaj ";
+ switch(compType)
+ {
+ case ClassDef::Class: result+="modul"; break;
+ case ClassDef::Struct: result+="tip"; break;
+ case ClassDef::Union: result+="uniju"; break;
+ case ClassDef::Interface: result+="interfejs"; break;
+ case ClassDef::Protocol: result+="protokol"; break;
+ case ClassDef::Category: result+="kategoriju"; break;
+ case ClassDef::Exception: result+="izuzetak"; break;
+ }
+ result+=" napravljena je automatski od sledeć";
+ if (single) result+="e datoteke:"; else result+="ih datoteka:";
+ 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 ? "Tip" : "tip"));
+ if (!singular) result+="ovi";
+ 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 ? "Procedura" : "procedura"));
+ if (!singular) result = (first_capital ? "Procedure" : "procedure");
+ return result;
+ }
+
+ /*! C# Type Constraint list */
+ virtual QCString trTypeConstraints()
+ {
+ return "Ograničenja tipova";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// following methods have no corresponding entry in translator_en.h
+//////////////////////////////////////////////////////////////////////////
+
+// /*! This is put above each page as a link to the list of all verbatim headers */
+// virtual QCString trHeaderFiles()
+// { return decode( "Zaglavlja" ); }
+//
+// /*! This is an introduction to the page with the list of all header files. */
+// virtual QCString trHeaderFilesDescription()
+// { return decode( "Zaglavlja koje izgraduju API:" ); }
+//
+// /*! This sentences is used in the annotated class/file lists if no brief
+// * description is given.
+// */
+// virtual QCString trNoDescriptionAvailable()
+// { return decode( "Opis nije dostupan" ); }
+//
+// /*! this text is generated when the \\reimp command is used. */
+// virtual QCString trReimplementedForInternalReasons()
+// { return decode("Preuradeno zbog unutrasnjih razloga; Nema uticaja na API." ); }
+//
+// /*! this text is generated when the \\bug command is used. */
+// virtual QCString trBugsAndLimitations()
+// { return decode( "Greske i ogranicenja" ); }
+//
+// virtual QCString trSources()
+// {
+// return decode("Izvorne datoteke" );
+// }
+//
+// /*! Used for Java interfaces in the summary section of Java packages */
+// virtual QCString trInterfaces()
+// {
+// return decode( "Interfejsi" ); //!< Radna okruzenja. Ali to je dve reci.
+// }
+//
+// /*! Used as a chapter title for Latex & RTF output */
+// virtual QCString trPackageDocumentation()
+// {
+// return decode( "Dokumentacija paketa" );
+// }
+//
+// /*! This is used for translation of the word that will possibly
+// * be followed by a single name or by a list of names
+// * of the category.
+// */
+// virtual QCString trField(bool first_capital, bool singular)
+// {
+// QCString result((first_capital ? "Polj" : "polj"));
+// result+= (singular ? "e" : "a");
+// return decode( result );
+// }
+
+};
#endif
diff --git a/src/util.cpp b/src/util.cpp
index 113105e..976e423 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -488,7 +488,8 @@ int isAccessibleFromWithExpScope(Definition *scope,FileDef *fileScope,Definition
*/
ClassDef *newResolveTypedef(FileDef *fileScope,MemberDef *md,
MemberDef **pMemType,QCString *pTemplSpec,
- QCString *pResolvedType)
+ QCString *pResolvedType,
+ ArgumentList *actTemplParams)
{
//printf("newResolveTypedef(md=%p,cachedVal=%p)\n",md,md->getCachedTypedefVal());
bool isCached = md->isTypedefValCached(); // value already cached
@@ -509,7 +510,13 @@ ClassDef *newResolveTypedef(FileDef *fileScope,MemberDef *md,
g_resolvedTypedefs.insert(qname,md); // put on the trace list
+ ClassDef *typeClass = md->getClassDef();
QCString type = md->typeString(); // get the "value" of the typedef
+ if (typeClass && typeClass->isTemplate() && actTemplParams->count()>0)
+ {
+ type = substituteTemplateArgumentsInString(type,
+ typeClass->templateArguments(),actTemplParams);
+ }
QCString typedefValue = type;
int tl=type.length();
int ip=tl-1; // remove * and & at the end
@@ -947,7 +954,7 @@ int isAccessibleFromWithExpScope(Definition *scope,FileDef *fileScope,
if (newScope) // explicitScope is inside scope => newScope is the result
{
Definition *itemScope = item->getOuterScope();
- //printf(" scope traversal successful %s<->%s!\n",item->getOuterScope()->name().data(),newScope->name().data());
+ //printf(" scope traversal successful %s<->%s!\n",itemScope->name().data(),newScope->name().data());
//if (newScope && newScope->definitionType()==Definition::TypeClass)
//{
// ClassDef *cd = (ClassDef *)newScope;
@@ -975,7 +982,7 @@ int isAccessibleFromWithExpScope(Definition *scope,FileDef *fileScope,
//printf("scope(%s) is base class of newScope(%s)\n",
// scope->name().data(),newScope->name().data());
}
- else
+ else
{
int i=-1;
if (newScope->definitionType()==Definition::TypeNamespace)
@@ -1027,13 +1034,13 @@ int isAccessibleFromWithExpScope(Definition *scope,FileDef *fileScope,
i = isAccessibleFromWithExpScope(scope->getOuterScope(),fileScope,
item,explicitScopePart);
}
- //printf("> result=%d\n",i);
+ //printf(" | result=%d\n",i);
result = (i==-1) ? -1 : i+2;
}
}
else // failed to resolve explicitScope
{
- //printf("failed to resolve: scope=%s\n",scope->name().data());
+ //printf(" failed to resolve: scope=%s\n",scope->name().data());
if (scope->definitionType()==Definition::TypeNamespace)
{
NamespaceDef *nscope = (NamespaceDef*)scope;
@@ -1083,6 +1090,7 @@ static void getResolvedSymbol(Definition *scope,
FileDef *fileScope,
Definition *d,
const QCString &explicitScopePart,
+ ArgumentList *actTemplParams,
int &minDistance,
ClassDef *&bestMatch,
MemberDef *&bestTypedef,
@@ -1103,7 +1111,7 @@ static void getResolvedSymbol(Definition *scope,
g_visitedNamespaces.clear();
// test accessibility of definition within scope.
int distance = isAccessibleFromWithExpScope(scope,fileScope,d,explicitScopePart);
- //printf(" distance %s (%p) is %d\n",d->name().data(),d,distance);
+ //printf(" %s; distance %s (%p) is %d\n",scope->name().data(),d->name().data(),d,distance);
if (distance!=-1) // definition is accessible
{
// see if we are dealing with a class or a typedef
@@ -1173,7 +1181,7 @@ static void getResolvedSymbol(Definition *scope,
QCString type;
minDistance=distance;
MemberDef *enumType = 0;
- ClassDef *cd = newResolveTypedef(fileScope,md,&enumType,&spec,&type);
+ ClassDef *cd = newResolveTypedef(fileScope,md,&enumType,&spec,&type,actTemplParams);
if (cd) // type resolves to a class
{
//printf(" bestTypeDef=%p spec=%s type=%s\n",md,spec.data(),type.data());
@@ -1248,8 +1256,17 @@ ClassDef *getResolvedClassRec(Definition *scope,
)
{
//printf("[getResolvedClassRec(%s,%s)\n",scope?scope->name().data():"<global>",n);
- QCString name=n;
+ QCString name;
QCString explicitScopePart;
+ QCString strippedTemplateParams;
+ name=stripTemplateSpecifiersFromScope
+ (removeRedundantWhiteSpace(n),TRUE,
+ &strippedTemplateParams);
+ ArgumentList actTemplParams;
+ if (!strippedTemplateParams.isEmpty()) // template part that was stripped
+ {
+ stringToArgumentList(strippedTemplateParams,&actTemplParams);
+ }
int qualifierIndex = computeQualifiedIndex(name);
//printf("name=%s qualifierIndex=%d\n",name.data(),qualifierIndex);
@@ -1354,7 +1371,7 @@ ClassDef *getResolvedClassRec(Definition *scope,
int count=0;
for (dli.toFirst();(d=dli.current());++dli,++count) // foreach definition
{
- getResolvedSymbol(scope,fileScope,d,explicitScopePart,
+ getResolvedSymbol(scope,fileScope,d,explicitScopePart,&actTemplParams,
minDistance,bestMatch,bestTypedef,bestTemplSpec,
bestResolvedType);
}
@@ -1363,7 +1380,7 @@ ClassDef *getResolvedClassRec(Definition *scope,
{
//printf(" name is unique\n");
Definition *d = (Definition *)di;
- getResolvedSymbol(scope,fileScope,d,explicitScopePart,
+ getResolvedSymbol(scope,fileScope,d,explicitScopePart,&actTemplParams,
minDistance,bestMatch,bestTypedef,bestTemplSpec,
bestResolvedType);
}
@@ -3127,9 +3144,10 @@ static QCString getCanonicalTypeForIdentifier(
{
result = mType->qualifiedName();
}
- else
+ else // fallback
{
resolvedType = resolveTypeDef(d,word);
+ //printf("typedef [%s]->[%s]\n",word.data(),resolvedType.data());
if (resolvedType.isEmpty()) // not known as a typedef either
{
result = word;
@@ -5476,6 +5494,7 @@ QCString stripTemplateSpecifiersFromScope(const QCString &fullName,
}
else if (pLastScopeStripped)
{
+ //printf(" last stripped scope '%s'\n",fullName.mid(i,e-i).data());
*pLastScopeStripped=fullName.mid(i,e-i);
}
p=e;
diff --git a/src/util.h b/src/util.h
index 380b237..c2ac2d9 100644
--- a/src/util.h
+++ b/src/util.h
@@ -330,7 +330,8 @@ bool checkIfTypedef(Definition *scope,FileDef *fileScope,const char *n);
ClassDef *newResolveTypedef(FileDef *fileScope,MemberDef *md,
MemberDef **pMemType=0,QCString *pTemplSpec=0,
- QCString *pResolvedType=0);
+ QCString *pResolvedType=0,
+ ArgumentList *actTemplParams=0);
QCString parseCommentAsText(const QString &doc,const QCString &fileName,int lineNr);
diff --git a/src/vhdlscanner.l b/src/vhdlscanner.l
index e11d0b4..0eeb426 100644
--- a/src/vhdlscanner.l
+++ b/src/vhdlscanner.l
@@ -234,8 +234,8 @@ void addSignals(const char* str,int line, Entry *e,const char *comment=0)
VhdlDocGen::getSigName(ql,str,bufio);
int count = ql.count();
- QCString brief = current->brief;
- QCString doc = current->doc;
+ QCString brief = current->brief;
+ QCString doc = current->doc;
Entry *tmpEntry = current;
current = new Entry;
initEntry(current);
@@ -257,55 +257,67 @@ void addSignals(const char* str,int line, Entry *e,const char *comment=0)
current->brief.resize(0);
current->doc.resize(0);
- for (int k=1;k<count;k++)
+ if (genPort!=3) // not a unit
{
- //printf("adding '%s' '%s'\n",ql.at(0)->data(),ql.at(k)->data());
- Entry *pTemp=new Entry;
- initEntry(pTemp);
- pTemp->startLine = line;
- pTemp->bodyLine = line;
- pTemp->name = ql.at(k)->data();
- pTemp->section = Entry::VARIABLE_SEC;
- pTemp->brief = brief;
- pTemp->doc = doc;
- QCString stSpec = ql.at(0)->data();
- if (genPort==1)
- {
- pTemp->spec = VhdlDocGen::PORT;
- stSpec.stripPrefix(bufio.data());
- stSpec=stSpec.stripWhiteSpace();
- pTemp->args = stSpec;
- pTemp->type = bufio;
- }
- else if (genPort==2) // found record
- {
- pTemp->spec = VhdlDocGen::RECORD;
- pTemp->type = stSpec;
- pTemp->name.prepend(VhdlDocGen::getRecordNumber());
- }
- else
+ for (int k=1;k<count;k++)
{
- pTemp->spec = VhdlDocGen::GENERIC;
- pTemp->type = stSpec;
- }
- addSubEntry(e,pTemp);
- }// for
-
- /* found a unit */
- if (genPort==3)
+ //printf("adding '%s' '%s'\n",ql.at(0)->data(),ql.at(k)->data());
+ Entry *pTemp=new Entry;
+ initEntry(pTemp);
+ pTemp->startLine = line;
+ pTemp->bodyLine = line;
+ pTemp->name = ql.at(k)->data();
+ pTemp->section = Entry::VARIABLE_SEC;
+ pTemp->brief = brief;
+ pTemp->doc = doc;
+ pTemp->mGrpId = current->mGrpId; // copy member group id
+ QCString stSpec = ql.at(0)->data();
+ if (genPort==1) // found port
+ {
+ pTemp->spec = VhdlDocGen::PORT;
+ stSpec.stripPrefix(bufio.data());
+ stSpec=stSpec.stripWhiteSpace();
+ pTemp->args = stSpec;
+ pTemp->type = bufio;
+ addSubEntry(e,pTemp);
+ }
+ else if (genPort==2) // found record
+ {
+ pTemp->spec = VhdlDocGen::RECORD;
+ pTemp->type = stSpec;
+ pTemp->name.prepend(VhdlDocGen::getRecordNumber());
+ delete current;
+ current = new Entry(*pTemp); // make a deep copy of pTemp
+ newEntry(); // add it to lastCompound and make a new current
+ delete pTemp;
+ }
+ else
+ {
+ pTemp->spec = VhdlDocGen::GENERIC;
+ pTemp->type = stSpec;
+ addSubEntry(e,pTemp);
+ }
+ }// for
+ }
+ else // found a unit
{
Entry *pTemp=new Entry;
initEntry(pTemp);
QCString tt(str);
QStringList ql=QStringList::split("=",tt,FALSE);
- pTemp->spec=VhdlDocGen::UNITS;
- pTemp->section=Entry::VARIABLE_SEC;
- pTemp->startLine=line;
- pTemp->bodyLine=line;
- pTemp->type=(QCString)ql[1];
- pTemp->name=(QCString)ql[0].stripWhiteSpace();
+ pTemp->spec = VhdlDocGen::UNITS;
+ pTemp->section = Entry::VARIABLE_SEC;
+ pTemp->startLine = line;
+ pTemp->bodyLine = line;
+ pTemp->brief = brief; // adds brief description to the unit member
+ pTemp->doc = doc; // adds doc to the unit member
+ pTemp->type = ql[1];
+ pTemp->name = ql[0].stripWhiteSpace();
pTemp->name.prepend(VhdlDocGen::getRecordNumber());
- addSubEntry(e,pTemp);
+ delete current;
+ current = new Entry(*pTemp); // make a deep copy
+ newEntry(); // add it to lastCompound
+ delete pTemp;
}
}
@@ -561,8 +573,11 @@ ENDFUNC {B}*"end"{BR}+"function"{BR}+{FUNCNAME}{BR}*[;]
FUNCIMPURE "impure"|"pure"
FUNCPROC ^{B}*{FUNCIMPURE}*{BR}*("function"|"procedure"){B}*
ARCHITECTURE ("architecture"){BR}+{NAME}{BR}*("of")
-POST "postponed"
-PROCESS ({BR}*{FUNCNAME}{B}*[:]{BR}*{POST}{BR}("process"){BR}*{PROTO})|("process"){BR}*("("){BR}*{PROTO}|[^a-zA-Z]("process"){CR}|[^a-zA-Z]("process"){BR}+("is")
+ /* Removed due to bug 538239
+ POST "postponed"
+ PROCESS ({BR}*{FUNCNAME}{B}*[:]{BR}*({POST}{BR}+)?("process"){BR}*{PROTO})|("process"){BR}*("("){BR}*{PROTO}|[^a-zA-Z]("process"){CR}|[^a-zA-Z]("process"){BR}+("is")
+ */
+PROCESS ({B}*{FUNCNAME}{B}*:{BR}*)?({B}*("postponed"){BR}+)?{B}*("process"){BR}*{PROTO}
ENDPROCESS ("end"){BR}*("process")
LIBUSE ^{B}*("use"|"library"){BR}+
@@ -614,6 +629,7 @@ ALLID [^;()\t ]
//addSubEntry(current,pEntry);
current->startLine=yyLineNr;
current->bodyLine=yyLineNr;
+ newEntry(); // adds the unit to the lastCompound
genPort=3;
BEGIN(ParseRecord);
}
@@ -915,9 +931,7 @@ ALLID [^;()\t ]
current->section=Entry::VARIABLE_SEC;
current->spec=VhdlDocGen::RECORD;
addText(vhdlscanYYtext,vhdlscanYYleng);
- addSubEntry(current_root,current);
- current = new Entry;
- initEntry(current);
+ newEntry(); // adds the record to the last compound
BEGIN(ParseRecord);
}
@@ -932,10 +946,18 @@ ALLID [^;()\t ]
BEGIN(Start);
}
-<ParseRecord>[a-z_][^\n;]* { // parse record body
+<ParseRecord>[a-z_A-Z0-9][^\n;]*";"({B}*{COMMENT})* { // parse record body
lineCount();
+ QCString comment;
QCString zz(vhdlscanYYtext);
- addSignals(zz.data(),yyLineNr,current);
+ if (zz.contains("--!"))
+ {
+ QStringList ql=QStringList::split("--!",zz,FALSE);
+ comment = ql[1];
+ zz = ql[0];
+ }
+ initEntry(current);
+ addSignals(zz,yyLineNr,current,comment);
addText(vhdlscanYYtext,vhdlscanYYleng);
BEGIN(ParseRecord);
}
@@ -1094,10 +1116,11 @@ ALLID [^;()\t ]
current->section=Entry::VARIABLE_SEC;
current->type+=qcs.data();
- if ((current->spec==VhdlDocGen::SIGNAL ||
+ if ((current->spec==VhdlDocGen::SIGNAL ||
current->spec==VhdlDocGen::CONSTANT ||
- current->spec==VhdlDocGen::TYPE ||
- current->spec==VhdlDocGen::SUBTYPE
+ current->spec==VhdlDocGen::TYPE ||
+ current->spec==VhdlDocGen::SUBTYPE ||
+ current->spec==VhdlDocGen::SHAREDVARIABLE
) &&
qcs.stripPrefix(","))
{
@@ -1105,7 +1128,8 @@ ALLID [^;()\t ]
ql.setAutoDelete(TRUE);
QCString buffer;
if (current->spec==VhdlDocGen::SUBTYPE ||
- current->spec==VhdlDocGen::TYPE)
+ current->spec==VhdlDocGen::TYPE
+ )
{
VhdlDocGen::getSigTypeName(ql,qcs.data(),buffer);
}
@@ -1316,7 +1340,6 @@ ALLID [^;()\t ]
{
//printf("no ; or --: pos=%d semi=%d\n",pos,semi);
}
-
int diff=openCount-closeCount;
if (diff<0)
{