Fix for UBSan build
[platform/upstream/doxygen.git] / src / translator_en.h
1 /******************************************************************************
2  *
3  * 
4  *
5  * Copyright (C) 1997-2012 by Dimitri van Heesch.
6  *
7  * Permission to use, copy, modify, and distribute this software and its
8  * documentation under the terms of the GNU General Public License is hereby 
9  * granted. No representations are made about the suitability of this software 
10  * for any purpose. It is provided "as is" without express or implied warranty.
11  * See the GNU General Public License for more details.
12  *
13  * Documents produced by Doxygen are derivative works derived from the
14  * input used in their production; they are not affected by this license.
15  *
16  */
17
18 #ifndef TRANSLATOR_EN_H
19 #define TRANSLATOR_EN_H
20
21 /*! 
22  When defining a translator class for the new language, follow
23  the description in the documentation.  One of the steps says
24  that you should copy the translator_en.h (this) file to your
25  translator_xx.h new file.  Your new language should use the
26  Translator class as the base class.  This means that you need to
27  implement exactly the same (pure virtual) methods as the
28  TranslatorEnglish does.  Because of this, it is a good idea to
29  start with the copy of TranslatorEnglish and replace the strings
30  one by one.
31
32  It is not necessary to include "translator.h" or
33  "translator_adapter.h" here.  The files are included in the
34  language.cpp correctly.  Not including any of the mentioned
35  files frees the maintainer from thinking about whether the
36  first, the second, or both files should be included or not, and
37  why.  This holds namely for localized translators because their
38  base class is changed occasionaly to adapter classes when the
39  Translator class changes the interface, or back to the
40  Translator class (by the local maintainer) when the localized
41  translator is made up-to-date again.
42 */
43 class TranslatorEnglish : public Translator
44 {
45   public:
46
47     // --- Language control methods -------------------
48     
49     /*! Used for identification of the language. The identification 
50      * should not be translated. It should be replaced by the name 
51      * of the language in English using lower-case characters only
52      * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
53      * the identification used in language.cpp.
54      */
55     virtual QCString idLanguage()
56     { return "english"; }
57     
58     /*! Used to get the LaTeX command(s) for the language support. 
59      *  This method should return string with commands that switch
60      *  LaTeX to the desired language.  For example 
61      *  <pre>"\\usepackage[german]{babel}\n"
62      *  </pre>
63      *  or
64      *  <pre>"\\usepackage{polski}\n"
65      *  "\\usepackage[latin2]{inputenc}\n"
66      *  "\\usepackage[T1]{fontenc}\n"
67      *  </pre>
68      * 
69      * The English LaTeX does not use such commands.  Because of this
70      * the empty string is returned in this implementation.
71      */
72     virtual QCString latexLanguageSupportCommand()
73     {
74       return "";
75     }
76
77     /*! return the language charset. This will be used 
78         when transcoding the translatable strings in this file to UTF-8 */
79     virtual QCString idLanguageCharset()
80     {
81       return "iso-8859-1";
82     }
83
84     // --- Language translation methods -------------------
85
86     /*! used in the compound documentation before a list of related functions. */
87     virtual QCString trRelatedFunctions()
88     { return "Related Functions"; }
89
90     /*! subscript for the related functions. */
91     virtual QCString trRelatedSubscript()
92     { return "(Note that these are not member functions.)"; }
93
94     /*! header that is put before the detailed description of files, classes and namespaces. */
95     virtual QCString trDetailedDescription()
96     { return "Detailed Description"; }
97
98     /*! header that is put before the list of typedefs. */
99     virtual QCString trMemberTypedefDocumentation()
100     { return "Member Typedef Documentation"; }
101     
102     /*! header that is put before the list of enumerations. */
103     virtual QCString trMemberEnumerationDocumentation()
104     { return "Member Enumeration Documentation"; }
105     
106     /*! header that is put before the list of member functions. */
107     virtual QCString trMemberFunctionDocumentation()
108     { return "Member Function Documentation"; }
109     
110     /*! header that is put before the list of member attributes. */
111     virtual QCString trMemberDataDocumentation()
112     { 
113       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
114       {
115         return "Field Documentation"; 
116       }
117       else
118       {
119         return "Member Data Documentation"; 
120       }
121     }
122
123     /*! this is the text of a link put after brief descriptions. */
124     virtual QCString trMore() 
125     { return "More..."; }
126
127     /*! put in the class documentation */
128     virtual QCString trListOfAllMembers()
129     { return "List of all members"; }
130
131     /*! used as the title of the "list of all members" page of a class */
132     virtual QCString trMemberList()
133     { return "Member List"; }
134
135     /*! this is the first part of a sentence that is followed by a class name */
136     virtual QCString trThisIsTheListOfAllMembers()
137     { return "This is the complete list of members for "; }
138
139     /*! this is the remainder of the sentence after the class name */
140     virtual QCString trIncludingInheritedMembers()
141     { return ", including all inherited members."; }
142     
143     /*! this is put at the author sections at the bottom of man pages.
144      *  parameter s is name of the project name.
145      */
146     virtual QCString trGeneratedAutomatically(const char *s)
147     { QCString result="Generated automatically by Doxygen";
148       if (s) result+=(QCString)" for "+s;
149       result+=" from the source code."; 
150       return result;
151     }
152
153     /*! put after an enum name in the list of all members */
154     virtual QCString trEnumName()
155     { return "enum name"; }
156     
157     /*! put after an enum value in the list of all members */
158     virtual QCString trEnumValue()
159     { return "enum value"; }
160     
161     /*! put after an undocumented member in the list of all members */
162     virtual QCString trDefinedIn()
163     { return "defined in"; }
164
165     // quick reference sections
166
167     /*! This is put above each page as a link to the list of all groups of 
168      *  compounds or files (see the \\group command).
169      */
170     virtual QCString trModules()
171     { return "Modules"; }
172     
173     /*! This is put above each page as a link to the class hierarchy */
174     virtual QCString trClassHierarchy()
175     { return "Class Hierarchy"; }
176     
177     /*! This is put above each page as a link to the list of annotated classes */
178     virtual QCString trCompoundList()
179     { 
180       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
181       {
182         return "Data Structures";
183       }
184       else
185       {
186         return "Class List"; 
187       }
188     }
189     
190     /*! This is put above each page as a link to the list of documented files */
191     virtual QCString trFileList()
192     { return "File List"; }
193
194     /*! This is put above each page as a link to all members of compounds. */
195     virtual QCString trCompoundMembers()
196     { 
197       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
198       {
199         return "Data Fields"; 
200       }
201       else
202       {
203         return "Class Members"; 
204       }
205     }
206
207     /*! This is put above each page as a link to all members of files. */
208     virtual QCString trFileMembers()
209     { 
210       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
211       {
212         return "Globals"; 
213       }
214       else
215       {
216         return "File Members"; 
217       }
218     }
219
220     /*! This is put above each page as a link to all related pages. */
221     virtual QCString trRelatedPages()
222     { return "Related Pages"; }
223
224     /*! This is put above each page as a link to all examples. */
225     virtual QCString trExamples()
226     { return "Examples"; }
227
228     /*! This is put above each page as a link to the search engine. */
229     virtual QCString trSearch()
230     { return "Search"; }
231
232     /*! This is an introduction to the class hierarchy. */
233     virtual QCString trClassHierarchyDescription()
234     { return "This inheritance list is sorted roughly, "
235              "but not completely, alphabetically:";
236     }
237
238     /*! This is an introduction to the list with all files. */
239     virtual QCString trFileListDescription(bool extractAll)
240     {
241       QCString result="Here is a list of all ";
242       if (!extractAll) result+="documented ";
243       result+="files with brief descriptions:";
244       return result;
245     }
246
247     /*! This is an introduction to the annotated compound list. */
248     virtual QCString trCompoundListDescription()
249     { 
250       
251       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
252       {
253         return "Here are the data structures with brief descriptions:"; 
254       }
255       else
256       {
257         return "Here are the classes, structs, "
258                "unions and interfaces with brief descriptions:"; 
259       }
260     }
261
262     /*! This is an introduction to the page with all class members. */
263     virtual QCString trCompoundMembersDescription(bool extractAll)
264     {
265       QCString result="Here is a list of all ";
266       if (!extractAll)
267       {
268         result+="documented ";
269       }
270       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
271       {
272         result+="struct and union fields";
273       }
274       else
275       {
276         result+="class members";
277       }
278       result+=" with links to ";
279       if (!extractAll) 
280       {
281         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
282         {
283           result+="the struct/union documentation for each field:";
284         }
285         else
286         {
287           result+="the class documentation for each member:";
288         }
289       }
290       else 
291       {
292         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
293         {
294           result+="the structures/unions they belong to:";
295         }
296         else
297         {
298           result+="the classes they belong to:";
299         }
300       }
301       return result;
302     }
303
304     /*! This is an introduction to the page with all file members. */
305     virtual QCString trFileMembersDescription(bool extractAll)
306     {
307       QCString result="Here is a list of all ";
308       if (!extractAll) result+="documented ";
309       
310       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
311       {
312         result+="functions, variables, defines, enums, and typedefs";
313       }
314       else
315       {
316         result+="file members";
317       }
318       result+=" with links to ";
319       if (extractAll) 
320         result+="the files they belong to:";
321       else 
322         result+="the documentation:";
323       return result;
324     }
325
326     /*! This is an introduction to the page with the list of all examples */
327     virtual QCString trExamplesDescription()
328     { return "Here is a list of all examples:"; }
329
330     /*! This is an introduction to the page with the list of related pages */
331     virtual QCString trRelatedPagesDescription()
332     { return "Here is a list of all related documentation pages:"; }
333
334     /*! This is an introduction to the page with the list of class/file groups */
335     virtual QCString trModulesDescription()
336     { return "Here is a list of all modules:"; }
337
338     // index titles (the project name is prepended for these) 
339
340     /*! This is used in HTML as the title of index.html. */
341     virtual QCString trDocumentation()
342     { return "Documentation"; }
343
344     /*! This is used in LaTeX as the title of the chapter with the 
345      * index of all groups.
346      */
347     virtual QCString trModuleIndex()
348     { return "Module Index"; }
349
350     /*! This is used in LaTeX as the title of the chapter with the 
351      * class hierarchy.
352      */
353     virtual QCString trHierarchicalIndex()
354     { return "Hierarchical Index"; }
355
356     /*! This is used in LaTeX as the title of the chapter with the 
357      * annotated compound index.
358      */
359     virtual QCString trCompoundIndex()
360     {
361       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
362       { 
363         return "Data Structure Index";
364       }
365       else
366       {
367         return "Class Index"; 
368       }
369     }
370
371     /*! This is used in LaTeX as the title of the chapter with the
372      * list of all files.
373      */
374     virtual QCString trFileIndex() 
375     { return "File Index"; }
376
377     /*! This is used in LaTeX as the title of the chapter containing
378      *  the documentation of all groups.
379      */
380     virtual QCString trModuleDocumentation()
381     { return "Module Documentation"; }
382
383     /*! This is used in LaTeX as the title of the chapter containing
384      *  the documentation of all classes, structs and unions.
385      */
386     virtual QCString trClassDocumentation()
387     { 
388       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
389       {
390         return "Data Structure Documentation"; 
391       }
392       else
393       {
394         return "Class Documentation"; 
395       }
396     }
397
398     /*! This is used in LaTeX as the title of the chapter containing
399      *  the documentation of all files.
400      */
401     virtual QCString trFileDocumentation()
402     { return "File Documentation"; }
403
404     /*! This is used in LaTeX as the title of the chapter containing
405      *  the documentation of all examples.
406      */
407     virtual QCString trExampleDocumentation()
408     { return "Example Documentation"; }
409
410     /*! This is used in LaTeX as the title of the chapter containing
411      *  the documentation of all related pages.
412      */
413     virtual QCString trPageDocumentation()
414     { return "Page Documentation"; }
415
416     /*! This is used in LaTeX as the title of the document */
417     virtual QCString trReferenceManual()
418     { return "Reference Manual"; }
419     
420     /*! This is used in the documentation of a file as a header before the 
421      *  list of defines
422      */
423     virtual QCString trDefines()
424     { return "Macros"; }
425
426     /*! This is used in the documentation of a file as a header before the 
427      *  list of function prototypes
428      */
429     virtual QCString trFuncProtos()
430     { return "Function Prototypes"; }
431
432     /*! This is used in the documentation of a file as a header before the 
433      *  list of typedefs
434      */
435     virtual QCString trTypedefs()
436     { return "Typedefs"; }
437
438     /*! This is used in the documentation of a file as a header before the 
439      *  list of enumerations
440      */
441     virtual QCString trEnumerations()
442     { return "Enumerations"; }
443
444     /*! This is used in the documentation of a file as a header before the 
445      *  list of (global) functions
446      */
447     virtual QCString trFunctions()
448     { return "Functions"; }
449
450     /*! This is used in the documentation of a file as a header before the 
451      *  list of (global) variables
452      */
453     virtual QCString trVariables()
454     { return "Variables"; }
455
456     /*! This is used in the documentation of a file as a header before the 
457      *  list of (global) variables
458      */
459     virtual QCString trEnumerationValues()
460     { return "Enumerator"; }
461     
462     /*! This is used in the documentation of a file before the list of
463      *  documentation blocks for defines
464      */
465     virtual QCString trDefineDocumentation()
466     { return "Macro Definition Documentation"; }
467
468     /*! This is used in the documentation of a file/namespace before the list 
469      *  of documentation blocks for function prototypes
470      */
471     virtual QCString trFunctionPrototypeDocumentation()
472     { return "Function Prototype Documentation"; }
473
474     /*! This is used in the documentation of a file/namespace before the list 
475      *  of documentation blocks for typedefs
476      */
477     virtual QCString trTypedefDocumentation()
478     { return "Typedef Documentation"; }
479
480     /*! This is used in the documentation of a file/namespace before the list 
481      *  of documentation blocks for enumeration types
482      */
483     virtual QCString trEnumerationTypeDocumentation()
484     { return "Enumeration Type Documentation"; }
485
486     /*! This is used in the documentation of a file/namespace before the list 
487      *  of documentation blocks for functions
488      */
489     virtual QCString trFunctionDocumentation()
490     { return "Function Documentation"; }
491
492     /*! This is used in the documentation of a file/namespace before the list 
493      *  of documentation blocks for variables
494      */
495     virtual QCString trVariableDocumentation()
496     { return "Variable Documentation"; }
497
498     /*! This is used in the documentation of a file/namespace/group before 
499      *  the list of links to documented compounds
500      */
501     virtual QCString trCompounds()
502     { 
503       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
504       {
505         return "Data Structures"; 
506       }
507       else
508       {
509         return "Classes"; 
510       }
511     }
512
513     /*! This is used in the standard footer of each page and indicates when 
514      *  the page was generated 
515      */
516     virtual QCString trGeneratedAt(const char *date,const char *projName)
517     { 
518       QCString result=(QCString)"Generated on "+date;
519       if (projName) result+=(QCString)" for "+projName;
520       result+=(QCString)" by";
521       return result;
522     }
523     /*! This is part of the sentence used in the standard footer of each page.
524      */
525     virtual QCString trWrittenBy()
526     {
527       return "written by";
528     }
529
530     /*! this text is put before a class diagram */
531     virtual QCString trClassDiagram(const char *clName)
532     {
533       return (QCString)"Inheritance diagram for "+clName+":";
534     }
535     
536     /*! this text is generated when the \\internal command is used. */
537     virtual QCString trForInternalUseOnly()
538     { return "For internal use only."; }
539
540     /*! this text is generated when the \\warning command is used. */
541     virtual QCString trWarning()
542     { return "Warning"; }
543
544     /*! this text is generated when the \\version command is used. */
545     virtual QCString trVersion()
546     { return "Version"; }
547
548     /*! this text is generated when the \\date command is used. */
549     virtual QCString trDate()
550     { return "Date"; }
551
552     /*! this text is generated when the \\return command is used. */
553     virtual QCString trReturns()
554     { return "Returns"; }
555
556     /*! this text is generated when the \\sa command is used. */
557     virtual QCString trSeeAlso()
558     { return "See Also"; }
559
560     /*! this text is generated when the \\param command is used. */
561     virtual QCString trParameters()
562     { return "Parameters"; }
563
564     /*! this text is generated when the \\exception command is used. */
565     virtual QCString trExceptions()
566     { return "Exceptions"; }
567     
568     /*! this text is used in the title page of a LaTeX document. */
569     virtual QCString trGeneratedBy()
570     { return "Generated by"; }
571
572 //////////////////////////////////////////////////////////////////////////
573 // new since 0.49-990307
574 //////////////////////////////////////////////////////////////////////////
575     
576     /*! used as the title of page containing all the index of all namespaces. */
577     virtual QCString trNamespaceList()
578     { return "Namespace List"; }
579
580     /*! used as an introduction to the namespace list */
581     virtual QCString trNamespaceListDescription(bool extractAll)
582     {
583       QCString result="Here is a list of all ";
584       if (!extractAll) result+="documented ";
585       result+="namespaces with brief descriptions:";
586       return result;
587     }
588
589     /*! used in the class documentation as a header before the list of all
590      *  friends of a class
591      */
592     virtual QCString trFriends()
593     { return "Friends"; }
594     
595 //////////////////////////////////////////////////////////////////////////
596 // new since 0.49-990405
597 //////////////////////////////////////////////////////////////////////////
598     
599     /*! used in the class documentation as a header before the list of all
600      * related classes 
601      */
602     virtual QCString trRelatedFunctionDocumentation()
603     { return "Friends And Related Function Documentation"; }
604     
605 //////////////////////////////////////////////////////////////////////////
606 // new since 0.49-990425
607 //////////////////////////////////////////////////////////////////////////
608
609     /*! used as the title of the HTML page of a class/struct/union */
610     virtual QCString trCompoundReference(const char *clName,
611                                     ClassDef::CompoundType compType,
612                                     bool isTemplate)
613     {
614       QCString result=(QCString)clName;
615       switch(compType)
616       {
617         case ClassDef::Class:      result+=" Class"; break;
618         case ClassDef::Struct:     result+=" Struct"; break;
619         case ClassDef::Union:      result+=" Union"; break;
620         case ClassDef::Interface:  result+=" Interface"; break;
621         case ClassDef::Protocol:   result+=" Protocol"; break;
622         case ClassDef::Category:   result+=" Category"; break;
623         case ClassDef::Exception:  result+=" Exception"; break;
624       }
625       if (isTemplate) result+=" Template";
626       result+=" Reference";
627       return result;
628     }
629
630     /*! used as the title of the HTML page of a file */
631     virtual QCString trFileReference(const char *fileName)
632     {
633       QCString result=fileName;
634       result+=" File Reference"; 
635       return result;
636     }
637
638     /*! used as the title of the HTML page of a namespace */
639     virtual QCString trNamespaceReference(const char *namespaceName)
640     {
641       QCString result=namespaceName;
642       result+=" Namespace Reference";
643       return result;
644     }
645     
646     virtual QCString trPublicMembers()
647     { return "Public Member Functions"; }
648     virtual QCString trPublicSlots()
649     { return "Public Slots"; }
650     virtual QCString trSignals()
651     { return "Signals"; }
652     virtual QCString trStaticPublicMembers()
653     { return "Static Public Member Functions"; }
654     virtual QCString trProtectedMembers()
655     { return "Protected Member Functions"; }
656     virtual QCString trProtectedSlots()
657     { return "Protected Slots"; }
658     virtual QCString trStaticProtectedMembers()
659     { return "Static Protected Member Functions"; }
660     virtual QCString trPrivateMembers()
661     { return "Private Member Functions"; }
662     virtual QCString trPrivateSlots()
663     { return "Private Slots"; }
664     virtual QCString trStaticPrivateMembers()
665     { return "Static Private Member Functions"; }
666     
667     /*! this function is used to produce a comma-separated list of items.
668      *  use generateMarker(i) to indicate where item i should be put.
669      */
670     virtual QCString trWriteList(int numEntries)
671     {
672       QCString result;
673       int i;
674       // the inherits list contain `numEntries' classes
675       for (i=0;i<numEntries;i++) 
676       {
677         // use generateMarker to generate placeholders for the class links!
678         result+=generateMarker(i); // generate marker for entry i in the list 
679                                    // (order is left to right)
680         
681         if (i!=numEntries-1)  // not the last entry, so we need a separator
682         {
683           if (i<numEntries-2) // not the fore last entry 
684             result+=", ";
685           else                // the fore last entry
686             result+=", and ";
687         }
688       }
689       return result; 
690     }
691     
692     /*! used in class documentation to produce a list of base classes,
693      *  if class diagrams are disabled.
694      */
695     virtual QCString trInheritsList(int numEntries)
696     {
697       return "Inherits "+trWriteList(numEntries)+".";
698     }
699
700     /*! used in class documentation to produce a list of super classes,
701      *  if class diagrams are disabled.
702      */
703     virtual QCString trInheritedByList(int numEntries)
704     {
705       return "Inherited by "+trWriteList(numEntries)+".";
706     }
707
708     /*! used in member documentation blocks to produce a list of 
709      *  members that are hidden by this one.
710      */
711     virtual QCString trReimplementedFromList(int numEntries)
712     {
713       return "Reimplemented from "+trWriteList(numEntries)+".";
714     }
715
716     /*! used in member documentation blocks to produce a list of
717      *  all member that overwrite the implementation of this member.
718      */
719     virtual QCString trReimplementedInList(int numEntries)
720     {
721       return "Reimplemented in "+trWriteList(numEntries)+".";
722     }
723
724     /*! This is put above each page as a link to all members of namespaces. */
725     virtual QCString trNamespaceMembers()
726     { return "Namespace Members"; }
727
728     /*! This is an introduction to the page with all namespace members */
729     virtual QCString trNamespaceMemberDescription(bool extractAll)
730     { 
731       QCString result="Here is a list of all ";
732       if (!extractAll) result+="documented ";
733       result+="namespace members with links to ";
734       if (extractAll) 
735         result+="the namespace documentation for each member:";
736       else 
737         result+="the namespaces they belong to:";
738       return result;
739     }
740     /*! This is used in LaTeX as the title of the chapter with the 
741      *  index of all namespaces.
742      */
743     virtual QCString trNamespaceIndex()
744     { return "Namespace Index"; }
745
746     /*! This is used in LaTeX as the title of the chapter containing
747      *  the documentation of all namespaces.
748      */
749     virtual QCString trNamespaceDocumentation()
750     { return "Namespace Documentation"; }
751
752 //////////////////////////////////////////////////////////////////////////
753 // new since 0.49-990522
754 //////////////////////////////////////////////////////////////////////////
755
756     /*! This is used in the documentation before the list of all
757      *  namespaces in a file.
758      */
759     virtual QCString trNamespaces()
760     { return "Namespaces"; }
761
762 //////////////////////////////////////////////////////////////////////////
763 // new since 0.49-990728
764 //////////////////////////////////////////////////////////////////////////
765
766     /*! This is put at the bottom of a class documentation page and is
767      *  followed by a list of files that were used to generate the page.
768      */
769     virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
770         bool single)
771     { // single is true implies a single file
772       QCString result=(QCString)"The documentation for this ";
773       switch(compType)
774       {
775         case ClassDef::Class:      result+="class"; break;
776         case ClassDef::Struct:     result+="struct"; break;
777         case ClassDef::Union:      result+="union"; break;
778         case ClassDef::Interface:  result+="interface"; break;
779         case ClassDef::Protocol:   result+="protocol"; break;
780         case ClassDef::Category:   result+="category"; break;
781         case ClassDef::Exception:  result+="exception"; break;
782       }
783       result+=" was generated from the following file";
784       if (single) result+=":"; else result+="s:";
785       return result;
786     }
787
788     /*! This is in the (quick) index as a link to the alphabetical compound
789      * list.
790      */
791     virtual QCString trAlphabeticalList()
792     { return "Alphabetical List"; }
793
794 //////////////////////////////////////////////////////////////////////////
795 // new since 0.49-990901
796 //////////////////////////////////////////////////////////////////////////
797
798     /*! This is used as the heading text for the retval command. */
799     virtual QCString trReturnValues()
800     { return "Return values"; }
801
802     /*! This is in the (quick) index as a link to the main page (index.html)
803      */
804     virtual QCString trMainPage()
805     { return "Main Page"; }
806
807     /*! This is used in references to page that are put in the LaTeX 
808      *  documentation. It should be an abbreviation of the word page.
809      */
810     virtual QCString trPageAbbreviation()
811     { return "p."; }
812
813 //////////////////////////////////////////////////////////////////////////
814 // new since 0.49-991003
815 //////////////////////////////////////////////////////////////////////////
816
817     virtual QCString trDefinedAtLineInSourceFile()
818     {
819       return "Definition at line @0 of file @1.";
820     }
821     virtual QCString trDefinedInSourceFile()
822     {
823       return "Definition in file @0.";
824     }
825
826 //////////////////////////////////////////////////////////////////////////
827 // new since 0.49-991205
828 //////////////////////////////////////////////////////////////////////////
829
830     virtual QCString trDeprecated()
831     {
832       return "Deprecated";
833     }
834
835 //////////////////////////////////////////////////////////////////////////
836 // new since 1.0.0
837 //////////////////////////////////////////////////////////////////////////
838
839     /*! this text is put before a collaboration diagram */
840     virtual QCString trCollaborationDiagram(const char *clName)
841     {
842       return (QCString)"Collaboration diagram for "+clName+":";
843     }
844     /*! this text is put before an include dependency graph */
845     virtual QCString trInclDepGraph(const char *fName)
846     {
847       return (QCString)"Include dependency graph for "+fName+":";
848     }
849     /*! header that is put before the list of constructor/destructors. */
850     virtual QCString trConstructorDocumentation()
851     {
852       return "Constructor & Destructor Documentation"; 
853     }
854     /*! Used in the file documentation to point to the corresponding sources. */
855     virtual QCString trGotoSourceCode()
856     {
857       return "Go to the source code of this file.";
858     }
859     /*! Used in the file sources to point to the corresponding documentation. */
860     virtual QCString trGotoDocumentation()
861     {
862       return "Go to the documentation of this file.";
863     }
864     /*! Text for the \\pre command */
865     virtual QCString trPrecondition()
866     {
867       return "Precondition";
868     }
869     /*! Text for the \\post command */
870     virtual QCString trPostcondition()
871     {
872       return "Postcondition";
873     }
874     /*! Text for the \\invariant command */
875     virtual QCString trInvariant()
876     {
877       return "Invariant";
878     }
879     /*! Text shown before a multi-line variable/enum initialization */
880     virtual QCString trInitialValue()
881     {
882       return "Initial value:";
883     }
884     /*! Text used the source code in the file index */
885     virtual QCString trCode()
886     {
887       return "code";
888     }
889     virtual QCString trGraphicalHierarchy()
890     {
891       return "Graphical Class Hierarchy";
892     }
893     virtual QCString trGotoGraphicalHierarchy()
894     {
895       return "Go to the graphical class hierarchy";
896     }
897     virtual QCString trGotoTextualHierarchy()
898     {
899       return "Go to the textual class hierarchy";
900     }
901     virtual QCString trPageIndex()
902     {
903       return "Page Index";
904     }
905
906 //////////////////////////////////////////////////////////////////////////
907 // new since 1.1.0
908 //////////////////////////////////////////////////////////////////////////
909     
910     virtual QCString trNote()
911     {
912       return "Note";
913     }
914     virtual QCString trPublicTypes()
915     {
916       return "Public Types";
917     }
918     virtual QCString trPublicAttribs()
919     {
920       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
921       {
922         return "Data Fields";
923       }
924       else
925       {
926         return "Public Attributes";
927       }
928     }
929     virtual QCString trStaticPublicAttribs()
930     {
931       return "Static Public Attributes";
932     }
933     virtual QCString trProtectedTypes()
934     {
935       return "Protected Types";
936     }
937     virtual QCString trProtectedAttribs()
938     {
939       return "Protected Attributes";
940     }
941     virtual QCString trStaticProtectedAttribs()
942     {
943       return "Static Protected Attributes";
944     }
945     virtual QCString trPrivateTypes()
946     {
947       return "Private Types";
948     }
949     virtual QCString trPrivateAttribs()
950     {
951       return "Private Attributes";
952     }
953     virtual QCString trStaticPrivateAttribs()
954     {
955       return "Static Private Attributes";
956     }
957
958 //////////////////////////////////////////////////////////////////////////
959 // new since 1.1.3
960 //////////////////////////////////////////////////////////////////////////
961
962     /*! Used as a marker that is put before a \\todo item */
963     virtual QCString trTodo()
964     {
965       return "Todo";
966     }
967     /*! Used as the header of the todo list */
968     virtual QCString trTodoList()
969     {
970       return "Todo List";
971     }
972
973 //////////////////////////////////////////////////////////////////////////
974 // new since 1.1.4
975 //////////////////////////////////////////////////////////////////////////
976
977     virtual QCString trReferencedBy()
978     {
979       return "Referenced by";
980     }
981     virtual QCString trRemarks()
982     {
983       return "Remarks";
984     }
985     virtual QCString trAttention()
986     {
987       return "Attention";
988     }
989     virtual QCString trInclByDepGraph()
990     {
991       return "This graph shows which files directly or "
992              "indirectly include this file:";
993     }
994     virtual QCString trSince()
995     {
996       return "Since";
997     }
998     
999 //////////////////////////////////////////////////////////////////////////
1000 // new since 1.1.5
1001 //////////////////////////////////////////////////////////////////////////
1002
1003     /*! title of the graph legend page */
1004     virtual QCString trLegendTitle()
1005     {
1006       return "Graph Legend";
1007     }
1008     /*! page explaining how the dot graph's should be interpreted 
1009      *  The %A in the text below are to prevent link to classes called "A".
1010      */
1011     virtual QCString trLegendDocs()
1012     {
1013       return 
1014         "This page explains how to interpret the graphs that are generated "
1015         "by doxygen.<p>\n"
1016         "Consider the following example:\n"
1017         "\\code\n"
1018         "/*! Invisible class because of truncation */\n"
1019         "class Invisible { };\n\n"
1020         "/*! Truncated class, inheritance relation is hidden */\n"
1021         "class Truncated : public Invisible { };\n\n"
1022         "/* Class not documented with doxygen comments */\n"
1023         "class Undocumented { };\n\n"
1024         "/*! Class that is inherited using public inheritance */\n"
1025         "class PublicBase : public Truncated { };\n\n"
1026         "/*! A template class */\n"
1027         "template<class T> class Templ { };\n\n"
1028         "/*! Class that is inherited using protected inheritance */\n"
1029         "class ProtectedBase { };\n\n"
1030         "/*! Class that is inherited using private inheritance */\n"
1031         "class PrivateBase { };\n\n"
1032         "/*! Class that is used by the Inherited class */\n"
1033         "class Used { };\n\n"
1034         "/*! Super class that inherits a number of other classes */\n"
1035         "class Inherited : public PublicBase,\n"
1036         "                  protected ProtectedBase,\n"
1037         "                  private PrivateBase,\n"
1038         "                  public Undocumented,\n"
1039         "                  public Templ<int>\n"
1040         "{\n"
1041         "  private:\n"
1042         "    Used *m_usedClass;\n"
1043         "};\n"
1044         "\\endcode\n"
1045         "This will result in the following graph:"
1046         "<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center></p>\n"
1047         "<p>\n"
1048         "The boxes in the above graph have the following meaning:\n"
1049         "</p>\n"
1050         "<ul>\n"
1051         "<li>%A filled gray box represents the struct or class for which the "
1052         "graph is generated.</li>\n"
1053         "<li>%A box with a black border denotes a documented struct or class.</li>\n"
1054         "<li>%A box with a grey border denotes an undocumented struct or class.</li>\n"
1055         "<li>%A box with a red border denotes a documented struct or class for"
1056         "which not all inheritance/containment relations are shown. %A graph is "
1057         "truncated if it does not fit within the specified boundaries.</li>\n"
1058         "</ul>\n"
1059         "<p>\n"
1060         "The arrows have the following meaning:\n"
1061         "</p>\n"
1062         "<ul>\n"
1063         "<li>%A dark blue arrow is used to visualize a public inheritance "
1064         "relation between two classes.</li>\n"
1065         "<li>%A dark green arrow is used for protected inheritance.</li>\n"
1066         "<li>%A dark red arrow is used for private inheritance.</li>\n"
1067         "<li>%A purple dashed arrow is used if a class is contained or used "
1068         "by another class. The arrow is labeled with the variable(s) "
1069         "through which the pointed class or struct is accessible.</li>\n"
1070         "<li>%A yellow dashed arrow denotes a relation between a template instance and "
1071         "the template class it was instantiated from. The arrow is labeled with "
1072         "the template parameters of the instance.</li>\n"
1073         "</ul>\n";
1074     }
1075     /*! text for the link to the legend page */
1076     virtual QCString trLegend()
1077     {
1078       return "legend";
1079     }
1080     
1081 //////////////////////////////////////////////////////////////////////////
1082 // new since 1.2.0
1083 //////////////////////////////////////////////////////////////////////////
1084     
1085     /*! Used as a marker that is put before a test item */
1086     virtual QCString trTest()
1087     {
1088       return "Test";
1089     }
1090     /*! Used as the header of the test list */
1091     virtual QCString trTestList()
1092     {
1093       return "Test List";
1094     }
1095
1096 //////////////////////////////////////////////////////////////////////////
1097 // new since 1.2.1
1098 //////////////////////////////////////////////////////////////////////////
1099
1100     /*! Used as a section header for KDE-2 IDL methods */
1101     virtual QCString trDCOPMethods()
1102     {
1103       return "DCOP Member Functions";
1104     }
1105
1106 //////////////////////////////////////////////////////////////////////////
1107 // new since 1.2.2
1108 //////////////////////////////////////////////////////////////////////////
1109
1110     /*! Used as a section header for IDL properties */
1111     virtual QCString trProperties()
1112     {
1113       return "Properties";
1114     }
1115     /*! Used as a section header for IDL property documentation */
1116     virtual QCString trPropertyDocumentation()
1117     {
1118       return "Property Documentation";
1119     }
1120
1121 //////////////////////////////////////////////////////////////////////////
1122 // new since 1.2.4
1123 //////////////////////////////////////////////////////////////////////////
1124
1125     /*! Used for Java classes in the summary section of Java packages */
1126     virtual QCString trClasses()
1127     {
1128       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
1129       {
1130         return "Data Structures";
1131       }
1132       else
1133       {
1134         return "Classes";
1135       }
1136     }
1137     /*! Used as the title of a Java package */
1138     virtual QCString trPackage(const char *name)
1139     {
1140       return (QCString)"Package "+name;
1141     }
1142     /*! Title of the package index page */
1143     virtual QCString trPackageList()
1144     {
1145       return "Package List";
1146     }
1147     /*! The description of the package index page */
1148     virtual QCString trPackageListDescription()
1149     {
1150       return "Here are the packages with brief descriptions (if available):";
1151     }
1152     /*! The link name in the Quick links header for each page */
1153     virtual QCString trPackages()
1154     {
1155       return "Packages";
1156     }
1157     /*! Text shown before a multi-line define */
1158     virtual QCString trDefineValue()
1159     {
1160       return "Value:";
1161     }
1162     
1163 //////////////////////////////////////////////////////////////////////////
1164 // new since 1.2.5
1165 //////////////////////////////////////////////////////////////////////////
1166     
1167     /*! Used as a marker that is put before a \\bug item */
1168     virtual QCString trBug()
1169     {
1170       return "Bug";
1171     }
1172     /*! Used as the header of the bug list */
1173     virtual QCString trBugList()
1174     {
1175       return "Bug List";
1176     }
1177
1178 //////////////////////////////////////////////////////////////////////////
1179 // new since 1.2.6
1180 //////////////////////////////////////////////////////////////////////////
1181
1182     /*! Used as ansicpg for RTF file 
1183      * 
1184      * The following table shows the correlation of Charset name, Charset Value and 
1185      * <pre>
1186      * Codepage number:
1187      * Charset Name       Charset Value(hex)  Codepage number
1188      * ------------------------------------------------------
1189      * DEFAULT_CHARSET           1 (x01)
1190      * SYMBOL_CHARSET            2 (x02)
1191      * OEM_CHARSET             255 (xFF)
1192      * ANSI_CHARSET              0 (x00)            1252
1193      * RUSSIAN_CHARSET         204 (xCC)            1251
1194      * EE_CHARSET              238 (xEE)            1250
1195      * GREEK_CHARSET           161 (xA1)            1253
1196      * TURKISH_CHARSET         162 (xA2)            1254
1197      * BALTIC_CHARSET          186 (xBA)            1257
1198      * HEBREW_CHARSET          177 (xB1)            1255
1199      * ARABIC _CHARSET         178 (xB2)            1256
1200      * SHIFTJIS_CHARSET        128 (x80)             932
1201      * HANGEUL_CHARSET         129 (x81)             949
1202      * GB2313_CHARSET          134 (x86)             936
1203      * CHINESEBIG5_CHARSET     136 (x88)             950
1204      * </pre>
1205      * 
1206      */
1207     virtual QCString trRTFansicp()
1208     {
1209       return "1252";
1210     }
1211     
1212
1213     /*! Used as ansicpg for RTF fcharset 
1214      *  \see trRTFansicp() for a table of possible values.
1215      */
1216     virtual QCString trRTFCharSet()
1217     {
1218       return "0";
1219     }
1220
1221     /*! Used as header RTF general index */
1222     virtual QCString trRTFGeneralIndex()
1223     {
1224       return "Index";
1225     }
1226    
1227     /*! This is used for translation of the word that will possibly
1228      *  be followed by a single name or by a list of names 
1229      *  of the category.
1230      */
1231     virtual QCString trClass(bool first_capital, bool singular)
1232     { 
1233       QCString result((first_capital ? "Class" : "class"));
1234       if (!singular)  result+="es";
1235       return result; 
1236     }
1237
1238     /*! This is used for translation of the word that will possibly
1239      *  be followed by a single name or by a list of names 
1240      *  of the category.
1241      */
1242     virtual QCString trFile(bool first_capital, bool singular)
1243     { 
1244       QCString result((first_capital ? "File" : "file"));
1245       if (!singular)  result+="s";
1246       return result; 
1247     }
1248
1249     /*! This is used for translation of the word that will possibly
1250      *  be followed by a single name or by a list of names 
1251      *  of the category.
1252      */
1253     virtual QCString trNamespace(bool first_capital, bool singular)
1254     { 
1255       QCString result((first_capital ? "Namespace" : "namespace"));
1256       if (!singular)  result+="s";
1257       return result; 
1258     }
1259
1260     /*! This is used for translation of the word that will possibly
1261      *  be followed by a single name or by a list of names 
1262      *  of the category.
1263      */
1264     virtual QCString trGroup(bool first_capital, bool singular)
1265     { 
1266       QCString result((first_capital ? "Group" : "group"));
1267       if (!singular)  result+="s";
1268       return result; 
1269     }
1270
1271     /*! This is used for translation of the word that will possibly
1272      *  be followed by a single name or by a list of names 
1273      *  of the category.
1274      */
1275     virtual QCString trPage(bool first_capital, bool singular)
1276     { 
1277       QCString result((first_capital ? "Page" : "page"));
1278       if (!singular)  result+="s";
1279       return result; 
1280     }
1281
1282     /*! This is used for translation of the word that will possibly
1283      *  be followed by a single name or by a list of names 
1284      *  of the category.
1285      */
1286     virtual QCString trMember(bool first_capital, bool singular)
1287     { 
1288       QCString result((first_capital ? "Member" : "member"));
1289       if (!singular)  result+="s";
1290       return result; 
1291     }
1292    
1293     /*! This is used for translation of the word that will possibly
1294      *  be followed by a single name or by a list of names 
1295      *  of the category.
1296      */
1297     virtual QCString trGlobal(bool first_capital, bool singular)
1298     { 
1299       QCString result((first_capital ? "Global" : "global"));
1300       if (!singular)  result+="s";
1301       return result; 
1302     }
1303
1304 //////////////////////////////////////////////////////////////////////////
1305 // new since 1.2.7
1306 //////////////////////////////////////////////////////////////////////////
1307
1308     /*! This text is generated when the \\author command is used and
1309      *  for the author section in man pages. */
1310     virtual QCString trAuthor(bool first_capital, bool singular)
1311     {                                                                         
1312       QCString result((first_capital ? "Author" : "author"));
1313       if (!singular)  result+="s";
1314       return result; 
1315     }
1316
1317 //////////////////////////////////////////////////////////////////////////
1318 // new since 1.2.11
1319 //////////////////////////////////////////////////////////////////////////
1320
1321     /*! This text is put before the list of members referenced by a member
1322      */
1323     virtual QCString trReferences()
1324     {
1325       return "References";
1326     }
1327
1328 //////////////////////////////////////////////////////////////////////////
1329 // new since 1.2.13
1330 //////////////////////////////////////////////////////////////////////////
1331
1332     /*! used in member documentation blocks to produce a list of 
1333      *  members that are implemented by this one.
1334      */
1335     virtual QCString trImplementedFromList(int numEntries)
1336     {
1337       return "Implements "+trWriteList(numEntries)+".";
1338     }
1339
1340     /*! used in member documentation blocks to produce a list of
1341      *  all members that implement this abstract member.
1342      */
1343     virtual QCString trImplementedInList(int numEntries)
1344     {
1345       return "Implemented in "+trWriteList(numEntries)+".";
1346     }
1347
1348 //////////////////////////////////////////////////////////////////////////
1349 // new since 1.2.16
1350 //////////////////////////////////////////////////////////////////////////
1351
1352     /*! used in RTF documentation as a heading for the Table
1353      *  of Contents.
1354      */
1355     virtual QCString trRTFTableOfContents()
1356     {
1357       return "Table of Contents";
1358     }
1359
1360 //////////////////////////////////////////////////////////////////////////
1361 // new since 1.2.17
1362 //////////////////////////////////////////////////////////////////////////
1363
1364     /*! Used as the header of the list of item that have been 
1365      *  flagged deprecated 
1366      */
1367     virtual QCString trDeprecatedList()
1368     {
1369       return "Deprecated List";
1370     }
1371
1372 //////////////////////////////////////////////////////////////////////////
1373 // new since 1.2.18
1374 //////////////////////////////////////////////////////////////////////////
1375
1376     /*! Used as a header for declaration section of the events found in 
1377      * a C# program
1378      */
1379     virtual QCString trEvents()
1380     {
1381       return "Events";
1382     }
1383     /*! Header used for the documentation section of a class' events. */
1384     virtual QCString trEventDocumentation()
1385     {
1386       return "Event Documentation";
1387     }
1388
1389 //////////////////////////////////////////////////////////////////////////
1390 // new since 1.3
1391 //////////////////////////////////////////////////////////////////////////
1392
1393     /*! Used as a heading for a list of Java class types with package scope.
1394      */
1395     virtual QCString trPackageTypes()
1396     { 
1397       return "Package Types";
1398     }
1399     /*! Used as a heading for a list of Java class functions with package 
1400      * scope. 
1401      */
1402     virtual QCString trPackageMembers()
1403     { 
1404       return "Package Functions";
1405     }
1406     /*! Used as a heading for a list of static Java class functions with 
1407      *  package scope.
1408      */
1409     virtual QCString trStaticPackageMembers()
1410     { 
1411       return "Static Package Functions";
1412     }
1413     /*! Used as a heading for a list of Java class variables with package 
1414      * scope.
1415      */
1416     virtual QCString trPackageAttribs()
1417     { 
1418       return "Package Attributes";
1419     }
1420     /*! Used as a heading for a list of static Java class variables with 
1421      * package scope.
1422      */
1423     virtual QCString trStaticPackageAttribs()
1424     { 
1425       return "Static Package Attributes";
1426     }
1427     
1428 //////////////////////////////////////////////////////////////////////////
1429 // new since 1.3.1
1430 //////////////////////////////////////////////////////////////////////////
1431
1432     /*! Used in the quick index of a class/file/namespace member list page 
1433      *  to link to the unfiltered list of all members.
1434      */
1435     virtual QCString trAll()
1436     {
1437       return "All";
1438     }
1439     /*! Put in front of the call graph for a function. */
1440     virtual QCString trCallGraph()
1441     {
1442       return "Here is the call graph for this function:";
1443     }
1444
1445 //////////////////////////////////////////////////////////////////////////
1446 // new since 1.3.3
1447 //////////////////////////////////////////////////////////////////////////
1448
1449     /*! When the search engine is enabled this text is put in the header 
1450      *  of each page before the field where one can enter the text to search 
1451      *  for. 
1452      */
1453     virtual QCString trSearchForIndex()
1454     {
1455       return "Search for";
1456     }
1457     /*! This string is used as the title for the page listing the search
1458      *  results.
1459      */
1460     virtual QCString trSearchResultsTitle()
1461     {
1462       return "Search Results";
1463     }
1464     /*! This string is put just before listing the search results. The
1465      *  text can be different depending on the number of documents found.
1466      *  Inside the text you can put the special marker $num to insert
1467      *  the number representing the actual number of search results.
1468      *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
1469      *  value 2 represents 2 or more matches. HTML markup is allowed inside
1470      *  the returned string.
1471      */
1472     virtual QCString trSearchResults(int numDocuments)
1473     {
1474       if (numDocuments==0)
1475       {
1476         return "Sorry, no documents matching your query.";
1477       }
1478       else if (numDocuments==1)
1479       {
1480         return "Found <b>1</b> document matching your query.";
1481       }
1482       else 
1483       {
1484         return "Found <b>$num</b> documents matching your query. "
1485                "Showing best matches first.";
1486       }
1487     }
1488     /*! This string is put before the list of matched words, for each search 
1489      *  result. What follows is the list of words that matched the query.
1490      */
1491     virtual QCString trSearchMatches()
1492     {
1493       return "Matches:";
1494     }
1495
1496 //////////////////////////////////////////////////////////////////////////
1497 // new since 1.3.8
1498 //////////////////////////////////////////////////////////////////////////
1499
1500     /*! This is used in HTML as the title of page with source code for file filename
1501      */
1502     virtual QCString trSourceFile(QCString& filename)
1503     {
1504       return filename + " Source File";
1505     }
1506
1507 //////////////////////////////////////////////////////////////////////////
1508 // new since 1.3.9
1509 //////////////////////////////////////////////////////////////////////////
1510
1511     /*! This is used as the name of the chapter containing the directory
1512      *  hierarchy.
1513      */
1514     virtual QCString trDirIndex()
1515     { return "Directory Hierarchy"; }
1516
1517     /*! This is used as the name of the chapter containing the documentation
1518      *  of the directories.
1519      */
1520     virtual QCString trDirDocumentation()
1521     { return "Directory Documentation"; }
1522
1523     /*! This is used as the title of the directory index and also in the
1524      *  Quick links of an HTML page, to link to the directory hierarchy.
1525      */
1526     virtual QCString trDirectories()
1527     { return "Directories"; }
1528
1529     /*! This returns a sentences that introduces the directory hierarchy. 
1530      *  and the fact that it is sorted alphabetically per level
1531      */
1532     virtual QCString trDirDescription()
1533     { return "This directory hierarchy is sorted roughly, "
1534              "but not completely, alphabetically:";
1535     }
1536
1537     /*! This returns the title of a directory page. The name of the
1538      *  directory is passed via \a dirName.
1539      */
1540     virtual QCString trDirReference(const char *dirName)
1541     { QCString result=dirName; result+=" Directory Reference"; return result; }
1542
1543     /*! This returns the word directory with or without starting capital
1544      *  (\a first_capital) and in sigular or plural form (\a singular).
1545      */
1546     virtual QCString trDir(bool first_capital, bool singular)
1547     { 
1548       QCString result((first_capital ? "Director" : "director"));
1549       if (singular) result+="y"; else result+="ies";
1550       return result; 
1551     }
1552
1553 //////////////////////////////////////////////////////////////////////////
1554 // new since 1.4.1
1555 //////////////////////////////////////////////////////////////////////////
1556
1557     /*! This text is added to the documentation when the \\overload command
1558      *  is used for a overloaded function.
1559      */
1560     virtual QCString trOverloadText()
1561     {
1562        return "This is an overloaded member function, "
1563               "provided for convenience. It differs from the above "
1564               "function only in what argument(s) it accepts.";
1565     }
1566
1567 //////////////////////////////////////////////////////////////////////////
1568 // new since 1.4.6
1569 //////////////////////////////////////////////////////////////////////////
1570
1571     /*! This is used to introduce a caller (or called-by) graph */
1572     virtual QCString trCallerGraph()
1573     {
1574       return "Here is the caller graph for this function:";
1575     }
1576
1577     /*! This is used in the documentation of a file/namespace before the list 
1578      *  of documentation blocks for enumeration values
1579      */
1580     virtual QCString trEnumerationValueDocumentation()
1581     { return "Enumerator Documentation"; }
1582
1583 //////////////////////////////////////////////////////////////////////////
1584 // new since 1.5.4 (mainly for Fortran)
1585 //////////////////////////////////////////////////////////////////////////
1586     
1587     /*! header that is put before the list of member subprograms (Fortran). */
1588     virtual QCString trMemberFunctionDocumentationFortran()
1589     { return "Member Function/Subroutine Documentation"; }
1590
1591     /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
1592     virtual QCString trCompoundListFortran()
1593     { return "Data Types List"; }
1594
1595     /*! This is put above each page as a link to all members of compounds (Fortran). */
1596     virtual QCString trCompoundMembersFortran()
1597     { return "Data Fields"; }
1598
1599     /*! This is an introduction to the annotated compound list (Fortran). */
1600     virtual QCString trCompoundListDescriptionFortran()
1601     { return "Here are the data types with brief descriptions:"; }
1602
1603     /*! This is an introduction to the page with all data types (Fortran). */
1604     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
1605     {
1606       QCString result="Here is a list of all ";
1607       if (!extractAll)
1608       {
1609         result+="documented ";
1610       }
1611       result+="data types members";
1612       result+=" with links to ";
1613       if (!extractAll) 
1614       {
1615          result+="the data structure documentation for each member";
1616       }
1617       else 
1618       {
1619          result+="the data types they belong to:";
1620       }
1621       return result;
1622     }
1623
1624     /*! This is used in LaTeX as the title of the chapter with the 
1625      * annotated compound index (Fortran).
1626      */
1627     virtual QCString trCompoundIndexFortran()
1628     { return "Data Type Index"; }
1629
1630     /*! This is used in LaTeX as the title of the chapter containing
1631      *  the documentation of all data types (Fortran).
1632      */
1633     virtual QCString trTypeDocumentation()
1634     { return "Data Type Documentation"; }
1635
1636     /*! This is used in the documentation of a file as a header before the 
1637      *  list of (global) subprograms (Fortran).
1638      */
1639     virtual QCString trSubprograms()
1640     { return "Functions/Subroutines"; }
1641
1642     /*! This is used in the documentation of a file/namespace before the list 
1643      *  of documentation blocks for subprograms (Fortran)
1644      */
1645     virtual QCString trSubprogramDocumentation()
1646     { return "Function/Subroutine Documentation"; }
1647
1648     /*! This is used in the documentation of a file/namespace/group before 
1649      *  the list of links to documented compounds (Fortran)
1650      */
1651      virtual QCString trDataTypes()
1652     { return "Data Types"; }
1653     
1654     /*! used as the title of page containing all the index of all modules (Fortran). */
1655     virtual QCString trModulesList()
1656     { return "Modules List"; }
1657
1658     /*! used as an introduction to the modules list (Fortran) */
1659     virtual QCString trModulesListDescription(bool extractAll)
1660     {
1661       QCString result="Here is a list of all ";
1662       if (!extractAll) result+="documented ";
1663       result+="modules with brief descriptions:";
1664       return result;
1665     }
1666
1667     /*! used as the title of the HTML page of a module/type (Fortran) */
1668     virtual QCString trCompoundReferenceFortran(const char *clName,
1669                                     ClassDef::CompoundType compType,
1670                                     bool isTemplate)
1671     {
1672       QCString result=(QCString)clName;
1673       switch(compType)
1674       {
1675         case ClassDef::Class:      result+=" Module"; break;
1676         case ClassDef::Struct:     result+=" Type"; break;
1677         case ClassDef::Union:      result+=" Union"; break;
1678         case ClassDef::Interface:  result+=" Interface"; break;
1679         case ClassDef::Protocol:   result+=" Protocol"; break;
1680         case ClassDef::Category:   result+=" Category"; break;
1681         case ClassDef::Exception:  result+=" Exception"; break;
1682       }
1683       if (isTemplate) result+=" Template";
1684       result+=" Reference";
1685       return result;
1686     }
1687     /*! used as the title of the HTML page of a module (Fortran) */
1688     virtual QCString trModuleReference(const char *namespaceName)
1689     {
1690       QCString result=namespaceName;
1691       result+=" Module Reference";        
1692       return result;
1693     }
1694     
1695     /*! This is put above each page as a link to all members of modules. (Fortran) */
1696     virtual QCString trModulesMembers()
1697     { return "Module Members"; }
1698
1699     /*! This is an introduction to the page with all modules members (Fortran) */
1700     virtual QCString trModulesMemberDescription(bool extractAll)
1701     { 
1702       QCString result="Here is a list of all ";
1703       if (!extractAll) result+="documented ";
1704       result+="module members with links to ";
1705       if (extractAll) 
1706       {
1707         result+="the module documentation for each member:";
1708       }
1709       else 
1710       {
1711         result+="the modules they belong to:";
1712       }
1713       return result;
1714     }
1715
1716     /*! This is used in LaTeX as the title of the chapter with the 
1717      *  index of all modules (Fortran).
1718      */
1719     virtual QCString trModulesIndex()
1720     { return "Modules Index"; }
1721     
1722     /*! This is used for translation of the word that will possibly
1723      *  be followed by a single name or by a list of names 
1724      *  of the category.
1725      */
1726     virtual QCString trModule(bool first_capital, bool singular)
1727     {       
1728       QCString result((first_capital ? "Module" : "module"));
1729       if (!singular)  result+="s";
1730       return result; 
1731     }
1732
1733     /*! This is put at the bottom of a module documentation page and is
1734      *  followed by a list of files that were used to generate the page.
1735      */
1736     virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
1737         bool single)
1738     {
1739       // single is true implies a single file
1740       QCString result=(QCString)"The documentation for this ";
1741       switch(compType)
1742       {
1743         case ClassDef::Class:      result+="module"; break;
1744         case ClassDef::Struct:     result+="type"; break;
1745         case ClassDef::Union:      result+="union"; break;
1746         case ClassDef::Interface:  result+="interface"; break;
1747         case ClassDef::Protocol:   result+="protocol"; break;
1748         case ClassDef::Category:   result+="category"; break;
1749         case ClassDef::Exception:  result+="exception"; break;
1750       }
1751       result+=" was generated from the following file";
1752       if (single) result+=":"; else result+="s:";
1753       return result;
1754     }
1755
1756     /*! This is used for translation of the word that will possibly
1757      *  be followed by a single name or by a list of names 
1758      *  of the category.
1759      */
1760     virtual QCString trType(bool first_capital, bool singular)
1761     { 
1762       QCString result((first_capital ? "Type" : "type"));
1763       if (!singular)  result+="s";
1764       return result; 
1765     }
1766
1767     /*! This is used for translation of the word that will possibly
1768      *  be followed by a single name or by a list of names 
1769      *  of the category.
1770      */
1771     virtual QCString trSubprogram(bool first_capital, bool singular)
1772     { 
1773       QCString result((first_capital ? "Subprogram" : "subprogram"));
1774       if (!singular)  result+="s";
1775       return result; 
1776     }
1777
1778     /*! C# Type Constraint list */
1779     virtual QCString trTypeConstraints()
1780     {
1781       return "Type Constraints";
1782     }
1783
1784 //////////////////////////////////////////////////////////////////////////
1785 // new since 1.6.0 (mainly for the new search engine)
1786 //////////////////////////////////////////////////////////////////////////
1787
1788     /*! directory relation for \a name */
1789     virtual QCString trDirRelation(const char *name)
1790     {
1791       return QCString(name)+" Relation";
1792     }
1793
1794     /*! Loading message shown when loading search results */
1795     virtual QCString trLoading()
1796     {
1797       return "Loading...";
1798     }
1799
1800     /*! Label used for search results in the global namespace */
1801     virtual QCString trGlobalNamespace()
1802     {
1803       return "Global Namespace";
1804     }
1805
1806     /*! Message shown while searching */
1807     virtual QCString trSearching()
1808     {
1809       return "Searching...";
1810     }
1811
1812     /*! Text shown when no search results are found */
1813     virtual QCString trNoMatches()
1814     {
1815       return "No Matches";
1816     }
1817
1818 //////////////////////////////////////////////////////////////////////////
1819 // new since 1.6.3 (missing items for the directory pages)
1820 //////////////////////////////////////////////////////////////////////////
1821
1822     /*! introduction text for the directory dependency graph */
1823     virtual QCString trDirDependency(const char *name)
1824     {
1825       return (QCString)"Directory dependency graph for "+name;
1826     }
1827
1828     /*! when clicking a directory dependency label, a page with a
1829      *  table is shown. The heading for the first column mentions the
1830      *  source file that has a relation to another file.
1831      */
1832     virtual QCString trFileIn(const char *name)
1833     {
1834       return (QCString)"File in "+name;
1835     }
1836
1837     /*! when clicking a directory dependency label, a page with a
1838      *  table is shown. The heading for the second column mentions the
1839      *  destination file that is included.
1840      */
1841     virtual QCString trIncludesFileIn(const char *name)
1842     {
1843       return (QCString)"Includes file in "+name;
1844     }
1845
1846     /** Compiles a date string. 
1847      *  @param year Year in 4 digits
1848      *  @param month Month of the year: 1=January
1849      *  @param day Day of the Month: 1..31
1850      *  @param dayOfWeek Day of the week: 1=Monday..7=Sunday
1851      *  @param hour Hour of the day: 0..23
1852      *  @param minutes Minutes in the hour: 0..59
1853      *  @param seconds Seconds within the minute: 0..59
1854      *  @param includeTime Include time in the result string?
1855      */
1856     virtual QCString trDateTime(int year,int month,int day,int dayOfWeek,
1857                                 int hour,int minutes,int seconds,
1858                                 bool includeTime)
1859     {
1860       static const char *days[]   = { "Mon","Tue","Wed","Thu","Fri","Sat","Sun" };
1861       static const char *months[] = { "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec" };
1862       QCString sdate;
1863       sdate.sprintf("%s %s %d %d",days[dayOfWeek-1],months[month-1],day,year);
1864       if (includeTime)
1865       {
1866         QCString stime;
1867         stime.sprintf(" %.2d:%.2d:%.2d",hour,minutes,seconds);
1868         sdate+=stime;
1869       }
1870       return sdate;
1871     }
1872
1873 //////////////////////////////////////////////////////////////////////////
1874 // new since 1.7.5
1875 //////////////////////////////////////////////////////////////////////////
1876
1877     /*! Header for the page with bibliographic citations */
1878     virtual QCString trCiteReferences()
1879     { return "Bibliographic References"; }
1880
1881     /*! Text for copyright paragraph */
1882     virtual QCString trCopyright()
1883     { return "Copyright"; }
1884
1885     /*! Header for the graph showing the directory dependencies */
1886     virtual QCString trDirDepGraph(const char *name)
1887     { return QCString("Directory dependency graph for ")+name+":"; }
1888
1889 //////////////////////////////////////////////////////////////////////////
1890 // new since 1.8.0
1891 //////////////////////////////////////////////////////////////////////////
1892
1893     /*! Detail level selector shown for hierarchical indices */
1894     virtual QCString trDetailLevel()
1895     { return "detail level"; }
1896
1897     /*! Section header for list of template parameters */
1898     virtual QCString trTemplateParameters()
1899     { return "Template Parameters"; }
1900
1901     /*! Used in dot graph when UML_LOOK is enabled and there are many fields */
1902     virtual QCString trAndMore(const QCString &number)
1903     { return "and "+number+" more..."; }
1904
1905     /*! Used file list for a Java enum */
1906     virtual QCString trEnumGeneratedFromFiles(bool single)
1907     { QCString result = "The documentation for this enum was generated from the following file";
1908       if (!single) result += "s";
1909       result+=":";
1910       return result;
1911     }
1912
1913     /*! Header of a Java enum page (Java enums are represented as classes). */
1914     virtual QCString trEnumReference(const char *name)
1915     { return QCString(name)+" Enum Reference"; }
1916
1917     /*! Used for a section containing inherited members */
1918     virtual QCString trInheritedFrom(const char *members,const char *what)
1919     { return QCString(members)+" inherited from "+what; }
1920
1921     /*! Header of the sections with inherited members specific for the 
1922      *  base class(es) 
1923      */
1924     virtual QCString trAdditionalInheritedMembers()
1925     { return "Additional Inherited Members"; }
1926
1927 //////////////////////////////////////////////////////////////////////////
1928 // new since 1.8.2
1929 //////////////////////////////////////////////////////////////////////////
1930
1931     /*! Used as a tooltip for the toggle button that appears in the
1932      *  navigation tree in the HTML output when GENERATE_TREEVIEW is 
1933      *  enabled. This tooltip explains the meaning of the button.
1934      */
1935     virtual QCString trPanelSynchronisationTooltip(bool enable)
1936     {
1937       QCString opt = enable ? "enable" : "disable";
1938       return "click to "+opt+" panel synchronisation";
1939     }
1940
1941     /*! Used in a method of an Objective-C class that is declared in a
1942      *  a category. Note that the @1 marker is required and is replaced
1943      *  by a link.
1944      */
1945     virtual QCString trProvidedByCategory()
1946     {
1947       return "Provided by category @1.";
1948     }
1949
1950     /*! Used in a method of an Objective-C category that extends a class.
1951      *  Note that the @1 marker is required and is replaced by a link to
1952      *  the class method.
1953      */
1954     virtual QCString trExtendsClass()
1955     {
1956       return "Extends class @1.";
1957     }
1958
1959     /*! Used as the header of a list of class methods in Objective-C.
1960      *  These are similar to static public member functions in C++.
1961      */
1962     virtual QCString trClassMethods()
1963     {
1964       return "Class Methods";
1965     }
1966
1967     /*! Used as the header of a list of instance methods in Objective-C.
1968      *  These are similar to public member functions in C++.
1969      */
1970     virtual QCString trInstanceMethods()
1971     {
1972       return "Instance Methods";
1973     }
1974
1975     /*! Used as the header of the member functions of an Objective-C class.
1976      */
1977     virtual QCString trMethodDocumentation()
1978     {
1979       return "Method Documentation";
1980     }
1981
1982     /*! Used as the title of the design overview picture created for the
1983      *  VHDL output.
1984      */
1985     virtual QCString trDesignOverview()
1986     {
1987       return "Design Overview";
1988     }
1989
1990 //////////////////////////////////////////////////////////////////////////
1991
1992 };
1993
1994 #endif