Fix for UBSan build
[platform/upstream/doxygen.git] / src / translator_no.h
1 /******************************************************************************
2  *
3  * 
4  *
5  * Copyright (C) 1997-2012 by Dimitri van Heesch.
6  *
7  * Permission to use, copy, modify, and distribute this software and its
8  * documentation under the terms of the GNU General Public License is hereby 
9  * granted. No representations are made about the suitability of this software 
10  * for any purpose. It is provided "as is" without express or implied warranty.
11  * See the GNU General Public License for more details.
12  *
13  * Documents produced by Doxygen are derivative works derived from the
14  * input used in their production; they are not affected by this license.
15  *
16  */
17
18 /******************************************************************************
19  * Norwegian translation by Lars Erik Jordet <lejordet@gmail.com>, parts by Frode Nilsen
20  * 
21  * This is a new translation made from scratch, not based on my older Norwegian translation (for 1.2.2)
22  *
23  * Translation notes (in Norwegian)
24  *
25  * Jeg har stort sett brukt ord som ligger ganske nær de engelske ekvivalentene,
26  * for eksempel "enumeration" -> "enumerasjon", og i enkelte tilfeller det engelske
27  * ordet direkte, der jeg finner det mer naturlig enn å prøve å stable en setning
28  * på beina på norsk, eller jeg selv foretrekker det engelske ordet (eks: "Header-fil").
29  * Om noen ikke skulle like disse valgene, kontakt meg på mailadressen over.
30  *
31  * Doxygen har mange strings som består av sammensatte ord ("Member function description", for eksempel),
32  * som ikke alltid ser like ryddig ut på norsk. Jeg har brukt bindestrek for å få
33  * det til å se presentabelt ut, men om noen har en bedre idé, send til mailadressen over.
34  *
35  * 2006-03-06:
36  * Jeg bruker ikke doxygen selv lenger, så det går nok litt i lengste laget mellom oppdateringer...
37  *
38  * Changelog
39  *
40  * 2003-12-18: Initial translation 
41  * 2004-07-19: Fixup to prepare for 1.3.8 (I had forgotten some functions)
42  * 2006-03-06: Added a .diff from Frode Nilsen, now compatible with 1.4.6.
43  */
44
45 #ifndef TRANSLATOR_NO_H
46 #define TRANSLATOR_NO_H
47
48 class TranslatorNorwegian : public TranslatorAdapter_1_4_6
49 {
50   public:
51
52     // --- Language control methods -------------------
53     
54     /*! Used for identification of the language. The identification 
55      * should not be translated. It should be replaced by the name 
56      * of the language in English using lower-case characters only
57      * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
58      * the identification used in language.cpp.
59      */
60     virtual QCString idLanguage()
61     { return "norwegian"; }
62     
63     /*! Used to get the LaTeX command(s) for the language support. 
64      *  This method should return string with commands that switch
65      *  LaTeX to the desired language.  For example 
66      *  <pre>"\\usepackage[german]{babel}\n"
67      *  </pre>
68      *  or
69      *  <pre>"\\usepackage{polski}\n"
70      *  "\\usepackage[latin2]{inputenc}\n"
71      *  "\\usepackage[T1]{fontenc}\n"
72      *  </pre>
73      */
74     virtual QCString latexLanguageSupportCommand()
75     {
76       return
77         "\\usepackage[norwegian]{babel}\n"
78         "\\usepackage[T1]{fontenc}\n";
79     }
80
81     /*! return the language charset. This will be used for the HTML output */
82     virtual QCString idLanguageCharset()
83     {
84       return "iso-8859-1";
85     }
86
87     // --- Language translation methods -------------------
88
89     /*! used in the compound documentation before a list of related functions. */
90     virtual QCString trRelatedFunctions()
91     { return "Relaterte funksjoner"; }
92
93     /*! subscript for the related functions. */
94     virtual QCString trRelatedSubscript()
95     { return "(Merk at disse ikke er medlemsfunksjoner.)"; }
96
97     /*! header that is put before the detailed description of files, classes and namespaces. */
98     virtual QCString trDetailedDescription()
99     { return "Detaljert beskrivelse"; }
100
101     /*! header that is put before the list of typedefs. */
102     virtual QCString trMemberTypedefDocumentation()
103     { return "Medlemstypedef-dokumentasjon"; }
104     
105     /*! header that is put before the list of enumerations. */
106     virtual QCString trMemberEnumerationDocumentation()
107     { return "Medlemsenumerasjon-dokumentasjon"; }
108
109     /*! header that is put before the list of member functions. */
110     virtual QCString trMemberFunctionDocumentation()
111     { return "Medlemsfunksjon-dokumentasjon"; }
112     
113     /*! header that is put before the list of member attributes. */
114     virtual QCString trMemberDataDocumentation()
115     { 
116       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
117       {
118         return "Feltdokumentasjon"; 
119       }
120       else
121       {
122         return "Medlemsdata-dokumentasjon"; 
123       }
124     }
125
126     /*! this is the text of a link put after brief descriptions. */
127     virtual QCString trMore() 
128     { return "Mer..."; }
129
130     /*! put in the class documentation */
131     virtual QCString trListOfAllMembers()
132     { return "Liste over alle medlemmer"; }
133
134     /*! used as the title of the "list of all members" page of a class */
135     virtual QCString trMemberList()
136     { return "Medlemsliste"; }
137
138     /*! this is the first part of a sentence that is followed by a class name */
139     virtual QCString trThisIsTheListOfAllMembers()
140     { return "Dette er den fullstendige listen over medlemmer for "; }
141
142     /*! this is the remainder of the sentence after the class name */
143     virtual QCString trIncludingInheritedMembers()
144     { return ", alle arvede medlemmer inkludert."; }
145     
146     /*! this is put at the author sections at the bottom of man pages.
147      *  parameter s is name of the project name.
148      */
149     virtual QCString trGeneratedAutomatically(const char *s)
150     { QCString result="Generert automatisk av Doxygen";
151       if (s) result+=(QCString)" for "+s;
152       result+=" fra kildekoden."; 
153       return result;
154     }
155
156     /*! put after an enum name in the list of all members */
157     virtual QCString trEnumName()
158     { return "enum-navn"; }
159
160     /*! put after an enum value in the list of all members */
161     virtual QCString trEnumValue()
162     { return "enum-verdi"; }
163     
164     /*! put after an undocumented member in the list of all members */
165     virtual QCString trDefinedIn()
166     { return "definert i"; }
167
168     // quick reference sections
169
170     /*! This is put above each page as a link to the list of all groups of 
171      *  compounds or files (see the \\group command).
172      */
173     virtual QCString trModules()
174     { return "Moduler"; }
175     
176     /*! This is put above each page as a link to the class hierarchy */
177     virtual QCString trClassHierarchy()
178     { return "Klassehierarki"; }
179     
180     /*! This is put above each page as a link to the list of annotated classes */
181     virtual QCString trCompoundList()
182     { 
183       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
184       {
185         return "Datastrukturer";
186       }
187       else
188       {
189         return "Klasseliste"; 
190       }
191     }
192     
193     /*! This is put above each page as a link to the list of documented files */
194     virtual QCString trFileList()
195     { return "Fil-liste"; }
196
197     /*! This is put above each page as a link to the list of all verbatim headers */
198     virtual QCString trHeaderFiles()
199     { return "Header-filer"; }
200
201     /*! This is put above each page as a link to all members of compounds. */
202     virtual QCString trCompoundMembers()
203     { 
204       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
205       {
206         return "Datafelt"; 
207       }
208       else
209       {
210         return "Klassemedlemmer"; 
211       }
212     }
213
214     /*! This is put above each page as a link to all members of files. */
215     virtual QCString trFileMembers()
216     { 
217       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
218       {
219         return "Globale"; 
220       }
221       else
222       {
223         return "Filmedlemmer"; 
224       }
225     }
226
227     /*! This is put above each page as a link to all related pages. */
228     virtual QCString trRelatedPages()
229     { return "Relaterte sider"; }
230
231     /*! This is put above each page as a link to all examples. */
232     virtual QCString trExamples()
233     { return "Eksempler"; }
234
235     /*! This is put above each page as a link to the search engine. */
236     virtual QCString trSearch()
237     { return "Søk"; }
238
239     /*! This is an introduction to the class hierarchy. */
240     virtual QCString trClassHierarchyDescription()
241     { return "Denne arvelisten er grovsortert alfabetisk "
242              "(ikke nødvendigvis korrekt):";
243     }
244
245     /*! This is an introduction to the list with all files. */
246     virtual QCString trFileListDescription(bool extractAll)
247     {
248       QCString result="Her er en liste over alle ";
249       if (!extractAll) result+="dokumenterte ";
250       result+="filer med korte beskrivelser:";
251       return result;
252     }
253
254     /*! This is an introduction to the annotated compound list. */
255     virtual QCString trCompoundListDescription()
256     { 
257       
258       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
259       {
260         return "Her er datastrukturene med korte beskrivelser:";
261       }
262       else
263       {
264         return "Her er klasser, struct'er, "
265                "unioner og interface'er med korte beskrivelser:";
266       }
267     }
268
269     /*! This is an introduction to the page with all class members. */
270     virtual QCString trCompoundMembersDescription(bool extractAll)
271     {
272       QCString result="Her er en liste over alle ";
273       if (!extractAll)
274       {
275         result+="dokumenterte ";
276       }
277       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
278       {
279         result+="struct- og unionfelter";
280       }
281       else
282       {
283         result+="klassemedlemmer";
284       }
285       result+=" med koblinger til ";
286       if (!extractAll) 
287       {
288         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
289         {
290           result+="struct/union dokumentasjon for hvert felt:";
291         }
292         else
293         {
294           result+="klassedokumentasjonen for hvert medlem:";
295         }
296       }
297       else 
298       {
299         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
300         {
301           result+="struct'ene/unionene de hører til:";
302         }
303         else
304         {
305           result+="klassene de hører til:";
306         }
307       }
308       return result;
309     }
310     /*! This is an introduction to the page with all file members. */
311     virtual QCString trFileMembersDescription(bool extractAll)
312     {
313       QCString result="Her er en liste over alle ";
314       if (!extractAll) result+="dokumenterte ";
315       
316       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
317       {
318         result+="funksjoner, variabler, definisjoner, enum'er, og typedef'er";
319       }
320       else
321       {
322         result+="filmedlemmer";
323       }
324       result+=" med koblinger til ";
325       if (extractAll) 
326         result+="filene de hører til:";
327       else 
328         result+="dokumentasjonen:";
329       return result;
330     }
331
332     /*! This is an introduction to the page with the list of all header files. */
333     virtual QCString trHeaderFilesDescription()
334     { return "Her er alle header-filene som utgjør API'et:"; }
335
336     /*! This is an introduction to the page with the list of all examples */
337     virtual QCString trExamplesDescription()
338     { return "Her er en liste over alle eksemplene:"; }
339
340     /*! This is an introduction to the page with the list of related pages */
341     virtual QCString trRelatedPagesDescription()
342     { return "Her er en liste over alle relaterte dokumentasjonssider:"; }
343
344     /*! This is an introduction to the page with the list of class/file groups */
345     virtual QCString trModulesDescription()
346     { return "Her er en liste over alle moduler:"; }
347
348     /*! This sentences is used in the annotated class/file lists if no brief
349      * description is given. 
350      */
351     virtual QCString trNoDescriptionAvailable()
352     { return "Ingen beskrivelse tilgjengelig"; }
353     
354     // index titles (the project name is prepended for these) 
355
356
357     /*! This is used in HTML as the title of index.html. */
358     virtual QCString trDocumentation()
359     { return "Dokumentasjon"; }
360
361     /*! This is used in LaTeX as the title of the chapter with the 
362      * index of all groups.
363      */
364     virtual QCString trModuleIndex()
365     { return "Modulindeks"; }
366
367     /*! This is used in LaTeX as the title of the chapter with the 
368      * class hierarchy.
369      */
370     virtual QCString trHierarchicalIndex()
371     { return "Hierarkisk indeks"; }
372
373     /*! This is used in LaTeX as the title of the chapter with the 
374      * annotated compound index.
375      */
376     virtual QCString trCompoundIndex()
377     {
378       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
379       { 
380         return "Datastrukturindeks";
381       }
382       else
383       {
384         return "Klasseindeks";
385       }
386     }
387
388     /*! This is used in LaTeX as the title of the chapter with the
389      * list of all files.
390      */
391     virtual QCString trFileIndex() 
392     { return "Filindeks"; }
393
394     /*! This is used in LaTeX as the title of the chapter containing
395      *  the documentation of all groups.
396      */
397     virtual QCString trModuleDocumentation()
398     { return "Moduldokumentasjon"; }
399
400     /*! This is used in LaTeX as the title of the chapter containing
401      *  the documentation of all classes, structs and unions.
402      */
403     virtual QCString trClassDocumentation()
404     { 
405       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
406       {
407         return "Datastrukturdokumentasjon";
408       }
409       else
410       {
411         return "Klassedokumentasjon"; 
412       }
413     }
414
415     /*! This is used in LaTeX as the title of the chapter containing
416      *  the documentation of all files.
417      */
418     virtual QCString trFileDocumentation()
419     { return "Fildokumentasjon"; }
420
421     /*! This is used in LaTeX as the title of the chapter containing
422      *  the documentation of all examples.
423      */
424     virtual QCString trExampleDocumentation()
425     { return "Eksempeldokumentasjon"; }
426
427     /*! This is used in LaTeX as the title of the chapter containing
428      *  the documentation of all related pages.
429      */
430     virtual QCString trPageDocumentation()
431     { return "Sidedokumentasjon"; }
432
433     /*! This is used in LaTeX as the title of the document */
434     virtual QCString trReferenceManual()
435     { return "Referansemanual"; }
436     
437     /*! This is used in the documentation of a file as a header before the 
438      *  list of defines
439      */
440     virtual QCString trDefines()
441     { return "Definisjoner"; }
442
443     /*! This is used in the documentation of a file as a header before the 
444      *  list of function prototypes
445      */
446     virtual QCString trFuncProtos()
447     { return "Funksjonprototyper"; }
448
449     /*! This is used in the documentation of a file as a header before the 
450      *  list of typedefs
451      */
452     virtual QCString trTypedefs()
453     { return "Typedef'er"; }
454
455     /*! This is used in the documentation of a file as a header before the 
456      *  list of enumerations
457      */
458     virtual QCString trEnumerations()
459     { return "Enumerasjoner"; }
460
461     /*! This is used in the documentation of a file as a header before the 
462      *  list of (global) functions
463      */
464     virtual QCString trFunctions()
465     { return "Funksjoner"; }
466
467     /*! This is used in the documentation of a file as a header before the 
468      *  list of (global) variables
469      */
470     virtual QCString trVariables()
471     { return "Variabler"; }
472
473     /*! This is used in the documentation of a file as a header before the 
474      *  list of (global) variables
475      */
476     virtual QCString trEnumerationValues()
477     { return "Enumerasjonsverdier"; }
478     
479     /*! This is used in the documentation of a file before the list of
480      *  documentation blocks for defines
481      */
482     virtual QCString trDefineDocumentation()
483     { return "Define-dokumentasjon"; }
484
485     /*! This is used in the documentation of a file/namespace before the list 
486      *  of documentation blocks for function prototypes
487      */
488     virtual QCString trFunctionPrototypeDocumentation()
489     { return "Funksjonsprototypedokumentasjon"; }
490
491     /*! This is used in the documentation of a file/namespace before the list 
492      *  of documentation blocks for typedefs
493      */
494     virtual QCString trTypedefDocumentation()
495     { return "Typedef-dokumentasjon"; }
496
497     /*! This is used in the documentation of a file/namespace before the list 
498      *  of documentation blocks for enumeration types
499      */
500     virtual QCString trEnumerationTypeDocumentation()
501     { return "Enumerasjontype dokumentasjon"; }
502
503     /*! This is used in the documentation of a file/namespace before the list 
504      *  of documentation blocks for enumeration values
505      */
506     virtual QCString trEnumerationValueDocumentation()
507     { return "Enumerasjonsverdi dokumentasjon"; }
508
509     /*! This is used in the documentation of a file/namespace before the list 
510      *  of documentation blocks for functions
511      */
512     virtual QCString trFunctionDocumentation()
513     { return "Funksjonsdokumentasjon"; }
514
515     /*! This is used in the documentation of a file/namespace before the list 
516      *  of documentation blocks for variables
517      */
518     virtual QCString trVariableDocumentation()
519     { return "Variabeldokumentasjon"; }
520
521     /*! This is used in the documentation of a file/namespace/group before 
522      *  the list of links to documented compounds
523      */
524     virtual QCString trCompounds()
525     { 
526       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
527       {
528         return "Datastrukturer"; 
529       }
530       else
531       {
532         return "Klasser"; 
533       }
534     }
535
536     /*! This is used in the standard footer of each page and indicates when 
537      *  the page was generated 
538      */
539     virtual QCString trGeneratedAt(const char *date,const char *projName)
540     { 
541       QCString result=(QCString)"Generert "+date;
542       if (projName) result+=(QCString)" for "+projName;
543       result+=(QCString)" av";
544       return result;
545     }
546     /*! This is part of the sentence used in the standard footer of each page.
547      */
548     virtual QCString trWrittenBy()
549     {
550       return "skrevet av";
551     }
552
553     /*! this text is put before a class diagram */
554     virtual QCString trClassDiagram(const char *clName)
555     {
556       return (QCString)"Arvediagram for "+clName+":";
557     }
558     
559     /*! this text is generated when the \\internal command is used. */
560     virtual QCString trForInternalUseOnly()
561     { return "Kun for intern bruk."; }
562
563     /*! this text is generated when the \\reimp command is used. */
564     virtual QCString trReimplementedForInternalReasons()
565     { return "Reimplementert av interne grunner; API er ikke påvirket."; }
566
567     /*! this text is generated when the \\warning command is used. */
568     virtual QCString trWarning()
569     { return "Advarsel"; }
570
571     /*! this text is generated when the \\bug command is used. */
572     virtual QCString trBugsAndLimitations()
573     { return "Feil og begrensninger"; }
574
575     /*! this text is generated when the \\version command is used. */
576     virtual QCString trVersion()
577     { return "Versjon"; }
578
579     /*! this text is generated when the \\date command is used. */
580     virtual QCString trDate()
581     { return "Dato"; }
582
583     /*! this text is generated when the \\return command is used. */
584     virtual QCString trReturns()
585     { return "Returnerer"; }
586
587     /*! this text is generated when the \\sa command is used. */
588     virtual QCString trSeeAlso()
589     { return "Se også"; }
590
591     /*! this text is generated when the \\param command is used. */
592     virtual QCString trParameters()
593     { return "Parametre"; }
594
595     /*! this text is generated when the \\exception command is used. */
596     virtual QCString trExceptions()
597     { return "Unntak"; }
598     
599     /*! this text is used in the title page of a LaTeX document. */
600     virtual QCString trGeneratedBy()
601     { return "Generert av"; }
602
603 //////////////////////////////////////////////////////////////////////////
604 // new since 0.49-990307
605 //////////////////////////////////////////////////////////////////////////
606     
607     /*! used as the title of page containing all the index of all namespaces. */
608     virtual QCString trNamespaceList()
609     { return "Navneromsliste"; }
610
611     /*! used as an introduction to the namespace list */
612     virtual QCString trNamespaceListDescription(bool extractAll)
613     {
614       QCString result="Her er en liste over alle ";
615       if (!extractAll) result+="dokumenterte ";
616       result+="navnerom med korte beskrivelser:";
617       return result;
618     }
619
620     /*! used in the class documentation as a header before the list of all
621      *  friends of a class
622      */
623     virtual QCString trFriends()
624     { return "Venner"; }
625     
626 //////////////////////////////////////////////////////////////////////////
627 // new since 0.49-990405
628 //////////////////////////////////////////////////////////////////////////
629     
630     /*! used in the class documentation as a header before the list of all
631      * related classes 
632      */
633     virtual QCString trRelatedFunctionDocumentation()
634     { return "Venner og relatert funksjonsdokumentasjon"; }
635     
636 //////////////////////////////////////////////////////////////////////////
637 // new since 0.49-990425
638 //////////////////////////////////////////////////////////////////////////
639
640     /*! used as the title of the HTML page of a class/struct/union */
641     virtual QCString trCompoundReference(const char *clName,
642                                     ClassDef::CompoundType compType,
643                                     bool isTemplate)
644     {
645       QCString result=(QCString)clName;
646       switch(compType)
647       {
648         case ClassDef::Class:      result+=" Klasse"; break;
649         case ClassDef::Struct:     result+=" Struct"; break;
650         case ClassDef::Union:      result+=" Union"; break;
651         case ClassDef::Interface:  result+=" Grensesnitt"; break;
652         case ClassDef::Exception:  result+=" Unntak"; break;
653         case ClassDef::Protocol:   result+=" Protocol"; break;
654         case ClassDef::Category:   result+=" Category"; break;
655       }
656       if (isTemplate) result+=" Mal";
657       result+=" Referanse";
658       return result;
659     }
660
661     /*! used as the title of the HTML page of a file */
662     virtual QCString trFileReference(const char *fileName)
663     {
664       QCString result=fileName;
665       result+=" filreferanse";
666       return result;
667     }
668
669     /*! used as the title of the HTML page of a namespace */
670     virtual QCString trNamespaceReference(const char *namespaceName)
671     {
672       QCString result=namespaceName;
673       result+=" navneromsreferanse";
674       return result;
675     }
676     
677     virtual QCString trPublicMembers()
678     { return "Public medlemsfunksjoner"; }
679     virtual QCString trPublicSlots()
680     { return "Public slots"; }
681     virtual QCString trSignals()
682     { return "Signaler"; }
683     virtual QCString trStaticPublicMembers()
684     { return "Statiske public medlemsfunksjoner"; }
685     virtual QCString trProtectedMembers()
686     { return "Protected memdlemsfunksjoner"; }
687     virtual QCString trProtectedSlots()
688     { return "Protected slots"; }
689     virtual QCString trStaticProtectedMembers()
690     { return "Statiske protected medlemsfunksjoner"; }
691     virtual QCString trPrivateMembers()
692     { return "Private medlemsfunksjoner"; }
693     virtual QCString trPrivateSlots()
694     { return "Private slots"; }
695     virtual QCString trStaticPrivateMembers()
696     { return "Statiske private medlemsfunksjoner"; }
697     
698     /*! this function is used to produce a comma-separated list of items.
699      *  use generateMarker(i) to indicate where item i should be put.
700      */
701     virtual QCString trWriteList(int numEntries)
702     {
703       QCString result;
704       int i;
705       // the inherits list contain `numEntries' classes
706       for (i=0;i<numEntries;i++) 
707       {
708         // use generateMarker to generate placeholders for the class links!
709         result+=generateMarker(i); // generate marker for entry i in the list 
710                                    // (order is left to right)
711         
712         if (i!=numEntries-1)  // not the last entry, so we need a separator
713         {
714           if (i<numEntries-2) // not the fore last entry 
715             result+=", ";
716           else                // the fore last entry
717             result+=", og ";
718         }
719       }
720       return result; 
721     }
722     
723     /*! used in class documentation to produce a list of base classes,
724      *  if class diagrams are disabled.
725      */
726     virtual QCString trInheritsList(int numEntries)
727     {
728       return "Arver "+trWriteList(numEntries)+".";
729     }
730
731     /*! used in class documentation to produce a list of super classes,
732      *  if class diagrams are disabled.
733      */
734     virtual QCString trInheritedByList(int numEntries)
735     {
736       return "Arvet av "+trWriteList(numEntries)+".";
737     }
738
739     /*! used in member documentation blocks to produce a list of 
740      *  members that are hidden by this one.
741      */
742     virtual QCString trReimplementedFromList(int numEntries)
743     {
744       return "Reimplementert fra "+trWriteList(numEntries)+".";
745     }
746
747     /*! used in member documentation blocks to produce a list of
748      *  all member that overwrite the implementation of this member.
749      */
750     virtual QCString trReimplementedInList(int numEntries)
751     {
752       return "Reimplementert i "+trWriteList(numEntries)+".";
753     }
754
755     /*! This is put above each page as a link to all members of namespaces. */
756     virtual QCString trNamespaceMembers()
757     { return "Navneromsmedlemmer"; }
758
759     /*! This is an introduction to the page with all namespace members */
760     virtual QCString trNamespaceMemberDescription(bool extractAll)
761     { 
762       QCString result="Her er en liste over alle ";
763       if (!extractAll) result+="dokumenterte ";
764       result+="navneromsmedlemmer med koblinger til ";
765       if (extractAll) 
766         result+="navneromsdokumentasjonen for hvert medlem:";
767       else 
768         result+="navnerommet de hører til:";
769       return result;
770     }
771     /*! This is used in LaTeX as the title of the chapter with the 
772      *  index of all namespaces.
773      */
774     virtual QCString trNamespaceIndex()
775     { return "Navneromsindeks"; }
776
777     /*! This is used in LaTeX as the title of the chapter containing
778      *  the documentation of all namespaces.
779      */
780     virtual QCString trNamespaceDocumentation()
781     { return "Navneromsdokumentasjon"; }
782
783 //////////////////////////////////////////////////////////////////////////
784 // new since 0.49-990522
785 //////////////////////////////////////////////////////////////////////////
786
787     /*! This is used in the documentation before the list of all
788      *  namespaces in a file.
789      */
790     virtual QCString trNamespaces()
791     { return "Navnerom"; }
792
793 //////////////////////////////////////////////////////////////////////////
794 // new since 0.49-990728
795 //////////////////////////////////////////////////////////////////////////
796
797     /*! This is put at the bottom of a class documentation page and is
798      *  followed by a list of files that were used to generate the page.
799      */
800     virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
801         bool single)
802     { // here s is one of " Class", " Struct" or " Union"
803       // single is true implies a single file
804       QCString result=(QCString)"Dokumentasjonen for ";
805       switch(compType)
806       {
807         case ClassDef::Class:      result+="denne klasse"; break;
808         case ClassDef::Struct:     result+="denne struct"; break;
809         case ClassDef::Union:      result+="denne union"; break;
810         case ClassDef::Interface:  result+="dette interface"; break;
811         case ClassDef::Exception:  result+="dette unntak"; break;
812         case ClassDef::Protocol:   result+="denne protocol"; break;
813         case ClassDef::Category:   result+="denne category"; break;
814       }
815       result+=" ble generert fra følgende fil";
816       if (single) result+=":"; else result+="er:";
817       return result;
818     }
819
820     /*! This is in the (quick) index as a link to the alphabetical compound
821      * list.
822      */
823     virtual QCString trAlphabeticalList()
824     { return "Alfabetisk Liste"; }
825
826 //////////////////////////////////////////////////////////////////////////
827 // new since 0.49-990901
828 //////////////////////////////////////////////////////////////////////////
829
830     /*! This is used as the heading text for the retval command. */
831     virtual QCString trReturnValues()
832     { return "Returverdier"; }
833
834     /*! This is in the (quick) index as a link to the main page (index.html)
835      */
836     virtual QCString trMainPage()
837     { return "Hovedside"; }
838
839     /*! This is used in references to page that are put in the LaTeX 
840      *  documentation. It should be an abbreviation of the word page.
841      */
842     virtual QCString trPageAbbreviation()
843     { return "s."; }
844
845 //////////////////////////////////////////////////////////////////////////
846 // new since 0.49-991003
847 //////////////////////////////////////////////////////////////////////////
848
849     virtual QCString trSources()
850     {
851       return "Kilder";
852     }
853     virtual QCString trDefinedAtLineInSourceFile()
854     {
855       return "Definisjon på linje @0 i filen @1.";
856     }
857     virtual QCString trDefinedInSourceFile()
858     {
859       return "Definisjon i filen @0.";
860     }
861
862 //////////////////////////////////////////////////////////////////////////
863 // new since 0.49-991205
864 //////////////////////////////////////////////////////////////////////////
865
866     virtual QCString trDeprecated()
867     {
868       return "Foreldet";
869     }
870
871 //////////////////////////////////////////////////////////////////////////
872 // new since 1.0.0
873 //////////////////////////////////////////////////////////////////////////
874
875     /*! this text is put before a collaboration diagram */
876     virtual QCString trCollaborationDiagram(const char *clName)
877     {
878       return (QCString)"Samarbeidsdiagram for "+clName+":";
879     }
880     /*! this text is put before an include dependency graph */
881     virtual QCString trInclDepGraph(const char *fName)
882     {
883       return (QCString)"Avhengighetsgraf for "+fName+":";
884     }
885
886     /*! header that is put before the list of constructor/destructors. */
887     virtual QCString trConstructorDocumentation()
888     {
889       return "Konstruktør- & destruktør-dokumentasjon";
890     }
891     /*! Used in the file documentation to point to the corresponding sources. */
892     virtual QCString trGotoSourceCode()
893     {
894       return "Gå til kildekoden til denne filen.";
895     }
896     /*! Used in the file sources to point to the corresponding documentation. */
897     virtual QCString trGotoDocumentation()
898     {
899       return "Gå til dokumentasjonen til denne filen.";
900     }
901     /*! Text for the \\pre command */
902     virtual QCString trPrecondition()
903     {
904       return "Forhåndsbetingelse";
905     }
906     /*! Text for the \\post command */
907     virtual QCString trPostcondition()
908     {
909       return "Etterbetingelse";
910     }
911     /*! Text for the \\invariant command */
912     virtual QCString trInvariant()
913     {
914       return "Invariant";
915     }
916     /*! Text shown before a multi-line variable/enum initialization */
917     virtual QCString trInitialValue()
918     {
919       return "Startverdi:";
920     }
921     /*! Text used the source code in the file index */
922     virtual QCString trCode()
923     {
924       return "kode";
925     }
926     virtual QCString trGraphicalHierarchy()
927     {
928       return "Grafisk klassehierarki";
929     }
930     virtual QCString trGotoGraphicalHierarchy()
931     {
932       return "Gå til det grafiske klasse hierarkiet";
933     }
934     virtual QCString trGotoTextualHierarchy()
935     {
936       return "Gå til tekst-klassehierarki";
937     }
938     virtual QCString trPageIndex()
939     {
940       return "Innhold";
941     }
942
943 //////////////////////////////////////////////////////////////////////////
944 // new since 1.1.0
945 //////////////////////////////////////////////////////////////////////////
946     
947     virtual QCString trNote()
948     {
949       return "Notat";
950     }
951     virtual QCString trPublicTypes()
952     {
953       return "Public typer";
954     }
955     virtual QCString trPublicAttribs()
956     {
957       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
958       {
959         return "Datafelt";
960       }
961       else
962       {
963         return "Public attributter";
964       }
965     }
966     virtual QCString trStaticPublicAttribs()
967     {
968       return "Statiske public attributter";
969     }
970     virtual QCString trProtectedTypes()
971     {
972       return "Protected typer";
973     }
974     virtual QCString trProtectedAttribs()
975     {
976       return "Protected attributter";
977     }
978     virtual QCString trStaticProtectedAttribs()
979     {
980       return "Statiske protected attributter";
981     }
982     virtual QCString trPrivateTypes()
983     {
984       return "Private typer";
985     }
986     virtual QCString trPrivateAttribs()
987     {
988       return "Private attributter";
989     }
990     virtual QCString trStaticPrivateAttribs()
991     {
992       return "Statiske private attributter";
993     }
994
995 //////////////////////////////////////////////////////////////////////////
996 // new since 1.1.3
997 //////////////////////////////////////////////////////////////////////////
998
999     /*! Used as a marker that is put before a todo item */
1000     virtual QCString trTodo()
1001     {
1002       return "Todo";
1003     }
1004     /*! Used as the header of the todo list */
1005     virtual QCString trTodoList()
1006     {
1007       return "Todo-liste";
1008     }
1009
1010 //////////////////////////////////////////////////////////////////////////
1011 // new since 1.1.4
1012 //////////////////////////////////////////////////////////////////////////
1013
1014     virtual QCString trReferencedBy()
1015     {
1016       return "Referert av";
1017     }
1018     virtual QCString trRemarks()
1019     {
1020       return "Merknader";
1021     }
1022     virtual QCString trAttention()
1023     {
1024       return "Viktig";
1025     }
1026     virtual QCString trInclByDepGraph()
1027     {
1028       return "Denne grafen viser hvilke filer som direkte eller "
1029              "indirekte inkluderer denne filen:";
1030     }
1031     virtual QCString trSince()
1032     {
1033       return "Siden";
1034     }
1035     
1036 //////////////////////////////////////////////////////////////////////////
1037 // new since 1.1.5
1038 //////////////////////////////////////////////////////////////////////////
1039
1040     /*! title of the graph legend page */
1041     virtual QCString trLegendTitle()
1042     {
1043       return "Symbolforklaring";
1044     }
1045     /*! page explaining how the dot graph's should be interpreted */
1046     virtual QCString trLegendDocs()
1047     {
1048       return 
1049         "Denne siden forklarer hvordan man tolker grafene doxygen genererer.<p>\n"
1050         "Vi baserer oss på følgende eksempel:\n"
1051         "\\code\n" 
1052         "/*! Usynlig klasse pga. trunkasjon */\n" 
1053         "class Invisible { };\n\n" 
1054         "/*! Trunkert klasse, arve-relasjon er skjult */\n"
1055         "class Truncated : public Invisible { };\n\n" 
1056         "/* Klasse som ikke er dokumentert med doxygen-kommentarer */"
1057         "class Undocumented { };\n\n" 
1058         "/*! Klasse med public-arv */\n" 
1059         "class PublicBase : public Truncated { };\n\n"
1060         "/*! A template class */\n"
1061         "template<class T> class Templ { };\n\n"
1062         "/*! Klasse med protected-arv */\n"
1063         "class ProtectedBase { };\n\n"
1064         "/*! Klasse med private-arv */\n"
1065         "class PrivateBase { };\n\n"
1066         "/*! Klasse som blir brukt av klassen Inherited */\n" 
1067         "class Used { };\n\n"
1068         "/*! Super-klasse som arver flere andre klasser */\n"
1069         "class Inherited : public PublicBase,\n"
1070         "                  protected ProtectedBase,\n"
1071         "                  private PrivateBase,\n"
1072         "                  public Undocumented,\n"
1073         "                  public Templ<int>\n"
1074         "{\n"
1075         "  private:\n"
1076         "    Used *m_usedClass;\n"
1077         "};\n"
1078         "\\endcode\n" 
1079         "Hvis \\c MAX_DOT_GRAPH_HEIGHT er satt til 200 i "
1080         "konfigurasjonsfila vil dette resultere i følgende graf:"
1081         "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
1082         "<p>\n"
1083         "Boksene i grafen over betyr følgende:\n"
1084         "<ul>\n"
1085         "<li>En fylt svart boks representerer klassen grafen "
1086         "er generert for.\n"
1087         "<li>En boks med svart ramme angir en dokumentert struct eller klasse.\n"
1088         "<li>En boks med grå ramme angir en udokumentert struct eller klasse.\n"
1089         "<li>En boks med rød ramme angir en dokumentert struct eller klasse "
1090         "der ikke alle relasjoner er vist. En graf blir trunkert om den ikke "
1091         "passer innenfor de spesifiserte rammene.\n"
1092         "</ul>\n"
1093         "Pilene i grafen har følgende betydning:\n"
1094         "</ul>\n"
1095         "<li>En mørk blå pil brukes til å visualisere public-arv mellom to klasser.\n"
1096         "<li>En mørk grønn pil brukes for protected-arv.\n"
1097         "<li>En mørk rød pil angir private-arv.\n"
1098         "<li>En stiplet lilla pil angir at en klasse er inkludert eller brukt "
1099         "i en annen klasse. Pilen er merket med variablen(e) klassen "
1100         "er tilgjengelig gjennom.\n"
1101         "</ul>\n";
1102     }
1103     /*! text for the link to the legend page */
1104     virtual QCString trLegend()
1105     {
1106       return "symbolforklaring";
1107     }
1108     
1109 //////////////////////////////////////////////////////////////////////////
1110 // new since 1.2.0
1111 //////////////////////////////////////////////////////////////////////////
1112     
1113     /*! Used as a marker that is put before a test item */
1114     virtual QCString trTest()
1115     {
1116       return "Test";
1117     }
1118     /*! Used as the header of the test list */
1119     virtual QCString trTestList()
1120     {
1121       return "Test-liste";
1122     }
1123
1124 //////////////////////////////////////////////////////////////////////////
1125 // new since 1.2.1
1126 //////////////////////////////////////////////////////////////////////////
1127
1128     /*! Used as a section header for KDE-2 IDL methods */
1129     virtual QCString trDCOPMethods()
1130     {
1131       return "DCOP-metoder";
1132     }
1133
1134 //////////////////////////////////////////////////////////////////////////
1135 // new since 1.2.1
1136 //////////////////////////////////////////////////////////////////////////
1137
1138     /*! Used as a section header for IDL properties */
1139     virtual QCString trProperties()
1140     {
1141       return "Egenskaper";
1142     }
1143     /*! Used as a section header for IDL property documentation */
1144     virtual QCString trPropertyDocumentation()
1145     {
1146       return "Egenskaps-dokumentasjon";
1147     }
1148
1149 //////////////////////////////////////////////////////////////////////////
1150 // new since 1.2.4
1151 //////////////////////////////////////////////////////////////////////////
1152
1153     /*! Used for Java interfaces in the summary section of Java packages */
1154     virtual QCString trInterfaces()
1155     {
1156       return "Grensesnitt";
1157     }
1158     /*! Used for Java classes in the summary section of Java packages */
1159     virtual QCString trClasses()
1160     {
1161       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
1162       {
1163         return "Datastrukturer";
1164       }
1165       else
1166       {
1167         return "Klasser";
1168       }
1169     }
1170     /*! Used as the title of a Java package */
1171     virtual QCString trPackage(const char *name)
1172     {
1173       return (QCString)"Package "+name;
1174     }
1175     /*! Title of the package index page */
1176     virtual QCString trPackageList()
1177     {
1178       return "Pakke-liste";
1179     }
1180     /*! The description of the package index page */
1181     virtual QCString trPackageListDescription()
1182     {
1183       return "Her er pakkene med korte beskrivelser (om tilgjengelig):";
1184     }
1185     /*! The link name in the Quick links header for each page */
1186     virtual QCString trPackages()
1187     {
1188       return "Pakker";
1189     }
1190     /*! Used as a chapter title for Latex & RTF output */
1191     virtual QCString trPackageDocumentation()
1192     {
1193       return "Pakke-dokumentasjon";
1194     }
1195     /*! Text shown before a multi-line define */
1196     virtual QCString trDefineValue()
1197     {
1198       return "Verdi:";
1199     }
1200     
1201 //////////////////////////////////////////////////////////////////////////
1202 // new since 1.2.5
1203 //////////////////////////////////////////////////////////////////////////
1204     
1205     /*! Used as a marker that is put before a \\bug item */
1206     virtual QCString trBug()
1207     {
1208       return "Feil";
1209     }
1210     /*! Used as the header of the bug list */
1211     virtual QCString trBugList()
1212     {
1213       return "Feil-liste";
1214     }
1215
1216 //////////////////////////////////////////////////////////////////////////
1217 // new since 1.2.6
1218 //////////////////////////////////////////////////////////////////////////
1219
1220     /*! Used as ansicpg for RTF file 
1221      * 
1222      * The following table shows the correlation of Charset name, Charset Value and 
1223      * <pre>
1224      * Codepage number:
1225      * Charset Name       Charset Value(hex)  Codepage number
1226      * ------------------------------------------------------
1227      * DEFAULT_CHARSET           1 (x01)
1228      * SYMBOL_CHARSET            2 (x02)
1229      * OEM_CHARSET             255 (xFF)
1230      * ANSI_CHARSET              0 (x00)            1252
1231      * RUSSIAN_CHARSET         204 (xCC)            1251
1232      * EE_CHARSET              238 (xEE)            1250
1233      * GREEK_CHARSET           161 (xA1)            1253
1234      * TURKISH_CHARSET         162 (xA2)            1254
1235      * BALTIC_CHARSET          186 (xBA)            1257
1236      * HEBREW_CHARSET          177 (xB1)            1255
1237      * ARABIC _CHARSET         178 (xB2)            1256
1238      * SHIFTJIS_CHARSET        128 (x80)             932
1239      * HANGEUL_CHARSET         129 (x81)             949
1240      * GB2313_CHARSET          134 (x86)             936
1241      * CHINESEBIG5_CHARSET     136 (x88)             950
1242      * </pre>
1243      * 
1244      */
1245     virtual QCString trRTFansicp()
1246     {
1247       return "1252";
1248     }
1249     
1250
1251     /*! Used as ansicpg for RTF fcharset 
1252      *  \see trRTFansicp() for a table of possible values.
1253      */
1254     virtual QCString trRTFCharSet()
1255     {
1256       return "0";
1257     }
1258
1259     /*! Used as header RTF general index */
1260     virtual QCString trRTFGeneralIndex()
1261     {
1262       return "Indeks";
1263     }
1264    
1265     /*! This is used for translation of the word that will possibly
1266      *  be followed by a single name or by a list of names 
1267      *  of the category.
1268      */
1269     virtual QCString trClass(bool first_capital, bool singular)
1270     { 
1271       QCString result((first_capital ? "Klasse" : "klasse"));
1272       if (!singular)  result+="r";
1273       return result; 
1274     }
1275
1276     /*! This is used for translation of the word that will possibly
1277      *  be followed by a single name or by a list of names 
1278      *  of the category.
1279      */
1280     virtual QCString trFile(bool first_capital, bool singular)
1281     { 
1282       QCString result((first_capital ? "Fil" : "fil"));
1283       if (!singular)  result+="er";
1284       return result; 
1285     }
1286
1287     /*! This is used for translation of the word that will possibly
1288      *  be followed by a single name or by a list of names 
1289      *  of the category.
1290      */
1291     virtual QCString trNamespace(bool first_capital, bool singular)
1292     { 
1293       QCString result((first_capital ? "Navnerom" : "navnerom"));
1294       if (!singular)  result+="";
1295       return result; 
1296     }
1297
1298     /*! This is used for translation of the word that will possibly
1299      *  be followed by a single name or by a list of names 
1300      *  of the category.
1301      */
1302     virtual QCString trGroup(bool first_capital, bool singular)
1303     { 
1304       QCString result((first_capital ? "Gruppe" : "gruppe"));
1305       if (!singular)  result+="r";
1306       return result; 
1307     }
1308
1309     /*! This is used for translation of the word that will possibly
1310      *  be followed by a single name or by a list of names 
1311      *  of the category.
1312      */
1313     virtual QCString trPage(bool first_capital, bool singular)
1314     { 
1315       QCString result((first_capital ? "Side" : "side"));
1316       if (!singular)  result+="r";
1317       return result; 
1318     }
1319
1320     /*! This is used for translation of the word that will possibly
1321      *  be followed by a single name or by a list of names 
1322      *  of the category.
1323      */
1324     virtual QCString trMember(bool first_capital, bool singular)
1325     { 
1326       QCString result((first_capital ? "Medlem" : "medlem"));
1327       if (!singular)  result+="mer";
1328       return result; 
1329     }
1330    
1331     /*! This is used for translation of the word that will possibly
1332      *  be followed by a single name or by a list of names 
1333      *  of the category.
1334      */
1335     virtual QCString trField(bool first_capital, bool singular)
1336     { 
1337       QCString result((first_capital ? "Felt" : "felt"));
1338       if (!singular)  result+="";
1339       return result; 
1340     }
1341
1342     /*! This is used for translation of the word that will possibly
1343      *  be followed by a single name or by a list of names 
1344      *  of the category.
1345      */
1346     virtual QCString trGlobal(bool first_capital, bool singular)
1347     { 
1348       QCString result((first_capital ? "Global" : "global"));
1349       if (!singular)  result+="e";
1350       return result; 
1351     }
1352
1353 //////////////////////////////////////////////////////////////////////////
1354 // new since 1.2.7
1355 //////////////////////////////////////////////////////////////////////////
1356
1357     /*! This text is generated when the \\author command is used and
1358      *  for the author section in man pages. */
1359     virtual QCString trAuthor(bool first_capital, bool singular)
1360     {                                                                         
1361       QCString result((first_capital ? "Forfatter" : "forfatter"));
1362       if (!singular)  result+="e";
1363       return result; 
1364     }
1365
1366 //////////////////////////////////////////////////////////////////////////
1367 // new since 1.2.11
1368 //////////////////////////////////////////////////////////////////////////
1369
1370     /*! This text is put before the list of members referenced by a member
1371      */
1372     virtual QCString trReferences()
1373     {
1374       return "Referanser";
1375     }
1376
1377 //////////////////////////////////////////////////////////////////////////
1378 // new since 1.2.13
1379 //////////////////////////////////////////////////////////////////////////
1380
1381     /*! used in member documentation blocks to produce a list of 
1382      *  members that are implemented by this one.
1383      */
1384     virtual QCString trImplementedFromList(int numEntries)
1385     {
1386       return "Implementerer "+trWriteList(numEntries)+".";
1387     }
1388
1389     /*! used in member documentation blocks to produce a list of
1390      *  all members that implement this abstract member.
1391      */
1392     virtual QCString trImplementedInList(int numEntries)
1393     {
1394       return "Implementert i "+trWriteList(numEntries)+".";
1395     }
1396
1397 //////////////////////////////////////////////////////////////////////////
1398 // new since 1.2.16
1399 //////////////////////////////////////////////////////////////////////////
1400
1401     /*! used in RTF documentation as a heading for the Table
1402      *  of Contents.
1403      */
1404     virtual QCString trRTFTableOfContents()
1405     {
1406       return "Innholdsfortegnelse";
1407     }
1408
1409 //////////////////////////////////////////////////////////////////////////
1410 // new since 1.2.17
1411 //////////////////////////////////////////////////////////////////////////
1412
1413     /*! Used as the header of the list of item that have been 
1414      *  flagged deprecated 
1415      */
1416     virtual QCString trDeprecatedList()
1417     {
1418       return "Liste over foreldede enheter";
1419     }
1420
1421 //////////////////////////////////////////////////////////////////////////
1422 // new since 1.2.18
1423 //////////////////////////////////////////////////////////////////////////
1424
1425     /*! Used as a header for declaration section of the events found in 
1426      * a C# program
1427      */
1428     virtual QCString trEvents()
1429     {
1430       return "Hendelser";
1431     }
1432     /*! Header used for the documentation section of a class' events. */
1433     virtual QCString trEventDocumentation()
1434     {
1435       return "Hendelsesdokumentasjon";
1436     }
1437
1438 //////////////////////////////////////////////////////////////////////////
1439 // new since 1.3
1440 //////////////////////////////////////////////////////////////////////////
1441
1442     /*! Used as a heading for a list of Java class types with package scope.
1443      */
1444     virtual QCString trPackageTypes()
1445     { 
1446       return "Pakketyper";
1447     }
1448     /*! Used as a heading for a list of Java class functions with package 
1449      * scope. 
1450      */
1451     virtual QCString trPackageMembers()
1452     { 
1453       return "Pakkefunksjoner";
1454     }
1455     /*! Used as a heading for a list of static Java class functions with 
1456      *  package scope.
1457      */
1458     virtual QCString trStaticPackageMembers()
1459     { 
1460       return "Statiske Pakkefunksjoner";
1461     }
1462     /*! Used as a heading for a list of Java class variables with package 
1463      * scope.
1464      */
1465     virtual QCString trPackageAttribs()
1466     { 
1467       return "Pakkeattributter";
1468     }
1469     /*! Used as a heading for a list of static Java class variables with 
1470      * package scope.
1471      */
1472     virtual QCString trStaticPackageAttribs()
1473     { 
1474       return "Statiske Pakkeattributter";
1475     }
1476     
1477 //////////////////////////////////////////////////////////////////////////
1478 // new since 1.3.1
1479 //////////////////////////////////////////////////////////////////////////
1480
1481     /*! Used in the quick index of a class/file/namespace member list page 
1482      *  to link to the unfiltered list of all members.
1483      */
1484     virtual QCString trAll()
1485     {
1486       return "Alle";
1487     }
1488     /*! Put in front of the call graph for a function. */
1489     virtual QCString trCallGraph()
1490     {
1491       return "Her er kall-grafen for denne funksjonen:";
1492     }
1493
1494 //////////////////////////////////////////////////////////////////////////
1495 // new since 1.3.3
1496 //////////////////////////////////////////////////////////////////////////
1497
1498     /*! When the search engine is enabled this text is put in the header 
1499      *  of each page before the field where one can enter the text to search 
1500      *  for. 
1501      */
1502     virtual QCString trSearchForIndex()
1503     {
1504       return "Søk etter";
1505     }
1506     /*! This string is used as the title for the page listing the search
1507      *  results.
1508      */
1509     virtual QCString trSearchResultsTitle()
1510     {
1511       return "Søkeresultater";
1512     }
1513     /*! This string is put just before listing the search results. The
1514      *  text can be different depending on the number of documents found.
1515      *  Inside the text you can put the special marker $num to insert
1516      *  the number representing the actual number of search results.
1517      *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
1518      *  value 2 represents 2 or more matches. HTML markup is allowed inside
1519      *  the returned string.
1520      */
1521     virtual QCString trSearchResults(int numDocuments)
1522     {
1523       if (numDocuments==0)
1524       {
1525         return "Beklager, men ingen dokumenter ble funnet.";
1526       }
1527       else if (numDocuments==1)
1528       {
1529         return "Fant <b>ett</b> dokument som passet ditt søk.";
1530       }
1531       else 
1532       {
1533         return "Fant <b>$num</b> dokumenter som passet ditt søk. "
1534                "Viser beste treff først.";
1535       }
1536     }
1537     /*! This string is put before the list of matched words, for each search 
1538      *  result. What follows is the list of words that matched the query.
1539      */
1540     virtual QCString trSearchMatches()
1541     {
1542       return "Treff:";
1543     }
1544
1545 //////////////////////////////////////////////////////////////////////////
1546 // new since 1.3.8
1547 //////////////////////////////////////////////////////////////////////////
1548
1549     /*! This is used in HTML as the title of page with source code for file filename
1550          */
1551     virtual QCString trSourceFile(QCString& filename)
1552     {
1553         return "Kildefil " + filename;
1554     }
1555
1556 //////////////////////////////////////////////////////////////////////////
1557 // new since 1.3.9
1558 //////////////////////////////////////////////////////////////////////////
1559
1560     /*! This is used as the name of the chapter containing the directory
1561      *  hierarchy.
1562      */
1563     virtual QCString trDirIndex()
1564     { return "Katalog hierarki"; }
1565
1566     /*! This is used as the name of the chapter containing the documentation
1567      *  of the directories.
1568      */
1569     virtual QCString trDirDocumentation()
1570     { return "Katalogdokumentasjon"; }
1571
1572     /*! This is used as the title of the directory index and also in the
1573      *  Quick links of an HTML page, to link to the directory hierarchy.
1574      */
1575     virtual QCString trDirectories()
1576     { return "Kataloger"; }
1577
1578     /*! This returns a sentences that introduces the directory hierarchy. 
1579      *  and the fact that it is sorted alphabetically per level
1580      */
1581     virtual QCString trDirDescription()
1582     { return "Denne katalogen er grovsortert alfabetisk "
1583              "(ikke nødvendigvis korrekt).";
1584     }
1585
1586     /*! This returns the title of a directory page. The name of the
1587      *  directory is passed via \a dirName.
1588      */
1589     virtual QCString trDirReference(const char *dirName)
1590     { QCString result=dirName; result+=" Katalog referanse"; return result; }
1591
1592     /*! This returns the word directory with or without starting capital
1593      *  (\a first_capital) and in sigular or plural form (\a singular).
1594      */
1595     virtual QCString trDir(bool first_capital, bool singular)
1596     { 
1597       QCString result((first_capital ? "Katalog" : "katalog"));
1598       if (!singular) result+="er";
1599       return result; 
1600     }
1601
1602 //////////////////////////////////////////////////////////////////////////
1603 // new since 1.4.1
1604 //////////////////////////////////////////////////////////////////////////
1605
1606     /*! This text is added to the documentation when the \\overload command
1607      *  is used for a overloaded function.
1608      */
1609     virtual QCString trOverloadText()
1610     {
1611        return "Dette er en overloaded medlemsfunksjon, "
1612               "generert for deg. Den skiller seg ut fra "
1613               "funksjonen ovenfor i argument(ene) den aksepterer.";
1614     }
1615 };
1616
1617 #endif