From d7bf5675c4490ac0291cf1795b7499f2047d5c58 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sun, 25 Jul 2004 09:54:32 +0000 Subject: Release-1.3.8 --- INSTALL | 4 +- README | 4 +- VERSION | 2 +- doc/language.doc | 77 +-- doc/maintainers.txt | 5 +- doc/translator.py | 75 ++- packages/rpm/doxygen.spec | 2 +- src/classdef.h | 2 + src/doxygen.cpp | 57 +- src/doxygen.h | 1 - src/memberdef.h | 1 + src/translator_jp.h | 86 ++- src/translator_no.h | 1389 ++++++++++++++++++++++++++++++++++----------- src/util.cpp | 13 +- 14 files changed, 1291 insertions(+), 427 deletions(-) diff --git a/INSTALL b/INSTALL index 0fb122f..ea70031 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ -DOXYGEN Version 1.3.7-20040718 +DOXYGEN Version 1.3.8 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (18 July 2004) +Dimitri van Heesch (25 July 2004) diff --git a/README b/README index c738704..8abd960 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.3.7_20040718 +DOXYGEN Version 1.3.8 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) (18 July 2004) +Dimitri van Heesch (dimitri@stack.nl) (25 July 2004) diff --git a/VERSION b/VERSION index c6b9338..e05cb33 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.7-20040718 +1.3.8 diff --git a/doc/language.doc b/doc/language.doc index dc2193f..456cf66 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other than English (the default). The output language is chosen through the configuration file (with default name and known as Doxyfile). -Currently (version 1.3.8), 30 languages +Currently (version 1.3.7-20040719), 30 languages are supported (sorted alphabetically): Afrikaans, Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French, @@ -45,7 +45,7 @@ when the translator was updated. Language Maintainer Contact address - (remove the NOSPAM.) + (replace the at and dot) Status @@ -53,104 +53,104 @@ when the translator was updated. Afrikaans Johan Prinsloo - johan@NOSPAM.zippysnoek.com + johan at zippysnoek dot com up-to-date Brazilian Portuguese Fabio "FJTC" Jun Takada Chino - chino@NOSPAM.icmc.sc.usp.br + chino at icmc dot sc dot usp dot br up-to-date Catalan Albert Mora - amora@NOSPAM.iua.upf.es + amora at iua dot upf dot es 1.2.17 Chinese Li Daobing
Wei Liu - lidaobing@NOSPAM.gmail.com
liuwei@NOSPAM.asiainfo.com + lidaobing at gmail dot com
liuwei at asiainfo dot com 1.3.08 Chinese Traditional Daniel YC Lin
Gary Lee - daniel@NOSPAM.twpda.com
garylee@NOSPAM.ecosine.com.tw + daniel at twpda dot com
garylee at ecosine dot com dot tw 1.3.8 Croatian Boris Bralo - boris.bralo@NOSPAM.zg.tel.hr + boris.bralo at zg dot htnet dot hr up-to-date Czech Petr Přikryl - prikrylp@NOSPAM.skil.cz + prikrylp at skil dot cz up-to-date Danish Erik Søe Sørensen - erik@NOSPAM.mail.nu + erik at mail dot nu 1.3.8 Dutch Dimitri van Heesch - dimitri@NOSPAM.stack.nl + dimitri at stack dot nl up-to-date English Dimitri van Heesch - dimitri@NOSPAM.stack.nl + dimitri at stack dot nl up-to-date Finnish Olli Korhonen - Olli.Korhonen@NOSPAM.ccc.fi + Olli.Korhonen at ccc dot fi obsolete French Xavier Outhier - xouthier@NOSPAM.yahoo.fr + xouthier at yahoo dot fr 1.3.8 German Jens Seidel - jensseidel@NOSPAM.users.sf.net + jensseidel at users dot sf dot net 1.3.8 Greek Harry Kalogirou - harkal@NOSPAM.rainbow.cs.unipi.gr + harkal at rainbow dot cs dot unipi dot gr 1.2.11 Hungarian Földvári György
Ákos Kiss - foldvari@NOSPAM.diatronltd.com
akiss@NOSPAM.users.sourceforge.net + foldvari at diatronltd dot com
akiss at users dot sourceforge dot net 1.3.8 Italian Alessandro Falappa
Ahmed Aldo Faisal - alessandro@NOSPAM.falappa.net
aaf23@NOSPAM.cam.ac.uk + alessandro at falappa dot net
aaf23 at cam dot ac dot uk up-to-date Japanese - Ryunosuke Satoh
Kenji Nagamatsu - sun594@NOSPAM.hotmail.com
naga@NOSPAM.joyful.club.ne.jp - 1.3.3 + Ryunosuke Satoh
Kenji Nagamatsu
Iwasa Kazmi + sun594 at hotmail dot com
naga at joyful dot club dot ne dot jp
iwasa at cosmo-system dot jp + up-to-date JapaneseEn @@ -161,7 +161,7 @@ when the translator was updated. Korean Richard Kim - ryk@NOSPAM.dspwiz.com + ryk at dspwiz dot com 1.3.8 @@ -173,73 +173,73 @@ when the translator was updated. Lithuanian Tomas Simonaitis
Mindaugas Radzius
Aidas Berukstis - haden@NOSPAM.homelan.lt
mindaugasradzius@NOSPAM.takas.lt
aidasber@NOSPAM.takas.lt + haden at homelan dot lt
mindaugasradzius at takas dot lt
aidasber at takas dot lt 1.3.8 Norwegian Lars Erik Jordet - lej@NOSPAM.circuitry.no - 1.2.2 + lejordet at gmail dot com + up-to-date Polish Piotr Kaminski
Grzegorz Kowal - Piotr.Kaminski@NOSPAM.ctm.gdynia.pl
g_kowal@NOSPAM.poczta.onet.pl + Piotr.Kaminski at ctm dot gdynia dot pl
g_kowal at poczta dot onet dot pl 1.3 Portuguese Rui Godinho Lopes - ruiglopes@NOSPAM.yahoo.com + ruiglopes at yahoo dot com 1.3.3 Romanian Alexandru Iosup - aiosup@NOSPAM.yahoo.com + aiosup at yahoo dot com 1.2.16 Russian Alexandr Chelpanov - cav@NOSPAM.cryptopro.ru + cav at cryptopro dot ru up-to-date Serbian Dejan Milosavljevic - dmilos@NOSPAM.email.com + dmilos at email dot com 1.3.8 Slovak Stanislav Kudláč - skudlac@NOSPAM.pobox.sk + skudlac at pobox dot sk 1.2.18 Slovene Matjaz Ostroversnik - matjaz.ostroversnik@NOSPAM.zrs-tk.si + matjaz.ostroversnik at zrs-tk dot si 1.2.16 Spanish Francisco Oltra Thennet - foltra@NOSPAM.puc.cl + foltra at puc dot cl 1.3.8 Swedish Mikael Hallin - mikaelhallin@NOSPAM.yahoo.se + mikaelhallin at yahoo dot se 1.3.3 Ukrainian Olexij Tkatchenko - olexij.tkatchenko@NOSPAM.gmx.de + olexij.tkatchenko at gmx dot de 1.2.11 @@ -269,7 +269,7 @@ when the translator was updated. Chinese Traditional & Daniel YC Lin & {\tt\tiny daniel@twpda.com} & 1.3.8 \\ ~ & Gary Lee & {\tt\tiny garylee@ecosine.com.tw} & ~ \\ \hline - Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.tel.hr} & up-to-date \\ + Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.htnet.hr} & up-to-date \\ \hline Czech & Petr P\v{r}ikryl & {\tt\tiny prikrylp@skil.cz} & up-to-date \\ \hline @@ -293,8 +293,9 @@ when the translator was updated. Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\ ~ & Ahmed Aldo Faisal & {\tt\tiny aaf23@cam.ac.uk} & ~ \\ \hline - Japanese & Ryunosuke Satoh & {\tt\tiny sun594@hotmail.com} & 1.3.3 \\ + Japanese & Ryunosuke Satoh & {\tt\tiny sun594@hotmail.com} & up-to-date \\ ~ & Kenji Nagamatsu & {\tt\tiny naga@joyful.club.ne.jp} & ~ \\ + ~ & Iwasa Kazmi & {\tt\tiny iwasa@cosmo-system.jp} & ~ \\ \hline JapaneseEn & see the Japanese language & {\tt\tiny ~} & English based \\ \hline @@ -306,7 +307,7 @@ when the translator was updated. ~ & Mindaugas Radzius & {\tt\tiny mindaugasradzius@takas.lt} & ~ \\ ~ & Aidas Berukstis & {\tt\tiny aidasber@takas.lt} & ~ \\ \hline - Norwegian & Lars Erik Jordet & {\tt\tiny lej@circuitry.no} & 1.2.2 \\ + Norwegian & Lars Erik Jordet & {\tt\tiny lejordet@gmail.com} & up-to-date \\ \hline Polish & Piotr Kaminski & {\tt\tiny Piotr.Kaminski@ctm.gdynia.pl} & 1.3 \\ ~ & Grzegorz Kowal & {\tt\tiny g\_kowal@poczta.onet.pl} & ~ \\ diff --git a/doc/maintainers.txt b/doc/maintainers.txt index 2022a32..e627f5c 100644 --- a/doc/maintainers.txt +++ b/doc/maintainers.txt @@ -27,7 +27,7 @@ Daniel YC Lin: daniel@twpda.com Gary Lee: garylee@ecosine.com.tw TranslatorCroatian -Boris Bralo: boris.bralo@zg.tel.hr +Boris Bralo: boris.bralo@zg.htnet.hr TranslatorCzech Petr Přikryl: prikrylp@skil.cz @@ -64,6 +64,7 @@ Ahmed Aldo Faisal: aaf23@cam.ac.uk TranslatorJapanese Ryunosuke Satoh: sun594@hotmail.com Kenji Nagamatsu: naga@joyful.club.ne.jp +Iwasa Kazmi: iwasa@cosmo-system.jp TranslatorKorean Richard Kim: ryk@dspwiz.com @@ -74,7 +75,7 @@ Mindaugas Radzius: mindaugasradzius@takas.lt Aidas Berukstis: aidasber@takas.lt TranslatorNorwegian -Lars Erik Jordet: lej@circuitry.no +Lars Erik Jordet: lejordet@gmail.com TranslatorPolish Piotr Kaminski: Piotr.Kaminski@ctm.gdynia.pl diff --git a/doc/translator.py b/doc/translator.py index b2da2a6..c103b1b 100644 --- a/doc/translator.py +++ b/doc/translator.py @@ -22,27 +22,26 @@ History: -------- - 2002/05/21 - - This was the last Perl version. - 2003/05/16 - - If the script is given list of languages, only the translator report - is generated and only for those languages. - 2004/01/24 - - Total reimplementation just started: classes TrManager, and Transl. - 2004/02/05 - - First version that produces translator report. The documentation - in the language.doc is not generated yet. - 2004/02/10 - - First fully functional version that generates both the translator - report and the documentation. It is a bit slower than the Perl version, - but is much less tricky and much more flexible. It also solves some - problems that were not solved by the Perl version. The translator report - content should be more useful for developers. + 2002/05/21 - This was the last Perl version. + 2003/05/16 - List of language marks can be passed as arguments. + 2004/01/24 - Total reimplementation started: classes TrManager, and Transl. + 2004/02/05 - First version that produces translator report. No language.doc yet. + 2004/02/10 - First fully functional version that generates both the translator + report and the documentation. It is a bit slower than the + Perl version, but is much less tricky and much more flexible. + It also solves some problems that were not solved by the Perl + version. The translator report content should be more useful + for developers. 2004/02/11 - Some tuning-up to provide more useful information. 2004/04/16 - Added new tokens to the tokenizer (to remove some warnings). 2004/05/25 - Added from __future__ import generators not to force Python 2.3. 2004/06/03 - Removed dependency on textwrap module. 2004/07/07 - Fixed the bug in the fill() function. + 2004/07/21 - Better e-mail mangling for HTML part of language.doc. + - Plural not used for reporting a single missing method. + - Removal of not used translator adapters is suggested only + when the report is not restricted to selected languages + explicitly via script arguments """ from __future__ import generators @@ -1115,8 +1114,12 @@ class Transl: fout.write('\n\n\n') fout.write(self.classId + ' (' + self.baseClassId + ')') if self.missingMethods: - fout.write(' %d' % len(self.missingMethods)) - fout.write(' methods to implement') + num = len(self.missingMethods) + fout.write(' %d' % num) + fout.write(' method') + if num > 1: + fout.write('s') + fout.write(' to implement') fout.write('\n' + '-' * len(self.classId)) # Write the info about the implemented required methods. @@ -1420,7 +1423,10 @@ class TrManager: obj = self.__translDic[x] f.write(' %-30s' % obj.classId) f.write(' %-6s' % obj.readableStatus) - f.write('\t%2d methods to implement' % len(obj.missingMethods)) + numimpl = len(obj.missingMethods) + pluralS = '' + if numimpl > 1: pluralS = 's' + f.write('\t%2d method%s to implement' % (numimpl, pluralS)) if obj.note: f.write('\n\tNote: ' + obj.note + '\n') f.write('\n') @@ -1430,11 +1436,14 @@ class TrManager: adaptMinVersion = obj.status # Set the note if some old translator adapters are not needed - # any more. - for version, adaptClassId in self.adaptMethodsDic.values(): - if version < adaptMinVersion: - f.write('\nNote: The %s class ' % adaptClassId) - f.write('is not used and can be removed.\n') + # any more. Do it only when the script is called without arguments, + # i.e. all languages were checked against the needed translator + # adapters. + if not self.script_argLst: + for version, adaptClassId in self.adaptMethodsDic.values(): + if version < adaptMinVersion: + f.write('\nNote: The %s class ' % adaptClassId) + f.write('is not used and can be removed.\n') # Write the list of the English-based classes. if self.EnBasedIdLst: @@ -1583,7 +1592,7 @@ class TrManager: Language Maintainer Contact address - (remove the NOSPAM.) + (replace the at and dot) Status @@ -1628,11 +1637,21 @@ class TrManager: ee = '
'.join(le) # Mangle the e-mail and replace the entity references. - if ee: - ee = ee.replace('@', '@NOSPAM.') + if ee and ee != ' ': + # More than one maintainer address separated by
can be used. + emails = ee.split('
') + mangled_list = [] + for email in emails: + name, domain = email.split('@') + domain = domain.replace('.', ' dot ') + mangled_list.append(name + ' at ' + domain) + ee = '
'.join(mangled_list) + if mm: mm = mm.replace('č', 'č') mm = mm.replace('ř', 'ř') + mm = mm.replace('š', 'š') + mm = mm.replace('ž', 'ž') # Append the maintainer and e-mail elements. lst.append(htmlTdTpl % mm) @@ -1717,6 +1736,8 @@ class TrManager: latexTable = latexTable.replace('ø', '\\o{}') latexTable = latexTable.replace('č', '\\v{c}') latexTable = latexTable.replace('ř', '\\v{r}') + latexTable = latexTable.replace('š', '\\v{s}') + latexTable = latexTable.replace('ž', '\\v{z}') latexTable = latexTable.replace('_', '\\_') # Put the HTML and LaTeX parts together and define the dic item. diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec index 7c38345..ac3640a 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.7_20040718 +Version: 1.3.8 Release: 1 Epoch: 1 Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz diff --git a/src/classdef.h b/src/classdef.h index 3f6bf8e..f73a7d1 100644 --- a/src/classdef.h +++ b/src/classdef.h @@ -161,6 +161,8 @@ class ClassDef : public Definition */ ClassDef *templateMaster() const { return m_templateMaster; } + bool isTemplate() const { return m_tempArgs!=0; } + IncludeInfo *includeInfo() const { return m_incInfo; } UsesClassDict *usedImplementationClasses() const diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 98bb3ac..cd5d557 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -120,7 +120,6 @@ SDict *Doxygen::symbolMap; bool Doxygen::outputToWizard=FALSE; QDict * Doxygen::htmlDirMap = 0; QCache Doxygen::lookupCache(20000,20000); -bool Doxygen::lookupCacheEnabled=FALSE; static StringList inputFiles; static StringDict excludeNameDict(1009); // sections @@ -6193,6 +6192,54 @@ static void findSectionsInDocumentation() if (Doxygen::mainPage) Doxygen::mainPage->findSectionsInDocumentation(); } +static void flushCachedTemplateRelations() +{ + // remove all references to template classes from the cache + // as there can be new template instances that should be linked + // to instead. + QCacheIterator ci(Doxygen::lookupCache); + LookupInfo *li=0; + for (ci.toFirst();(li=ci.current());++ci) + { + if (li->classDef && li->classDef->isTemplate()) + { + Doxygen::lookupCache.remove(ci.currentKey()); + } + } + // remove all cached typedef resolutions whose target is a + // template class as this may now be a template instance + MemberNameSDict::Iterator fnli(Doxygen::functionNameSDict); + MemberName *fn; + for (;(fn=fnli.current());++fnli) // for each global function name + { + MemberNameIterator fni(*fn); + MemberDef *fmd; + for (;(fmd=fni.current());++fni) // for each function with that name + { + if (fmd->isTypedefValCached()) + { + ClassDef *cd = fmd->getCachedTypedefVal(); + if (cd->isTemplate()) fmd->invalidateTypedefValCache(); + } + } + } + MemberNameSDict::Iterator mnli(Doxygen::memberNameSDict); + for (;(fn=mnli.current());++mnli) // for each class method name + { + MemberNameIterator mni(*fn); + MemberDef *fmd; + for (;(fmd=mni.current());++mni) // for each function with that name + { + if (fmd->isTypedefValCached()) + { + ClassDef *cd = fmd->getCachedTypedefVal(); + if (cd->isTemplate()) fmd->invalidateTypedefValCache(); + } + } + } +} + + //---------------------------------------------------------------------------- static void findDefineDocumentation(Entry *root) @@ -7437,7 +7484,6 @@ void initDoxygen() Doxygen::memGrpInfoDict.setAutoDelete(TRUE); Doxygen::tagDestinationDict.setAutoDelete(TRUE); Doxygen::lookupCache.setAutoDelete(TRUE); - Doxygen::lookupCacheEnabled=FALSE; } void cleanUpDoxygen() @@ -8227,6 +8273,9 @@ void parseInput() findInheritedTemplateInstances(); findUsedTemplateInstances(); + msg("Flushing cached template relations that have become invalid...\n"); + flushCachedTemplateRelations(); + msg("Creating members for template instances...\n"); createTemplateInstanceMembers(); @@ -8235,10 +8284,6 @@ void parseInput() computeClassRelations(); classEntries.clear(); - // from now on the class relations are fixed and we can - // start to cache them to improve performance - Doxygen::lookupCacheEnabled=TRUE; - msg("Searching for enumerations...\n"); findEnums(root); findEnumDocumentation(root); diff --git a/src/doxygen.h b/src/doxygen.h index 32d2cbf..404ac22 100644 --- a/src/doxygen.h +++ b/src/doxygen.h @@ -112,7 +112,6 @@ class Doxygen static bool outputToWizard; static QDict *htmlDirMap; static QCache lookupCache; - static bool lookupCacheEnabled; }; void initDoxygen(); diff --git a/src/memberdef.h b/src/memberdef.h index 736dc2d..0208746 100644 --- a/src/memberdef.h +++ b/src/memberdef.h @@ -273,6 +273,7 @@ class MemberDef : public Definition QCString getCachedTypedefTemplSpec() const { return m_cachedTypedefTemplSpec; } void cacheTypedefVal(ClassDef *val,const QCString &templSpec) { m_isTypedefValCached=TRUE; m_cachedTypedefValue=val; m_cachedTypedefTemplSpec=templSpec; } + void invalidateTypedefValCache() { m_isTypedefValCached=FALSE; } // declaration <-> definition relation void setMemberDefinition(MemberDef *md) { memDef=md; } diff --git a/src/translator_jp.h b/src/translator_jp.h index 2ed60ff..ec74b1e 100644 --- a/src/translator_jp.h +++ b/src/translator_jp.h @@ -29,7 +29,7 @@ #ifndef TRANSLATOR_JP_H #define TRANSLATOR_JP_H -class TranslatorJapanese : public TranslatorAdapter_1_3_3 +class TranslatorJapanese : public Translator { private: /*! The decode() can change euc into sjis */ @@ -600,13 +600,13 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 case ClassDef::Class: result+=decode("¥¯¥é¥¹ "); break; case ClassDef::Struct: result+=decode("¹½Â¤ÂÎ "); break; case ClassDef::Union: result+=decode("¶¦ÍÑÂÎ "); break; - case ClassDef::Interface: result+=decode("¥¤¥ó¥¿¥Õ¥§¡¼¥¹"); break; - case ClassDef::Protocol: result+=decode("Protocol"); break; // translate me! - case ClassDef::Category: result+=decode("Category"); break; // translate me! - case ClassDef::Exception: result+=decode("Îã³°"); break; //TODO:fixme + case ClassDef::Interface: result+=decode("¥¤¥ó¥¿¥Õ¥§¡¼¥¹ "); break; + case ClassDef::Protocol: result+=decode("¥×¥í¥È¥³¥ë "); break; + case ClassDef::Category: result+=decode("¥«¥Æ¥´¥ê "); break; + case ClassDef::Exception: result+=decode("Îã³° "); break; } - if (isTemplate) result+=decode(" ¥Æ¥ó¥×¥ì¡¼¥È"); - result+=(QCString)clName; + if (isTemplate) result+=decode("¥Æ¥ó¥×¥ì¡¼¥È "); + result+=(QCString)clName; return result; } @@ -759,9 +759,9 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 case ClassDef::Struct: result+=decode("¹½Â¤ÂÎ"); break; case ClassDef::Union: result+=decode("¶¦ÍÑÂÎ"); break; case ClassDef::Interface: result+=decode("¥¤¥ó¥¿¥Õ¥§¡¼¥¹"); break; - case ClassDef::Protocol: result+=decode("Protocol"); break; // translate me! - case ClassDef::Category: result+=decode("Category"); break; // translate me! - case ClassDef::Exception: result+=decode("Îã³°"); break; //TODO:fixme + case ClassDef::Protocol: result+=decode("¥×¥í¥È¥³¥ë"); break; + case ClassDef::Category: result+=decode("¥«¥Æ¥´¥ê"); break; + case ClassDef::Exception: result+=decode("Îã³°"); break; } result+=decode("¤ÎÀâÌÀ¤Ï¼¡¤Î¥Õ¥¡¥¤¥ë¤«¤éÀ¸À®¤µ¤ì¤Þ¤·¤¿:"); return result; @@ -1341,7 +1341,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 */ virtual QCString trImplementedFromList(int numEntries) { - return trWriteList(numEntries)+decode("¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹")+"."; + return trWriteList(numEntries)+decode("¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹")+"."; } /*! used in member documentation blocks to produce a list of @@ -1349,7 +1349,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 */ virtual QCString trImplementedInList(int numEntries) { - return trWriteList(numEntries)+decode("¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹")+"."; + return trWriteList(numEntries)+decode("¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹")+"."; } ////////////////////////////////////////////////////////////////////////// // new since 1.2.16 @@ -1447,5 +1447,67 @@ class TranslatorJapanese : public TranslatorAdapter_1_3_3 { return decode("´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¥°¥é¥Õ:"); } + +////////////////////////////////////////////////////////////////////////// +// 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 decode("¸¡º÷"); + } + /*! This string is used as the title for the page listing the search + * results. + */ + virtual QCString trSearchResultsTitle() + { + return decode("¸¡º÷·ë²Ì"); + } + /*! 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 decode("ÆþÎϤµ¤ì¤¿¾ò·ï¤Ë¥Þ¥Ã¥Á¤¹¤ë¥É¥­¥å¥á¥ó¥È¤¬¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿."); + } + else if (numDocuments==1) + { + return decode("ÆþÎϤµ¤ì¤¿¾ò·ï¤Ë¥Þ¥Ã¥Á¤¹¤ë¥É¥­¥å¥á¥ó¥È¤¬ 1 ·ï¤ß¤Ä¤«¤ê¤Þ¤·¤¿."); + } + else + { + return decode("ÆþÎϤµ¤ì¤¿¾ò·ï¤Ë¥Þ¥Ã¥Á¤¹¤ë¥É¥­¥å¥á¥ó¥È¤¬ $num ·ï¤ß¤Ä¤«¤ê¤Þ¤·¤¿. " + "ºÇ¤â°ìÃפ·¤Æ¤¤¤ë¤â¤Î¤«¤éɽ¼¨¤µ¤ì¤Þ¤¹."); + } + } + /*! 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 decode("¥Þ¥Ã¥Á¤·¤¿Ã±¸ì:"); + } + +////////////////////////////////////////////////////////////////////////// +// 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 + decode(" ¥½¡¼¥¹¥Õ¥¡¥¤¥ë"); + } }; #endif diff --git a/src/translator_no.h b/src/translator_no.h index 3fd21ee..1fcadc1 100644 --- a/src/translator_no.h +++ b/src/translator_no.h @@ -2,7 +2,7 @@ * * * - * Copyright (C) 1997-2004 by Dimitri van Heesch. + * 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 @@ -15,482 +15,801 @@ * */ -/* -================================================================================== - -================================================================================== -*/ +/****************************************************************************** + * Norwegian translation by Lars Erik Jordet + * + * This is a new translation made from scratch, not based on my older Norwegian translation (for 1.2.2) + * + * Translation notes (in Norwegian) + * + * Jeg har stort sett brukt ord som ligger ganske nær de engelske ekvivalentene, + * for eksempel "enumeration" -> "enumerasjon", og i enkelte tilfeller det engelske + * ordet direkte, der jeg finner det mer naturlig enn å prøve å stable en setning + * på beina på norsk, eller jeg selv foretrekker det engelske ordet (eks: "Header-fil"). + * Om noen ikke skulle like disse valgene, kontakt meg på mailadressen over. + * + * Doxygen har mange strings som består av sammensatte ord ("Member function description", for eksempel), + * som ikke alltid ser like ryddig ut på norsk. Jeg har brukt bindestrek for å få + * det til å se presentabelt ut, men om noen har en bedre idé, send til mailadressen over. + * + * Changelog + * + * 2003-12-18: Initial translation + * 2004-07-19: Fixup to prepare for 1.3.8 (I had forgotten some functions) + */ #ifndef TRANSLATOR_NO_H #define TRANSLATOR_NO_H -#include "translator_adapter.h" - -class TranslatorNorwegian : public TranslatorAdapter_1_2_2 +class TranslatorNorwegian : public Translator { public: - QCString idLanguage() - { return "norwegian"; } - QCString latexBabelPackage() - { return "norwegian"; } - QCString trRelatedFunctions() - { return "Beslektede funksjoner"; } + // --- 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 "norwegian"; } + + /*! 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 + "\\usepackage[norwegian]{babel}\n" + "\\usepackage[latin1]{inputenc}\n" + "\\usepackage[T1]{fontenc}\n"; + } - QCString trRelatedSubscript() - { return "(Observer at disse ikke er medlemsfunksjoner)"; } + /*! return the language charset. This will be used for the HTML output */ + virtual QCString idLanguageCharset() + { + return "iso-8859-1"; + } - QCString trDetailedDescription() - { return "Detaljert beskrivelse"; } + // --- Language translation methods ------------------- - QCString trMemberTypedefDocumentation() - { return "Dokumentasjon over typedefinerte medlemmer"; } + /*! used in the compound documentation before a list of related functions. */ + virtual QCString trRelatedFunctions() + { return "Relaterte Funksjoner"; } - QCString trMemberEnumerationDocumentation() - { return "Dokumentasjon over enumererte medlemmer"; } + /*! subscript for the related functions. */ + virtual QCString trRelatedSubscript() + { return "(Merk at disse ikke er medlemsfunksjoner.)"; } - QCString trMemberFunctionDocumentation() - { return "Dokumentasjon over medlemsfunksjoner"; } + /*! header that is put before the detailed description of files, classes and namespaces. */ + virtual QCString trDetailedDescription() + { return "Detaijert Beskrivelse"; } - QCString trMemberDataDocumentation() - { return "Dokumentasjon over datamedlemmer"; } + /*! header that is put before the list of typedefs. */ + virtual QCString trMemberTypedefDocumentation() + { return "Medlemstypedef-dokumentasjon"; } + + /*! header that is put before the list of enumerations. */ + virtual QCString trMemberEnumerationDocumentation() + { return "Medlemsenumerasjons-dokumentasjon"; } + + /*! header that is put before the list of member functions. */ + virtual QCString trMemberFunctionDocumentation() + { return "Medlemsfunksjons-dokumentasjon"; } + + /*! header that is put before the list of member attributes. */ + virtual QCString trMemberDataDocumentation() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Feltdokumentasjon"; + } + else + { + return "Medlemsdata-dokumentasjon"; + } + } - QCString trMore() + /*! this is the text of a link put after brief descriptions. */ + virtual QCString trMore() { return "Mer..."; } - QCString trListOfAllMembers() + /*! put in the class documentation */ + virtual QCString trListOfAllMembers() { return "Liste over alle medlemmer."; } - QCString trMemberList() + /*! used as the title of the "list of all members" page of a class */ + virtual QCString trMemberList() { return "Medlemsliste"; } - QCString trThisIsTheListOfAllMembers() - { return "Det her er en fullstendig liste over medlemmer for "; } + /*! this is the first part of a sentence that is followed by a class name */ + virtual QCString trThisIsTheListOfAllMembers() + { return "Dette er den fullstendige listen over medlemmer for "; } - QCString trIncludingInheritedMembers() - { return " med alle nedarvede medlemmer."; } - - QCString trGeneratedAutomatically(const char *s) - { QCString result="Automatisk generert av Doxygen"; + /*! this is the remainder of the sentence after the class name */ + virtual QCString trIncludingInheritedMembers() + { return ", alle arvede medlemmer inkludert."; } + + /*! 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="Generert automatisk av Doxygen"; if (s) result+=(QCString)" for "+s; result+=" fra kildekoden."; return result; } - QCString trEnumName() - { return "enum navn"; } - - QCString trEnumValue() - { return "enum verdi"; } - - QCString trDefinedIn() + /*! put after an enum name in the list of all members */ + virtual QCString trEnumName() + { return "enumnavn"; } + + /*! put after an enum value in the list of all members */ + virtual QCString trEnumValue() + { return "enumverdi"; } + + /*! put after an undocumented member in the list of all members */ + virtual QCString trDefinedIn() { return "definert i"; } + // quick reference sections - QCString trVerbatimText(const char *f) - { return (QCString)"Dette er den ordrette teksten fra inkluderingsfilen "+f; } - - QCString trModules() + /*! 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"; } - - QCString trClassHierarchy() + + /*! 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")) + { + return "Datastrukturer"; + } + else + { + return "Klasseliste"; + } + } + + /*! This is put above each page as a link to the list of documented files */ + virtual QCString trFileList() + { return "Fil-liste"; } + + /*! This is put above each page as a link to the list of all verbatim headers */ + virtual QCString trHeaderFiles() + { return "Header-filer"; } + + /*! 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 "Datafelt"; + } + else + { + return "Klassemedlemmer"; + } + } - QCString trCompoundList() - { return "Sammensatt klasseliste"; } - - QCString trFileList() - { return "Filliste"; } - - QCString trHeaderFiles() - { return "Headerfiler"; } - - QCString trCompoundMembers() - { return "Sammensatte klassemedlemmer"; } - - QCString trFileMembers() - { return "Filmedlemmer"; } + /*! 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 "Filmedlemmer"; + } + } - QCString trRelatedPages() - { return "Beslektede sider"; } + /*! This is put above each page as a link to all related pages. */ + virtual QCString trRelatedPages() + { return "Relaterte Sider"; } - QCString trExamples() - { return "Eksempel"; } + /*! This is put above each page as a link to all examples. */ + virtual QCString trExamples() + { return "Eksempler"; } - QCString trSearch() + /*! This is put above each page as a link to the search engine. */ + virtual QCString trSearch() { return "Søk"; } - QCString trClassHierarchyDescription() - { return "Denne listen over arv er grovt, men ikke helt, " - "sortert i alfabetisk rekkefølge:"; + /*! This is an introduction to the class hierarchy. */ + virtual QCString trClassHierarchyDescription() + { return "Denne arvelisten er sortert grovt, " + "men ikke fullstendig, alfabetisk:"; } - QCString trFileListDescription(bool extractAll) + /*! This is an introduction to the list with all files. */ + virtual QCString trFileListDescription(bool extractAll) { - QCString result="Her følger en liste over alle "; + QCString result="Her er en liste over alle "; if (!extractAll) result+="dokumenterte "; - result+="filer, med en kort beskrivelse:"; + result+="filer med korte beskrivelser:"; return result; } - QCString trCompoundListDescription() - { return "Her følger klassene, struktene og " - "unionene med en kort beskrivelse:"; + /*! This is an introduction to the annotated compound list. */ + virtual QCString trCompoundListDescription() + { + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Her er datastrukturene med korte beskrivelser:"; + } + else + { + return "Her er klasser, structer, " + "unioner og interfacer med korte beskrivelser:"; + } } - QCString trCompoundMembersDescription(bool extractAll) + /*! This is an introduction to the page with all class members. */ + virtual QCString trCompoundMembersDescription(bool extractAll) { - - QCString result="Her følger en liste over alle "; - if (!extractAll) result+="dokumenterte "; - result+="klassemedlemmer med lenker til "; - if (!extractAll) result+="klassedokumentasjonen for hvert medlem:"; - else result+="klassene som de tilhører:"; + QCString result="Her er en liste over alle "; + if (!extractAll) + { + result+="dokumenterte "; + } + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="struct- og unionfelter"; + } + else + { + result+="klassemedlemmer"; + } + result+=" med koblinger til "; + if (!extractAll) + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="struct-/union-dokumentasjon for hvert felt:"; + } + else + { + result+="klassedokumentasjonen for hvert medlem:"; + } + } + else + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="structene/unionene de hører til:"; + } + else + { + result+="klassene de hører til:"; + } + } return result; } - - QCString trFileMembersDescription(bool extractAll) + /*! This is an introduction to the page with all file members. */ + virtual QCString trFileMembersDescription(bool extractAll) { - QCString result="Her følger en liste over alle "; + QCString result="Her er en liste over alle "; if (!extractAll) result+="dokumenterte "; - result+="filmedlemmer med lenker til "; - if (extractAll) result+="dokumentasjonsfilen for hvert medlem:"; - else result+="filene som de tilhører:"; + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="funksjoner, variable, definerte, enumer, and typedefer"; + } + else + { + result+="filmedlemmer"; + } + result+=" med koblinger til "; + if (extractAll) + result+="filene de hører til:"; + else + result+="dokumentasjonen:"; return result; } - QCString trHeaderFilesDescription() - { return "Her følger headerfilene som API består av:"; } + /*! This is an introduction to the page with the list of all header files. */ + virtual QCString trHeaderFilesDescription() + { return "Her er alle header-filene som utgjør API:"; } + + /*! This is an introduction to the page with the list of all examples */ + virtual QCString trExamplesDescription() + { return "Her er en liste over alle eksemplene:"; } - QCString trExamplesDescription() - { return "Her følger en liste med alle eksempler:"; } + /*! This is an introduction to the page with the list of related pages */ + virtual QCString trRelatedPagesDescription() + { return "Her er en liste over alle relaterte dokumentasjonssider:"; } - QCString trRelatedPagesDescription() - { return "Her følger en liste over alle beslektede dokumentasjonssider:";} + /*! This is an introduction to the page with the list of class/file groups */ + virtual QCString trModulesDescription() + { return "Her er en liste over alle moduler:"; } - QCString trModulesDescription() - { return "Her følger en liste over alle moduler:"; } + /*! This sentences is used in the annotated class/file lists if no brief + * description is given. + */ + virtual QCString trNoDescriptionAvailable() + { return "Ingen beskrivelse tilgjengelig"; } + + // index titles (the project name is prepended for these) - QCString trNoDescriptionAvailable() - { return "Beskrivelse mangler"; } - QCString trDocumentation() + /*! This is used in HTML as the title of index.html. */ + virtual QCString trDocumentation() { return "Dokumentasjon"; } - QCString trModuleIndex() - { return "Modulindex"; } + /*! This is used in LaTeX as the title of the chapter with the + * index of all groups. + */ + virtual QCString trModuleIndex() + { return "Modulindeks"; } - QCString trHierarchicalIndex() - { return "Hierarkisk Indeks"; } + /*! This is used in LaTeX as the title of the chapter with the + * class hierarchy. + */ + virtual QCString trHierarchicalIndex() + { return "Hierarkisk indeks"; } - QCString trCompoundIndex() - { return "Sammensatt Indeks"; } + /*! 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 "Datastrukturindeks"; + } + else + { + return "Klasse-indeks"; + } + } - QCString trFileIndex() - { return "Filindeks"; } + /*! This is used in LaTeX as the title of the chapter with the + * list of all files. + */ + virtual QCString trFileIndex() + { return "Fil-indeks"; } - QCString trModuleDocumentation() - { return "Dokumentasjon av moduler"; } + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all groups. + */ + virtual QCString trModuleDocumentation() + { return "Moduldokumentasjon"; } - QCString trClassDocumentation() - { return "Dokumentasjon av klasser"; } + /*! 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 "Datastruktur-dokumentasjon"; + } + else + { + return "Klassedokumentasjon"; + } + } - QCString trFileDocumentation() - { return "Dokumentasjon av filer"; } + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all files. + */ + virtual QCString trFileDocumentation() + { return "Fildokumentasjon"; } - QCString trExampleDocumentation() - { return "Dokumentasjon av eksempler"; } + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all examples. + */ + virtual QCString trExampleDocumentation() + { return "Eksempeldokumentasjon"; } - QCString trPageDocumentation() - { return "Dokumentasjon av sider"; } + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all related pages. + */ + virtual QCString trPageDocumentation() + { return "Sidedokumentasjon"; } - QCString trReferenceManual() + /*! This is used in LaTeX as the title of the document */ + virtual QCString trReferenceManual() { return "Referansemanual"; } + + /*! This is used in the documentation of a file as a header before the + * list of defines + */ + virtual QCString trDefines() + { return "Definerte"; } - QCString trDefines() - { return "Definisjoner"; } - QCString trFuncProtos() - { return "Funksjonsprototyper"; } - QCString trTypedefs() - { return "Typedefinisjoner"; } - QCString trEnumerations() - { return "Enumererte typer"; } - QCString trFunctions() - { return "Funksjoner"; } + /*! This is used in the documentation of a file as a header before the + * list of function prototypes + */ + virtual QCString trFuncProtos() + { return "Funksjonprototyper"; } - QCString trVariables() - { return "Variable"; } + /*! This is used in the documentation of a file as a header before the + * list of typedefs + */ + virtual QCString trTypedefs() + { return "Typedefer"; } - QCString trEnumerationValues() - { return "Enumererte typers verdier"; } + /*! This is used in the documentation of a file as a header before the + * list of enumerations + */ + virtual QCString trEnumerations() + { return "Enumerasjoner"; } - QCString trAuthor() - { return "Forfatter"; } + /*! This is used in the documentation of a file as a header before the + * list of (global) functions + */ + virtual QCString trFunctions() + { return "Funksjoner"; } - QCString trDefineDocumentation() - { return "Dokumentasjon over definisjoner"; } + /*! This is used in the documentation of a file as a header before the + * list of (global) variables + */ + virtual QCString trVariables() + { return "Variable"; } - QCString trFunctionPrototypeDocumentation() - { return "Dokumentasjon over funksjonsprototyper"; } + /*! This is used in the documentation of a file as a header before the + * list of (global) variables + */ + virtual QCString trEnumerationValues() + { return "Enumerasjonsverdier"; } + + /*! This is used in the documentation of a file before the list of + * documentation blocks for defines + */ + virtual QCString trDefineDocumentation() + { return "Define-dokumentasjon"; } - QCString trTypedefDocumentation() - { return "Dokumentasjon over typedefinisjoner"; } + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for function prototypes + */ + virtual QCString trFunctionPrototypeDocumentation() + { return "Funksjonsprototype-dokumentasjon"; } - QCString trEnumerationTypeDocumentation() - { return "Dokumentasjon over enumererte typer"; } + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for typedefs + */ + virtual QCString trTypedefDocumentation() + { return "Typedef-dokumentasjon"; } - QCString trEnumerationValueDocumentation() - { return "Dokumentasjon over enumererte typers verdier"; } + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for enumeration types + */ + virtual QCString trEnumerationTypeDocumentation() + { return "Enumerert type-dokumentasjon"; } - QCString trFunctionDocumentation() - { return "Dokumentasjon over funksjoner"; } + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for enumeration values + */ + virtual QCString trEnumerationValueDocumentation() + { return "Enumerert verdi-dokumentasjon"; } - QCString trVariableDocumentation() - { return "Dokumentasjon over variable"; } + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for functions + */ + virtual QCString trFunctionDocumentation() + { return "Funksjonsdokumentasjon"; } - QCString trCompounds() - { return "Sammensetning"; } + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for variables + */ + virtual QCString trVariableDocumentation() + { return "Variabeldokumentasjon"; } - QCString trFiles() - { return "Filer"; } + /*! 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 "Klasser"; + } + } - QCString trGeneratedAt(const char *date,const char *projName) - { - QCString result=(QCString)"Generert "+date; + /*! 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)"Generert på "+date; if (projName) result+=(QCString)" for "+projName; result+=(QCString)" av"; return result; } - - QCString trWrittenBy() + /*! This is part of the sentence used in the standard footer of each page. + */ + virtual QCString trWrittenBy() { return "skrevet av"; } - QCString trClassDiagram(const char *clName) + /*! this text is put before a class diagram */ + virtual QCString trClassDiagram(const char *clName) { - return (QCString)"Klassediagram for "+clName; + return (QCString)"Arvediagram for "+clName+":"; } + + /*! this text is generated when the \\internal command is used. */ + virtual QCString trForInternalUseOnly() + { return "Kun for intern bruk."; } - QCString trForInternalUseOnly() - { return "Kun for internt bruk."; } - - QCString trReimplementedForInternalReasons() - { return "Omskrevet av interne grunner ; API påvirkes ikke.";} + /*! this text is generated when the \\reimp command is used. */ + virtual QCString trReimplementedForInternalReasons() + { return "Reimplementert av interne grunner; API er ikke påvirket."; } - QCString trWarning() + /*! this text is generated when the \\warning command is used. */ + virtual QCString trWarning() { return "Advarsel"; } - QCString trBugsAndLimitations() - { return "Feil och begrensninger"; } + /*! this text is generated when the \\bug command is used. */ + virtual QCString trBugsAndLimitations() + { return "Bugs og begrensninger"; } - QCString trVersion() + /*! this text is generated when the \\version command is used. */ + virtual QCString trVersion() { return "Versjon"; } - QCString trDate() + /*! this text is generated when the \\date command is used. */ + virtual QCString trDate() { return "Dato"; } - QCString trAuthors() - { return "Forfatter(e)"; } - - QCString trReturns() + /*! this text is generated when the \\return command is used. */ + virtual QCString trReturns() { return "Returnerer"; } - QCString trSeeAlso() + /*! this text is generated when the \\sa command is used. */ + virtual QCString trSeeAlso() { return "Se også"; } - QCString trParameters() + /*! this text is generated when the \\param command is used. */ + virtual QCString trParameters() { return "Parametre"; } - QCString trExceptions() + /*! this text is generated when the \\exception command is used. */ + virtual QCString trExceptions() { return "Unntak"; } - - QCString trGeneratedBy() + + /*! this text is used in the title page of a LaTeX document. */ + virtual QCString trGeneratedBy() { return "Generert av"; } +////////////////////////////////////////////////////////////////////////// // new since 0.49-990307 - +////////////////////////////////////////////////////////////////////////// + + /*! used as the title of page containing all the index of all namespaces. */ virtual QCString trNamespaceList() - { return "Navneområdeliste"; } + { return "Navneromliste"; } + /*! used as an introduction to the namespace list */ virtual QCString trNamespaceListDescription(bool extractAll) { QCString result="Her er en liste over alle "; - if (!extractAll) result+="dokumenterade "; - result+="navneområder med en kort forklaring:"; + if (!extractAll) result+="dokumenterte "; + result+="navnerom med korte beskrivelser:"; return result; } + /*! used in the class documentation as a header before the list of all + * friends of a class + */ virtual QCString trFriends() { return "Venner"; } - + ////////////////////////////////////////////////////////////////////////// // new since 0.49-990405 ////////////////////////////////////////////////////////////////////////// - + + /*! used in the class documentation as a header before the list of all + * related classes + */ virtual QCString trRelatedFunctionDocumentation() - { return "Venners och beslektede funksjoners dokumentasjon"; } - + { return "Venner Og Relaterte Funksjoner-dokumentasjon"; } + ////////////////////////////////////////////////////////////////////////// // 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*/) + bool isTemplate) { - QCString result=(QCString)clName+" "; + QCString result=(QCString)clName; switch(compType) { - case ClassDef::Class: result+=" klasse"; break; - case ClassDef::Struct: result+=" struktur"; break; - case ClassDef::Union: result+=" union"; break; - case ClassDef::Interface: result+=" grensesnitt"; break; - case ClassDef::Protocol: result+=" protocol"; break; // translate me! - case ClassDef::Category: result+=" category"; break; // translate me! - case ClassDef::Exception: result+=" unntak"; break; + case ClassDef::Class: result+=" Klasse"; break; + case ClassDef::Struct: result+=" Struct"; break; + case ClassDef::Union: result+=" Union"; break; + case ClassDef::Interface: result+=" Grensesnitt"; break; + case ClassDef::Exception: result+=" Unntak"; break; + case ClassDef::Protocol: result+=" Protocol"; break; + case ClassDef::Category: result+=" Category"; break; } - result+="referanse"; + if (isTemplate) result+=" Mal"; + result+=" Referanse"; return result; } + /*! used as the title of the HTML page of a file */ virtual QCString trFileReference(const char *fileName) { QCString result=fileName; - result+=" filreferanse"; + result+=" Filreferanse"; return result; } + /*! used as the title of the HTML page of a namespace */ virtual QCString trNamespaceReference(const char *namespaceName) { QCString result=namespaceName; - result+=" navneområdereferanse"; + result+=" Navneromsreferanse"; return result; } - + virtual QCString trPublicMembers() - { return "Public medlemmer"; } + { return "Public Medlemsfunksjoner"; } virtual QCString trPublicSlots() - { return "Public slots"; } + { return "Public Slots"; } virtual QCString trSignals() { return "Signaler"; } virtual QCString trStaticPublicMembers() - { return "Statiske public medlemmer"; } + { return "Statiske Public Medlemsfunksjoner"; } virtual QCString trProtectedMembers() - { return "Beskyttede medlemmer"; } + { return "Protected Memdlemsfunksjoner"; } virtual QCString trProtectedSlots() - { return "Beskyttede slots"; } + { return "Protected Slots"; } virtual QCString trStaticProtectedMembers() - { return "Statiska beskyttede medlemmer"; } + { return "Statiske Protected Medlemsfunksjoner"; } virtual QCString trPrivateMembers() - { return "Private medlemmer"; } + { return "Private Medlemsfunksjoner"; } virtual QCString trPrivateSlots() - { return "Private slots"; } + { return "Private Slots"; } virtual QCString trStaticPrivateMembers() - { return "Statiske private medlemmer"; } - // end of member secsjons - + { return "Statiske Private Medlemsfunksjoner"; } + + /*! 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) { - // this funcsjon is used to produce a comma-separated list of items. - // use generateMarker(i) to indicate where item i should be put. QCString result; int i; // the inherits list contain `numEntries' classes - for (i=0;i