diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/classdef.h | 2 | ||||
-rw-r--r-- | src/doxygen.cpp | 57 | ||||
-rw-r--r-- | src/doxygen.h | 1 | ||||
-rw-r--r-- | src/memberdef.h | 1 | ||||
-rw-r--r-- | src/translator_jp.h | 86 | ||||
-rw-r--r-- | src/translator_no.h | 1389 | ||||
-rw-r--r-- | src/util.cpp | 13 |
7 files changed, 1195 insertions, 354 deletions
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<DefinitionList> *Doxygen::symbolMap; bool Doxygen::outputToWizard=FALSE; QDict<int> * Doxygen::htmlDirMap = 0; QCache<LookupInfo> 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<LookupInfo> 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<int> *htmlDirMap; static QCache<LookupInfo> 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("ÆþÎϤµ¤ì¤¿¾ò·ï¤Ë¥Þ¥Ã¥Á¤¹¤ë¥É¥¥å¥á¥ó¥È¤¬ <b>1</b> ·ï¤ß¤Ä¤«¤ê¤Þ¤·¤¿."); + } + else + { + return decode("ÆþÎϤµ¤ì¤¿¾ò·ï¤Ë¥Þ¥Ã¥Á¤¹¤ë¥É¥¥å¥á¥ó¥È¤¬ <b>$num</b> ·ï¤ß¤Ä¤«¤ê¤Þ¤·¤¿. " + "ºÇ¤â°ìÃפ·¤Æ¤¤¤ë¤â¤Î¤«¤éɽ¼¨¤µ¤ì¤Þ¤¹."); + } + } + /*! This string is put before the list of matched words, for each search + * result. What follows is the list of words that matched the query. + */ + virtual QCString trSearchMatches() + { + return 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 <lejordet@gmail.com> + * + * 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 + * <pre>"\\usepackage[german]{babel}\n" + * </pre> + * or + * <pre>"\\usepackage{polski}\n" + * "\\usepackage[latin2]{inputenc}\n" + * "\\usepackage[T1]{fontenc}\n" + * </pre> + */ + 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<numEntries;i++) + for (i=0;i<numEntries;i++) { // use generateMarker to generate placeholders for the class links! - result+=generateMarker(i); // generate marker for entry i in the list + result+=generateMarker(i); // generate marker for entry i in the list // (order is left to right) - + if (i!=numEntries-1) // not the last entry, so we need a separator { - if (i<numEntries-2) // not the fore last entry + if (i<numEntries-2) // not the fore last entry result+=", "; else // the fore last entry result+=", og "; } } - return result; + return result; } - + + /*! used in class documentation to produce a list of base classes, + * if class diagrams are disabled. + */ virtual QCString trInheritsList(int numEntries) - // used in class documentasjon to produce a list of base classes, - // if class diagrams are disabled. { return "Arver "+trWriteList(numEntries)+"."; } + + /*! used in class documentation to produce a list of super classes, + * if class diagrams are disabled. + */ virtual QCString trInheritedByList(int numEntries) - // used in class documentasjon to produce a list of super classes, - // if class diagrams are disabled. { - return "Arvet fra "+trWriteList(numEntries)+"."; + return "Arvet av "+trWriteList(numEntries)+"."; } + + /*! used in member documentation blocks to produce a list of + * members that are hidden by this one. + */ virtual QCString trReimplementedFromList(int numEntries) - // used in member documentasjon blocks to produce a list of - // members that are hidden by this one. { return "Reimplementert fra "+trWriteList(numEntries)+"."; } + + /*! used in member documentation blocks to produce a list of + * all member that overwrite the implementation of this member. + */ virtual QCString trReimplementedInList(int numEntries) { - // used in member documentasjon blocks to produce a list of - // all member that overwrite the implementasjon of this member. return "Reimplementert i "+trWriteList(numEntries)+"."; } + /*! This is put above each page as a link to all members of namespaces. */ virtual QCString trNamespaceMembers() - { return "Navneområdemedlemmer"; } + { return "Navneromsmedlemmer"; } + + /*! This is an introduction to the page with all namespace members */ virtual QCString trNamespaceMemberDescription(bool extractAll) - { + { QCString result="Her er en liste over alle "; if (!extractAll) result+="dokumenterte "; - result+="navneområdemedlemmer med lenker til "; - if (extractAll) - result+=" navneområde-dokumentasjonen for hvert medlem:"; - else - result+="de navneområder de tilhører:"; + result+="navneromsmedlemmer med koblinger til "; + if (extractAll) + result+="navneromsdokumentasjonen for hvert medlem:"; + else + result+="navnerommet de hører til:"; return result; } - + /*! This is used in LaTeX as the title of the chapter with the + * index of all namespaces. + */ virtual QCString trNamespaceIndex() - { return "Navneområdeindeks"; } + { return "Navneromsindeks"; } + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all namespaces. + */ virtual QCString trNamespaceDocumentation() - { return "Navneområde-dokumentasjon"; } - ////////////////////////////////////////////////////////////////////////// + { return "Navneromsdokumentasjon"; } + +////////////////////////////////////////////////////////////////////////// // new since 0.49-990522 ////////////////////////////////////////////////////////////////////////// - /*! This is used in the documentasjon before the list of all + /*! This is used in the documentation before the list of all * namespaces in a file. */ virtual QCString trNamespaces() - { return "Navneområder"; } + { return "Navnerom"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990728 ////////////////////////////////////////////////////////////////////////// - /*! This is put at the bottom of a class documentasjon page and is + /*! This is put at the bottom of a class documentation page and is * followed by a list of files that were used to generate the page. */ virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType, bool single) { // here s is one of " Class", " Struct" or " Union" // single is true implies a single file - QCString result=(QCString)"Dokumentasjonen for "; + QCString result=(QCString)"The documentation for this "; switch(compType) { - case ClassDef::Class: result+="denne klasse "; break; - case ClassDef::Struct: result+="denne strukt "; break; - case ClassDef::Union: result+="denne union "; break; - case ClassDef::Interface: result+="dette grensesnittet "; 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+="interface"; break; + case ClassDef::Exception: result+="unntak"; break; + case ClassDef::Protocol: result+="protocol"; break; + case ClassDef::Category: result+="category"; break; } - result+="var generert fra følgende fil"; + result+=" ble generert fra følgende fil"; if (single) result+=":"; else result+="er:"; return result; } @@ -499,9 +818,8 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 * list. */ virtual QCString trAlphabeticalList() - { - return "Alfabetisk liste"; - } + { return "Alfabetisk Liste"; } + ////////////////////////////////////////////////////////////////////////// // new since 0.49-990901 ////////////////////////////////////////////////////////////////////////// @@ -516,7 +834,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 { return "Hovedside"; } /*! This is used in references to page that are put in the LaTeX - * documentasjon. It should be an abbreviasjon of the word page. + * documentation. It should be an abbreviation of the word page. */ virtual QCString trPageAbbreviation() { return "s."; } @@ -531,12 +849,13 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 } virtual QCString trDefinedAtLineInSourceFile() { - return "Definisjon på rad @0 i filen @1."; + return "Definisjon på linje @0 i filen @1."; } virtual QCString trDefinedInSourceFile() { return "Definisjon i filen @0."; } + ////////////////////////////////////////////////////////////////////////// // new since 0.49-991205 ////////////////////////////////////////////////////////////////////////// @@ -553,37 +872,38 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 /*! this text is put before a collaboration diagram */ virtual QCString trCollaborationDiagram(const char *clName) { - return (QCString)"Samarbeidsdiagram for "+clName+":"; + return (QCString)"Kollaborasjonsdiagram for "+clName+":"; } /*! this text is put before an include dependency graph */ virtual QCString trInclDepGraph(const char *fName) { - return (QCString)"Include-avhengighetsgraf for "+fName+":"; + return (QCString)"Inkluderingsavhengighetsgraf for "+fName+":"; } + /*! header that is put before the list of constructor/destructors. */ virtual QCString trConstructorDocumentation() { - return "Konstruktør- og Destruktørdokumentasjon"; + return "Konstruktør- & Destruktør-dokumentasjon"; } /*! Used in the file documentation to point to the corresponding sources. */ virtual QCString trGotoSourceCode() { - return "Gå til kildekoden for denne filen."; + return "Gå til kildekoden til denne filen."; } /*! Used in the file sources to point to the corresponding documentation. */ virtual QCString trGotoDocumentation() { - return "Gå til dokumentasjonen for denne filen."; + return "Gå til dokumentasjonen til denne filen."; } /*! Text for the \\pre command */ virtual QCString trPrecondition() { - return "Før-kondisjon"; + return "Førbetingelse"; } /*! Text for the \\post command */ virtual QCString trPostcondition() { - return "Etter-kondisjon"; + return "Etterbetingelse"; } /*! Text for the \\invariant command */ virtual QCString trInvariant() @@ -593,7 +913,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 /*! Text shown before a multi-line variable/enum initialization */ virtual QCString trInitialValue() { - return "Initializer:"; + return "Startverdi:"; } /*! Text used the source code in the file index */ virtual QCString trCode() @@ -602,19 +922,19 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 } virtual QCString trGraphicalHierarchy() { - return "Graphical Class Hierarchy"; + return "Grafisk klassehierarki"; } virtual QCString trGotoGraphicalHierarchy() { - return "Go to the graphical class hierarchy"; + return "Gå til det grafiske klasse hierarkiet"; } virtual QCString trGotoTextualHierarchy() { - return "Go to the textual class hierarchy"; + return "Gå til tekst-klassehierarki"; } virtual QCString trPageIndex() { - return "Sideindeks"; + return "Innhold"; } ////////////////////////////////////////////////////////////////////////// @@ -627,39 +947,46 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 } virtual QCString trPublicTypes() { - return "Public Typer"; + return "Public typer"; } virtual QCString trPublicAttribs() { - return "Public Attributter"; + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Datafelt"; + } + else + { + return "Public attributter"; + } } virtual QCString trStaticPublicAttribs() { - return "Statiske Public Attributter"; + return "Statiske public attributter"; } virtual QCString trProtectedTypes() { - return "Beskyttede Typer"; + return "Protected typer"; } virtual QCString trProtectedAttribs() { - return "Beskyttede Attributter"; + return "Protected attributter"; } virtual QCString trStaticProtectedAttribs() { - return "Statiske Beskyttede Attributter"; + return "Statiske protected attributter"; } virtual QCString trPrivateTypes() { - return "Private Typer"; + return "Private typer"; } virtual QCString trPrivateAttribs() { - return "Private Attributter"; + return "Private attributter"; } virtual QCString trStaticPrivateAttribs() { - return "Statiske Private Attributter"; + return "Statiske private attributter"; } ////////////////////////////////////////////////////////////////////////// @@ -683,7 +1010,7 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 virtual QCString trReferencedBy() { - return "Referert at"; + return "Referert av"; } virtual QCString trRemarks() { @@ -691,12 +1018,12 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 } virtual QCString trAttention() { - return "Attention"; + return "Viktig"; } virtual QCString trInclByDepGraph() { - return "This graph shows which files directly or " - "indirectly include this file:"; + return "Denne grafen viser hvilke filer som direkte eller " + "indirekte inkluderer denne filen:"; } virtual QCString trSince() { @@ -710,69 +1037,68 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 /*! title of the graph legend page */ virtual QCString trLegendTitle() { - return "Graph Legend"; + return "Symbolforklaring"; } /*! page explaining how the dot graph's should be interpreted */ virtual QCString trLegendDocs() { return - "This page explains how to interpret the graphs that are generated " - "by doxygen.<p>\n" - "Consider the following example:\n" - "\\code\n" - "/*! Invisible class because of truncation */\n" - "class Invisible { };\n\n" - "/*! Truncated class, inheritance relation is hidden */\n" - "class Truncated : public Invisible { };\n\n" - "/* Class not documented with doxygen comments */\n" - "class Undocumented { };\n\n" - "/*! Class that is inherited using public inheritance */\n" + "Denne siden forklarer hvordan man tolker grafene doxygen genererer.<p>\n" + "Vi baserer oss på følgende eksempel:\n" + "\\code\n" + "/*! Usynlig klasse pga. trunkasjon */\n" + "class Invisible { };\n\n" + "/*! Trunkert klasse, arve-relasjon er skjult */\n" + "class Truncated : public Invisible { };\n\n" + "/* Klasse som ikke er dokumentert med doxygen-kommentarer */" + "class Undocumented { };\n\n" + "/*! Klasse med public-arv */\n" "class PublicBase : public Truncated { };\n\n" - "/*! Class that is inherited using protected inheritance */\n" + "/*! Klasse med protected-arv */\n" "class ProtectedBase { };\n\n" - "/*! Class that is inherited using private inheritance */\n" + "/*! Klasse med private-arv */\n" "class PrivateBase { };\n\n" - "/*! Class that is used by the Inherited class */\n" + "/*! Klasse som blir brukt av klassen Inherited */\n" "class Used { };\n\n" - "/*! Super class that inherits a number of other classes */\n" + "/*! Super-klasse som arver flere andre klasser */\n" "class Inherited : public PublicBase,\n" " protected ProtectedBase,\n" " private PrivateBase,\n" " public Undocumented\n" + " public Templ<int>\n" "{\n" " private:\n" " Used *m_usedClass;\n" "};\n" - "\\endcode\n" - "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file " - "is set to 200 this will result in the following graph:" + "\\endcode\n" + "Hvis \\c MAX_DOT_GRAPH_HEIGHT er satt til 200 i " + "konfigurasjonsfila vil dette resultere i følgende graf:" "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p>\n" - "The boxes in the above graph have the following meaning:\n" - "<ul>\n" - "<li>A filled black box represents the struct or class for which the " - "graph is generated.\n" - "<li>A box with a black border denotes a documented struct or class.\n" - "<li>A box with a grey border denotes an undocumented struct or class.\n" - "<li>A box with a red border denotes a documented struct or class for\n" - "which not all inheritance/containment relations are shown. A graph is " - "truncated if it does not fit within the specified boundaries." - "</ul>\n" - "The arrows have the following meaning:\n" + "Boksene i grafen over betyr følgende:\n" "<ul>\n" - "<li>A dark blue arrow is used to visualize a public inheritance " - "relation between two classes.\n" - "<li>A dark green arrow is used for protected inheritance.\n" - "<li>A dark red arrow is used for private inheritance.\n" - "<li>A purple dashed arrow is used if a class is contained or used " - "by another class. The arrow is labeled with the variable(s) " - "through which the pointed class or struct is accessible. \n" - "</ul>\n"; + "<li>En fylt svart boks representerer klassen grafen " + "er generert for.\n" + "<li>En boks med svart ramme angir en dokumentert struct eller klasse.\n" + "<li>En boks med grå ramme angir en udokumentert struct eller klasse.\n" + "<li>En boks med rød ramme angir en dokumentert struct eller klasse " + "der ikke alle relasjoner er vist. En graf blir trunkert om den ikke " + "passer innenfor de spesifiserte rammene.\n" + "</ul>\n" + "Pilene i grafen har følgende betydning:\n" + "</ul>\n" + "<li>En mørk blå pil brukes til å visualisere public-arv mellom to klasser.\n" + "<li>En mørk grønn pil brukes for protected-arv.\n" + "<li>En mørk rød pil angir private-arv.\n" + "<li>En stiplet lilla pil angir at en klasse er inkludert eller brukt " + "i en annen klasse. Pilen er merket med variablen(e) klassen " + "er tilgjengelig gjennom.\n" + "</ul>\n"; } /*! text for the link to the legend page */ virtual QCString trLegend() { - return "legend"; + return "symbolforklaring"; } ////////////////////////////////////////////////////////////////////////// @@ -797,17 +1123,430 @@ class TranslatorNorwegian : public TranslatorAdapter_1_2_2 /*! Used as a section header for KDE-2 IDL methods */ virtual QCString trDCOPMethods() { - return "DCOP Methods"; + return "DCOP-metoder"; } -}; -#endif +////////////////////////////////////////////////////////////////////////// +// new since 1.2.1 +////////////////////////////////////////////////////////////////////////// + /*! Used as a section header for IDL properties */ + virtual QCString trProperties() + { + return "Egenskaper"; + } + /*! Used as a section header for IDL property documentation */ + virtual QCString trPropertyDocumentation() + { + return "Egenskaps-dokumentasjon"; + } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.4 +////////////////////////////////////////////////////////////////////////// + /*! Used for Java interfaces in the summary section of Java packages */ + virtual QCString trInterfaces() + { + return "Grensesnitt"; + } + /*! Used for Java classes in the summary section of Java packages */ + virtual QCString trClasses() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Datastrukturer"; + } + else + { + return "Klasser"; + } + } + /*! Used as the title of a Java package */ + virtual QCString trPackage(const char *name) + { + return (QCString)"Package "+name; + } + /*! Title of the package index page */ + virtual QCString trPackageList() + { + return "Pakke-liste"; + } + /*! The description of the package index page */ + virtual QCString trPackageListDescription() + { + return "Her er pakkene med korte beskrivelser (om tilgjengelig):"; + } + /*! The link name in the Quick links header for each page */ + virtual QCString trPackages() + { + return "Pakker"; + } + /*! Used as a chapter title for Latex & RTF output */ + virtual QCString trPackageDocumentation() + { + return "Pakke-dokumentasjon"; + } + /*! Text shown before a multi-line define */ + virtual QCString trDefineValue() + { + return "Verdi:"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.5 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a marker that is put before a \\bug item */ + virtual QCString trBug() + { + return "Bug"; + } + /*! Used as the header of the bug list */ + virtual QCString trBugList() + { + return "Bug-liste"; + } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.6 +////////////////////////////////////////////////////////////////////////// + /*! Used as ansicpg for RTF file + * + * The following table shows the correlation of Charset name, Charset Value and + * <pre> + * Codepage number: + * Charset Name Charset Value(hex) Codepage number + * ------------------------------------------------------ + * DEFAULT_CHARSET 1 (x01) + * SYMBOL_CHARSET 2 (x02) + * OEM_CHARSET 255 (xFF) + * ANSI_CHARSET 0 (x00) 1252 + * RUSSIAN_CHARSET 204 (xCC) 1251 + * EE_CHARSET 238 (xEE) 1250 + * GREEK_CHARSET 161 (xA1) 1253 + * TURKISH_CHARSET 162 (xA2) 1254 + * BALTIC_CHARSET 186 (xBA) 1257 + * HEBREW_CHARSET 177 (xB1) 1255 + * ARABIC _CHARSET 178 (xB2) 1256 + * SHIFTJIS_CHARSET 128 (x80) 932 + * HANGEUL_CHARSET 129 (x81) 949 + * GB2313_CHARSET 134 (x86) 936 + * CHINESEBIG5_CHARSET 136 (x88) 950 + * </pre> + * + */ + virtual QCString trRTFansicp() + { + return "1252"; + } + + /*! Used as ansicpg for RTF fcharset + * \see trRTFansicp() for a table of possible values. + */ + virtual QCString trRTFCharSet() + { + return "0"; + } + /*! Used as header RTF general index */ + virtual QCString trRTFGeneralIndex() + { + return "Indeks"; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trClass(bool first_capital, bool singular) + { + QCString result((first_capital ? "Klasse" : "klasse")); + if (!singular) result+="r"; + return result; + } + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trFile(bool first_capital, bool singular) + { + QCString result((first_capital ? "Fil" : "fil")); + if (!singular) result+="er"; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trNamespace(bool first_capital, bool singular) + { + QCString result((first_capital ? "Navnerom" : "navnerom")); + if (!singular) result+=""; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trGroup(bool first_capital, bool singular) + { + QCString result((first_capital ? "Gruppe" : "gruppe")); + if (!singular) result+="r"; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trPage(bool first_capital, bool singular) + { + QCString result((first_capital ? "Side" : "side")); + if (!singular) result+="r"; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trMember(bool first_capital, bool singular) + { + QCString result((first_capital ? "Medlem" : "medlem")); + if (!singular) result+="mer"; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trField(bool first_capital, bool singular) + { + QCString result((first_capital ? "Felt" : "felt")); + if (!singular) result+=""; + return result; + } + + /*! This is used for translation of the word that will possibly + * be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trGlobal(bool first_capital, bool singular) + { + QCString result((first_capital ? "Global" : "global")); + if (!singular) result+="e"; + return result; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.7 +////////////////////////////////////////////////////////////////////////// + + /*! This text is generated when the \\author command is used and + * for the author section in man pages. */ + virtual QCString trAuthor(bool first_capital, bool singular) + { + QCString result((first_capital ? "Forfatter" : "forfatter")); + if (!singular) result+="e"; + return result; + } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.11 +////////////////////////////////////////////////////////////////////////// + + /*! This text is put before the list of members referenced by a member + */ + virtual QCString trReferences() + { + return "Referanser"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.13 +////////////////////////////////////////////////////////////////////////// + + /*! used in member documentation blocks to produce a list of + * members that are implemented by this one. + */ + virtual QCString trImplementedFromList(int numEntries) + { + return "Implementerer "+trWriteList(numEntries)+"."; + } + + /*! used in member documentation blocks to produce a list of + * all members that implement this abstract member. + */ + virtual QCString trImplementedInList(int numEntries) + { + return "Implementert i "+trWriteList(numEntries)+"."; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.16 +////////////////////////////////////////////////////////////////////////// + + /*! used in RTF documentation as a heading for the Table + * of Contents. + */ + virtual QCString trRTFTableOfContents() + { + return "Innholdsfortegnelse"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.17 +////////////////////////////////////////////////////////////////////////// + + /*! Used as the header of the list of item that have been + * flagged deprecated + */ + virtual QCString trDeprecatedList() + { + return "Liste over foreldede enheter"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.2.18 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a header for declaration section of the events found in + * a C# program + */ + virtual QCString trEvents() + { + return "Hendelser"; + } + /*! Header used for the documentation section of a class' events. */ + virtual QCString trEventDocumentation() + { + return "Hendelsesdokumentasjon"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3 +////////////////////////////////////////////////////////////////////////// + + /*! Used as a heading for a list of Java class types with package scope. + */ + virtual QCString trPackageTypes() + { + return "Pakketyper"; + } + /*! Used as a heading for a list of Java class functions with package + * scope. + */ + virtual QCString trPackageMembers() + { + return "Pakkefunksjoner"; + } + /*! Used as a heading for a list of static Java class functions with + * package scope. + */ + virtual QCString trStaticPackageMembers() + { + return "Statiske Pakkefunksjoner"; + } + /*! Used as a heading for a list of Java class variables with package + * scope. + */ + virtual QCString trPackageAttribs() + { + return "Pakkeattributter"; + } + /*! Used as a heading for a list of static Java class variables with + * package scope. + */ + virtual QCString trStaticPackageAttribs() + { + return "Statiske Pakkeattributter"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.3.1 +////////////////////////////////////////////////////////////////////////// + + /*! Used in the quick index of a class/file/namespace member list page + * to link to the unfiltered list of all members. + */ + virtual QCString trAll() + { + return "Alle"; + } + /*! Put in front of the call graph for a function. */ + virtual QCString trCallGraph() + { + return "Her er kall-grafen for denne funksjonen:"; + } + +////////////////////////////////////////////////////////////////////////// +// 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 "Søk etter"; + } + /*! This string is used as the title for the page listing the search + * results. + */ + virtual QCString trSearchResultsTitle() + { + return "Søkeresultater"; + } + /*! 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 "Beklager, men ingen dokumenter ble funnet."; + } + else if (numDocuments==1) + { + return "Fant <b>ett</b> dokument som passet ditt søk."; + } + else + { + return "Fant <b>$num</b> dokumenter som passet ditt søk. " + "Viser beste treff først."; + } + } + /*! 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 "Treff:"; + } + +////////////////////////////////////////////////////////////////////////// +// 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 "Kildefil " + filename; + } +}; + +#endif diff --git a/src/util.cpp b/src/util.cpp index c1cd269..193dded 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -662,7 +662,7 @@ ClassDef *newResolveTypedef(FileDef *fileScope,MemberDef *md,QCString *pTemplSpe } // remember computed value for next time - if (Doxygen::lookupCacheEnabled && result && result->getDefFileName()!="<code>") + if (result && result->getDefFileName()!="<code>") // this check is needed to prevent that temporary classes that are // introduced while parsing code fragments are being cached here. { @@ -1045,7 +1045,7 @@ ClassDef *getResolvedClassRec(Definition *scope, QCString key=scope->name()+"+"+name+"+"+explicitScopePart; LookupInfo *pval=Doxygen::lookupCache.find(key); //printf("Searching for %s result=%p\n",key.data(),pval); - if (Doxygen::lookupCacheEnabled && pval) + if (pval) { if (pTemplSpec) *pTemplSpec=pval->templSpec; if (pTypeDef) *pTypeDef=pval->typeDef; @@ -1143,14 +1143,7 @@ ClassDef *getResolvedClassRec(Definition *scope, } else { - if (Doxygen::lookupCacheEnabled) - { - Doxygen::lookupCache.insert(key,new LookupInfo(bestMatch,bestTypedef,bestTemplSpec)); - } - else // remove the 0 key from the cache - { - Doxygen::lookupCache.remove(key); - } + Doxygen::lookupCache.insert(key,new LookupInfo(bestMatch,bestTypedef,bestTemplSpec)); } //printf("] bestMatch=%s distance=%d\n", // bestMatch?bestMatch->name().data():"<none>",minDistance); |