Fix for UBSan build
[platform/upstream/doxygen.git] / src / translator_de.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  * The translation into German was provided by
17  *   Jens Seidel (jensseidel@users.sf.net)
18  * based on work from
19  *   Jens Breitenstein (Jens.Breitenstein@tlc.de)
20  */
21
22 // Updates:
23 // --------
24 //   RK (who are you?)
25 //    - Update for "new since 1.1.3" version
26 //
27 //   2001/03/23 Jens Seidel (jensseidel@users.sourceforge.net)
28 //    - fixed typos
29 //    - changed trPageDocumentation() "Seitenbeschreibung" to
30 //      "Zusätzliche Informationen"
31 //    - removed old trGeneratedFrom()
32 //    - changed "/*!" to "/*" (documentation is inherited from translator_en.h
33 //      (INHERIT_DOCS = YES), there's no need to make changes twice)
34 //    - Update for "new since 1.2.4" version
35 //
36 //   2001/04/17 Jens Seidel (jensseidel@users.sourceforge.net)
37 //    - fixed typos ("Vererbunsbeziehung", "gesch&uumltzter")
38 //    - use umlauts instead of html code ("ä",...)
39 //      this makes it easier to read and fixes three problems (two in 
40 //      \code segment)
41 //
42 //   2001/04/23 Jens Seidel (jensseidel@users.sourceforge.net)
43 //    - Update for "new since 1.2.6-20010422" version
44 //
45 //   2001/05/06 Jens Seidel (jensseidel@users.sourceforge.net)
46 //    - Update for "new since 1.2.7" version
47 //    - Removed implementation of latexBabelPackage(), trVerbatimText(),
48 //      trFiles(), added latexLanguageSupportCommand().
49 //
50 //   2001/05/25 Jens Seidel (jensseidel@users.sourceforge.net)
51 //    - Update for "new since 1.2.7-20010524" version:
52 //      removed trAuthors(), trAuthor(), added trAuthor(bool, bool)
53 //
54 //   2001/07/24 Jens Seidel (jensseidel@users.sourceforge.net)
55 //    - trClassDocumentation() updated as in the English translator.
56 //
57 //   2001/11/30 Oliver Brandt (o.brandt@tu-bs.de) and
58 //              Jens Seidel (jensseidel@users.sourceforge.net)
59 //    - trReferences() implemented.
60 //    - trCompoundReference(), trLegendDocs() updated
61 //    - Removed some TODO's
62 //
63 //   2001/02/13 Oliver Brandt (o.brandt@tu-bs.de)
64 //    - Updated for "new since 1.2.13" version
65 //    - Removed some TODO's
66 //
67 //   2002/07/08 Oliver Brandt (o.brandt@tu-bs.de)
68 //    - Updated for "new since 1.2.16" version
69 //
70 //   2002/11/25 Jens Seidel (jensseidel@users.sourceforge.net)
71 //    - sync with english version 1.3
72 //    - TranslatorGerman doesn't inherit from TranslatorEnglish anymore,
73 //      so I changed "/* " back to "/*! " as in the English file
74 //    - use ngerman instead of german package in LaTeX
75 //    - changed "Datenelemente" to "Methoden" in
76 //      tr{,Static}{Public,Protected,Private}Members
77 //
78 //   2003/04/28 Jens Seidel (jensseidel@users.sourceforge.net)
79 //    - Updated for "new since 1.3" version
80 //    - translated Java package to Paket
81 //
82 //   2003/09/11 Jens Seidel (jensseidel@users.sourceforge.net)
83 //    - Updated for "new since 1.3.1" version
84 //  
85 //   2003/09/24 Jens Seidel (jensseidel@users.sourceforge.net)
86 //    - Updated a few strings which changed in CVS revision 1.22
87 //      ("compound" vs. "class")
88 //    
89 //   2004/08/01 Jens Seidel (jensseidel@users.sourceforge.net)
90 //    - Updated for "new since 1.3.8" version
91 //    
92 //   2004/09/19 Jens Seidel (jensseidel@users.sourceforge.net)
93 //    - Updated for "new since 1.3.9" version
94 //    
95 //   2004/09/25 Jens Seidel (jensseidel@users.sourceforge.net)
96 //    - changed "Typendefinitionen" to "Typdefinitionen" in
97 //      trFileMembersDescription() and trTypedefs()
98 //    - added a dash after (file, ...) names and in front of description
99 //    - changed "Eigenschaften" to "Propertys" (yeah, not ..."ies")
100 //    
101 //   2005/03/20 Jens Seidel (jensseidel@users.sourceforge.net)
102 //    - Updated for "new since 1.4.1" version
103 //    
104 //   2005/04/09 Jens Seidel (jensseidel@users.sourceforge.net)
105 //    - Changed Todo list translation as suggested in
106 //      http://bugzilla.gnome.org/show_bug.cgi?id=172818
107 //    
108 //   2005/05/09 Jens Seidel (jensseidel@users.sourceforge.net)
109 //    - Updated for "new since 1.4.3" version (removed unused methods)
110 //
111 //   2006/06/12 Jens Seidel (jensseidel@users.sourceforge.net)
112 //    - Updated for "new since 1.4.6" version
113 //
114 //   2008/02/04 Jens Seidel (jensseidel@users.sourceforge.net)
115 //    - Updated for "new since 1.5.4" version
116 //
117 //   2009/01/09 Jens Seidel (jensseidel@users.sourceforge.net)
118 //    - Resynced the trLegendDocs() method
119 //
120 //   2010/03/17 Jens Seidel (jensseidel@users.sourceforge.net)
121 //    - Updated for "new since 1.6.0" version
122 //    - Resynced the trLegendDocs() method (added closing HTML tags)
123 //    - Changed file encoding to utf-8, adapted idLanguageCharset()
124 //    - New German orthography (ngerman) is now default in LaTeX
125 //
126 //   2012/04/11 Peter Grotrian
127 //    - Updated for "new since 1.8.0" version
128 //    - Some small corrections
129 //
130 //   Todo:
131 //    - see FIXME
132
133 #ifndef TRANSLATOR_DE_H
134 #define TRANSLATOR_DE_H
135
136 class TranslatorGerman : public TranslatorAdapter_1_8_2
137 {
138   public:
139
140     // --- Language control methods -------------------
141     
142     /*! Used for identification of the language. The identification 
143      * should not be translated. It should be replaced by the name 
144      * of the language in English using lower-case characters only
145      * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
146      * the identification used in language.cpp.
147      */
148     virtual QCString idLanguage()
149     { return "german"; }
150
151     /*! Used to get the LaTeX command(s) for the language support. This method
152      *  was designed for languages which do wish to use a babel package.
153      */
154     virtual QCString latexLanguageSupportCommand()
155     {
156       return "\\usepackage[ngerman]{babel}\n";
157     }
158
159     /*! return the language charset. This will be used for the HTML output */
160     virtual QCString idLanguageCharset()
161     {
162       return "utf-8";
163     }
164
165     // --- Language translation methods -------------------
166
167     /*! used in the compound documentation before a list of related functions. */
168     virtual QCString trRelatedFunctions()
169     { return "Verwandte Funktionen"; }
170
171     /*! subscript for the related functions. */
172     virtual QCString trRelatedSubscript()
173     { return "(Es handelt sich hierbei nicht um Elementfunktionen.)"; }
174
175     /*! header that is put before the detailed description of files, classes and namespaces. */
176     virtual QCString trDetailedDescription()
177     { return "Ausführliche Beschreibung"; }
178
179     /*! header that is put before the list of typedefs. */
180     virtual QCString trMemberTypedefDocumentation()
181     { return "Dokumentation der benutzerdefinierten Datentypen"; }
182     
183     /*! header that is put before the list of enumerations. */
184     virtual QCString trMemberEnumerationDocumentation()
185     { return "Dokumentation der Aufzählungstypen"; }
186     
187     /*! header that is put before the list of member functions. */
188     virtual QCString trMemberFunctionDocumentation()
189     { return "Dokumentation der Elementfunktionen"; }
190     
191     /*! header that is put before the list of member attributes. */
192     virtual QCString trMemberDataDocumentation()
193     { /* No difference if "OPTIMIZE_OUTPUT_FOR_C" is set! */
194       return "Dokumentation der Datenelemente";
195     }
196
197     /*! this is the text of a link put after brief descriptions. */
198     virtual QCString trMore() 
199     { return "Mehr ..."; }
200
201     /*! put in the class documentation */
202     virtual QCString trListOfAllMembers()
203     { return "Aufstellung aller Elemente"; }
204
205     /*! used as the title of the "list of all members" page of a class */
206     virtual QCString trMemberList()
207     { return "Elementverzeichnis"; }
208
209     /*! this is the first part of a sentence that is followed by a class name */
210     virtual QCString trThisIsTheListOfAllMembers()
211     { return "Vollständige Aufstellung aller Elemente für "; }
212
213     /*! this is the remainder of the sentence after the class name */
214     virtual QCString trIncludingInheritedMembers()
215     { return " einschließlich aller geerbten Elemente."; }
216     
217     /*! this is put at the author sections at the bottom of man pages.
218      *  parameter s is name of the project name.
219      */
220     virtual QCString trGeneratedAutomatically(const char *s)
221     { QCString result="Automatisch erzeugt von Doxygen";
222       if (s) result+=(QCString)" für "+s;
223       result+=" aus dem Quellcode.";
224       return result;
225     }
226
227     /*! put after an enum name in the list of all members */
228     virtual QCString trEnumName()
229     { return "enum-Bezeichner"; }
230     
231     /*! put after an enum value in the list of all members */
232     virtual QCString trEnumValue()
233     { return "enum-Wert"; }
234     
235     /*! put after an undocumented member in the list of all members */
236     virtual QCString trDefinedIn()
237     { return "Definiert in"; }
238
239     // quick reference sections
240
241     /*! This is put above each page as a link to the list of all groups of 
242      *  compounds or files (see the \\group command).
243      */
244     virtual QCString trModules()
245     { return "Module"; }
246     
247     /*! This is put above each page as a link to the class hierarchy */
248     virtual QCString trClassHierarchy()
249     { return "Klassenhierarchie"; }
250     
251     /*! This is put above each page as a link to the list of annotated classes */
252     virtual QCString trCompoundList()
253     { 
254       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
255       {
256         return "Datenstrukturen";
257       }
258       else
259       {
260         return "Auflistung der Klassen";
261       }
262     }
263     
264     /*! This is put above each page as a link to the list of documented files */
265     virtual QCString trFileList()
266     { return "Auflistung der Dateien"; }
267
268     /*! This is put above each page as a link to all members of compounds. */
269     virtual QCString trCompoundMembers()
270     { 
271       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
272       {
273         return "Datenstruktur-Elemente";
274       }
275       else
276       {
277         return "Klassen-Elemente";
278       }
279     }
280
281     /*! This is put above each page as a link to all members of files. */
282     virtual QCString trFileMembers()
283     /* No difference if "OPTIMIZE_OUTPUT_FOR_C" is set! */
284     { return "Datei-Elemente"; }
285
286     /*! This is put above each page as a link to all related pages. */
287     virtual QCString trRelatedPages()
288     { return "Zusätzliche Informationen"; }
289
290     /*! This is put above each page as a link to all examples. */
291     virtual QCString trExamples()
292     { return "Beispiele"; }
293
294     /*! This is put above each page as a link to the search engine. */
295     virtual QCString trSearch()
296     { return "Suchen"; }
297
298     /*! This is an introduction to the class hierarchy. */
299     virtual QCString trClassHierarchyDescription()
300     { return "Die Liste der Ableitungen ist -mit Einschränkungen- "
301              "alphabetisch sortiert:";
302     }
303
304     /*! This is an introduction to the list with all files. */
305     virtual QCString trFileListDescription(bool extractAll)
306     {
307       QCString result="Hier folgt die Aufzählung aller ";
308       if (!extractAll) result+="dokumentierten ";
309       result+="Dateien mit einer Kurzbeschreibung:";
310       return result;
311     }
312
313     /*! This is an introduction to the annotated compound list. */
314     virtual QCString trCompoundListDescription()
315     { 
316       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
317       {
318         return "Hier folgt die Aufzählung aller Datenstrukturen "
319                "mit einer Kurzbeschreibung:";
320       }
321       else
322       {
323         return "Hier folgt die Aufzählung aller Klassen, Strukturen, "
324                "Varianten und Schnittstellen mit einer Kurzbeschreibung:";
325       }
326     }
327
328     /*! This is an introduction to the page with all class members. */
329     virtual QCString trCompoundMembersDescription(bool extractAll)
330     {
331       QCString result="Hier folgt die Aufzählung aller ";
332       if (!extractAll)
333       {
334         result+="dokumentierten ";
335       }
336       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
337       {
338         result+="Strukturen und Varianten";
339       }
340       else
341       {
342         result+="Klassenelemente";
343       }
344       result+=" mit Verweisen auf ";
345       if (!extractAll) 
346       {
347         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
348         {
349           result+="die Dokumentation zu jedem Element:";
350         }
351         else
352         {
353           result+="die Klassendokumentation zu jedem Element:";
354         }
355       }
356       else
357       {
358         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
359         {
360           result+="die zugehörigen Elemente:";
361         }
362         else
363         {
364           result+="die zugehörigen Klassen:";
365         }
366       }
367       return result;
368     }
369
370     /*! This is an introduction to the page with all file members. */
371     virtual QCString trFileMembersDescription(bool extractAll)
372     {
373       QCString result="Hier folgt die Aufzählung aller ";
374       if (!extractAll) result+="dokumentierten ";
375       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
376       {
377         result+="Funktionen, Variablen, Makros, Aufzählungen und Typdefinitionen";
378       }
379       else
380       {
381         result+="Dateielemente";
382       }
383       result+=" mit Verweisen auf ";
384       if (extractAll) 
385         result+="die Dokumentation zu jedem Element:";
386       else
387         result+="die zugehörigen Dateien:";
388       return result;
389     }
390
391     /*! This is an introduction to the page with the list of all examples */
392     virtual QCString trExamplesDescription()
393     { return "Hier folgt eine Liste mit allen Beispielen:"; }
394
395     /*! This is an introduction to the page with the list of related pages */
396     virtual QCString trRelatedPagesDescription()
397     { return "Hier folgt eine Liste mit zusammengehörigen Themengebieten:"; }
398
399     /*! This is an introduction to the page with the list of class/file groups */
400     virtual QCString trModulesDescription()
401     { return "Hier folgt die Aufzählung aller Module:"; }
402
403     // index titles (the project name is prepended for these) 
404
405     /*! This is used in HTML as the title of index.html. */
406     virtual QCString trDocumentation()
407     { return "Dokumentation"; }
408
409     /*! This is used in LaTeX as the title of the chapter with the 
410      * index of all groups.
411      */
412     virtual QCString trModuleIndex()
413     { return "Modul-Verzeichnis"; }
414
415     /*! This is used in LaTeX as the title of the chapter with the 
416      * class hierarchy.
417      */
418     virtual QCString trHierarchicalIndex()
419     { return "Hierarchie-Verzeichnis"; }
420
421     /*! This is used in LaTeX as the title of the chapter with the 
422      * annotated compound index.
423      */
424     virtual QCString trCompoundIndex()
425     {
426       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
427         return "Datenstruktur-Verzeichnis";
428       else
429         return "Klassen-Verzeichnis";
430     }
431
432     /*! This is used in LaTeX as the title of the chapter with the
433      * list of all files.
434      */
435     virtual QCString trFileIndex() 
436     { return "Datei-Verzeichnis"; }
437
438     /*! This is used in LaTeX as the title of the chapter containing
439      *  the documentation of all groups.
440      */
441     virtual QCString trModuleDocumentation()
442     { return "Modul-Dokumentation"; }
443
444     /*! This is used in LaTeX as the title of the chapter containing
445      *  the documentation of all classes, structs and unions.
446      */
447     virtual QCString trClassDocumentation()
448     { 
449       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
450       {
451         return "Datenstruktur-Dokumentation"; 
452       }
453       else
454       {
455         return "Klassen-Dokumentation";
456       }
457     }
458
459     /*! This is used in LaTeX as the title of the chapter containing
460      *  the documentation of all files.
461      */
462     virtual QCString trFileDocumentation()
463     { return "Datei-Dokumentation"; }
464
465     /*! This is used in LaTeX as the title of the chapter containing
466      *  the documentation of all examples.
467      */
468     virtual QCString trExampleDocumentation()
469     { return "Dokumentation der Beispiele"; }
470
471     /*! This is used in LaTeX as the title of the chapter containing
472      *  the documentation of all related pages.
473      */
474     virtual QCString trPageDocumentation()
475     { return "Zusätzliche Informationen"; }
476
477     /*! This is used in LaTeX as the title of the document */
478     virtual QCString trReferenceManual()
479     { return "Nachschlagewerk"; }
480     
481     /*! This is used in the documentation of a file as a header before the 
482      *  list of defines
483      */
484     virtual QCString trDefines()
485     { return "Makrodefinitionen"; }
486
487     /*! This is used in the documentation of a file as a header before the 
488      *  list of function prototypes
489      */
490     virtual QCString trFuncProtos()
491     { return "Funktionsprototypen"; }
492
493     /*! This is used in the documentation of a file as a header before the 
494      *  list of typedefs
495      */
496     virtual QCString trTypedefs()
497     { return "Typdefinitionen"; }
498
499     /*! This is used in the documentation of a file as a header before the 
500      *  list of enumerations
501      */
502     virtual QCString trEnumerations()
503     { return "Aufzählungen"; }
504
505     /*! This is used in the documentation of a file as a header before the 
506      *  list of (global) functions
507      */
508     virtual QCString trFunctions()
509     { return "Funktionen"; }
510
511     /*! This is used in the documentation of a file as a header before the 
512      *  list of (global) variables
513      */
514     virtual QCString trVariables()
515     { return "Variablen"; }
516
517     /*! This is used in the documentation of a file as a header before the 
518      *  list of (global) variables
519      */
520     virtual QCString trEnumerationValues()
521     { return "Aufzählungswerte"; }
522     
523     /*! This is used in the documentation of a file before the list of
524      *  documentation blocks for defines
525      */
526     virtual QCString trDefineDocumentation()
527     { return "Makro-Dokumentation"; }
528
529     /*! This is used in the documentation of a file/namespace before the list 
530      *  of documentation blocks for function prototypes
531      */
532     virtual QCString trFunctionPrototypeDocumentation()
533     { return "Funktionsprototypen Dokumentation"; }
534
535     /*! This is used in the documentation of a file/namespace before the list 
536      *  of documentation blocks for typedefs
537      */
538     virtual QCString trTypedefDocumentation()
539     { return "Dokumentation der benutzerdefinierten Typen"; }
540
541     /*! This is used in the documentation of a file/namespace before the list 
542      *  of documentation blocks for enumeration types
543      */
544     virtual QCString trEnumerationTypeDocumentation()
545     { return "Dokumentation der Aufzählungstypen"; }
546
547     /*! This is used in the documentation of a file/namespace before the list 
548      *  of documentation blocks for functions
549      */
550     virtual QCString trFunctionDocumentation()
551     { return "Dokumentation der Funktionen"; }
552
553     /*! This is used in the documentation of a file/namespace before the list 
554      *  of documentation blocks for variables
555      */
556     virtual QCString trVariableDocumentation()
557     { return "Variablen-Dokumentation"; }
558
559     /*! This is used in the documentation of a file/namespace/group before 
560      *  the list of links to documented compounds
561      */
562     virtual QCString trCompounds()
563     { 
564       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
565       {
566         return "Datenstrukturen";
567       }
568       else
569       {
570         return "Klassen";
571       }
572     }
573
574     /*! This is used in the standard footer of each page and indicates when 
575      *  the page was generated 
576      */
577     virtual QCString trGeneratedAt(const char *date,const char *projName)
578     {
579       QCString result=(QCString)"Erzeugt am "+date;
580       if (projName) result+=(QCString)" für "+projName;
581       result+=(QCString)" von";
582       return result;
583     }
584
585     /*! This is part of the sentence used in the standard footer of each page.
586      */
587     virtual QCString trWrittenBy()
588     {
589       return "geschrieben von";
590     }
591
592     /*! this text is put before a class diagram */
593     virtual QCString trClassDiagram(const char *clName)
594     {
595       return (QCString)"Klassendiagramm für "+clName+":";
596     }
597     
598     /*! this text is generated when the \\internal command is used. */
599     virtual QCString trForInternalUseOnly()
600     { return "Nur für den internen Gebrauch."; }
601
602     /*! this text is generated when the \\warning command is used. */
603     virtual QCString trWarning()
604     { return "Warnung"; }
605
606     /*! this text is generated when the \\version command is used. */
607     virtual QCString trVersion()
608     { return "Version"; }
609
610     /*! this text is generated when the \\date command is used. */
611     virtual QCString trDate()
612     { return "Datum"; }
613
614     /*! this text is generated when the \\return command is used. */
615     virtual QCString trReturns()
616     { return "Rückgabe"; }
617
618     /*! this text is generated when the \\sa command is used. */
619     virtual QCString trSeeAlso()
620     { return "Siehe auch"; }
621
622     /*! this text is generated when the \\param command is used. */
623     virtual QCString trParameters()
624     { return "Parameter"; }
625
626     /*! this text is generated when the \\exception command is used. */
627     virtual QCString trExceptions()
628     { return "Ausnahmebehandlung"; }
629     
630     /*! this text is used in the title page of a LaTeX document. */
631     virtual QCString trGeneratedBy()
632     { return "Erzeugt von"; }
633
634 //////////////////////////////////////////////////////////////////////////
635 // new since 0.49-990307
636 //////////////////////////////////////////////////////////////////////////
637     
638     /*! used as the title of page containing all the index of all namespaces. */
639     virtual QCString trNamespaceList()
640     { return "Liste aller Namensbereiche"; }
641
642     /*! used as an introduction to the namespace list */
643     virtual QCString trNamespaceListDescription(bool extractAll)
644     {
645       QCString result="Liste aller ";
646       if (!extractAll) result+="dokumentierten ";
647       result+="Namensbereiche mit Kurzbeschreibung:";
648       return result;
649     }
650
651     /*! used in the class documentation as a header before the list of all
652      *  friends of a class
653      */
654     virtual QCString trFriends()
655     { return "Freundbeziehungen"; }
656     
657 //////////////////////////////////////////////////////////////////////////
658 // new since 0.49-990405
659 //////////////////////////////////////////////////////////////////////////
660     
661     /*! used in the class documentation as a header before the list of all
662      * related classes 
663      */
664     virtual QCString trRelatedFunctionDocumentation()
665     { return "Freundbeziehungen und Funktionsdokumentation"; }
666     
667 //////////////////////////////////////////////////////////////////////////
668 // new since 0.49-990425
669 //////////////////////////////////////////////////////////////////////////
670
671     /*! used as the title of the HTML page of a class/struct/union */
672     virtual QCString trCompoundReference(const char *clName,
673                                  ClassDef::CompoundType compType,
674                                  bool isTemplate)
675     {
676       QCString result=(QCString)clName+" ";
677       if (isTemplate) result+="Template-";
678       switch(compType)
679       {
680         case ClassDef::Class:  result+="Klassen"; break;
681         case ClassDef::Struct: result+="Struktur"; break;
682         case ClassDef::Union:  result+="Varianten"; break;
683         case ClassDef::Interface:  result+="Schnittstellen"; break;
684         case ClassDef::Protocol:  result+="Protokoll"; break;
685         case ClassDef::Category:  result+="Kategorie"; break; 
686         case ClassDef::Exception:  result+="Ausnahmen"; break;
687       }
688       result+="referenz";
689       return result;
690     }
691
692     /*! used as the title of the HTML page of a file */
693     virtual QCString trFileReference(const char *fileName)
694     {
695       QCString result=fileName;
696       result+="-Dateireferenz";
697       return result;
698     }
699
700     /*! used as the title of the HTML page of a namespace */
701     virtual QCString trNamespaceReference(const char *namespaceName)
702     {
703       QCString result=namespaceName;
704       result+="-Namensbereichsreferenz";
705       return result;
706     }
707     
708     virtual QCString trPublicMembers()
709     { return "Öffentliche Methoden"; }
710
711     virtual QCString trPublicSlots()
712     { return "Öffentliche Slots"; }
713
714     virtual QCString trSignals()
715     { return "Signale"; }
716
717     virtual QCString trStaticPublicMembers()
718     { return "Öffentliche, statische Methoden"; }
719
720     virtual QCString trProtectedMembers()
721     { return "Geschützte Methoden"; }
722
723     virtual QCString trProtectedSlots()
724     { return "Geschützte Slots"; }
725
726     virtual QCString trStaticProtectedMembers()
727     { return "Geschützte, statische Methoden"; }
728
729     virtual QCString trPrivateMembers()
730     { return "Private Methoden"; }
731
732     virtual QCString trPrivateSlots()
733     { return "Private Slots"; }
734
735     virtual QCString trStaticPrivateMembers()
736     { return "Private, statische Methoden"; }
737
738     /*! this function is used to produce a comma-separated list of items.
739      *  use generateMarker(i) to indicate where item i should be put.
740      */
741     virtual QCString trWriteList(int numEntries)
742     {
743       QCString result;
744       int i;
745       // the inherits list contain `numEntries' classes
746       for (i=0;i<numEntries;i++) 
747       {
748         // use generateMarker to generate placeholders for the class links!
749         result+=generateMarker(i); // generate marker for entry i in the list 
750                                    // (order is left to right)
751         
752         if (i!=numEntries-1)  // not the last entry, so we need a separator
753         {
754           if (i<numEntries-2) // not the fore last entry 
755             result+=", ";
756           else                // the fore last entry
757             result+=" und ";
758         }
759       }
760       return result; 
761     }
762     
763     /*! used in class documentation to produce a list of base classes,
764      *  if class diagrams are disabled.
765      */
766     virtual QCString trInheritsList(int numEntries)
767     {
768       return "Abgeleitet von "+trWriteList(numEntries)+".";
769     }
770
771     /*! used in class documentation to produce a list of super classes,
772      *  if class diagrams are disabled.
773      */
774     virtual QCString trInheritedByList(int numEntries)
775     {
776       return "Basisklasse für "+trWriteList(numEntries)+".";
777     }
778
779     /*! used in member documentation blocks to produce a list of 
780      *  members that are hidden by this one.
781      */
782     virtual QCString trReimplementedFromList(int numEntries)
783     {
784       return "Erneute Implementation von "+trWriteList(numEntries)+".";
785     }
786
787     /*! used in member documentation blocks to produce a list of
788      *  all member that overwrite the implementation of this member.
789      */
790     virtual QCString trReimplementedInList(int numEntries)
791     {
792       return "Erneute Implementation in "+trWriteList(numEntries)+".";
793     }
794
795     /*! This is put above each page as a link to all members of namespaces. */
796     virtual QCString trNamespaceMembers()
797     { return "Elemente eines Namensbereiches"; }
798
799     /*! This is an introduction to the page with all namespace members */
800     virtual QCString trNamespaceMemberDescription(bool extractAll)
801     {
802       QCString result="Hier folgt die Aufzählung aller ";
803       if (!extractAll) result+="dokumentierten ";
804       result+="Namensbereichselemente mit Verweisen auf ";
805       if (extractAll)
806         result+="die Namensbereichsdokumentation für jedes Element:";
807       else
808         result+="die zugehörigen Dateien:";
809       return result;
810     }
811
812     /*! This is used in LaTeX as the title of the chapter with the 
813      *  index of all namespaces.
814      */
815     virtual QCString trNamespaceIndex()
816     { return "Verzeichnis der Namensbereiche"; }
817
818     /*! This is used in LaTeX as the title of the chapter containing
819      *  the documentation of all namespaces.
820      */
821     virtual QCString trNamespaceDocumentation()
822     { return "Dokumentation der Namensbereiche"; }
823
824 //////////////////////////////////////////////////////////////////////////
825 // new since 0.49-990522
826 //////////////////////////////////////////////////////////////////////////
827
828     /*! This is used in the documentation before the list of all
829      *  namespaces in a file.
830      */
831     virtual QCString trNamespaces()
832     { return "Namensbereiche"; }
833
834 //////////////////////////////////////////////////////////////////////////
835 // new since 0.49-990728
836 //////////////////////////////////////////////////////////////////////////
837
838     /*! This is put at the bottom of a class documentation page and is
839      *  followed by a list of files that were used to generate the page.
840      */
841     virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
842         bool single)
843     { // single is true implies a single file
844       QCString result=(QCString)"Die Dokumentation für diese";
845       switch(compType)
846       {
847         case ClassDef::Class:      result+=" Klasse"; break;
848         case ClassDef::Struct:     result+=" Struktur"; break;
849         case ClassDef::Union:      result+=" Variante"; break;
850         case ClassDef::Interface:  result+=" Schnittstelle"; break;
851         case ClassDef::Protocol:   result+="s Protokoll"; break; 
852         case ClassDef::Category:   result+=" Kategorie"; break;
853         case ClassDef::Exception:  result+=" Ausnahme"; break;
854       }
855       result+=" wurde erzeugt aufgrund der Datei";
856       if (single) result+=":"; else result+="en:";
857       return result;
858     }
859
860     /*! This is in the (quick) index as a link to the alphabetical compound
861      * list.
862      */
863     virtual QCString trAlphabeticalList()
864     { return "Alphabetische Liste"; }
865
866 //////////////////////////////////////////////////////////////////////////
867 // new since 0.49-990901
868 //////////////////////////////////////////////////////////////////////////
869
870     /*! This is used as the heading text for the retval command. */
871     virtual QCString trReturnValues()
872     { return "Rückgabewerte"; }
873
874     /*! This is in the (quick) index as a link to the main page (index.html)
875      */
876     virtual QCString trMainPage()
877     { return "Hauptseite"; }
878
879     /*! This is used in references to page that are put in the LaTeX 
880      *  documentation. It should be an abbreviation of the word page.
881      */
882     virtual QCString trPageAbbreviation()
883     { return "S."; }
884
885 //////////////////////////////////////////////////////////////////////////
886 // new since 0.49-991003
887 //////////////////////////////////////////////////////////////////////////
888
889     virtual QCString trDefinedAtLineInSourceFile()
890     {
891       return "Definiert in Zeile @0 der Datei @1.";
892     }
893
894     virtual QCString trDefinedInSourceFile()
895     {
896       return "Definiert in Datei @0.";
897     }
898
899 //////////////////////////////////////////////////////////////////////////
900 // new since 0.49-991205
901 //////////////////////////////////////////////////////////////////////////
902
903     virtual QCString trDeprecated()
904     {
905       return "Veraltet";
906     }
907
908 //////////////////////////////////////////////////////////////////////////
909 // new since 1.0.0
910 //////////////////////////////////////////////////////////////////////////
911
912     /*! this text is put before a collaboration diagram */
913     virtual QCString trCollaborationDiagram(const char *clName)
914     {
915       return (QCString)"Zusammengehörigkeiten von "+clName+":";
916     }
917
918     /*! this text is put before an include dependency graph */
919     virtual QCString trInclDepGraph(const char *fName)
920     {
921       return (QCString)"Include-Abhängigkeitsdiagramm für "+fName+":";
922     }
923
924     /*! header that is put before the list of constructor/destructors. */
925     virtual QCString trConstructorDocumentation()
926     {
927       return "Beschreibung der Konstruktoren und Destruktoren"; 
928     }
929
930     /*! Used in the file documentation to point to the corresponding sources. */
931     virtual QCString trGotoSourceCode()
932     {
933       return "gehe zum Quellcode dieser Datei";
934     }
935
936     /*! Used in the file sources to point to the corresponding documentation. */
937     virtual QCString trGotoDocumentation()
938     {
939       return "gehe zur Dokumentation dieser Datei";
940     }
941
942     /*! Text for the \\pre command */
943     virtual QCString trPrecondition()
944     {
945       return "Vorbedingung";
946     }
947
948     /*! Text for the \\post command */
949     virtual QCString trPostcondition()
950     {
951       return "Nachbedingung";
952     }
953
954     /*! Text for the \\invariant command */
955     virtual QCString trInvariant()
956     {
957       return "Invariante";
958     }
959
960     /*! Text shown before a multi-line variable/enum initialization */
961     virtual QCString trInitialValue()
962     {
963       return "Initialisierung:";
964     }
965
966     /*! Text used the source code in the file index */
967     virtual QCString trCode()
968     {
969       return "code";
970     }
971
972     virtual QCString trGraphicalHierarchy()
973     {
974       return "Grafische Darstellung der Klassenhierarchie";
975     }
976
977     virtual QCString trGotoGraphicalHierarchy()
978     {
979       return "gehe zur grafischen Darstellung der Klassenhierarchie";
980     }
981
982     virtual QCString trGotoTextualHierarchy()
983     {
984       return "gehe zur textbasierten Darstellung der Klassenhierarchie";
985     }
986
987     virtual QCString trPageIndex()
988     {
989       return "Seitenindex";
990     }
991
992 //////////////////////////////////////////////////////////////////////////
993 // new since 1.1.0
994 //////////////////////////////////////////////////////////////////////////
995
996     //RK: had to change here because of the new command \remark
997     virtual QCString trNote()
998     {
999       return "Zu beachten";
1000     }
1001
1002     virtual QCString trPublicTypes()
1003     {
1004       return "Öffentliche Typen";
1005     }
1006
1007     virtual QCString trPublicAttribs()
1008     {
1009       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
1010       {
1011         return "Datenfelder";
1012       }
1013       else
1014       {
1015         return "Öffentliche Attribute";
1016       }
1017     }
1018
1019     virtual QCString trStaticPublicAttribs()
1020     {
1021       return "Statische öffentliche Attribute";
1022     }
1023
1024     virtual QCString trProtectedTypes()
1025     {
1026       return "Geschützte Typen";
1027     }
1028
1029     virtual QCString trProtectedAttribs()
1030     {
1031       return "Geschützte Attribute";
1032     }
1033
1034     virtual QCString trStaticProtectedAttribs()
1035     {
1036       return "Statische, geschützte Attribute";
1037     }
1038
1039     virtual QCString trPrivateTypes()
1040     {
1041       return "Private Typen";
1042     }
1043
1044     virtual QCString trPrivateAttribs()
1045     {
1046       return "Private Attribute";
1047     }
1048
1049     virtual QCString trStaticPrivateAttribs()
1050     {
1051       return "Statische, private Attribute";
1052     }
1053
1054 //////////////////////////////////////////////////////////////////////////
1055 // new since 1.1.3
1056 //////////////////////////////////////////////////////////////////////////
1057
1058     /*! Used as a marker that is put before a \\todo item */
1059     virtual QCString trTodo()
1060     {
1061       return "Noch zu erledigen";
1062     }
1063
1064     /*! Used as the header of the todo list */
1065     virtual QCString trTodoList()
1066     {
1067       return "Ausstehende Aufgaben";
1068     }
1069
1070 //////////////////////////////////////////////////////////////////////////
1071 // new since 1.1.4
1072 //////////////////////////////////////////////////////////////////////////
1073
1074     virtual QCString trReferencedBy()
1075     {
1076       return "Wird benutzt von";
1077     }
1078
1079     virtual QCString trRemarks()
1080     {
1081       return "Bemerkungen";
1082     }
1083
1084     virtual QCString trAttention()
1085     {
1086       return "Achtung";
1087     }
1088
1089     virtual QCString trInclByDepGraph()
1090     {
1091       return "Dieser Graph zeigt, welche Datei direkt oder "
1092              "indirekt diese Datei enthält:";
1093     }
1094
1095     virtual QCString trSince()
1096     {
1097       return "Seit";
1098     }
1099     
1100 //////////////////////////////////////////////////////////////////////////
1101 // new since 1.1.5
1102 //////////////////////////////////////////////////////////////////////////
1103
1104     /*! title of the graph legend page */
1105     virtual QCString trLegendTitle()
1106     {
1107       return "Erklärung des Graphen";
1108     }
1109
1110     /*! page explaining how the dot graph's should be interpreted 
1111      *  The %A in the text below are to prevent link to classes called "A".
1112      */
1113     virtual QCString trLegendDocs()
1114     {
1115       return 
1116         "Diese Seite erklärt die Interpretation der von doxygen "
1117         "erzeugten Graphen.<p>\n"
1118         "Beispiel:\n"
1119         "\\code\n"
1120         "/*! Wegen Verkürzung unsichtbare Klasse */\n"
1121         "class Invisible { };\n\n"
1122         "/*! Klasse verkürzt dargestellt, Vererbungsbeziehung ist versteckt */\n"
1123         "class Truncated : public Invisible { };\n\n"
1124         "/* Nicht mit doxygen-Kommentaren dokumentierte Klasse */\n"
1125         "class Undocumented { };\n\n"
1126         "/*! Mithilfe öffentlicher Vererbung vererbte Klasse */\n"
1127         "class PublicBase : public Truncated { };\n\n"
1128         "/*! Eine Template-Klasse */\n"
1129         "template<class T> class Templ { };\n\n"
1130         "/*! Mithilfe geschützter Vererbung vererbte Klasse */\n"
1131         "class ProtectedBase { };\n\n"
1132         "/*! Mithilfe privater Vererbung vererbte Klasse */\n"
1133         "class PrivateBase { };\n\n"
1134         "/*! Von der Klasse Inherited benutzte Klasse */\n"
1135         "class Used { };\n\n"
1136         "/*! Superklasse, die von mehreren anderen Klassen erbt */\n"
1137         "class Inherited : public PublicBase,\n"
1138         "                  protected ProtectedBase,\n"
1139         "                  private PrivateBase,\n"
1140         "                  public Undocumented,\n"
1141         "                  public Templ<int>\n"
1142         "{\n"
1143         "  private:\n"
1144         "    Used *m_usedClass;\n"
1145         "};\n"
1146         "\\endcode\n"
1147         "Dies liefert den folgenden Graphen:"
1148         "<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center></p>\n"
1149         "<p>\n"
1150         "Die Rechtecke in obigem Graphen bedeuten:\n"
1151         "</p>\n"
1152         "<ul>\n"
1153         "<li>Ein grau gefülltes Rechteck stellt die Struktur oder "
1154         "Klasse dar, für die der Graph erzeugt wurde.</li>\n"
1155         "<li>Ein Rechteck mit schwarzem Rahmen kennzeichnet eine dokumentierte "
1156         "Struktur oder Klasse.</li>\n"
1157         "<li>Ein Rechteck mit grauem Rahmen kennzeichnet eine undokumentierte "
1158         "Struktur oder Klasse.</li>\n"
1159         "<li>Ein Rechteck mit rotem Rahmen kennzeichnet eine dokumentierte "
1160         "Struktur oder Klasse, für die nicht alle Vererbungs-/"
1161         "Enthaltenseinsbeziehungen dargestellt werden. Ein Graph wird gekürzt, "
1162         "wenn er nicht in die angegebenen Schranken passt.</li>\n"
1163         "</ul>\n"
1164         "<p>\n"
1165         "Die Pfeile bedeuten:\n"
1166         "</p>\n"
1167         "<ul>\n"
1168         "<li>Ein dunkelblauer Pfeil stellt eine öffentliche Vererbungsbeziehung "
1169         "zwischen zwei Klassen dar.</li>\n"
1170         "<li>Ein dunkelgrüner Pfeil stellt geschützte Vererbung dar.</li>\n"
1171         "<li>Ein dunkelroter Pfeil stellt private Vererbung dar.</li>\n"
1172         "<li>Ein gestrichelter violetter Pfeil bedeutet, dass eine Klasse in "
1173         "einer anderen enthalten ist oder von einer anderen benutzt wird. Am "
1174         "Pfeil stehen die Variable(n), mit deren Hilfe auf die Struktur oder "
1175         "Klasse an der Pfeilspitze zugegriffen werden kann.</li>\n"
1176         "<li>Ein gestrichelter gelber Pfeil kennzeichnet eine Verknüpfung "
1177         "zwischen einer Template-Instanz und der Template-Klasse von welcher "
1178         "es abstammt. Neben dem Pfeil sind die Template-Parameter aufgeführt.</li>\n"
1179         "</ul>\n";
1180     }
1181
1182     /*! text for the link to the legend page */
1183     virtual QCString trLegend()
1184     {
1185       return "Legende";
1186     }
1187     
1188 //////////////////////////////////////////////////////////////////////////
1189 // new since 1.2.0
1190 //////////////////////////////////////////////////////////////////////////
1191     
1192     /*! Used as a marker that is put before a test item */
1193     virtual QCString trTest()
1194     {
1195       return "Test";
1196     }
1197
1198     /*! Used as the header of the test list */
1199     virtual QCString trTestList()
1200     {
1201       return "Test-Liste";
1202     }
1203
1204 //////////////////////////////////////////////////////////////////////////
1205 // new since 1.2.1
1206 //////////////////////////////////////////////////////////////////////////
1207
1208     /*! Used as a section header for KDE-2 IDL methods */
1209     virtual QCString trDCOPMethods()
1210     {
1211       return "DCOP Methoden";
1212     }
1213
1214 //////////////////////////////////////////////////////////////////////////
1215 // new since 1.2.2
1216 //////////////////////////////////////////////////////////////////////////
1217
1218     /*! Used as a section header for IDL properties */
1219     virtual QCString trProperties()
1220     {
1221       return "Propertys";
1222     }
1223
1224     /*! Used as a section header for IDL property documentation */
1225     virtual QCString trPropertyDocumentation()
1226     {
1227       return "Dokumentation der Propertys";
1228     }
1229
1230 //////////////////////////////////////////////////////////////////////////
1231 // new since 1.2.4
1232 //////////////////////////////////////////////////////////////////////////
1233
1234     /*! Used for Java classes in the summary section of Java packages */
1235     virtual QCString trClasses()
1236     {
1237       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
1238         return "Datenstrukturen";
1239       else
1240         return "Klassen";
1241     }
1242
1243     /*! Used as the title of a Java package */
1244     virtual QCString trPackage(const char *name)
1245     {
1246       return (QCString)"Paket "+name;
1247     }
1248
1249     /*! Title of the package index page */
1250     virtual QCString trPackageList()
1251     {
1252       return "Paketliste";
1253     }
1254
1255     /*! The description of the package index page */
1256     virtual QCString trPackageListDescription()
1257     {
1258       return "Hier folgen die Pakete mit einer Kurzbeschreibung (wenn verfügbar):";
1259     }
1260
1261     /*! The link name in the Quick links header for each page */
1262     virtual QCString trPackages()
1263     {
1264       return "Pakete";
1265     }
1266
1267     /*! Text shown before a multi-line define */
1268     virtual QCString trDefineValue()
1269     {
1270       return "Wert:";
1271     }
1272     
1273 //////////////////////////////////////////////////////////////////////////
1274 // new since 1.2.5
1275 //////////////////////////////////////////////////////////////////////////
1276     
1277     /*! Used as a marker that is put before a \\bug item */
1278     virtual QCString trBug()
1279     {
1280       return "Fehler";
1281     }
1282
1283     /*! Used as the header of the bug list */
1284     virtual QCString trBugList()
1285     {
1286       return "Liste der bekannten Fehler";
1287     }
1288
1289 //////////////////////////////////////////////////////////////////////////
1290 // new since 1.2.6-20010422
1291 //////////////////////////////////////////////////////////////////////////
1292
1293     /*! Used as ansicpg for RTF file. See translator_en.h for details. */
1294     virtual QCString trRTFansicp()
1295     {
1296       return "1252";
1297     }
1298
1299     /*! Used as ansicpg for RTF fcharset 
1300      *  \see trRTFansicp() for a table of possible values.
1301      */
1302     virtual QCString trRTFCharSet()
1303     {
1304       return "0";
1305     }
1306
1307     /*! Used as header RTF general index */
1308     virtual QCString trRTFGeneralIndex()
1309     {
1310       return "Index";
1311     }
1312
1313 //////////////////////////////////////////////////////////////////////////
1314 // new since 1.2.7
1315 //////////////////////////////////////////////////////////////////////////
1316
1317     /*! This is used for translation of the word that will possibly
1318      *  be followed by a single name or by a list of names 
1319      *  of the category.
1320      */
1321     virtual QCString trClass(bool, bool singular)
1322     {
1323       QCString result("Klasse");
1324       if (!singular)  result+="n";
1325       return result;
1326     }
1327
1328     /*! This is used for translation of the word that will possibly
1329      *  be followed by a single name or by a list of names 
1330      *  of the category.
1331      */
1332     virtual QCString trFile(bool, bool singular)
1333     {
1334       QCString result("Datei");
1335       if (!singular)  result+="en";
1336       return result;
1337     }
1338
1339     /*! This is used for translation of the word that will possibly
1340      *  be followed by a single name or by a list of names 
1341      *  of the category.
1342      */
1343     virtual QCString trNamespace(bool, bool singular)
1344     {
1345       QCString result("Namensbereich");
1346       if (!singular)  result+="e";
1347       return result;
1348     }
1349
1350     /*! This is used for translation of the word that will possibly
1351      *  be followed by a single name or by a list of names 
1352      *  of the category.
1353      */
1354     virtual QCString trGroup(bool, bool singular)
1355     {
1356       QCString result("Gruppe");
1357       if (!singular)  result+="n";
1358       return result;
1359     }
1360
1361     /*! This is used for translation of the word that will possibly
1362      *  be followed by a single name or by a list of names 
1363      *  of the category.
1364      */
1365     virtual QCString trPage(bool, bool singular)
1366     {
1367       QCString result("Seite");
1368       if (!singular)  result+="n";
1369       return result;
1370     }
1371
1372     /*! This is used for translation of the word that will possibly
1373      *  be followed by a single name or by a list of names 
1374      *  of the category.
1375      */
1376     virtual QCString trMember(bool, bool singular)
1377     {
1378       QCString result("Element");
1379       if (!singular)  result+="e";
1380       return result;
1381     }
1382    
1383     /*! This is used for translation of the word that will possibly
1384      *  be followed by a single name or by a list of names 
1385      *  of the category.
1386      */
1387     virtual QCString trGlobal(bool first_capital, bool singular)
1388     {
1389       QCString result((first_capital ? "Global" : "global")); // FIXME
1390       if (!singular)  result+="";
1391       return result;
1392     }
1393
1394 //////////////////////////////////////////////////////////////////////////
1395 // new since 1.2.7-20010524
1396 //////////////////////////////////////////////////////////////////////////
1397
1398     /*! This text is generated when the \\author command is used and
1399      *  for the author section in man pages. 
1400      */
1401     virtual QCString trAuthor(bool, bool singular)
1402     {
1403       QCString result("Autor");
1404       if (!singular)  result+="en";
1405       return result;
1406     }
1407
1408 //////////////////////////////////////////////////////////////////////////
1409 // new since 1.2.11
1410 //////////////////////////////////////////////////////////////////////////
1411
1412     /*! This text is put before the list of members referenced by a member
1413      */
1414     virtual QCString trReferences()
1415     {
1416       return "Benutzt";
1417     }
1418
1419 //////////////////////////////////////////////////////////////////////////
1420 // new since 1.2.13
1421 //////////////////////////////////////////////////////////////////////////
1422
1423     /*! used in member documentation blocks to produce a list of 
1424      *  members that are implemented by this one.
1425      */
1426     virtual QCString trImplementedFromList(int numEntries)
1427     {
1428       return "Implementiert " + trWriteList(numEntries) + ".";
1429     }
1430
1431     /*! used in member documentation blocks to produce a list of
1432      *  all members that implement this abstract member.
1433      */
1434     virtual QCString trImplementedInList(int numEntries)
1435     {
1436       return "Implementiert in " + trWriteList(numEntries) + ".";
1437     }
1438
1439 //////////////////////////////////////////////////////////////////////////
1440 // new since 1.2.16
1441 //////////////////////////////////////////////////////////////////////////
1442
1443     /*! used in RTF documentation as a heading for the Table
1444      *  of Contents.
1445      */
1446     virtual QCString trRTFTableOfContents()
1447     {
1448       return "Inhaltsverzeichnis";
1449     }
1450
1451 //////////////////////////////////////////////////////////////////////////
1452 // new since 1.2.17
1453 //////////////////////////////////////////////////////////////////////////
1454
1455     /*! Used as the header of the list of item that have been 
1456      *  flagged deprecated 
1457      */
1458     virtual QCString trDeprecatedList()
1459     {
1460       return "Veraltete Elemente";
1461     }
1462
1463 //////////////////////////////////////////////////////////////////////////
1464 // new since 1.2.18
1465 //////////////////////////////////////////////////////////////////////////
1466
1467     /*! Used as a header for declaration section of the events found in 
1468      * a C# program
1469      */
1470     virtual QCString trEvents()
1471     {
1472       return "Ereignisse";
1473     }
1474
1475     /*! Header used for the documentation section of a class' events. */
1476     virtual QCString trEventDocumentation()
1477     {
1478       return "Ereignisdokumentation";
1479     }
1480
1481 //////////////////////////////////////////////////////////////////////////
1482 // new since 1.3
1483 //////////////////////////////////////////////////////////////////////////
1484
1485     /*! Used as a heading for a list of Java class types with package scope.
1486      */
1487     virtual QCString trPackageTypes()
1488     { 
1489       return "Pakettypen";
1490     }
1491
1492     /*! Used as a heading for a list of Java class functions with package 
1493      * scope. 
1494      */
1495     virtual QCString trPackageMembers()
1496     { 
1497       return "Paketfunktionen";
1498     }
1499
1500     /*! Used as a heading for a list of static Java class functions with 
1501      *  package scope.
1502      */
1503     virtual QCString trStaticPackageMembers()
1504     { 
1505       return "Statische Paketfunktionen";
1506     }
1507     
1508     /*! Used as a heading for a list of Java class variables with package 
1509      * scope.
1510      */
1511     virtual QCString trPackageAttribs()
1512     {
1513       return "Paketattribute";
1514     }
1515     
1516     /*! Used as a heading for a list of static Java class variables with 
1517      * package scope.
1518      */
1519     virtual QCString trStaticPackageAttribs()
1520     {
1521       return "Statische Paketattribute";
1522     }
1523     
1524 //////////////////////////////////////////////////////////////////////////
1525 // new since 1.3.1
1526 //////////////////////////////////////////////////////////////////////////
1527
1528     /*! Used in the quick index of a class/file/namespace member list page 
1529      *  to link to the unfiltered list of all members.
1530      */
1531     virtual QCString trAll()
1532     {
1533       return "Alle";
1534     }
1535     /*! Put in front of the call graph for a function. */
1536     virtual QCString trCallGraph()
1537     {
1538       return "Hier ist ein Graph, der zeigt, was diese Funktion aufruft:";
1539     }
1540
1541 //////////////////////////////////////////////////////////////////////////
1542 // new since 1.3.3
1543 //////////////////////////////////////////////////////////////////////////
1544
1545     /*! When the search engine is enabled this text is put in the header 
1546      *  of each page before the field where one can enter the text to search 
1547      *  for. 
1548      */
1549     virtual QCString trSearchForIndex()
1550     {
1551       return "Suchen nach";
1552     }
1553     /*! This string is used as the title for the page listing the search
1554      *  results.
1555      */
1556     virtual QCString trSearchResultsTitle()
1557     {
1558       return "Suchergebnisse";
1559     }
1560     /*! This string is put just before listing the search results. The
1561      *  text can be different depending on the number of documents found.
1562      *  Inside the text you can put the special marker $num to insert
1563      *  the number representing the actual number of search results.
1564      *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
1565      *  value 2 represents 2 or more matches. HTML markup is allowed inside
1566      *  the returned string.
1567      */
1568     virtual QCString trSearchResults(int numDocuments)
1569     {
1570       if (numDocuments==0)
1571       {
1572         return "Es wurden keine Dokumente zu Ihrer Suchanfrage gefunden.";
1573       }
1574       else if (numDocuments==1)
1575       {
1576         return "Es wurde <b>1</b> Dokument zu Ihrer Suchanfrage gefunden.";
1577       }
1578       else 
1579       {
1580         return "Es wurden <b>$num</b> Dokumente zu Ihrer Suchanfrage "
1581                "gefunden. Die besten Treffer werden zuerst angezeigt.";
1582       }
1583     }
1584     /*! This string is put before the list of matched words, for each search 
1585      *  result. What follows is the list of words that matched the query.
1586      */
1587     virtual QCString trSearchMatches()
1588     {
1589       return "Treffer:";
1590     }
1591
1592 //////////////////////////////////////////////////////////////////////////
1593 // new since 1.3.8
1594 //////////////////////////////////////////////////////////////////////////
1595
1596     /*! This is used in HTML as the title of page with source code for file filename
1597      */
1598     virtual QCString trSourceFile(QCString& filename)
1599     {
1600       return filename + " Quellcode";
1601     }
1602
1603 //////////////////////////////////////////////////////////////////////////
1604 // new since 1.3.9
1605 //////////////////////////////////////////////////////////////////////////
1606
1607     /*! This is used as the name of the chapter containing the directory
1608      *  hierarchy.
1609      */
1610     virtual QCString trDirIndex()
1611     { return "Verzeichnishierarchie"; }
1612
1613     /*! This is used as the name of the chapter containing the documentation
1614      *  of the directories.
1615      */
1616     virtual QCString trDirDocumentation()
1617     { return "Verzeichnisdokumentation"; }
1618
1619     /*! This is used as the title of the directory index and also in the
1620      *  Quick links of an HTML page, to link to the directory hierarchy.
1621      */
1622     virtual QCString trDirectories()
1623     { return "Verzeichnisse"; }
1624
1625     /*! This returns a sentences that introduces the directory hierarchy. 
1626      *  and the fact that it is sorted alphabetically per level
1627      */
1628     virtual QCString trDirDescription()
1629     { return "Diese Verzeichnishierarchie ist -mit Einschränkungen- "
1630              "alphabetisch sortiert:";
1631     }
1632
1633     /*! This returns the title of a directory page. The name of the
1634      *  directory is passed via \a dirName.
1635      */
1636     virtual QCString trDirReference(const char *dirName)
1637     { QCString result=dirName; result+="-Verzeichnisreferenz"; return result; }
1638
1639     /*! This returns the word directory with or without starting capital
1640      *  (\a first_capital) and in sigular or plural form (\a singular).
1641      */
1642     virtual QCString trDir(bool, bool singular)
1643     { 
1644       QCString result("Verzeichnis");
1645       if (!singular) result+="se";
1646       return result; 
1647     }
1648
1649 //////////////////////////////////////////////////////////////////////////
1650 // new since 1.4.1
1651 //////////////////////////////////////////////////////////////////////////
1652
1653     /*! This text is added to the documentation when the \\overload command
1654      *  is used for a overloaded function.
1655      */
1656     virtual QCString trOverloadText()
1657     {
1658        return "Dies ist eine überladene Methode, die der Bequemlichkeit "
1659               "wegen bereitgestellt wird. Sie unterscheidet sich von der "
1660               "obigen Funktion nur in den Argumenten die sie unterstützt.";
1661     }
1662
1663 //////////////////////////////////////////////////////////////////////////
1664 // new since 1.4.6
1665 //////////////////////////////////////////////////////////////////////////
1666
1667     /*! This is used to introduce a caller (or called-by) graph */
1668     virtual QCString trCallerGraph()
1669     {
1670       return "Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:";
1671     }
1672
1673     /*! This is used in the documentation of a file/namespace before the list 
1674      *  of documentation blocks for enumeration values
1675      */
1676     virtual QCString trEnumerationValueDocumentation()
1677     { return "Dokumentation der Aufzählungswerte"; }
1678
1679 //////////////////////////////////////////////////////////////////////////
1680 // new since 1.5.4 (mainly for Fortran)
1681 //////////////////////////////////////////////////////////////////////////
1682     
1683     /*! header that is put before the list of member subprograms (Fortran). */
1684     virtual QCString trMemberFunctionDocumentationFortran()
1685     { return "Elementfunktionen/Unterroutinen-Dokumentation"; }
1686
1687     /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
1688     virtual QCString trCompoundListFortran()
1689     { return "Datentyp-Liste"; }
1690
1691     /*! This is put above each page as a link to all members of compounds (Fortran). */
1692     virtual QCString trCompoundMembersFortran()
1693     { return "Datenfelder"; }
1694
1695     /*! This is an introduction to the annotated compound list (Fortran). */
1696     virtual QCString trCompoundListDescriptionFortran()
1697           { return "Hier folgen die Datentypen mit Kurzbeschreibungen:"; }
1698
1699     /*! This is an introduction to the page with all data types (Fortran). */
1700     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
1701     {
1702       QCString result="Hier folgt eine Liste aller ";
1703       if (!extractAll)
1704       {
1705         result+="dokumentierten ";
1706       }
1707       result+="Datentypelemente";
1708       result+=" mit Links ";
1709       if (!extractAll) 
1710       {
1711          result+="zur Datenstruktur-Dokumentation für jedes Element";
1712       }
1713       else 
1714       {
1715          result+="zu den Datentypen, zu denen sie gehören:";
1716       }
1717       return result;
1718     }
1719
1720     /*! This is used in LaTeX as the title of the chapter with the 
1721      * annotated compound index (Fortran).
1722      */
1723     virtual QCString trCompoundIndexFortran()
1724     { return "Datentyp-Index"; }
1725
1726     /*! This is used in LaTeX as the title of the chapter containing
1727      *  the documentation of all data types (Fortran).
1728      */
1729     virtual QCString trTypeDocumentation()
1730     { return "Datentyp-Dokumentation"; }
1731
1732     /*! This is used in the documentation of a file as a header before the 
1733      *  list of (global) subprograms (Fortran).
1734      */
1735     virtual QCString trSubprograms()
1736     { return "Funktionen/Unterroutinen"; }
1737
1738     /*! This is used in the documentation of a file/namespace before the list 
1739      *  of documentation blocks for subprograms (Fortran)
1740      */
1741     virtual QCString trSubprogramDocumentation()
1742     { return "Funktionen/Unterroutinen-Dokumentation"; }
1743
1744     /*! This is used in the documentation of a file/namespace/group before 
1745      *  the list of links to documented compounds (Fortran)
1746      */
1747      virtual QCString trDataTypes()
1748     { return "Datentypen"; }
1749     
1750     /*! used as the title of page containing all the index of all modules (Fortran). */
1751     virtual QCString trModulesList()
1752     { return "Modulliste"; }
1753
1754     /*! used as an introduction to the modules list (Fortran) */
1755     virtual QCString trModulesListDescription(bool extractAll)
1756     {
1757       QCString result="Hier folgt eine Liste aller ";
1758       if (!extractAll) result+="dokumentierten ";
1759       result+="Module mit ihren Kurzbeschreibungen:";
1760       return result;
1761     }
1762
1763     /*! used as the title of the HTML page of a module/type (Fortran) */
1764     virtual QCString trCompoundReferenceFortran(const char *clName,
1765                                     ClassDef::CompoundType compType,
1766                                     bool isTemplate)
1767     {
1768       QCString result=(QCString)clName;
1769       result += "-";
1770       switch(compType)
1771       {
1772         case ClassDef::Class:      result+="Modul"; break;
1773         case ClassDef::Struct:     result+="Typ"; break;
1774         case ClassDef::Union:      result+="Union"; break;
1775         case ClassDef::Interface:  result+="Interface"; break;
1776         case ClassDef::Protocol:   result+="Protokoll"; break;
1777         case ClassDef::Category:   result+="Kategorie"; break;
1778         case ClassDef::Exception:  result+="Ausnahmen"; break;
1779       }
1780       if (isTemplate) result+="-Template";
1781       result+="-Referenz";
1782       return result;
1783     }
1784     /*! used as the title of the HTML page of a module (Fortran) */
1785     virtual QCString trModuleReference(const char *namespaceName)
1786     {
1787       QCString result=namespaceName;
1788       result+="-Modul-Referenz";
1789       return result;
1790     }
1791     
1792     /*! This is put above each page as a link to all members of modules. (Fortran) */
1793     virtual QCString trModulesMembers()
1794     { return "Modul-Elemente"; }
1795
1796     /*! This is an introduction to the page with all modules members (Fortran) */
1797     virtual QCString trModulesMemberDescription(bool extractAll)
1798     { 
1799       QCString result="Hier folgt eine Liste aller ";
1800       if (!extractAll) result+="dokumentierten ";
1801       result+="Modulelemente mit Links ";
1802       if (extractAll) 
1803       {
1804         result+="zur Moduldokumentation für jedes Element:";
1805       }
1806       else 
1807       {
1808         result+="zu den Modulen, zu denen sie gehören:";
1809       }
1810       return result;
1811     }
1812
1813     /*! This is used in LaTeX as the title of the chapter with the 
1814      *  index of all modules (Fortran).
1815      */
1816     virtual QCString trModulesIndex()
1817     { return "Modul-Index"; }
1818     
1819     /*! This is used for translation of the word that will possibly
1820      *  be followed by a single name or by a list of names 
1821      *  of the category.
1822      */
1823     virtual QCString trModule(bool /*first_capital*/, bool singular)
1824     {       
1825       QCString result("Modul");
1826       if (!singular)  result+="e";
1827       return result; 
1828     }
1829
1830     /*! This is put at the bottom of a module documentation page and is
1831      *  followed by a list of files that were used to generate the page.
1832      */
1833     virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
1834         bool single)
1835     {
1836       // single is true implies a single file
1837       QCString result=(QCString)"Die Dokumentation für ";
1838       switch(compType)
1839       {
1840         case ClassDef::Class:      result+="dieses Modul"; break;
1841         case ClassDef::Struct:     result+="diesen Typ"; break;
1842         case ClassDef::Union:      result+="diese Union"; break;
1843         case ClassDef::Interface:  result+="dieses Interface"; break;
1844         case ClassDef::Protocol:   result+="dieses Protokoll"; break;
1845         case ClassDef::Category:   result+="diese Kategorie"; break;
1846         case ClassDef::Exception:  result+="diese Ausnahme"; break;
1847       }
1848       if (single)
1849         result+=" wurde aus der folgenden Datei erzeugt:";
1850       else
1851         result+=" wurde aus den folgenden Dateien erzeugt:";
1852       return result;
1853     }
1854
1855     /*! This is used for translation of the word that will possibly
1856      *  be followed by a single name or by a list of names 
1857      *  of the category.
1858      */
1859     virtual QCString trType(bool /*first_capital*/, bool singular)
1860     { 
1861       QCString result("Typ");
1862       if (!singular)  result+="en";
1863       return result; 
1864     }
1865
1866     /*! This is used for translation of the word that will possibly
1867      *  be followed by a single name or by a list of names 
1868      *  of the category.
1869      */
1870     virtual QCString trSubprogram(bool /*first_capital*/, bool singular)
1871     { 
1872       QCString result("Unterprogramm");
1873       if (!singular)  result+="e";
1874       return result; 
1875     }
1876
1877     /*! C# Type Constraint list */
1878     virtual QCString trTypeConstraints()
1879     {
1880       return "Type Constraints";
1881     }
1882
1883 //////////////////////////////////////////////////////////////////////////
1884 // new since 1.6.0 (mainly for the new search engine)
1885 //////////////////////////////////////////////////////////////////////////
1886
1887     /*! directory relation for \a name */
1888     virtual QCString trDirRelation(const char *name)
1889     {
1890       return "Bezug " + QCString(name);
1891     }
1892
1893     /*! Loading message shown when loading search results */
1894     virtual QCString trLoading()
1895     {
1896       return "Lade ...";
1897     }
1898
1899     /*! Label used for search results in the global namespace */
1900     virtual QCString trGlobalNamespace()
1901     {
1902       return "Globaler Namensbereich";
1903     }
1904
1905     /*! Message shown while searching */
1906     virtual QCString trSearching()
1907     {
1908       return "Suche ...";
1909     }
1910
1911     /*! Text shown when no search results are found */
1912     virtual QCString trNoMatches()
1913     {
1914       return "Keine Treffer";
1915     }
1916
1917 //////////////////////////////////////////////////////////////////////////
1918 // new since 1.6.3 (missing items for the directory pages)
1919 //////////////////////////////////////////////////////////////////////////
1920  
1921     /*! introduction text for the directory dependency graph */
1922     virtual QCString trDirDependency(const char *name)
1923     {
1924       return (QCString)"Diagramm der Verzeichnisabhängigkeiten für "+name;
1925     }
1926  
1927     /*! when clicking a directory dependency label, a page with a
1928      *  table is shown. The heading for the first column mentions the
1929      *  source file that has a relation to another file.
1930      */
1931     virtual QCString trFileIn(const char *name)
1932     {
1933       return (QCString)"Datei in "+name;
1934     }
1935  
1936     /*! when clicking a directory dependency label, a page with a
1937      *  table is shown. The heading for the second column mentions the
1938      *  destination file that is included.
1939      */
1940     virtual QCString trIncludesFileIn(const char *name)
1941     {
1942       return (QCString)"Include-Dateien in "+name;
1943     }
1944  
1945     /** Compiles a date string.
1946      *  @param year Year in 4 digits
1947      *  @param month Month of the year: 1=January
1948      *  @param day Day of the Month: 1..31
1949      *  @param dayOfWeek Day of the week: 1=Monday..7=Sunday
1950      *  @param hour Hour of the day: 0..23
1951      *  @param minutes Minutes in the hour: 0..59
1952      *  @param seconds Seconds within the minute: 0..59
1953      *  @param includeTime Include time in the result string?
1954      */
1955     virtual QCString trDateTime(int year,int month,int day,int dayOfWeek,
1956                                 int hour,int minutes,int seconds,
1957                                 bool includeTime)
1958     {
1959       static const char *days[]   = { "Mon","Die","Mit","Don","Fre","Sam","Son" };
1960       static const char *months[] = { "Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez" };
1961       QCString sdate;
1962       sdate.sprintf("%s %s %d %d",days[dayOfWeek-1],months[month-1],day,year);
1963       if (includeTime)
1964       {
1965         QCString stime;
1966         stime.sprintf(" %.2d:%.2d:%.2d",hour,minutes,seconds);
1967         sdate+=stime;
1968       }
1969       return sdate;
1970     }
1971
1972 //////////////////////////////////////////////////////////////////////////
1973 // new since 1.7.5
1974 //////////////////////////////////////////////////////////////////////////
1975
1976     /*! Header for the page with bibliographic citations */
1977     virtual QCString trCiteReferences()
1978     { return "Literaturverzeichnis"; }
1979
1980     /*! Text for copyright paragraph */
1981     virtual QCString trCopyright()
1982     { return "Copyright"; }
1983
1984     /*! Header for the graph showing the directory dependencies */
1985     virtual QCString trDirDepGraph(const char *name)
1986     { return QCString("Diagramm der Verzeichnisabhängigkeiten für ")+name+":"; }
1987
1988 //////////////////////////////////////////////////////////////////////////
1989 // new since 1.8.0
1990 //////////////////////////////////////////////////////////////////////////
1991
1992     /*! Detail level selector shown for hierarchical indices */
1993     virtual QCString trDetailLevel()
1994     { return "Detailebene"; }
1995
1996     /*! Section header for list of template parameters */
1997     virtual QCString trTemplateParameters()
1998     { return "Template-Parameter"; }
1999
2000     /*! Used in dot graph when UML_LOOK is enabled and there are many fields */
2001     virtual QCString trAndMore(const QCString &number)
2002     { return "und "+number+" mehr ..."; }
2003
2004     /*! Used file list for a Java enum */
2005     virtual QCString trEnumGeneratedFromFiles(bool single)
2006     { QCString result = "Die Dokumentation für diesen enum wurde aus ";
2007       if (single)
2008                 result += "der folgenden Datei";
2009           else
2010                 result += "den folgenden Dateien";
2011       result+=" generiert:";
2012       return result;
2013     }
2014
2015     /*! Header of a Java enum page (Java enums are represented as classes). */
2016     virtual QCString trEnumReference(const char *name)
2017     { return QCString(name)+" Enum-Referenz"; }
2018
2019     /*! Used for a section containing inherited members */
2020     virtual QCString trInheritedFrom(const char *members,const char *what)
2021     { return QCString(members)+" geerbt von "+what; }
2022
2023     /*! Header of the sections with inherited members specific for the 
2024      *  base class(es) 
2025      */
2026     virtual QCString trAdditionalInheritedMembers()
2027     { return "Weitere Geerbte Elemente"; }
2028
2029 };
2030
2031 #endif