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