e98cfa8e1afb286b142b13743fd6ff8613373ca6
[platform/upstream/doxygen.git] / src / translator_dk.h
1 /*-*- c-basic-offset: 2; tab-width: 8 -*-*/
2 /******************************************************************************
3  *
4  *
5  *
6  * Copyright (C) 1997-2015 by Dimitri van Heesch.
7  *
8  * Permission to use, copy, modify, and distribute this software and its
9  * documentation under the terms of the GNU General Public License is hereby
10  * granted. No representations are made about the suitability of this software
11  * for any purpose. It is provided "as is" without express or implied warranty.
12  * See the GNU General Public License for more details.
13  *
14  * Documents produced by Doxygen are derivative works derived from the
15  * input used in their production; they are not affected by this license.
16  *
17  */
18  /*! @file
19   * @brief Danish translation
20   */
21
22 /*
23  * Danish translation by
24  * Erik Søe Sørensen <eriksoe@daimi.au.dk>
25  *
26  * First version (not complete) for Doxygen 1.2.7
27  * Extended and revised for Doxygen 1.3
28  * Extended and revised for Doxygen 1.3.4
29  * Extended and revised for Doxygen 1.3.8
30  */
31
32 /*  Translator's notes:
33
34         Oversættelseskonventioner:
35         (Konventioner for konventioner:
36           '?'    angiver oversættelser, jeg har været i tvivl om
37           '??'   angiver tvivlsomme oversættelser
38           '..?'  angiver ord, der endnu ikke er fundet en oversættelse til
39           '(do.)' angiver ord, der med vilje ikke er oversat, idet jeg selv
40              overvejende bruger det engelske udtryk
41           '(-> _)' angiver ord, der er fundet en oversættelse til, men som jeg
42                 vægrer mig ved at oversætte.
43           'KLID:_' angiver ord, hvor jeg med overlæg har rettet mig efter
44                 KLID.dk's oversættelsesguide (enig eller ej).
45         )
46         bug -> 'kendt fejl'
47         class -> klasse
48         compound -> 'sammensat type'
49         constructor -> konstruktør ?
50         destructor -> destruktør ?
51         directory -> KLID:katalog (kunne også være 'bibliotek','mappe','folder')
52         event -> begivenhed ?
53         exception (-> undtagelse ?)
54         friend ..?
55         interface -> grænseflade ?
56         member -> medlem (TODO)
57         namespace -> (do.)
58         overloaded -> KLID:overdefineret
59         private -> privat
60         property -> egenskab?
61         protected -> beskyttet ??
62         public -> offentlig
63         reference(vb) -> "indeholde referencer til" (?)
64         slot ..?
65         source code -> kildekode
66         struct -> datastruktur
67         template (-> skabelon ?)
68         typedef -> typedefinition (?)
69         todo -> (do.)
70         union ..?
71
72         Specielle forbindelser:
73         'Inheritance diagram' -> Stamtræ  (selvom Nedarvningsdiagram også gik an)
74
75
76         -----
77
78         (Konstruktivt) input modtages med glæde!
79         -- Erik Søe Sørensen <eriksoe@daimi.au.dk>
80
81
82         links -> (links.)
83         -- Poul-Erik Hansen
84
85  */
86
87 #ifndef TRANSLATOR_DK_H
88 #define TRANSLATOR_DK_H
89
90 class TranslatorDanish : public TranslatorAdapter_1_8_0
91 {
92   public:
93
94     // --- Language control methods -------------------
95
96     /*! Used for identification of the language. The identification
97      * should not be translated. It should be replaced by the name
98      * of the language in English using lower-case characters only
99      * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
100      * the identification used in language.cpp.
101      */
102     virtual QCString idLanguage()
103     { return "danish"; }
104
105     /*! Used to get the LaTeX command(s) for the language support.
106      *  This method should return string with commands that switch
107      *  LaTeX to the desired language.  For example
108      *  <pre>"\\usepackage[german]{babel}\n"
109      *  </pre>
110      *  or
111      *  <pre>"\\usepackage{polski}\n"
112      *  "\\usepackage[latin2]{inputenc}\n"
113      *  "\\usepackage[T1]{fontenc}\n"
114      *  </pre>
115      */
116     virtual QCString latexLanguageSupportCommand()
117     {
118       return
119         "\\usepackage[danish]{babel}\n"
120         "\\usepackage[T1]{fontenc}\n";
121     }
122
123     // --- Language translation methods -------------------
124
125     /*! used in the compound documentation before a list of related functions. */
126     virtual QCString trRelatedFunctions()
127     { return "Relaterede funktioner"; }
128
129     /*! subscript for the related functions. */
130     virtual QCString trRelatedSubscript()
131     { return "(Bemærk at disse ikke er medlems-funktioner.)"; }
132
133     /*! header that is put before the detailed description of files,
134          * classes and namespaces. */
135     virtual QCString trDetailedDescription()
136     { return "Detaljeret beskrivelse"; }
137
138     /*! header that is put before the list of typedefs. */
139     virtual QCString trMemberTypedefDocumentation()
140     { return "Dokumentation af medlems-typedefinitioner"; }
141
142     /*! header that is put before the list of enumerations. */
143     virtual QCString trMemberEnumerationDocumentation()
144     { return "Dokumentation af medlems-enumerationer"; }
145         // medlems-enumerationer -> 'indeholdte enumerationer'
146
147     /*! header that is put before the list of member functions. */
148     virtual QCString trMemberFunctionDocumentation()
149     { return "Dokumentation af medlemsfunktioner"; }
150
151     /*! header that is put before the list of member attributes. */
152     virtual QCString trMemberDataDocumentation()
153     {
154       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
155         return "Felt-dokumentation";
156       } else {
157         return "Dokumentation af feltvariable";
158       }
159     }
160
161     /*! this is the text of a link put after brief descriptions. */
162     virtual QCString trMore()
163     { return "Mere..."; }
164
165     /*! put in the class documentation */
166     virtual QCString trListOfAllMembers()
167     { return "Liste over alle medlemmer"; }
168
169     /*! used as the title of the "list of all members" page of a class */
170     virtual QCString trMemberList()
171     { return "Liste over medlemmer"; }
172
173     /*! this is the first part of a sentence that is followed by a class name */
174     virtual QCString trThisIsTheListOfAllMembers()
175     { return "Dette er den komplette liste over medlemmer i "; }
176
177     /*! this is the remainder of the sentence after the class name */
178     virtual QCString trIncludingInheritedMembers()
179     { return ", inklusive alle nedarvede medlemmer."; }
180
181     /*! this is put at the author sections at the bottom of man pages.
182      *  parameter s is name of the project name.
183      */
184     virtual QCString trGeneratedAutomatically(const char *s)
185     { QCString result="Automatisk genereret af Doxygen";
186       if (s) result+=(QCString)" for "+s;
187       result+=" ud fra kildekoden.";
188       return result;
189     }
190
191     /*! put after an enum name in the list of all members */
192     virtual QCString trEnumName()
193     { return "enumerationsnavn"; }
194
195     /*! put after an enum value in the list of all members */
196     virtual QCString trEnumValue()
197     { return "enumerationsværdi"; }
198
199     /*! put after an undocumented member in the list of all members */
200     virtual QCString trDefinedIn()
201     { return "defineret i"; }
202
203     // quick reference sections
204
205     /*! This is put above each page as a link to the list of all groups of
206      *  compounds or files (see the \\group command).
207      */
208     virtual QCString trModules()
209     { return "Moduler"; }
210
211     /*! This is put above each page as a link to the class hierarchy */
212     virtual QCString trClassHierarchy()
213     { return "Klassehierarki"; }
214
215     /*! This is put above each page as a link to the list of annotated classes */
216     virtual QCString trCompoundList()
217     {
218       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
219         return "Datastrukturer";
220       } else {
221         return "Oversigt over sammensatte typer";
222       }
223     }
224
225     /*! This is put above each page as a link to the list of documented files */
226     virtual QCString trFileList()
227     { return "Filoversigt"; }
228
229     /*! This is put above each page as a link to all members of compounds. */
230     virtual QCString trCompoundMembers()
231     {
232       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
233         return "Data-felter";
234       } else {
235         return "Felter i sammensatte typer";
236       }
237     }
238
239     /*! This is put above each page as a link to all members of files. */
240     virtual QCString trFileMembers()
241     {
242       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
243         return "Globale symboler";
244       } else {
245         return "Placering i filer"; // Fil-medlemmer"; //TODO
246         //"Globale definitioner" ?
247       }
248     }
249
250     /*! This is put above each page as a link to all related pages. */
251     virtual QCString trRelatedPages()
252     { return "Relaterede sider"; }
253
254     /*! This is put above each page as a link to all examples. */
255     virtual QCString trExamples()
256     { return "Eksempler"; }
257
258     /*! This is put above each page as a link to the search engine. */
259     virtual QCString trSearch()
260     { return "Søg"; }
261
262     /*! This is an introduction to the class hierarchy. */
263     virtual QCString trClassHierarchyDescription()
264     { return "Denne nedarvningsliste er sorteret næsten - "
265              "men ikke nødvendigvis helt - alfabetisk:";
266     }
267
268     /*! This is an introduction to the list with all files. */
269     virtual QCString trFileListDescription(bool extractAll)
270     {
271       QCString result="Her er en liste over alle ";
272       if (!extractAll) result+="dokumenterede ";
273       result+="filer med korte beskrivelser:";
274       return result;
275     }
276
277     /*! This is an introduction to the annotated compound list. */
278     virtual QCString trCompoundListDescription()
279     {
280
281       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
282         return "Her er datastrukturerne med korte beskrivelser:";
283       } else {
284         return "Her er klasserne, datastrukturerne, "
285                "unionerne og grænsefladerne med korte beskrivelser:";
286       }
287     }
288
289     /*! This is an introduction to the page with all class members. */
290     virtual QCString trCompoundMembersDescription(bool extractAll)
291     {
292       QCString result="Her er en liste over alle ";
293       if (!extractAll) {
294         result+="dokumenterede ";
295       }
296       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
297         result+="felter i datastrukturer og unioner";
298       } else {
299         result+="klassemedlemmer";
300       }
301       result+=" med links til ";
302       if (!extractAll) {
303         if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
304           result+="datastruktur/unions-dokumentationen for hvert felt:";
305         } else {
306           result+="klassedokumentationen for hvert medlem:";
307         }
308       } else {
309         if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
310           result+="de datastrukturer/unioner, de hører til:";
311         } else {
312           result+="de klasser, de hører til:";
313         }
314       }
315       return result;
316     }
317
318     /*! This is an introduction to the page with all file members. */
319     virtual QCString trFileMembersDescription(bool extractAll)
320     {
321       QCString result="Her er en liste over alle ";
322       if (!extractAll) result+="dokumenterede ";
323
324       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
325         result+="funktioner, variable, #defines, enumerationer "
326             "og typedefinitioner";
327       } else {
328         result+="fil-medlemmer";
329       }
330       result+=", med links til ";
331       if (extractAll)
332         result+="de filer, de tilhører:";
333       else
334         result+="deres dokumentation:";
335       return result;
336     }
337
338     /*! This is an introduction to the page with the list of all examples */
339     virtual QCString trExamplesDescription()
340     { return "Her er en liste over alle eksempler:"; }
341
342     /*! This is an introduction to the page with the list of related pages */
343     virtual QCString trRelatedPagesDescription()
344     { return "Her er en liste over alle relaterede dokumentationssider:"; }
345
346     /*! This is an introduction to the page with the list of class/file groups */
347     virtual QCString trModulesDescription()
348     { return "Her er en liste over alle moduler:"; }
349
350     /*! This is used in HTML as the title of index.html. */
351     virtual QCString trDocumentation()
352     { return "Dokumentation"; }
353
354     /*! This is used in LaTeX as the title of the chapter with the
355      * index of all groups.
356      */
357     virtual QCString trModuleIndex()
358     { return "Modul-indeks"; }
359
360     /*! This is used in LaTeX as the title of the chapter with the
361      * class hierarchy.
362      */
363     virtual QCString trHierarchicalIndex()
364     { return "Hierarkisk indeks"; }
365
366     /*! This is used in LaTeX as the title of the chapter with the
367      * annotated compound index.
368      */
369     virtual QCString trCompoundIndex()
370     {
371       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
372         return "Indeks over datastrukturer";
373       } else {
374         return "Indeks over sammensatte typer";
375       }
376     }
377
378     /*! This is used in LaTeX as the title of the chapter with the
379      * list of all files.
380      */
381     virtual QCString trFileIndex()
382     { return "Fil-indeks"; }
383
384     /*! This is used in LaTeX as the title of the chapter containing
385      *  the documentation of all groups.
386      */
387     virtual QCString trModuleDocumentation()
388     { return "Modul-dokumentation"; }
389
390     /*! This is used in LaTeX as the title of the chapter containing
391      *  the documentation of all classes, structs and unions.
392      */
393     virtual QCString trClassDocumentation()
394     {
395       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
396         return "Datastruktur-documentation";
397       } else {
398         return "Klasse-dokumentation";
399       }
400     }
401
402     /*! This is used in LaTeX as the title of the chapter containing
403      *  the documentation of all files.
404      */
405     virtual QCString trFileDocumentation()
406     { return "Fil-dokumentation"; }
407
408     /*! This is used in LaTeX as the title of the chapter containing
409      *  the documentation of all examples.
410      */
411     virtual QCString trExampleDocumentation()
412     { return "Eksempel-dokumentation"; }
413
414     /*! This is used in LaTeX as the title of the chapter containing
415      *  the documentation of all related pages.
416      */
417     virtual QCString trPageDocumentation()
418     { return "Side-dokumentation"; }
419
420     /*! This is used in LaTeX as the title of the document */
421     virtual QCString trReferenceManual()
422     { return "Referencemanual"; }
423
424     /*! This is used in the documentation of a file as a header before the
425      *  list of defines
426      */
427     virtual QCString trDefines()
428     { return "#Defines"; }
429
430     /*! This is used in the documentation of a file as a header before the
431      *  list of typedefs
432      */
433     virtual QCString trTypedefs()
434     { return "Typedefinitioner"; }
435
436     /*! This is used in the documentation of a file as a header before the
437      *  list of enumerations
438      */
439     virtual QCString trEnumerations()
440     { return "Enumerationer"; }
441
442     /*! This is used in the documentation of a file as a header before the
443      *  list of (global) functions
444      */
445     virtual QCString trFunctions()
446     { return "Funktioner"; }
447
448     /*! This is used in the documentation of a file as a header before the
449      *  list of (global) variables
450      */
451     virtual QCString trVariables()
452     { return "Variable"; }
453
454     /*! This is used in the documentation of a file as a header before the
455      *  list of (global) variables
456      */
457     virtual QCString trEnumerationValues()
458     { return "Enumerationsværdier"; }
459
460     /*! This is used in the documentation of a file before the list of
461      *  documentation blocks for defines
462      */
463     virtual QCString trDefineDocumentation()
464     { return "#Define-dokumentation"; }
465
466     /*! This is used in the documentation of a file/namespace before the list
467      *  of documentation blocks for typedefs
468      */
469     virtual QCString trTypedefDocumentation()
470     { return "Dokumentation af typedefinitioner"; }
471
472     /*! This is used in the documentation of a file/namespace before the list
473      *  of documentation blocks for enumeration types
474      */
475     virtual QCString trEnumerationTypeDocumentation()
476     { return "Dokumentation af enumerations-typer"; }
477
478     /*! This is used in the documentation of a file/namespace before the list
479      *  of documentation blocks for enumeration values
480      */
481     virtual QCString trEnumerationValueDocumentation()
482     { return "Dokumentation af enumerations-værdier"; }
483
484     /*! This is used in the documentation of a file/namespace before the list
485      *  of documentation blocks for functions
486      */
487     virtual QCString trFunctionDocumentation()
488     { return "Funktions-dokumentation"; }
489
490     /*! This is used in the documentation of a file/namespace before the list
491      *  of documentation blocks for variables
492      */
493     virtual QCString trVariableDocumentation()
494     { return "Variabel-dokumentation"; }
495
496     /*! This is used in the documentation of a file/namespace/group before
497      *  the list of links to documented compounds
498      */
499     virtual QCString trCompounds()
500     {
501       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
502         return "Datastrukturer";
503       } else {
504         return "Sammensatte typer";
505       }
506     }
507
508     /*! This is used in the standard footer of each page and indicates when
509      *  the page was generated
510      */
511     virtual QCString trGeneratedAt(const char *date,const char *projName)
512     {
513       QCString result=(QCString)"Genereret "+date;
514       if (projName) result+=(QCString)" for "+projName;
515       result+=(QCString)" af";
516       return result;
517     }
518
519     /*! this text is put before a class diagram */
520     virtual QCString trClassDiagram(const char *clName)
521     {
522       return (QCString)"Stamtræ for "+clName+":";
523     }
524
525     /*! this text is generated when the \\internal command is used. */
526     virtual QCString trForInternalUseOnly()
527     { return "Kun til intern brug."; }
528
529     /*! this text is generated when the \\warning command is used. */
530     virtual QCString trWarning()
531     { return "Advarsel"; }
532
533     /*! this text is generated when the \\version command is used. */
534     virtual QCString trVersion()
535     { return "Version"; }
536
537     /*! this text is generated when the \\date command is used. */
538     virtual QCString trDate()
539     { return "Dato"; }
540
541     /*! this text is generated when the \\return command is used. */
542     virtual QCString trReturns()
543     { return "Returnerer"; }
544
545     /*! this text is generated when the \\sa command is used. */
546     virtual QCString trSeeAlso()
547     { return "Se også"; }
548
549     /*! this text is generated when the \\param command is used. */
550     virtual QCString trParameters()
551     { return "Parametre"; }
552
553     /*! this text is generated when the \\exception command is used. */
554     virtual QCString trExceptions()
555     { return "Undtagelser"; }    // "Exceptions"
556
557     /*! this text is used in the title page of a LaTeX document. */
558     virtual QCString trGeneratedBy()
559     { return "Genereret af"; }
560
561 //////////////////////////////////////////////////////////////////////////
562 // new since 0.49-990307
563 //////////////////////////////////////////////////////////////////////////
564
565     /*! used as the title of page containing all the index of all namespaces. */
566     virtual QCString trNamespaceList()
567     { return "Oversigt over namespaces"; }
568
569     /*! used as an introduction to the namespace list */
570     virtual QCString trNamespaceListDescription(bool extractAll)
571     {
572       QCString result="Her er en liste over alle ";
573       if (!extractAll) result+="dokumenterede ";
574       result+="namespaces med korte beskrivelser:";
575       return result;
576     }
577
578     /*! used in the class documentation as a header before the list of all
579      *  friends of a class
580      */
581     virtual QCString trFriends()
582     { return "Friends"; }
583
584 //////////////////////////////////////////////////////////////////////////
585 // new since 0.49-990405
586 //////////////////////////////////////////////////////////////////////////
587
588     /*! used in the class documentation as a header before the list of all
589      * related classes
590      */
591     virtual QCString trRelatedFunctionDocumentation()
592     { return "Dokumentation af friends og af relaterede funktioner"; }
593
594 //////////////////////////////////////////////////////////////////////////
595 // new since 0.49-990425
596 //////////////////////////////////////////////////////////////////////////
597
598     /*! used as the title of the HTML page of a class/struct/union */
599     virtual QCString trCompoundReference(const char *clName,
600                                     ClassDef::CompoundType compType,
601                                     bool isTemplate)
602     {
603       QCString result=(QCString)clName+" ";
604       switch(compType)
605       {
606         case ClassDef::Class:      result+=" Klasse-"; break;
607         case ClassDef::Struct:     result+=" Datastruktur-"; break;
608         case ClassDef::Union:      result+=" Union-"; break;
609         case ClassDef::Interface:  result+=" Grænseflade-"; break;
610         case ClassDef::Protocol:   result+=" Protokol-"; break;
611         case ClassDef::Category:   result+=" Kategori-"; break; // " Category-"
612         case ClassDef::Exception:  result+=" Undtagelse-"; break;   //  " Exception"
613         default: break;
614       }
615       if (isTemplate) result+="skabelon-";  // "template-"
616       result+="reference";
617       return result;
618     }
619
620     /*! used as the title of the HTML page of a file */
621     virtual QCString trFileReference(const char *fileName)
622     {
623       QCString result=fileName;
624       result+=" filreference";
625       return result;
626     }
627
628     /*! used as the title of the HTML page of a namespace */
629     virtual QCString trNamespaceReference(const char *namespaceName)
630     {
631       QCString result=namespaceName;
632       result+=" namespace-reference";
633       return result;
634     }
635
636     virtual QCString trPublicMembers()
637     { return "Offentlige metoder"; }
638     virtual QCString trPublicSlots()
639     { return "Offentlige slots"; }
640     virtual QCString trSignals()
641     { return "Signaler"; }
642     virtual QCString trStaticPublicMembers()
643     { return "Statiske, offentlige metoder"; }
644     virtual QCString trProtectedMembers()
645     { return "Beskyttede metoder"; }
646     virtual QCString trProtectedSlots()
647     { return "Beskyttede slots"; }
648     virtual QCString trStaticProtectedMembers()
649     { return "Statiske, beskyttede metoder"; }
650     virtual QCString trPrivateMembers()
651     { return "Private metoder"; }
652     virtual QCString trPrivateSlots()
653     { return "Private slots"; }
654     virtual QCString trStaticPrivateMembers()
655     { return "Statiske, private metoder"; }
656
657     /*! this function is used to produce a comma-separated list of items.
658      *  use generateMarker(i) to indicate where item i should be put.
659      */
660     virtual QCString trWriteList(int numEntries)
661     {
662       QCString result;
663       int i;
664       // the inherits list contain `numEntries' classes
665       for (i=0;i<numEntries;i++) {
666         // use generateMarker to generate placeholders for the class links!
667         result+=generateMarker(i); // generate marker for entry i in the list
668                                    // (order is left to right)
669
670         if (i!=numEntries-1) { // not the last entry, so we need a separator
671           if (i<numEntries-2) // not the fore last entry
672             result+=", ";
673           else                // the fore last entry
674             result+=" og ";
675         }
676       }
677       return result;
678     }
679
680     /*! used in class documentation to produce a list of base classes,
681      *  if class diagrams are disabled.
682      */
683     virtual QCString trInheritsList(int numEntries)
684     {
685       return "Nedarver "+trWriteList(numEntries)+".";
686     }
687
688     /*! used in class documentation to produce a list of super classes,
689      *  if class diagrams are disabled.
690      */
691     virtual QCString trInheritedByList(int numEntries)
692     {
693       return "Nedarvet af "+trWriteList(numEntries)+".";
694     }
695
696     /*! used in member documentation blocks to produce a list of
697      *  members that are hidden by this one.
698      */
699     virtual QCString trReimplementedFromList(int numEntries)
700     {
701       return "Overskriver metode fra "+trWriteList(numEntries)+".";
702     }
703
704     /*! used in member documentation blocks to produce a list of
705      *  all member that overwrite the implementation of this member.
706      */
707     virtual QCString trReimplementedInList(int numEntries)
708     {
709       return "Reimplementeret i "+trWriteList(numEntries)+".";
710     }
711
712     /*! This is put above each page as a link to all members of namespaces. */
713     virtual QCString trNamespaceMembers()
714     { return "Namespace-medlemmer"; }
715
716     /*! This is an introduction to the page with all namespace members */
717     virtual QCString trNamespaceMemberDescription(bool extractAll)
718     {
719       QCString result="Her er en liste over alle ";
720       if (!extractAll) result+="dokumenterede ";
721       result+="namespace-medlemmer med links til ";
722       if (extractAll)
723         result+="namespace-dokumentationen for hvert medlem:";
724       else
725         result+="det namespace, de hører til:";
726       return result;
727     }
728     /*! This is used in LaTeX as the title of the chapter with the
729      *  index of all namespaces.
730      */
731     virtual QCString trNamespaceIndex()
732     { return "Namespace-indeks"; }
733
734     /*! This is used in LaTeX as the title of the chapter containing
735      *  the documentation of all namespaces.
736      */
737     virtual QCString trNamespaceDocumentation()
738     { return "Namespace-dokumentation"; }
739
740 //////////////////////////////////////////////////////////////////////////
741 // new since 0.49-990522
742 //////////////////////////////////////////////////////////////////////////
743
744     /*! This is used in the documentation before the list of all
745      *  namespaces in a file.
746      */
747     virtual QCString trNamespaces()
748     { return "Namespaces"; }
749
750 //////////////////////////////////////////////////////////////////////////
751 // new since 0.49-990728
752 //////////////////////////////////////////////////////////////////////////
753
754     /*! This is put at the bottom of a class documentation page and is
755      *  followed by a list of files that were used to generate the page.
756      */
757     virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
758         bool single)
759     { // here s is one of " Class", " Struct" or " Union"
760       // single is true implies a single file
761       QCString result=(QCString)"Dokumentationen for denne ";
762       switch(compType)
763       {
764         case ClassDef::Class:      result+="klasse"; break;
765         case ClassDef::Struct:     result+="datastruktur"; break;
766         case ClassDef::Union:      result+="union"; break;
767         case ClassDef::Interface:  result+="grænseflade"; break;
768         case ClassDef::Protocol:   result+="protokol"; break; // "protocol"
769         case ClassDef::Category:   result+="kategori"; break; // "category"
770         case ClassDef::Exception:  result+="undtagelse"; break;  // "exception"
771         default: break;
772       }
773       result+=" blev genereret ud fra fil";
774       if (single) result+="en:"; else result+="erne:";
775       return result;
776     }
777
778 //////////////////////////////////////////////////////////////////////////
779 // new since 0.49-990901
780 //////////////////////////////////////////////////////////////////////////
781
782     /*! This is used as the heading text for the retval command. */
783     virtual QCString trReturnValues()
784     { return "Returværdier"; }
785
786     /*! This is in the (quick) index as a link to the main page (index.html)
787      */
788     virtual QCString trMainPage()
789     { return "Hovedside"; }
790
791     /*! This is used in references to page that are put in the LaTeX
792      *  documentation. It should be an abbreviation of the word page.
793      */
794     virtual QCString trPageAbbreviation()
795     { return "s."; }
796
797 //////////////////////////////////////////////////////////////////////////
798 // new since 0.49-991003
799 //////////////////////////////////////////////////////////////////////////
800
801     virtual QCString trDefinedAtLineInSourceFile()
802     {
803       return "Defineret på linje @0 i filen @1.";
804     }
805
806     virtual QCString trDefinedInSourceFile()
807     {
808       return "Defineret i filen @0.";
809     }
810
811 //////////////////////////////////////////////////////////////////////////
812 // new since 0.49-991205
813 //////////////////////////////////////////////////////////////////////////
814
815     virtual QCString trDeprecated()
816     {
817       return "Frarådes - fortidslevn"; // ?? - What is the context?
818           // "Ugleset" :)
819     }
820
821 //////////////////////////////////////////////////////////////////////////
822 // new since 1.0.0
823 //////////////////////////////////////////////////////////////////////////
824
825     /*! this text is put before a collaboration diagram */
826     virtual QCString trCollaborationDiagram(const char *clName)
827     {
828       return (QCString)"Samarbejdsdiagram for "+clName+":";
829     }
830     /*! this text is put before an include dependency graph */
831     virtual QCString trInclDepGraph(const char *fName)
832     {
833       return (QCString)"Inklusions-afhængighedsgraf for "+fName+":";
834     }
835     /*! header that is put before the list of constructor/destructors. */
836     virtual QCString trConstructorDocumentation()
837     {
838       return "Dokumentation af konstruktører og destruktører";
839       // "Constructor & Destructor dokumentation";
840     }
841
842     /*! Used in the file documentation to point to the corresponding sources. */
843     virtual QCString trGotoSourceCode()
844     { return "Hop til denne fils kildekode."; }
845     /*! Used in the file sources to point to the corresponding documentation. */
846     virtual QCString trGotoDocumentation()
847     { return "Hop til denne fils dokumentation."; }
848
849     /*! Text for the \\pre command */
850     virtual QCString trPrecondition()
851     { return "Forudsætninger (precondition)"; }
852     /*! Text for the \\post command */
853     virtual QCString trPostcondition()
854     { return "Resultat (postcondition)"; }
855     /*! Text for the \\invariant command */
856     virtual QCString trInvariant()
857     { return "Invariant"; }
858
859     /*! Text shown before a multi-line variable/enum initialization */
860     virtual QCString trInitialValue()
861     { return "Startværdi:"; }
862
863     /*! Text used the source code in the file index */
864     virtual QCString trCode()
865     { return "kildekode"; }
866     virtual QCString trGraphicalHierarchy()
867     { return "Grafisk klassehierarki"; }
868     virtual QCString trGotoGraphicalHierarchy()
869     { return "Hop til det grafiske klassehierarki"; }
870     virtual QCString trGotoTextualHierarchy()
871     { return "Hop til det tekstuelle klassehierarki"; }
872     virtual QCString trPageIndex()
873     { return "Sideindeks"; }
874
875 //////////////////////////////////////////////////////////////////////////
876 // new since 1.1.0
877 //////////////////////////////////////////////////////////////////////////
878
879     virtual QCString trNote()
880     { return "Note"; }
881     virtual QCString trPublicTypes()
882     { return "Offentlige typer"; }
883
884     virtual QCString trPublicAttribs()
885     {
886       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
887         return "Datafelter";
888       } else {
889         return "Offentlige attributter";
890       }
891     }
892
893     virtual QCString trStaticPublicAttribs()
894     { return "Statiske, offentlige attributter"; }
895     virtual QCString trProtectedTypes()
896     { return "Beskyttede typer"; }
897     virtual QCString trProtectedAttribs()
898     { return "Beskyttede attributter"; }
899     virtual QCString trStaticProtectedAttribs()
900     { return "Statiske, beskyttede attributter"; }
901     virtual QCString trPrivateTypes()
902     { return "Private typer"; }
903     virtual QCString trPrivateAttribs()
904     { return "Private attributter"; }
905     virtual QCString trStaticPrivateAttribs()
906     { return "Statiske, private attributter"; }
907
908 //////////////////////////////////////////////////////////////////////////
909 // new since 1.1.3
910 //////////////////////////////////////////////////////////////////////////
911
912     /*! Used as a marker that is put before a \\todo item */
913     virtual QCString trTodo()
914     {
915       return "Todo";
916     }
917     /*! Used as the header of the todo list */
918     virtual QCString trTodoList()
919     {
920       return "Todo-liste";
921     }
922
923 //////////////////////////////////////////////////////////////////////////
924 // new since 1.1.4
925 //////////////////////////////////////////////////////////////////////////
926
927     virtual QCString trReferencedBy()
928     {
929       return "Refereret til af";
930     }
931     virtual QCString trRemarks()
932     {
933       return "Bemærkninger";
934     }
935     virtual QCString trAttention()
936     {
937       return "OBS";
938     }
939     virtual QCString trInclByDepGraph()
940     {
941       return
942         "Denne graf viser, hvilke filer der direkte eller "
943         "indirekte inkluderer denne fil:";
944     }
945     virtual QCString trSince()
946     {
947       return "Siden";
948     }
949
950 //////////////////////////////////////////////////////////////////////////
951 // new since 1.1.5
952 //////////////////////////////////////////////////////////////////////////
953
954     /*! title of the graph legend page */
955     virtual QCString trLegendTitle()
956     {
957       return "Graf-forklaring";
958     }
959     /*! page explaining how the dot graph's should be interpreted */
960     virtual QCString trLegendDocs() //TODO
961     {
962       return
963                 "Denne side forklarer, hvordan man skal fortolke de grafer, "
964                 "der genereres af doxygen.<p>\n"
965         "Tag følgende eksempel:\n"
966         "\\code\n"
967         "/*! Klasse der er usynlig pg.a. beskæring */\n"
968         "class Invisible { };\n\n"
969         "/*! Beskåret klasse: nedarvningsrelation er skjult */\n"
970         "class Truncated : public Invisible { };\n\n"
971         "/* Klasse der ikke er dokumenteret med doxygen-kommentarer */\n"
972         "class Undocumented { };\n\n"
973         "/*! Klasse der nedarves fra offentligt */\n"
974         "class PublicBase : public Truncated { };\n\n"
975         "/*! En template-klasse */\n"
976         "template<class T> class Templ { };\n\n"
977         "/*! Klasse der nedarves fra beskyttet */\n"
978         "class ProtectedBase { };\n\n"
979         "/*! Klasse der nedarves fra privat */\n"
980         "class PrivateBase { };\n\n"
981         "/*! Klasse der bruges af Inherited-klassen */\n"
982         "class Used { };\n\n"
983         "/*! Klasse der nedarver en masse andre klasser */\n"
984         "class Inherited : public PublicBase,\n"
985         "                  protected ProtectedBase,\n"
986         "                  private PrivateBase,\n"
987         "                  public Undocumented,\n"
988         "                  public Templ<int>\n"
989         "{\n"
990         "  private:\n"
991         "    Used *m_usedClass;\n"
992         "};\n"
993         "\\endcode\n"
994         "Hvis \\c MAX_DOT_GRAPH_HEIGHT i konfigurationsfilen "
995         "er sat til 240, vil dette resultere i følgende graf:"
996         "<p><center><img src=\"graph_legend."+getDotImageExtension()+"\"></center>\n"
997         "<p>\n"
998         "De forskellige slags kasser i ovenstående graf har følgende "
999                 "betydninger:\n"
1000         "<ul>\n"
1001         "<li>%En udfyldt sort kasse repræsenterer den datastruktur eller "
1002                 "klasse, grafen er genereret for.\n"
1003         "<li>%En kasse med sort kant betegner en dokumenteret datastruktur "
1004                 " eller klasse.\n"
1005         "<li>%En kasse med grå kant betegner en udokumenteret datastruktur "
1006                 " eller klasse.\n"
1007         "<li>%En kasse med rød kant betegner en dokumenteret datastruktur "
1008                 " eller klasse, for hvilken ikke alle "
1009                 "nedarvnings- og indeholdelses-relationer er vist. "
1010         "%Grafer beskæres, hvis de fylder mere end de specificerede dimensioner.\n "
1011         "</ul>\n"
1012         "Pilene har følgende betydninger:\n"
1013         "<ul>\n"
1014         "<li>%En mørkeblå pil viser en offentlig nedarvningsrelation "
1015                 "mellem to klasser.\n"
1016         "<li>%En mørkegrøn pil viser en beskyttet nedarvningsrelation.\n"
1017         "<li>%En mørkerød pil viser en privat nedarvningsrelation.\n"
1018         "<li>%En lilla, stiplet pil bruges, når en klasse er indeholdt i "
1019                 "eller benyttes af en anden klasse. "
1020         "Ved pilen står navnet på den eller de variable, gennem hvilke(n) "
1021                 "den klasse, pilen peger på, er tilgængelig.\n"
1022         "<li>%En gul, stiplet pil viser forholdet mellem en template-instans "
1023                 "og den template-klasse, den er instantieret fra."
1024         "Ved pilen står template-parametrene brugt ved instantieringen.\n"
1025         "</ul>\n";
1026     }
1027     /*! text for the link to the legend page */
1028     virtual QCString trLegend()
1029     {
1030       return "forklaring til graf";
1031     }
1032
1033 //////////////////////////////////////////////////////////////////////////
1034 // new since 1.2.0
1035 //////////////////////////////////////////////////////////////////////////
1036
1037     /*! Used as a marker that is put before a test item */
1038     virtual QCString trTest()
1039     {
1040       return "Test";
1041     }
1042     /*! Used as the header of the test list */
1043     virtual QCString trTestList()
1044     {
1045       return "Testliste";
1046     }
1047
1048 //////////////////////////////////////////////////////////////////////////
1049 // new since 1.2.2
1050 //////////////////////////////////////////////////////////////////////////
1051
1052     /*! Used as a section header for IDL properties */
1053     virtual QCString trProperties()
1054     {
1055       return "Egenskaber";
1056     }
1057     /*! Used as a section header for IDL property documentation */
1058     virtual QCString trPropertyDocumentation()
1059     {
1060       return "Egenskabsdokumentation";
1061     }
1062
1063 //////////////////////////////////////////////////////////////////////////
1064 // new since 1.2.4
1065 //////////////////////////////////////////////////////////////////////////
1066
1067     /*! Used for Java classes in the summary section of Java packages */
1068     virtual QCString trClasses()
1069     {
1070       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
1071         return "Datastrukturer";
1072       } else {
1073         return "Klasser";
1074       }
1075     }
1076     /*! Used as the title of a Java package */
1077     virtual QCString trPackage(const char *name)
1078     {
1079       return (QCString)"Pakke "+name;
1080     }
1081     /*! Title of the package index page */
1082     virtual QCString trPackageList()
1083     {
1084       return "Pakkeoversigt";
1085     }
1086     /*! The description of the package index page */
1087     virtual QCString trPackageListDescription()
1088     {
1089       return
1090         "Her er en liste over pakkerne, med korte beskrivelser "
1091         "(hvor en sådan findes):";
1092     }
1093     /*! The link name in the Quick links header for each page */
1094     virtual QCString trPackages()
1095     {
1096       return "Pakker";
1097     }
1098     /*! Text shown before a multi-line define */
1099     virtual QCString trDefineValue()
1100     {
1101       return "Værdi:";
1102     }
1103
1104 //////////////////////////////////////////////////////////////////////////
1105 // new since 1.2.5
1106 //////////////////////////////////////////////////////////////////////////
1107
1108     /*! Used as a marker that is put before a \\bug item */
1109     virtual QCString trBug()
1110     {
1111       return "Kendte fejl";
1112     }
1113     /*! Used as the header of the bug list */
1114     virtual QCString trBugList()
1115     {
1116       return "Liste over kendte fejl";
1117     }
1118
1119 //////////////////////////////////////////////////////////////////////////
1120 // new since 1.2.6
1121 //////////////////////////////////////////////////////////////////////////
1122
1123     /*! Used as ansicpg for RTF file
1124          * (used table extract:)
1125          * <pre>
1126      * Charset Name       Charset Value(hex)  Codepage number
1127      * ------------------------------------------------------
1128      * ANSI_CHARSET              0 (x00)            1252
1129          * </pre>
1130          */
1131     virtual QCString trRTFansicp()
1132     {
1133       return "1252";
1134     }
1135
1136     /*! Used as ansicpg for RTF fcharset */
1137     virtual QCString trRTFCharSet()
1138     {
1139       return "0";
1140     }
1141
1142     /*! Used as header RTF general index */
1143     virtual QCString trRTFGeneralIndex()
1144     {
1145       return "Indeks";
1146     }
1147
1148     /*! This is used for translation of the word that will possibly
1149      *  be followed by a single name or by a list of names
1150      *  of the category.
1151      */
1152     virtual QCString trClass(bool first_capital, bool singular)
1153     {
1154       return createNoun(first_capital, singular, "klasse", "r");
1155     }
1156
1157     /*! This is used for translation of the word that will possibly
1158      *  be followed by a single name or by a list of names
1159      *  of the category.
1160      */
1161     virtual QCString trFile(bool first_capital, bool singular)
1162     {
1163       return createNoun(first_capital, singular, "fil", "er");
1164     }
1165
1166     /*! This is used for translation of the word that will possibly
1167      *  be followed by a single name or by a list of names
1168      *  of the category.
1169      */
1170     virtual QCString trNamespace(bool first_capital, bool singular)
1171     {
1172       return createNoun(first_capital, singular, "namespace", "s");
1173     }
1174
1175     /*! This is used for translation of the word that will possibly
1176      *  be followed by a single name or by a list of names
1177      *  of the category.
1178      */
1179     virtual QCString trGroup(bool first_capital, bool singular)
1180     {
1181       return createNoun(first_capital, singular, "gruppe", "r");
1182     }
1183
1184     /*! This is used for translation of the word that will possibly
1185      *  be followed by a single name or by a list of names
1186      *  of the category.
1187      */
1188     virtual QCString trPage(bool first_capital, bool singular)
1189     {
1190       return createNoun(first_capital, singular, "side", "r");
1191     }
1192
1193     /*! This is used for translation of the word that will possibly
1194      *  be followed by a single name or by a list of names
1195      *  of the category.
1196      */
1197     virtual QCString trMember(bool first_capital, bool singular)
1198     {
1199       return createNoun(first_capital, singular, "medlem", "mer");
1200     }
1201
1202     /*! This is used for translation of the word that will possibly
1203      *  be followed by a single name or by a list of names
1204      *  of the category.
1205      */
1206     virtual QCString trGlobal(bool first_capital, bool singular)
1207     {
1208       return createNoun(first_capital, singular, "global", "e");
1209     }
1210
1211 //////////////////////////////////////////////////////////////////////////
1212 // new since 1.2.7
1213 //////////////////////////////////////////////////////////////////////////
1214
1215     /*! This text is generated when the \\author command is used and
1216      *  for the author section in man pages. */
1217     virtual QCString trAuthor(bool first_capital, bool singular)
1218     {
1219       return createNoun(first_capital, singular, "forfatter", "e");
1220     }
1221
1222 //////////////////////////////////////////////////////////////////////////
1223 // new since 1.2.11
1224 //////////////////////////////////////////////////////////////////////////
1225
1226     /*! This text is put before the list of members referenced by a member
1227      */
1228     virtual QCString trReferences()
1229     {
1230       return "Indeholder referencer til";
1231     }
1232
1233 //////////////////////////////////////////////////////////////////////////
1234 // new since 1.2.13
1235 //////////////////////////////////////////////////////////////////////////
1236
1237     /*! used in member documentation blocks to produce a list of
1238      *  members that are implemented by this one.
1239      */
1240     virtual QCString trImplementedFromList(int numEntries)
1241     {
1242       return "Implementerer "+trWriteList(numEntries)+".";
1243     }
1244
1245     /*! used in member documentation blocks to produce a list of
1246      *  all members that implement this abstract member.
1247      */
1248     virtual QCString trImplementedInList(int numEntries)
1249     {
1250       return "Implementeret i "+trWriteList(numEntries)+".";
1251     }
1252
1253 //////////////////////////////////////////////////////////////////////////
1254 // new since 1.2.16
1255 //////////////////////////////////////////////////////////////////////////
1256
1257     /*! used in RTF documentation as a heading for the Table
1258      *  of Contents.
1259      */
1260     virtual QCString trRTFTableOfContents()
1261     {
1262       return "Indholdsfortegnelse";
1263     }
1264
1265 //////////////////////////////////////////////////////////////////////////
1266 // new since 1.2.17
1267 //////////////////////////////////////////////////////////////////////////
1268
1269     /*! Used as the header of the list of item that have been
1270      *  flagged deprecated
1271      */
1272     virtual QCString trDeprecatedList()
1273     {
1274       return "Liste over fortidslevn, hvis brug frarådes";
1275     }
1276
1277 //////////////////////////////////////////////////////////////////////////
1278 // new since 1.2.18
1279 //////////////////////////////////////////////////////////////////////////
1280
1281     /*! Used as a header for declaration section of the events found in
1282      * a C# program
1283      */
1284     virtual QCString trEvents()
1285     {
1286       return "Begivenheder";
1287     }
1288     /*! Header used for the documentation section of a class' events. */
1289     virtual QCString trEventDocumentation()
1290     {
1291       return "Begivenhedsdokumentation";
1292     }
1293
1294 //////////////////////////////////////////////////////////////////////////
1295 // new since 1.3
1296 //////////////////////////////////////////////////////////////////////////
1297
1298     /* Java: Entities with package scope... */
1299     virtual QCString trPackageTypes()
1300     { return "Typer med pakke-scope"; }
1301     virtual QCString trPackageMembers()
1302     { return "Metoder med pakke-scope"; }
1303     virtual QCString trStaticPackageMembers()
1304     { return "Statiske metoder med pakke-scope"; }
1305     virtual QCString trPackageAttribs()
1306     { return "Attributter med pakke-scope"; }
1307     virtual QCString trStaticPackageAttribs()
1308     { return "Statiske attributter med pakke-scope"; }
1309
1310 //////////////////////////////////////////////////////////////////////////
1311 // new since 1.3.1
1312 //////////////////////////////////////////////////////////////////////////
1313
1314     /*! Used in the quick index of a class/file/namespace member list page
1315      *  to link to the unfiltered list of all members.
1316      */
1317     virtual QCString trAll()
1318     {
1319       return "Alle";
1320     }
1321
1322     /*! Put in front of the call graph for a function. */
1323     virtual QCString trCallGraph()
1324     {
1325       return "Her er kald-grafen for denne funktion:";
1326     }
1327
1328 //////////////////////////////////////////////////////////////////////////
1329 // new since 1.3.3
1330 //////////////////////////////////////////////////////////////////////////
1331
1332     /*! This string is used as the title for the page listing the search
1333      *  results.
1334      */
1335     virtual QCString trSearchResultsTitle()
1336     {
1337       return "Søgeresultater";
1338     }
1339
1340     /*! This string is put just before listing the search results. The
1341      *  text can be different depending on the number of documents found.
1342      *  Inside the text you can put the special marker $num to insert
1343      *  the number representing the actual number of search results.
1344      *  The @a numDocuments parameter can be either 0, 1 or 2, where the
1345      *  value 2 represents 2 or more matches. HTML markup is allowed inside
1346      *  the returned string.
1347      */
1348     virtual QCString trSearchResults(int numDocuments)
1349     {
1350       if (numDocuments==0) {
1351         return "Beklager - ingen dokumenter passede til din forespørgsel.";
1352       } else if (numDocuments==1) {
1353         return "Fandt <b>1</b> dokument, der passer til din forespørgsel.";
1354       } else {
1355         return
1356           "Fandt <b>$num</b> dokumenter, der passer til din forespørgsel. "
1357           "De, der passer bedst, vises først.";
1358       }
1359     }
1360
1361     /*! This string is put before the list of matched words, for each search
1362      *  result. What follows is the list of words that matched the query.
1363      */
1364     virtual QCString trSearchMatches()
1365     {
1366       return "Fundne ord:"; //translation?
1367     }
1368
1369 //////////////////////////////////////////////////////////////////////////
1370 // new since 1.3.8
1371 //////////////////////////////////////////////////////////////////////////
1372
1373     /*! This is used in HTML as the title of page with source code for
1374      *  file filename
1375      */
1376     virtual QCString trSourceFile(QCString& filename)
1377     {
1378       return "Kildefilen " + filename;
1379     }
1380
1381
1382 //////////////////////////////////////////////////////////////////////////
1383 // new since 1.3.9
1384 //////////////////////////////////////////////////////////////////////////
1385
1386     /*! This is used as the name of the chapter containing the directory
1387      *  hierarchy.
1388      */
1389     virtual QCString trDirIndex()
1390     { return "Katalogstruktur"; }
1391
1392     /*! This is used as the name of the chapter containing the documentation
1393      *  of the directories.
1394      */
1395     virtual QCString trDirDocumentation()
1396     { return "Katalog-dokumentation"; }
1397
1398     /*! This is used as the title of the directory index and also in the
1399      *  Quick links of an HTML page, to link to the directory hierarchy.
1400      */
1401     virtual QCString trDirectories()
1402     { return "Kataloger"; }
1403
1404     /*! This returns a sentences that introduces the directory hierarchy.
1405      *  and the fact that it is sorted alphabetically per level
1406      */
1407     virtual QCString trDirDescription()
1408     { return "Denne katalogstruktur er sorteret næsten - "
1409              "men ikke nødvendigvis helt - alfabetisk:";
1410     }
1411
1412     /*! This returns the title of a directory page. The name of the
1413      *  directory is passed via \a dirName.
1414      */
1415     virtual QCString trDirReference(const char *dirName)
1416       { QCString result="Indhold af kataloget "; result+=dirName; return result;}
1417
1418     /*! This returns the word directory with or without starting capital
1419      *  (\a first_capital) and in sigular or plural form (\a singular).
1420      */
1421     virtual QCString trDir(bool first_capital, bool singular)
1422     {
1423       return createNoun(first_capital, singular, "katalog", "er");
1424     }
1425
1426 //////////////////////////////////////////////////////////////////////////
1427 // new since 1.4.1
1428 //////////////////////////////////////////////////////////////////////////
1429
1430     /*! This text is added to the documentation when the \\overload command
1431      *  is used for a overloaded function.
1432      */
1433     virtual QCString trOverloadText()
1434     {
1435        return "Dette er en overdefineret medlemsfunktion, "
1436               "defineret af bekvemmelighedshensyn. "
1437               "Den adskiller sig kun fra den ovenstående funktion i, "
1438               "hvilke argumenter den tager.";
1439     }
1440
1441 //////////////////////////////////////////////////////////////////////////
1442 // new since 1.4.6
1443 //////////////////////////////////////////////////////////////////////////
1444
1445     /*! This is used to introduce a caller (or called-by) graph */
1446     virtual QCString trCallerGraph()
1447     {
1448       return "Her er kalder-grafen for denne funktion:";
1449     }
1450
1451     // None translated yet PEH 2010-11-27
1452     // Subroutine
1453
1454     /*! header that is put before the list of member subprograms (Fortran). */
1455     virtual QCString trMemberFunctionDocumentationFortran()
1456     { return "Medlem Funktion/Subroutine Dokumentation"; }  // "Member Function/Subroutine Documentation"
1457
1458     /*! This is used in the documentation of a file/namespace before the list
1459      *  of documentation blocks for enumeration values
1460      */
1461     /*
1462     virtual QCString trEnumerationValueDocumentation()
1463       { return "Enumerator-dokumentation"; } //TODO?
1464 */
1465
1466
1467 //////////////////////////////////////////////////////////////////////////
1468 // new since 1.5.4 (mainly for Fortran)
1469 //////////////////////////////////////////////////////////////////////////
1470
1471     /*! This is put above each page as a link to the list of annotated data types (Fortran). */
1472     virtual QCString trCompoundListFortran()
1473     { return "Data Type Liste"; }       // "Data Types List"
1474
1475     /*! This is put above each page as a link to all members of compounds (Fortran). */
1476     virtual QCString trCompoundMembersFortran()
1477     { return "Data felter"; }   // "Data Fields"
1478
1479     /*! This is an introduction to the annotated compound list (Fortran). */
1480     virtual QCString trCompoundListDescriptionFortran()
1481     { return "Her er de datatyper med kort beskrivelse:"; }  // "Here are the data types with brief descriptions:"
1482
1483     /*! This is an introduction to the page with all data types (Fortran). */
1484     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
1485     {
1486       QCString result="Her er en liste af alle "; // "Here is a list of all "
1487       if (!extractAll)
1488       {
1489         result+="dokumenteret ";  // "documented "
1490       }
1491       result+="datatype medlemmer"; //  "data types members"
1492       result+=" med links til ";    // " with links to "
1493       if (!extractAll)
1494       {
1495          result+="data strukturer dokumenteret for hver medlem";    // "the data structure documentation for each member"
1496       }
1497       else
1498       {
1499          result+="de datatyper som de tilhører:";  // "the data types they belong to:"
1500       }
1501       return result;
1502     }
1503
1504     /*! This is used in LaTeX as the title of the chapter with the
1505      * annotated compound index (Fortran).
1506      */
1507     virtual QCString trCompoundIndexFortran()
1508     { return "Datatype indeks"; }   // "Data Type Index"
1509
1510     /*! This is used in LaTeX as the title of the chapter containing
1511      *  the documentation of all data types (Fortran).
1512      */
1513     virtual QCString trTypeDocumentation()
1514     { return "Datatype dokumentation"; }   // "Data Type Documentation"
1515
1516     /*! This is used in the documentation of a file as a header before the
1517      *  list of (global) subprograms (Fortran).
1518      */
1519     virtual QCString trSubprograms()
1520     { return "Funktioner/Subroutiner"; } // "Functions/Subroutines"
1521
1522     /*! This is used in the documentation of a file/namespace before the list
1523      *  of documentation blocks for subprograms (Fortran)
1524      */
1525     virtual QCString trSubprogramDocumentation()
1526     { return "Funktion/Subroutine dokumentation"; } // "Function/Subroutine Documentation"
1527
1528     /*! This is used in the documentation of a file/namespace/group before
1529      *  the list of links to documented compounds (Fortran)
1530      */
1531      virtual QCString trDataTypes()
1532     { return "Datatyper"; }    // "Data Types"
1533
1534     /*! used as the title of page containing all the index of all modules (Fortran). */
1535     virtual QCString trModulesList()
1536     { return "Modulliste"; }  // "Modules List"
1537
1538     /*! used as an introduction to the modules list (Fortran) */
1539     virtual QCString trModulesListDescription(bool extractAll)
1540     {
1541       QCString result="Her er en liste over alle ";     // "Here is a list of all "
1542       if (!extractAll) result+="dokumenteret ";       // "documented "
1543       result+="moduler med kort beskrivelse:";   // "modules with brief descriptions:"
1544       return result;
1545     }
1546
1547     /*! used as the title of the HTML page of a module/type (Fortran) */
1548     virtual QCString trCompoundReferenceFortran(const char *clName,
1549                                     ClassDef::CompoundType compType,
1550                                     bool isTemplate)
1551     {
1552       QCString result=(QCString)clName;
1553       switch(compType)
1554       {
1555         case ClassDef::Class:      result+=" Modul"; break;     // " Module"
1556         case ClassDef::Struct:     result+=" Type"; break;      // " Type"
1557         case ClassDef::Union:      result+=" Union"; break;     // " Union"
1558         case ClassDef::Interface:  result+=" Grænseflade"; break; // " Interface"
1559         case ClassDef::Protocol:   result+=" Protocol"; break;      // " Protocol"
1560         case ClassDef::Category:   result+=" Kategori"; break;      // " Category"
1561         case ClassDef::Exception:  result+=" Undtagelse"; break; // " Exception"
1562         default: break;
1563       }
1564       if (isTemplate) result+=" Template";
1565       result+=" Reference";
1566       return result;
1567     }
1568
1569     /*! used as the title of the HTML page of a module (Fortran) */
1570     virtual QCString trModuleReference(const char *namespaceName)
1571     {
1572       QCString result=namespaceName;
1573       result+=" Modulreference";  // " Module Reference"
1574       return result;
1575     }
1576
1577     /*! This is put above each page as a link to all members of modules. (Fortran) */
1578     virtual QCString trModulesMembers()
1579     { return "Modulmedlemmer"; }    // "Module Members"
1580
1581     /*! This is an introduction to the page with all modules members (Fortran) */
1582     virtual QCString trModulesMemberDescription(bool extractAll)
1583     {
1584       QCString result="Her er en list over alle ";     // "Here is a list of all "
1585       if (!extractAll) result+="Dokumentet ";       // "documented "
1586       result+="modulmemlemmer med link til ";      // "module members with links to "
1587       if (extractAll)
1588       {
1589         result+="dokumentation for hvert model medlem:";    // "the module documentation for each member:"
1590       }
1591       else
1592       {
1593         result+="moduler de tilhøre:";  // "the modules they belong to:"
1594       }
1595       return result;
1596     }
1597
1598     /*! This is used in LaTeX as the title of the chapter with the
1599      *  index of all modules (Fortran).
1600      */
1601     virtual QCString trModulesIndex()
1602     { return "Modulindekser"; }     // "Modules Index"
1603
1604     /*! This is used for translation of the word that will possibly
1605      *  be followed by a single name or by a list of names
1606      *  of the category.
1607      */
1608     virtual QCString trModule(bool first_capital, bool singular)
1609     {
1610       QCString result((first_capital ? "Modul" : "modul"));   // "Module" : "module"));
1611       if (!singular)  result+="er";  // "s";
1612       return result;
1613     }
1614
1615     /*! This is put at the bottom of a module documentation page and is
1616      *  followed by a list of files that were used to generate the page.
1617      */
1618     virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
1619         bool single)
1620     {
1621       // single is true implies a single file
1622       QCString result=(QCString)"The documentation for this ";
1623       switch(compType)
1624       {
1625         case ClassDef::Class:      result+="modul"; break;        // "module"
1626         case ClassDef::Struct:     result+="type"; break;         // "type"
1627         case ClassDef::Union:      result+="union"; break;        // "union"
1628         case ClassDef::Interface:  result+="grænseflade"; break;  // "interface"
1629         case ClassDef::Protocol:   result+="protokol"; break;     // "protocol"
1630         case ClassDef::Category:   result+="kategori"; break;     // "category"
1631         case ClassDef::Exception:  result+="undtagelse"; break;   // "exception"
1632         default: break;
1633       }
1634       result+=" var lavet udfra følgende file";                   // " was generated from the following file"
1635       if (single) result+=":"; else result+="r:";                 // ":" / "s:"
1636       return result;
1637     }
1638
1639     /*! This is used for translation of the word that will possibly
1640      *  be followed by a single name or by a list of names
1641      *  of the category.
1642      */
1643     virtual QCString trType(bool first_capital, bool singular)
1644     {
1645       QCString result((first_capital ? "Type" : "type"));   // "Type" : "type"
1646       if (!singular)  result+="r";                          // "s"
1647       return result;
1648     }
1649
1650     /*! This is used for translation of the word that will possibly
1651      *  be followed by a single name or by a list of names
1652      *  of the category.
1653      */
1654     virtual QCString trSubprogram(bool first_capital, bool singular)
1655     {
1656       QCString result((first_capital ? "Subprogram" : "subprogram"));   // "Subprogram" : "subprogram"
1657       if (!singular)  result+="er";                                     // "s"
1658       return result;
1659     }
1660
1661     /*! C# Type Constraint list */
1662     virtual QCString trTypeConstraints()
1663     {
1664       return "typebegrænsninger";        // "Type Constraints"
1665     }
1666
1667 //////////////////////////////////////////////////////////////////////////
1668 // new since 1.6.0 (mainly for the new search engine)
1669 //////////////////////////////////////////////////////////////////////////
1670
1671     /*! directory relation for \a name */
1672     virtual QCString trDirRelation(const char *name)
1673     {
1674       return QCString(name)+" Relation";        // " Relation"
1675     }
1676
1677     /*! Loading message shown when loading search results */
1678     virtual QCString trLoading()
1679     {
1680       return "Indlæser...";          // "Loading..."
1681     }
1682
1683     /*! Label used for search results in the global namespace */
1684     virtual QCString trGlobalNamespace()
1685     {
1686       return "Globalt Namespace";    // "Global Namespace"
1687     }
1688
1689     /*! Message shown while searching */
1690     virtual QCString trSearching()
1691     {
1692       return "Søger...";    // "Searching..."
1693     }
1694
1695     /*! Text shown when no search results are found */
1696     virtual QCString trNoMatches()
1697     {
1698       return "Ingen fund";      // "No Matches"
1699     }
1700
1701 //////////////////////////////////////////////////////////////////////////
1702 // new since 1.6.3 (missing items for the directory pages)
1703 //////////////////////////////////////////////////////////////////////////
1704
1705     /*! when clicking a directory dependency label, a page with a
1706      *  table is shown. The heading for the first column mentions the
1707      *  source file that has a relation to another file.
1708      */
1709     virtual QCString trFileIn(const char *name)
1710     {
1711       return (QCString)"File i "+name;     // "File in "
1712     }
1713
1714     /*! when clicking a directory dependency label, a page with a
1715      *  table is shown. The heading for the second column mentions the
1716      *  destination file that is included.
1717      */
1718     virtual QCString trIncludesFileIn(const char *name)
1719     {
1720       return (QCString)"Inkluderer file i "+name;    // "Includes file in "
1721     }
1722
1723     /** Compiles a date string.
1724      *  @param year Year in 4 digits
1725      *  @param month Month of the year: 1=January
1726      *  @param day Day of the Month: 1..31
1727      *  @param dayOfWeek Day of the week: 1=Monday..7=Sunday
1728      *  @param hour Hour of the day: 0..23
1729      *  @param minutes Minutes in the hour: 0..59
1730      *  @param seconds Seconds within the minute: 0..59
1731      *  @param includeTime Include time in the result string?
1732      */
1733     virtual QCString trDateTime(int year,int month,int day,int dayOfWeek,
1734                                 int hour,int minutes,int seconds,
1735                                 bool includeTime)
1736     {
1737       static const char *days[]   = { "Man","Tir","Ons","Tor","Fre","Lør","Søn" }; // { "Mon","Tue","Wed","Thu","Fri","Sat","Sun" };
1738       static const char *months[] = { "Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec" };    //  { "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec" };
1739       QCString sdate;
1740       sdate.sprintf("%s %s %d %d",days[dayOfWeek-1],months[month-1],day,year);
1741       if (includeTime)
1742       {
1743         QCString stime;
1744         stime.sprintf(" %.2d:%.2d:%.2d",hour,minutes,seconds);
1745         sdate+=stime;
1746       }
1747       return sdate;
1748     }
1749
1750 //////////////////////////////////////////////////////////////////////////
1751 // new since 1.7.5
1752 //////////////////////////////////////////////////////////////////////////
1753
1754     virtual QCString trCiteReferences()
1755     {
1756       return "Bibliografiske referencer";
1757     }
1758
1759     virtual QCString trCopyright()
1760     {
1761       return "Copyright";
1762     }
1763
1764     virtual QCString trDirDepGraph(const char *name)
1765     {
1766       return QCString("Afhængighedsgraf for katalog ")+name+":";
1767     }
1768
1769
1770 /*---------- For internal use: ----------------------------------------*/
1771   protected:
1772         /*! For easy flexible-noun implementation.
1773          *  \internal
1774          */
1775     QCString createNoun(bool first_capital, bool singular,
1776                         const char* base, const char* plurSuffix)
1777     {
1778       QCString result(base);
1779       if (first_capital) result.at(0) = toupper(result.at(0));
1780       if (!singular)  result+=plurSuffix;
1781       return result;
1782     }
1783 };
1784
1785 #endif