From b0cbd5971eb11555a9ea3ab5c23f2b0b97279b4d Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sat, 15 Feb 2003 20:00:58 +0000 Subject: Release-1.3-rc3-20020215 --- INSTALL | 4 +- README | 4 +- VERSION | 2 +- addon/doxmlparser/include/doxmlintf.h | 6 + addon/doxmlparser/src/doxmlintf.h | 6 + addon/doxmlparser/src/sectionhandler.cpp | 14 + addon/doxmlparser/src/sectionhandler.h | 11 +- addon/doxmlparser/test/main.cpp | 5 + configure | 7 - doc/config.doc | 2 + doc/install.doc | 8 +- doc/language.doc | 2 +- packages/rpm/doxygen.spec | 2 +- qtools/qglobal.h | 2 + qtools/qtools.pro.in | 2 +- src/code.l | 2 +- src/docparser.cpp | 62 ++- src/doxygen.cpp | 21 +- src/doxytag.pro.in | 1 - src/filedef.cpp | 24 +- src/libdoxygen.pro.in | 1 - src/libdoxygen.t | 16 +- src/pre.l | 5 +- src/scanner.l | 14 +- src/translator_dk.h | 844 ++++++++++++++++++------------- src/translator_fr.h | 12 +- src/treeview.h | 500 ------------------ src/treeview.js | 500 ------------------ src/util.cpp | 64 ++- src/xmlgen.cpp | 9 +- 30 files changed, 686 insertions(+), 1466 deletions(-) delete mode 100644 src/treeview.h delete mode 100644 src/treeview.js diff --git a/INSTALL b/INSTALL index dab8d26..daab954 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ -DOXYGEN Version 1.3-rc3 +DOXYGEN Version 1.3-rc3-20030215 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (01 February 2003) +Dimitri van Heesch (15 February 2003) diff --git a/README b/README index e54f9f6..7205f82 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.3_rc3 +DOXYGEN Version 1.3_rc3_20030215 Please read INSTALL for compilation instructions. @@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. Enjoy, -Dimitri van Heesch (dimitri@stack.nl) (01 February 2003) +Dimitri van Heesch (dimitri@stack.nl) (15 February 2003) diff --git a/VERSION b/VERSION index 2f49d0a..4a07d6d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3-rc3 +1.3-rc3-20030215 diff --git a/addon/doxmlparser/include/doxmlintf.h b/addon/doxmlparser/include/doxmlintf.h index 481cb2f..3f7762c 100644 --- a/addon/doxmlparser/include/doxmlintf.h +++ b/addon/doxmlparser/include/doxmlintf.h @@ -727,6 +727,12 @@ class ISection virtual bool isProtected() const = 0; }; +class IUserDefined : public ISection +{ + public: + virtual const IString * header() const = 0; +}; + class ISectionIterator { public: diff --git a/addon/doxmlparser/src/doxmlintf.h b/addon/doxmlparser/src/doxmlintf.h index 481cb2f..3f7762c 100644 --- a/addon/doxmlparser/src/doxmlintf.h +++ b/addon/doxmlparser/src/doxmlintf.h @@ -727,6 +727,12 @@ class ISection virtual bool isProtected() const = 0; }; +class IUserDefined : public ISection +{ + public: + virtual const IString * header() const = 0; +}; + class ISectionIterator { public: diff --git a/addon/doxmlparser/src/sectionhandler.cpp b/addon/doxmlparser/src/sectionhandler.cpp index 1bbdf3c..5da0006 100644 --- a/addon/doxmlparser/src/sectionhandler.cpp +++ b/addon/doxmlparser/src/sectionhandler.cpp @@ -88,6 +88,8 @@ SectionHandler::SectionHandler(IBaseHandler *parent) : m_parent(parent) m_members.setAutoDelete(TRUE); addEndHandler("sectiondef",this,&SectionHandler::endSection); addStartHandler("memberdef",this,&SectionHandler::startMember); + addStartHandler("header",this,&SectionHandler::startHeader); + addEndHandler("header",this,&SectionHandler::endHeader); } SectionHandler::~SectionHandler() @@ -115,6 +117,18 @@ void SectionHandler::startMember(const QXmlAttributes& attrib) m_members.append(memHandler); } +void SectionHandler::startHeader(const QXmlAttributes&) +{ + m_header=""; + m_curString=""; +} + +void SectionHandler::endHeader() +{ + m_header = m_curString.stripWhiteSpace(); + debug(2,"member header=`%s'\n",m_header.data()); +} + void SectionHandler::initialize(CompoundHandler *ch) { QListIterator mli(m_members); diff --git a/addon/doxmlparser/src/sectionhandler.h b/addon/doxmlparser/src/sectionhandler.h index 42d3340..b6b674f 100644 --- a/addon/doxmlparser/src/sectionhandler.h +++ b/addon/doxmlparser/src/sectionhandler.h @@ -34,12 +34,14 @@ class SectionIterator : }; -class SectionHandler : public ISection, public BaseHandler +class SectionHandler : public IUserDefined, public BaseHandler { public: virtual void startMember(const QXmlAttributes& attrib); + virtual void startHeader(const QXmlAttributes& attrib); virtual void startSection(const QXmlAttributes& attrib); virtual void endSection(); + virtual void endHeader(); SectionHandler(IBaseHandler *parent); virtual ~SectionHandler(); @@ -73,10 +75,17 @@ class SectionHandler : public ISection, public BaseHandler void initialize(CompoundHandler *c); + // IUserDefined implementation + virtual const IString *header() const + { + return &m_header; + } + private: IBaseHandler *m_parent; SectionKind m_kind; StringImpl m_kindString; + StringImpl m_header; QList m_members; }; diff --git a/addon/doxmlparser/test/main.cpp b/addon/doxmlparser/test/main.cpp index 4b8425c..c066a24 100644 --- a/addon/doxmlparser/test/main.cpp +++ b/addon/doxmlparser/test/main.cpp @@ -565,6 +565,11 @@ int main(int argc,char **argv) printf(" Section kind=%s\n",sec->kindString()->latin1()); IMemberIterator *mli = sec->members(); IMember *mem; + if( sec->kind() == ISection::UserDefined ) + { + IUserDefined *group = dynamic_cast(sec); + printf(" Title=%s\n", group->header()->latin1() ); + } for (mli->toFirst();(mem=mli->current());mli->toNext()) { ILinkedTextIterator *lti = mem->type(); diff --git a/configure b/configure index f2bdb2c..b2132d7 100755 --- a/configure +++ b/configure @@ -421,13 +421,6 @@ TMAKE_MOC = $QTDIR/bin/moc EOF fi - -#if test "$f_platform" = "win32-g++"; then -# cat >> .tmakeconfig <> .tmakeconfig <\c DETAILS_AT_TOP
diff --git a/doc/install.doc b/doc/install.doc index 92c2416..a816e8b 100644 --- a/doc/install.doc +++ b/doc/install.doc @@ -25,10 +25,10 @@ to get the latest distribution, if you did not have it already. This section is divided into the following sections:
  • \ref install_src_unix "Compiling from source on Unix" -
  • \ref install_bin_unix "Installating the binaries on Unix" +
  • \ref install_bin_unix "Installing the binaries on Unix"
  • \ref unix_problems "Known compilation problems for Unix"
  • \ref install_src_windows "Compiling from source on Windows" -
  • \ref install_bin_windows "Installating the binaries on Windows" +
  • \ref install_bin_windows "Installing the binaries on Windows"
  • \ref build_tools "Tools used to develop doxygen"
@@ -158,7 +158,7 @@ Compilation is now done by performing the following steps: -\section install_bin_unix Installating the binaries on Unix +\section install_bin_unix Installing the binaries on Unix After the compilation of the source code do a make install to install doxygen. If you downloaded the binary distribution for Unix, @@ -540,7 +540,7 @@ Compilation is now done by performing the following steps: documentation can be generated. -\section install_bin_windows Installating the binaries on Windows +\section install_bin_windows Installing the binaries on Windows There is no fancy installation procedure at the moment (if anyone can add it in a location independent way please let me know). diff --git a/doc/language.doc b/doc/language.doc index 1284672..be7b3ba 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means that the text fragments that doxygen generates can be produced in languages other than English (the default) at configuration time. -Currently (version 1.3-rc3), 28 languages +Currently (version 1.2.14-20020317), 28 languages are supported (sorted alphabetically): Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec index 1ae61da..b55ba8c 100644 --- a/packages/rpm/doxygen.spec +++ b/packages/rpm/doxygen.spec @@ -1,6 +1,6 @@ Summary: A documentation system for C/C++. Name: doxygen -Version: 1.3_rc3 +Version: 1.3_rc3_20030215 Release: 1 Epoch: 1 Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz diff --git a/qtools/qglobal.h b/qtools/qglobal.h index 9c2b53e..2ec484c 100644 --- a/qtools/qglobal.h +++ b/qtools/qglobal.h @@ -128,6 +128,8 @@ #define _OS_UNIXWARE7_ #elif !defined(_SCO_DS) && defined(__USLC__) && defined(__SCO_VERSION__) #define _OS_UNIXWARE7_ +#elif defined(__CYGWIN__) +#define _OS_CYGWIN_ #else #error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com" #endif diff --git a/qtools/qtools.pro.in b/qtools/qtools.pro.in index 74776ef..1a02797 100644 --- a/qtools/qtools.pro.in +++ b/qtools/qtools.pro.in @@ -74,6 +74,6 @@ win32:SOURCES += qfile_win32.cpp \ INCLUDEPATH = . TMAKE_CXXFLAGS += -DQT_NO_CODECS -DQT_LITE_UNICODE win32:TMAKE_CXXFLAGS += -DQT_NODLL -win32-g++:TMAKE_CXXFLAGS += -D_WIN32 -D__CYGWIN__ -DALL_STATIC +win32-g++:TMAKE_CXXFLAGS += -D__CYGWIN__ -DALL_STATIC OBJECTS_DIR = ../objects DESTDIR = ../lib diff --git a/src/code.l b/src/code.l index 5e3d152..63fccbd 100644 --- a/src/code.l +++ b/src/code.l @@ -1171,7 +1171,7 @@ TYPEKW ("bool"|"char"|"double"|"float"|"int"|"long"|"short"|"signed"|"unsigned" addType(); g_code->codify(yytext); } -{ID} { +{ID}("::"{ID})* { g_curClassName=yytext; addType(); generateClassOrGlobalLink(*g_code,yytext); diff --git a/src/docparser.cpp b/src/docparser.cpp index 2fd7341..05dd5bd 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -543,12 +543,19 @@ static int handleStyleArgument(DocNode *parent,QList &children, return tok; } while ((tok=doctokenizerYYlex()) && - tok!=TK_WHITESPACE && - tok!=TK_NEWPARA && - tok!=TK_LISTITEM && - tok!=TK_ENDLIST + tok!=TK_WHITESPACE && + tok!=TK_NEWPARA && + tok!=TK_LISTITEM && + tok!=TK_ENDLIST ) { + static QRegExp specialChar("[.,|()\\[\\]:;\\?]"); + if (tok==TK_WORD && g_token->name.length()==1 && + g_token->name.find(specialChar)!=-1) + { + // special character that ends the markup command + return tok; + } if (!defaultHandleToken(parent,tok,children)) { switch (tok) @@ -732,6 +739,7 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList &children DBG((" name=%s",g_token->name.data())); } DBG(("\n")); +reparsetoken: QString tokenName = g_token->name; switch (tok) { @@ -767,8 +775,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList &children children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Italic,TRUE)); tok=handleStyleArgument(parent,children,tokenName); children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Italic,FALSE)); - children.append(new DocWhiteSpace(parent," ")); + if (tok!=TK_WORD) children.append(new DocWhiteSpace(parent," ")); if (tok==TK_NEWPARA) goto handlepara; + else if (tok==TK_WORD) goto reparsetoken; } break; case CMD_BOLD: @@ -776,8 +785,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList &children children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Bold,TRUE)); tok=handleStyleArgument(parent,children,tokenName); children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Bold,FALSE)); - children.append(new DocWhiteSpace(parent," ")); + if (tok!=TK_WORD) children.append(new DocWhiteSpace(parent," ")); if (tok==TK_NEWPARA) goto handlepara; + else if (tok==TK_WORD) goto reparsetoken; } break; case CMD_CODE: @@ -785,8 +795,9 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList &children children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Code,TRUE)); tok=handleStyleArgument(parent,children,tokenName); children.append(new DocStyleChange(parent,g_nodeStack.count(),DocStyleChange::Code,FALSE)); - children.append(new DocWhiteSpace(parent," ")); + if (tok!=TK_WORD) children.append(new DocWhiteSpace(parent," ")); if (tok==TK_NEWPARA) goto handlepara; + else if (tok==TK_WORD) goto reparsetoken; } break; case CMD_HTMLONLY: @@ -1001,7 +1012,14 @@ handlepara: return FALSE; break; case TK_URL: - children.append(new DocURL(parent,g_token->name,g_token->isEMailAddr)); + if (g_insideHtmlLink) + { + children.append(new DocWord(parent,g_token->name)); + } + else + { + children.append(new DocURL(parent,g_token->name,g_token->isEMailAddr)); + } break; default: return FALSE; @@ -1347,16 +1365,18 @@ void DocXRefItem::parse() { RefItem *item = refList->getRefItem(m_id); ASSERT(item!=0); - - m_file = refList->listName(); - m_anchor = item->listAnchor; - m_title = refList->sectionTitle(); - - if (!item->text.isEmpty()) + if (item) { - docParserPushContext(); - internalValidatingParseDoc(this,m_children,item->text); - docParserPopContext(); + m_file = refList->listName(); + m_anchor = item->listAnchor; + m_title = refList->sectionTitle(); + + if (!item->text.isEmpty()) + { + docParserPushContext(); + internalValidatingParseDoc(this,m_children,item->text); + docParserPopContext(); + } } } } @@ -3392,19 +3412,19 @@ int DocPara::handleCommand(const QString &cmdName) m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Italic,TRUE)); retval=handleStyleArgument(this,m_children,cmdName); m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Italic,FALSE)); - m_children.append(new DocWhiteSpace(this," ")); + if (retval!=TK_WORD) m_children.append(new DocWhiteSpace(this," ")); break; case CMD_BOLD: m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Bold,TRUE)); retval=handleStyleArgument(this,m_children,cmdName); m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Bold,FALSE)); - m_children.append(new DocWhiteSpace(this," ")); + if (retval!=TK_WORD) m_children.append(new DocWhiteSpace(this," ")); break; case CMD_CODE: m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Code,TRUE)); retval=handleStyleArgument(this,m_children,cmdName); m_children.append(new DocStyleChange(this,g_nodeStack.count(),DocStyleChange::Code,FALSE)); - m_children.append(new DocWhiteSpace(this," ")); + if (retval!=TK_WORD) m_children.append(new DocWhiteSpace(this," ")); break; case CMD_BSLASH: m_children.append(new DocSymbol(this,DocSymbol::BSlash)); @@ -4255,7 +4275,7 @@ reparsetoken: // the command ended normally, keep scanner for new tokens. retval = 0; } - else if (retval==TK_LISTITEM || retval==TK_ENDLIST) + else if (retval==TK_LISTITEM || retval==TK_ENDLIST || retval==TK_WORD) { tok = retval; goto reparsetoken; diff --git a/src/doxygen.cpp b/src/doxygen.cpp index eac9b8a..686bfff 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -1239,7 +1239,6 @@ static void findIncludedUsingDirectives() { fd->visited=FALSE; } - fn=Doxygen::inputNameList.next(); } // then recursively add using directives found in #include files // to files that have not been visited. @@ -1247,11 +1246,14 @@ static void findIncludedUsingDirectives() { FileNameIterator fni(*fn); FileDef *fd; - for (;(fd=fni.current());++fni) + for (fni.toFirst();(fd=fni.current());++fni) { - if (!fd->visited) fd->addIncludedUsingDirectives(); + if (!fd->visited) + { + //printf("----- adding using directives for file %s\n",fd->name().data()); + fd->addIncludedUsingDirectives(); + } } - fn=Doxygen::inputNameList.next(); } } @@ -4419,6 +4421,10 @@ static void findMember(Entry *root, { Debug::print(Debug::FindMembers,0, "1. funcName=`%s'\n",funcName.data()); + if (funcName.left(9)=="operator ") + { + funcName = substitute(funcName,className+"::",""); + } if (!funcTempList.isEmpty()) // try with member specialization { mn=Doxygen::memberNameSDict[funcName+funcTempList]; @@ -4677,9 +4683,10 @@ static void findMember(Entry *root, { warn_cont("%s ",md->typeString()); } - warn_cont("%s::%s%s\n", - cd->qualifiedNameWithTemplateParameters().data(), - md->name().data(),md->argsString()); + QCString qScope = cd->qualifiedNameWithTemplateParameters(); + if (!qScope.isEmpty()) warn_cont("%s::%s",qScope.data(),md->name().data()); + if (md->argsString()) warn_cont("%s",md->argsString()); + warn_cont("\n"); } } } diff --git a/src/doxytag.pro.in b/src/doxytag.pro.in index 6fc00c7..6900938 100644 --- a/src/doxytag.pro.in +++ b/src/doxytag.pro.in @@ -27,7 +27,6 @@ win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\lib win32-borland:LIBS += qtools.lib shell32.lib win32-borland:TMAKE_LFLAGS += -L..\lib -L$(BCB)\lib\psdk win32:TMAKE_CXXFLAGS += -DQT_NODLL -win32-g++:TMAKE_CXXFLAGS += -D_WIN32 INCLUDEPATH += ../qtools OBJECTS_DIR = ../objects TARGET = ../bin/doxytag diff --git a/src/filedef.cpp b/src/filedef.cpp index d360813..d3b606b 100644 --- a/src/filedef.cpp +++ b/src/filedef.cpp @@ -651,26 +651,32 @@ void FileDef::addIncludeDependency(FileDef *fd,const char *incName,bool local) void FileDef::addIncludedUsingDirectives() { - if (!visited) + if (visited) return; + visited=TRUE; + //printf("( FileDef::addIncludedUsingDirectives for file %s\n",name().data()); + + NamespaceList nl; + if (includeList) // file contains #includes { - visited=TRUE; - NamespaceList nl; - if (includeList) // file contains #includes { QListIterator iii(*includeList); IncludeInfo *ii; - for (;(ii=iii.current());++iii) // foreach #include... + for (iii.toFirst();(ii=iii.current());++iii) // foreach #include... { - if (ii->fileDef) // ...that is a known file + if (ii->fileDef && !ii->fileDef->visited) // ...that is a known file { // recurse into this file ii->fileDef->addIncludedUsingDirectives(); } } + } + { + QListIterator iii(*includeList); + IncludeInfo *ii; // iterate through list from last to first for (iii.toLast();(ii=iii.current());--iii) { - if (ii->fileDef) + if (ii->fileDef && ii->fileDef!=this) { NamespaceList *unl = ii->fileDef->usingDirList; if (unl) @@ -681,14 +687,16 @@ void FileDef::addIncludedUsingDirectives() { // append each using directive found in a #include file if (usingDirList==0) usingDirList = new NamespaceList; + //printf("Prepending used namespace %s to the list of file %s\n", + // nd->name().data(),name().data()); usingDirList->prepend(nd); } } } } } - // add elements of nl to usingDirList } + //printf(") end FileDef::addIncludedUsingDirectives for file %s\n",name().data()); } diff --git a/src/libdoxygen.pro.in b/src/libdoxygen.pro.in index 0b7c1a4..0c039ce 100644 --- a/src/libdoxygen.pro.in +++ b/src/libdoxygen.pro.in @@ -111,7 +111,6 @@ HEADERS = bufstr.h \ translator_sr.h \ translator_tw.h \ translator_ua.h \ - treeview.h \ unistd.h \ util.h \ version.h \ diff --git a/src/libdoxygen.t b/src/libdoxygen.t index ae86907..d11df87 100644 --- a/src/libdoxygen.t +++ b/src/libdoxygen.t @@ -16,8 +16,10 @@ #! #$ IncludeTemplate("lib.t"); -LEX = flex -YACC = bison +LEX = flex +YACC = bison +PERL = perl +INCBUFSIZE = $(PERL) -n -e "s/YY_BUF_SIZE 16384/YY_BUF_SIZE 262144/g; print $$_;" #${ sub GenerateDep { @@ -45,13 +47,13 @@ sub GenerateDep { #################### #$ GenerateDep("scanner.cpp","scanner.l"); - $(LEX) -PscanYY -t scanner.l >scanner.cpp + $(LEX) -PscanYY -t scanner.l | $(INCBUFSIZE) >scanner.cpp #$ GenerateDep("code.cpp","code.l"); - $(LEX) -PcodeYY -t code.l >code.cpp + $(LEX) -PcodeYY -t code.l | $(INCBUFSIZE) >code.cpp #$ GenerateDep("pre.cpp","pre.l"); - $(LEX) -PpreYY -t pre.l >pre.cpp + $(LEX) -PpreYY -t pre.l | $(INCBUFSIZE) >pre.cpp #$ GenerateDep("declinfo.cpp","declinfo.l"); $(LEX) -PdeclinfoYY -t declinfo.l >declinfo.cpp @@ -75,6 +77,6 @@ sub GenerateDep { $(YACC) -l -d -p cppExpYY constexp.y -o ce_parse.c -rm ce_parse.c -treeview.h: treeview.js - cat treeview.js | sed -e "s/\\\\/\\\\\\\\/g" -e "s/\"/\\\\\"/g" -e "s/^/\"/g" -e "s/$$/\\\\n\"/g" >treeview.h +#treeview.h: treeview.js +# cat treeview.js | sed -e "s/\\\\/\\\\\\\\/g" -e "s/\"/\\\\\"/g" -e "s/^/\"/g" -e "s/$$/\\\\n\"/g" >treeview.h diff --git a/src/pre.l b/src/pre.l index 61bdda3..94ca9ef 100644 --- a/src/pre.l +++ b/src/pre.l @@ -1623,7 +1623,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) g_defLitText+=' '; BEGIN(SkipCPPComment); } -"*/" { +[/]?"*/" { + if (yytext[0]=='/') outputChar('/'); outputChar('*');outputChar('/'); if (--g_commentCount<=0) { @@ -1647,7 +1648,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) . { outputChar(*yytext); } -"*/" { BEGIN(g_lastCContext); } +"*/" { BEGIN(g_lastCContext); } "//" "/*" [^*\n]+ diff --git a/src/scanner.l b/src/scanner.l index 463aad6..0240316 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -47,7 +47,7 @@ #define YY_NEVER_INTERACTIVE 1 - + /* ----------------------------------------------------------------- * * statics @@ -181,6 +181,7 @@ static void initParser() insideTryBlock = FALSE; autoGroupStack.setAutoDelete(TRUE); lastDefGroup.groupname.resize(0); + insideFormula = FALSE; } static void initEntry() @@ -959,7 +960,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) } {B}*((("disp")?"interface")|"valuetype"){BN}+ { // M$/Corba IDL interface lineCount(); - if (insideIDL || insideJava) + if (insideIDL || insideJava || insideCS) { isTypedef=FALSE; current->section = Entry::INTERFACE_SEC; @@ -3899,6 +3900,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) } \n { formulaText+=" "; + yyLineNr++; if (lastFormulaContext==LineDoc || lastFormulaContext==AfterDocLine ) @@ -3922,7 +3924,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) insideFormula=FALSE; BEGIN(lastFormulaContext); } -\n { formulaText+=*yytext; } +\n { formulaText+=*yytext; yyLineNr++; } . { formulaText+=*yytext; } {B}*"*/" { checkDocs(); @@ -4195,7 +4197,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) } } "<"{BR}{ATTR}">" -{BS}/{SECTIONCMD} { +{BS}/{SECTIONCMD} | +{B}*/{SECTIONCMD} { current->brief=current->brief.stripWhiteSpace(); BEGIN( lastBriefContext ); } @@ -4445,12 +4448,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) } ^{B}*(("//"{B}*)?)"*"+[ \t]*"."{B}*\n { current->doc += yytext; + yyLineNr++; } ^{B}*(("//"{B}*)?)"*"+[ \t]*"-"("#")?{B}+ { current->brief += "-"; } ^{B}*(("//"{B}*)?)"*"+[ \t]*"."{B}*\n { - current->brief += "."; + current->brief += "."; yyLineNr++; } ^{B}*(("//"{B}*)?)"*"+/[^/] ^{B}*(("//"{B}*)?)"*"+{B}+ { diff --git a/src/translator_dk.h b/src/translator_dk.h index 98e6db5..87d11b2 100644 --- a/src/translator_dk.h +++ b/src/translator_dk.h @@ -1,12 +1,13 @@ +/*-*- c-basic-offset: 2 -*-*/ /****************************************************************************** * - * + * * * Copyright (C) 1997-2003 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 + * 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. * @@ -15,49 +16,93 @@ * */ -/* OBS! - Til danskere og andet godtfolk: - Jeg har været i tvivl om (i hvert fald) følgende ord: - - Member - - Compound - - Namespace - - Interface - - Jeg har besluttet (indtil videre) at lade følgende ord stå som de er, - da jeg selv overvejende bruger det engelske udtryk: - - Interface - - Typedef - - Union - (union ved jeg ikke engang, hvad jeg skal kalde på dansk... - udover måske 'union') - - (Konstruktivt) input modtages med glæde! +/* + * Danish translation by + * Erik Søe Sørensen + * + * First version (not complete) for Doxygen 1.2.7 + * Extended and revised for Doxygen 1.3 + */ + +/* Translator's notes: + + Oversættelseskonventioner: + (Konventioner for konventioner: + '?' angiver oversættelser, jeg har været i tvivl om + '??' angiver tvivlsomme oversættelser + '..?' angiver ord, der endnu ikke er fundet en oversættelse til + '(do.)' angiver ord, der med vilje ikke er oversat, idet jeg selv + overvejende bruger det engelske udtryk + '(-> _) angiver ord, der er fundet en oversættelse til, men som jeg + vægrer mig ved at oversætte. + ) + bug -> 'kendt fejl' + class -> klasse + compound -> 'sammensat type' + constructor -> konstruktør ? + destructor -> destruktør ? + event -> begivenhed ? + exception (-> undtagelse ?) + friend ..? + interface -> grænseflade ? + member -> medlem (TODO) + namespace -> (do.) + private -> privat + property -> egenskab? + protected -> beskyttet ?? + public -> offentlig + slot ..? + source code -> kildekode + struct -> datastruktur + template (-> skabelon ?) + typedef -> typedefinition (?) + todo -> (do.) + union ..? + + Specielle forbindelser: + 'Inheritance diagram' -> Stamtræ (selvom Nedarvningsdiagram også gik an) + + ----- + + (Konstruktivt) input modtages med glæde! + -- Erik Søe Sørensen */ #ifndef TRANSLATOR_DK_H #define TRANSLATOR_DK_H -class TranslatorDanish : public TranslatorAdapter_1_2_7 +class TranslatorDanish : 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 + + /*! 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 + * (e.g. "czech", "japanese", "russian", etc.). It should be equal to * the identification used in language.cpp. */ virtual QCString idLanguage() { return "danish"; } - - /*! Used to get the LaTeX command(s) for the language support. This method - * was designed for languages which do wish to use a babel package. + + /*! 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 + *
"\\usepackage[german]{babel}\n"
+     *  
+ * or + *
"\\usepackage{polski}\n"
+     *  "\\usepackage[latin2]{inputenc}\n"
+     *  "\\usepackage[T1]{fontenc}\n"
+     *  
*/ virtual QCString latexLanguageSupportCommand() { - return "danish"; + return + "\\usepackage[danish]{babel}\n" + "\\usepackage[latin1]{inputenc}\n" + "\\usepackage[T1]{fontenc}\n"; } /*! return the language charset. This will be used for the HTML output */ @@ -76,37 +121,37 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trRelatedSubscript() { return "(Bemærk at disse ikke er medlems-funktioner.)"; } - /*! header that is put before the detailed description of files, classes and namespaces. */ + /*! header that is put before the detailed description of files, + * classes and namespaces. */ virtual QCString trDetailedDescription() { return "Detaljeret beskrivelse"; } /*! header that is put before the list of typedefs. */ virtual QCString trMemberTypedefDocumentation() - { return "Dokumentation af medlems-typedefs"; } - + { return "Dokumentation af medlems-typedefinitioner"; } + /*! header that is put before the list of enumerations. */ virtual QCString trMemberEnumerationDocumentation() { return "Dokumentation af medlems-enumerationer"; } - + // medlems-enumerationer -> 'indeholdte enumerationer' + /*! header that is put before the list of member functions. */ virtual QCString trMemberFunctionDocumentation() { return "Dokumentation af medlemsfunktioner"; } - + /*! header that is put before the list of member attributes. */ virtual QCString trMemberDataDocumentation() - { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "Felt-dokumentation"; - } - else - { - return "Dokumentation af medlems-data"; + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + return "Felt-dokumentation"; + } else { + return "Dokumentation af feltvariable"; + //medlems-data"; } } /*! this is the text of a link put after brief descriptions. */ - virtual QCString trMore() + virtual QCString trMore() { return "Mere..."; } /*! put in the class documentation */ @@ -119,90 +164,85 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! this is the first part of a sentence that is followed by a class name */ virtual QCString trThisIsTheListOfAllMembers() - { return "Dette er den komplette liste over medlemmer for "; } + { return "Dette er den komplette liste over medlemmer i "; } /*! this is the remainder of the sentence after the class name */ virtual QCString trIncludingInheritedMembers() { return ", inklusive alle nedarvede medlemmer."; } - + /*! 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="Automatisk genereret af Doxygen"; if (s) result+=(QCString)" for "+s; - result+=" ud fra kildekoden."; + result+=" ud fra kildekoden."; return result; } /*! put after an enum name in the list of all members */ virtual QCString trEnumName() - { return "enum-navn"; } - + { return "enumerationsnavn"; } + /*! put after an enum value in the list of all members */ virtual QCString trEnumValue() - { return "enum-værdi"; } - + { return "enumerationsværdi"; } + /*! put after an undocumented member in the list of all members */ virtual QCString trDefinedIn() { return "defineret i"; } // quick reference sections - /*! This is put above each page as a link to the list of all groups of + /*! 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 "Moduler"; } - + /*! This is put above each page as a link to the class hierarchy */ virtual QCString trClassHierarchy() { return "Klassehierarki"; } - + /*! 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")) - { + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return "Datastrukturer"; - } - else - { - return "Compound List"; + } else { + return "Oversigt over sammensatte typer"; } } - + /*! This is put above each page as a link to the list of documented files */ virtual QCString trFileList() - { return "Filliste"; } + { return "Filoversigt"; } /*! This is put above each page as a link to the list of all verbatim headers */ virtual QCString trHeaderFiles() - { return "Header-filer"; } + { return "Headerfiler"; } /*! This is put above each page as a link to all members of compounds. */ virtual QCString trCompoundMembers() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Data-felter"; + return "Data-felter"; } else { - return "Compound Members"; + return "Felter i sammensatte typer"; } } /*! 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 "Globale"; - } - else - { - return "Fil-medlemmer"; + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + return "Globale symboler"; + } else { + return "Placering i filer"; // Fil-medlemmer"; //TODO + //"Globale definitioner" ? } } @@ -235,16 +275,13 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! This is an introduction to the annotated compound list. */ virtual QCString trCompoundListDescription() - { - - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "Her er datastrukturerne med korte beskrivelser:"; - } - else - { - return "Her er klasserne, strukturerne, " - "unionerne og grænsefladerne med korte beskrivelser:"; + { + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + return "Her er datastrukturerne med korte beskrivelser:"; + } else { + return "Her er klasserne, datastrukturerne, " + "unionerne og grænsefladerne med korte beskrivelser:"; } } @@ -252,39 +289,26 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trCompoundMembersDescription(bool extractAll) { QCString result="Her er en liste over alle "; - if (!extractAll) - { + if (!extractAll) { result+="dokumenterede "; } - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - result+="felter i strukturer og unioner"; - } - else - { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + result+="felter i datastrukturer og unioner"; + } else { result+="klassemedlemmer"; } result+=" med links til "; - if (!extractAll) - { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - result+="struktur/unions-dokumentationen for hvert felt:"; - } - else - { + if (!extractAll) { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + result+="datastruktur/unions-dokumentationen for hvert felt:"; + } else { result+="klassedokumentationen for hvert medlem:"; } - } - else - { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - result+="de strukturer/unioner de hører til:"; - } - else - { - result+="de klasser de hører til:"; + } else { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + result+="de datastrukturer/unioner, de hører til:"; + } else { + result+="de klasser, de hører til:"; } } return result; @@ -295,27 +319,24 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 { QCString result="Her er en liste over alle "; if (!extractAll) result+="dokumenterede "; - - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { result+="funktioner, variable, #defines, enumerationer " "og typedefinitioner"; - } - else - { + } else { result+="fil-medlemmer"; } result+=" med links til "; - if (extractAll) - result+="de filer de hører til:"; - else - result+="dokumentationen:"; + if (extractAll) + result+="de filer, de tilhører:"; + else + result+="deres dokumentation:"; return result; } /*! This is an introduction to the page with the list of all header files. */ virtual QCString trHeaderFilesDescription() - { return "Her er de headerfiler der udgør API'en:"; } + { return "Her er de headerfiler, der udgør API'en:"; } /*! This is an introduction to the page with the list of all examples */ virtual QCString trExamplesDescription() @@ -330,50 +351,47 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 { return "Her er en liste over alle moduler:"; } /*! This sentences is used in the annotated class/file lists if no brief - * description is given. + * description is given. */ virtual QCString trNoDescriptionAvailable() { return "Ikke beskrevet"; } - - // index titles (the project name is prepended for these) + + // index titles (the project name is prepended for these) /*! This is used in HTML as the title of index.html. */ virtual QCString trDocumentation() { return "Dokumentation"; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * index of all groups. */ virtual QCString trModuleIndex() - { return "Modul-index"; } + { return "Modul-indeks"; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * class hierarchy. */ virtual QCString trHierarchicalIndex() - { return "Hierarkisk index"; } + { return "Hierarkisk indeks"; } - /*! This is used in LaTeX as the title of the chapter with the + /*! 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")) - { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return "Indeks over datastrukturer"; - } - else - { - return "Compound Index"; + } else { + return "Indeks over sammensatte typer"; } } /*! This is used in LaTeX as the title of the chapter with the * list of all files. */ - virtual QCString trFileIndex() - { return "Fil-index"; } + virtual QCString trFileIndex() + { return "Fil-indeks"; } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all groups. @@ -385,7 +403,13 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 * the documentation of all classes, structs and unions. */ virtual QCString trClassDocumentation() - { return "Klasse-dokumentation"; } + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + return "Datastruktur-documentation"; + } else { + return "Klasse-dokumentation"; + } + } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all files. @@ -407,53 +431,49 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! This is used in LaTeX as the title of the document */ virtual QCString trReferenceManual() - { return "Reference-manual"; } - - /*! This is used in the documentation of a file as a header before the + { return "Referencemanual"; } + + /*! This is used in the documentation of a file as a header before the * list of defines */ virtual QCString trDefines() { return "#Defines"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of function prototypes */ virtual QCString trFuncProtos() { return "Funktionsprototyper"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of typedefs */ virtual QCString trTypedefs() - { return "Typedefs"; } + { return "Typedefinitioner"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of enumerations */ virtual QCString trEnumerations() { return "Enumerationer"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of (global) functions */ virtual QCString trFunctions() { return "Funktioner"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of (global) variables */ virtual QCString trVariables() - { return "Variabler"; } + { return "Variable"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of (global) variables */ virtual QCString trEnumerationValues() { return "Enumerationsværdier"; } - - /*! This is used in man pages as the author section. */ - virtual QCString trAuthor() - { return "Forfatter"; } /*! This is used in the documentation of a file before the list of * documentation blocks for defines @@ -461,62 +481,59 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trDefineDocumentation() { return "#Define-dokumentation"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for function prototypes */ virtual QCString trFunctionPrototypeDocumentation() - { return "Funktionsprototype-dokumentation"; } + { return "Dokumentation af funktionsprototyper"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for typedefs */ virtual QCString trTypedefDocumentation() - { return "Typedef-dokumentation"; } + { return "Dokumentation af typedefinitioner"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration types */ virtual QCString trEnumerationTypeDocumentation() { return "Dokumentation af enumerations-typer"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration values */ virtual QCString trEnumerationValueDocumentation() { return "Dokumentation af enumerations-værdier"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for functions */ virtual QCString trFunctionDocumentation() { return "Funktions-dokumentation"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for variables */ virtual QCString trVariableDocumentation() { return "Variabel-dokumentation"; } - /*! This is used in the documentation of a file/namespace/group before + /*! 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 "Datastrukturer"; - } - else - { - return "Compounds"; + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + return "Datastrukturer"; + } else { + return "Sammensatte typer"; } } - /*! This is used in the standard footer of each page and indicates when - * the page was generated + /*! 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)"Genereret "+date; if (projName) result+=(QCString)" for "+projName; result+=(QCString)" af"; @@ -532,16 +549,16 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! this text is put before a class diagram */ virtual QCString trClassDiagram(const char *clName) { - return (QCString)"Nedarvningsdiagram for "+clName+":"; + return (QCString)"Stamtræ for "+clName+":"; } - + /*! this text is generated when the \\internal command is used. */ virtual QCString trForInternalUseOnly() { return "Kun til intern brug."; } /*! this text is generated when the \\reimp command is used. */ virtual QCString trReimplementedForInternalReasons() - { return "Metode overskrevet af interne grunde; " + { return "Metoden er genimplementeret af interne grunde; " "API'en er ikke påvirket."; } /*! this text is generated when the \\warning command is used. */ @@ -560,10 +577,6 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trDate() { return "Dato"; } - /*! this text is generated when the \\author command is used. */ - virtual QCString trAuthors() - { return "Forfatter(e)"; } - /*! this text is generated when the \\return command is used. */ virtual QCString trReturns() { return "Returnerer"; } @@ -579,7 +592,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 /*! this text is generated when the \\exception command is used. */ virtual QCString trExceptions() { return "Exceptions"; } - + /*! this text is used in the title page of a LaTeX document. */ virtual QCString trGeneratedBy() { return "Genereret af"; } @@ -587,10 +600,10 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 ////////////////////////////////////////////////////////////////////////// // new since 0.49-990307 ////////////////////////////////////////////////////////////////////////// - + /*! used as the title of page containing all the index of all namespaces. */ virtual QCString trNamespaceList() - { return "Namespace-liste"; } + { return "Oversigt over namespaces"; } /*! used as an introduction to the namespace list */ virtual QCString trNamespaceListDescription(bool extractAll) @@ -606,17 +619,17 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 */ virtual QCString trFriends() { return "Friends"; } - + ////////////////////////////////////////////////////////////////////////// // new since 0.49-990405 ////////////////////////////////////////////////////////////////////////// - + /*! used in the class documentation as a header before the list of all - * related classes + * related classes */ virtual QCString trRelatedFunctionDocumentation() - { return "Friends og relateret funktions-dokumentation"; } //?? - + { return "Dokumentation af friends og af relaterede funktioner"; } + ////////////////////////////////////////////////////////////////////////// // new since 0.49-990425 ////////////////////////////////////////////////////////////////////////// @@ -630,9 +643,9 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 switch(compType) { case ClassDef::Class: result+=" Klasse-"; break; - case ClassDef::Struct: result+=" Struktur-"; break; + case ClassDef::Struct: result+=" Datastruktur-"; break; case ClassDef::Union: result+=" Union-"; break; - case ClassDef::Interface: result+=" Interface-"; break; + case ClassDef::Interface: result+=" Grænseflade-"; break; case ClassDef::Exception: result+=" Exception-"; break; } if (isTemplate) result+="template-"; @@ -644,7 +657,7 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trFileReference(const char *fileName) { QCString result=fileName; - result+=" Fil-reference"; + result+=" filreference"; return result; } @@ -652,31 +665,31 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 virtual QCString trNamespaceReference(const char *namespaceName) { QCString result=namespaceName; - result+=" Namespace-reference"; + result+=" namespace-reference"; return result; } - + virtual QCString trPublicMembers() - { return "Public Methods"; } + { return "Offentlige metoder"; } virtual QCString trPublicSlots() - { return "Public Slots"; } + { return "Offentlige slots"; } virtual QCString trSignals() - { return "Signals"; } + { return "Signaler"; } virtual QCString trStaticPublicMembers() - { return "Static Public Methods"; } + { return "Statiske, offentlige metoder"; } virtual QCString trProtectedMembers() - { return "Protected Methods"; } + { return "Beskyttede metoder"; } virtual QCString trProtectedSlots() - { return "Protected Slots"; } + { return "Beskyttede slots"; } virtual QCString trStaticProtectedMembers() - { return "Static Protected Methods"; } + { return "Statiske, beskyttede metoder"; } virtual QCString trPrivateMembers() - { return "Private Methods"; } + { return "Private metoder"; } virtual QCString trPrivateSlots() - { return "Private Slots"; } + { return "Private slots"; } virtual QCString trStaticPrivateMembers() - { return "Static Private Methods"; } - + { return "Statiske, private metoder"; } + /*! this function is used to produce a comma-separated list of items. * use generateMarker(i) to indicate where item i should be put. */ @@ -685,29 +698,27 @@ class TranslatorDanish : public TranslatorAdapter_1_2_7 QCString result; int i; // the inherits list contain `numEntries' classes - for (i=0;i