Fix for UBSan build
[platform/upstream/doxygen.git] / src / translator_tw.h
1 /******************************************************************************
2  *
3  *
4  *
5  * Copyright (C) 1997-2012 by Dimitri van Heesch.
6  *
7  * Permission to use, copy, modify, and distribute this software and its
8  * documentation under the terms of the GNU General Public License is hereby
9  * granted. No representations are made about the suitability of this software
10  * for any purpose. It is provided "as is" without express or implied warranty.
11  * See the GNU General Public License for more details.
12  *
13  * Documents produced by Doxygen are derivative works derived from the
14  * input used in their production; they are not affected by this license.
15  *
16  * The translation into Chinesetraditional was provided by
17  *   Daniel YC Lin (dlin.tw <at> gmail.com) since v1.2.16-v1.5.5
18  */
19
20 #ifndef TRANSLATOR_TW_H
21 #define TRANSLATOR_TW_H
22
23 // When defining a translator class for the new language, follow
24 // the description in the documentation.  One of the steps says
25 // that you should copy the translator_en.h (this) file to your
26 // translator_xx.h new file.  Your new language should use the
27 // Translator class as the base class.  This means that you need to
28 // implement exactly the same (pure virtual) methods as the
29 // TranslatorEnglish does.  Because of this, it is a good idea to
30 // start with the copy of TranslatorEnglish and replace the strings
31 // one by one.
32 //
33 // It is not necessary to include "translator.h" or
34 // "translator_adapter.h" here.  The files are included in the
35 // language.cpp correctly.  Not including any of the mentioned
36 // files frees the maintainer from thinking about whether the
37 // first, the second, or both files should be included or not, and
38 // why.  This holds namely for localized translators because their
39 // base class is changed occasionaly to adapter classes when the
40 // Translator class changes the interface, or back to the
41 // Translator class (by the local maintainer) when the localized
42 // translator is made up-to-date again.
43
44 class TranslatorChinesetraditional : public TranslatorAdapter_1_8_0
45 {
46   public:
47
48     // --- Language control methods -------------------
49
50     /*! Used for identification of the language. The identification
51      * should not be translated. It should be replaced by the name
52      * of the language in English using lower-case characters only
53      * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
54      * the identification used in language.cpp.
55      */
56     virtual QCString idLanguage()
57     { return "chinese-traditional"; }
58
59     /*! Used to get the LaTeX command(s) for the language support.
60      *  This method should return string with commands that switch
61      *  LaTeX to the desired language.  For example
62      *  <pre>"\\usepackage[german]{babel}\n"
63      *  </pre>
64      *  or
65      *  <pre>"\\usepackage{polski}\n"
66      *  "\\usepackage[latin2]{inputenc}\n"
67      *  "\\usepackage[T1]{fontenc}\n"
68      *  </pre>
69      *
70      * The English LaTeX does not use such commands.  Because of this
71      * the empty string is returned in this implementation.
72      */
73     virtual QCString latexLanguageSupportCommand()
74     {
75       return "";
76     }
77
78     /*! return the language charset. This will be used for the HTML output */
79     virtual QCString idLanguageCharset()
80     {
81       return "big5";
82     }
83
84     // --- Language translation methods -------------------
85
86     /*! used in the compound documentation before a list of related functions. */
87     virtual QCString trRelatedFunctions()
88     { return "相關函式"; }
89
90     /*! subscript for the related functions. */
91     virtual QCString trRelatedSubscript()
92     { return "(註:這些不是成員函式)"; }
93
94     /*! header that is put before the detailed description of files, classes and namespaces. */
95     virtual QCString trDetailedDescription()
96     { return "詳細描述"; }
97
98     /*! header that is put before the list of typedefs. */
99     virtual QCString trMemberTypedefDocumentation()
100     { return "型態定義成員說明文件"; }
101
102     /*! header that is put before the list of enumerations. */
103     virtual QCString trMemberEnumerationDocumentation()
104     { return "列舉型態成員說明文件"; }
105
106     /*! header that is put before the list of member functions. */
107     virtual QCString trMemberFunctionDocumentation()
108     { return "函式成員說明文件"; }
109
110     /*! header that is put before the list of member attributes. */
111     virtual QCString trMemberDataDocumentation()
112     {
113       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
114       {
115         return "欄位說明文件";
116       }
117       else
118       {
119         return "資料成員說明文件";
120       }
121     }
122
123     /*! this is the text of a link put after brief descriptions. */
124     virtual QCString trMore()
125     { return "更多..."; }
126
127     /*! put in the class documentation */
128     virtual QCString trListOfAllMembers()
129     { return "全部成員列表"; }
130
131     /*! used as the title of the "list of all members" page of a class */
132     virtual QCString trMemberList()
133     { return "成員列表"; }
134
135     /*! this is the first part of a sentence that is followed by a class name */
136     virtual QCString trThisIsTheListOfAllMembers()
137     { return "完整成員列表,類別為"; }
138
139     /*! this is the remainder of the sentence after the class name */
140     virtual QCString trIncludingInheritedMembers()
141     { return ", 包含所有繼承的成員"; }
142
143     /*! this is put at the author sections at the bottom of man pages.
144      *  parameter s is name of the project name.
145      */
146     virtual QCString trGeneratedAutomatically(const char *s)
147     { QCString result="本文件由Doxygen";
148       if (s) result+=(QCString)" 自 "+s;
149       result+=" 的原始碼中自動產生.";
150       return result;
151     }
152
153     /*! put after an enum name in the list of all members */
154     virtual QCString trEnumName()
155     { return "列舉型態名稱"; }
156
157     /*! put after an enum value in the list of all members */
158     virtual QCString trEnumValue()
159     { return "列舉值"; }
160
161     /*! put after an undocumented member in the list of all members */
162     virtual QCString trDefinedIn()
163     { return "被定義於"; }
164
165     // quick reference sections
166
167     /*! This is put above each page as a link to the list of all groups of
168      *  compounds or files (see the \\group command).
169      */
170     virtual QCString trModules()
171     { return "模組"; }
172
173     /*! This is put above each page as a link to the class hierarchy */
174     virtual QCString trClassHierarchy()
175     { return "類別階層"; }
176
177     /*! This is put above each page as a link to the list of annotated classes */
178     virtual QCString trCompoundList()
179     {
180       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
181       {
182         return "資料結構";
183       }
184       else
185       {
186         return "複合列表";
187       }
188     }
189
190     /*! This is put above each page as a link to the list of documented files */
191     virtual QCString trFileList()
192     { return "檔案列表"; }
193
194     /*! This is put above each page as a link to all members of compounds. */
195     virtual QCString trCompoundMembers()
196     {
197       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
198       {
199         return "資料欄位";
200       }
201       else
202       {
203         return "複合成員";
204       }
205     }
206
207     /*! This is put above each page as a link to all members of files. */
208     virtual QCString trFileMembers()
209     {
210       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
211       {
212         return "全域資料";
213       }
214       else
215       {
216         return "檔案成員";
217       }
218     }
219
220     /*! This is put above each page as a link to all related pages. */
221     virtual QCString trRelatedPages()
222     { return "相關頁面"; }
223
224     /*! This is put above each page as a link to all examples. */
225     virtual QCString trExamples()
226     { return "範例"; }
227
228     /*! This is put above each page as a link to the search engine. */
229     virtual QCString trSearch()
230     { return "搜尋"; }
231
232     /*! This is an introduction to the class hierarchy. */
233     virtual QCString trClassHierarchyDescription()
234     { return "這個繼承列表經過簡略的字母排序: ";
235     }
236
237     /*! This is an introduction to the list with all files. */
238     virtual QCString trFileListDescription(bool extractAll)
239     {
240       QCString result="這是附帶簡略說明";
241       if (!extractAll) result+="且經過文件化";
242       result+="的檔案列表:";
243       return result;
244     }
245
246     /*! This is an introduction to the annotated compound list. */
247     virtual QCString trCompoundListDescription()
248     {
249
250       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
251       {
252         return "這是附帶簡略說明的資料結構:";
253       }
254       else
255       {
256         return "這是附帶簡略說明的類別,結構,"
257                "聯合型態(unions)及介面(interfaces):";
258       }
259     }
260
261     /*! This is an introduction to the page with all class members. */
262     virtual QCString trCompoundMembersDescription(bool extractAll)
263     {
264       QCString result="這是全部";
265       if (!extractAll)
266       {
267         result+="文件化過";
268       }
269       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
270       {
271         result+="結構及聯合型態欄位";
272       }
273       else
274       {
275         result+="類別成員";
276       }
277       result+=", 並且帶有連結至";
278       if (!extractAll)
279       {
280         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
281         {
282           result+="每個欄位的結構/聯合型態說明文件:";
283         }
284         else
285         {
286           result+="每個成員的類別說明文件:";
287         }
288       }
289       else
290       {
291         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
292         {
293           result+="這些結構/聯合型態所屬:";
294         }
295         else
296         {
297           result+="這些類別所屬:";
298         }
299       }
300       return result;
301     }
302
303     /*! This is an introduction to the page with all file members. */
304     virtual QCString trFileMembersDescription(bool extractAll)
305     {
306       QCString result="這是全部";
307       if (!extractAll) result+="文件化的";
308
309       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
310       {
311         result+="函式,變數,定義,列舉,及型態定義";
312       }
313       else
314       {
315         result+="檔案成員";
316       }
317       result+=",並且帶有連結至";
318       if (extractAll)
319         result+="這些檔案所屬:";
320       else
321         result+="說明文件:";
322       return result;
323     }
324
325     /*! This is an introduction to the page with the list of all examples */
326     virtual QCString trExamplesDescription()
327     { return "所有範例列表:"; }
328
329     /*! This is an introduction to the page with the list of related pages */
330     virtual QCString trRelatedPagesDescription()
331     { return "所有相關文件頁面列表:"; }
332
333     /*! This is an introduction to the page with the list of class/file groups */
334     virtual QCString trModulesDescription()
335     { return "所有模組列表:"; }
336
337     // index titles (the project name is prepended for these)
338
339
340     /*! This is used in HTML as the title of index.html. */
341     virtual QCString trDocumentation()
342     { return "說明文件"; }
343
344     /*! This is used in LaTeX as the title of the chapter with the
345      * index of all groups.
346      */
347     virtual QCString trModuleIndex()
348     { return "模組索引"; }
349
350     /*! This is used in LaTeX as the title of the chapter with the
351      * class hierarchy.
352      */
353     virtual QCString trHierarchicalIndex()
354     { return "階層索引"; }
355
356     /*! This is used in LaTeX as the title of the chapter with the
357      * annotated compound index.
358      */
359     virtual QCString trCompoundIndex()
360     {
361       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
362       {
363         return "資料結構索引";
364       }
365       else
366       {
367         return "複合索引";
368       }
369     }
370
371     /*! This is used in LaTeX as the title of the chapter with the
372      * list of all files.
373      */
374     virtual QCString trFileIndex()
375     { return "檔案索引"; }
376
377     /*! This is used in LaTeX as the title of the chapter containing
378      *  the documentation of all groups.
379      */
380     virtual QCString trModuleDocumentation()
381     { return "模組說明文件"; }
382
383     /*! This is used in LaTeX as the title of the chapter containing
384      *  the documentation of all classes, structs and unions.
385      */
386     virtual QCString trClassDocumentation()
387     {
388       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
389       {
390         return "資料結構說明文件";
391       }
392       else
393       {
394         return "類別說明文件";
395       }
396     }
397
398     /*! This is used in LaTeX as the title of the chapter containing
399      *  the documentation of all files.
400      */
401     virtual QCString trFileDocumentation()
402     { return "檔案說明文件"; }
403
404     /*! This is used in LaTeX as the title of the chapter containing
405      *  the documentation of all examples.
406      */
407     virtual QCString trExampleDocumentation()
408     { return "範例說明文件"; }
409
410     /*! This is used in LaTeX as the title of the chapter containing
411      *  the documentation of all related pages.
412      */
413     virtual QCString trPageDocumentation()
414     { return "頁面說明文件"; }
415
416     /*! This is used in LaTeX as the title of the document */
417     virtual QCString trReferenceManual()
418     { return "參考手冊"; }
419
420     /*! This is used in the documentation of a file as a header before the
421      *  list of defines
422      */
423     virtual QCString trDefines()
424     { return "定義"; }
425
426     /*! This is used in the documentation of a file as a header before the
427      *  list of function prototypes
428      */
429     virtual QCString trFuncProtos()
430     { return "函式原型"; }
431
432     /*! This is used in the documentation of a file as a header before the
433      *  list of typedefs
434      */
435     virtual QCString trTypedefs()
436     { return "型態定義"; }
437
438     /*! This is used in the documentation of a file as a header before the
439      *  list of enumerations
440      */
441     virtual QCString trEnumerations()
442     { return "列舉型態"; }
443
444     /*! This is used in the documentation of a file as a header before the
445      *  list of (global) functions
446      */
447     virtual QCString trFunctions()
448     { return "函式"; }
449
450     /*! This is used in the documentation of a file as a header before the
451      *  list of (global) variables
452      */
453     virtual QCString trVariables()
454     { return "變數"; }
455
456     /*! This is used in the documentation of a file as a header before the
457      *  list of (global) variables
458      */
459     virtual QCString trEnumerationValues()
460     { return "列舉值"; }
461
462     /*! This is used in the documentation of a file before the list of
463      *  documentation blocks for defines
464      */
465     virtual QCString trDefineDocumentation()
466     { return "定義巨集說明文件"; }
467
468     /*! This is used in the documentation of a file/namespace before the list
469      *  of documentation blocks for function prototypes
470      */
471     virtual QCString trFunctionPrototypeDocumentation()
472     { return "函式原型說明文件"; }
473
474     /*! This is used in the documentation of a file/namespace before the list
475      *  of documentation blocks for typedefs
476      */
477     virtual QCString trTypedefDocumentation()
478     { return "型態定義說明文件"; }
479
480     /*! This is used in the documentation of a file/namespace before the list
481      *  of documentation blocks for enumeration types
482      */
483     virtual QCString trEnumerationTypeDocumentation()
484     { return "列舉型態說明文件"; }
485
486     /*! This is used in the documentation of a file/namespace before the list
487      *  of documentation blocks for enumeration values
488      */
489     virtual QCString trEnumerationValueDocumentation()
490     { return "列舉值說明文件"; }
491
492     /*! This is used in the documentation of a file/namespace before the list
493      *  of documentation blocks for functions
494      */
495     virtual QCString trFunctionDocumentation()
496     { return "函式說明文件"; }
497
498     /*! This is used in the documentation of a file/namespace before the list
499      *  of documentation blocks for variables
500      */
501     virtual QCString trVariableDocumentation()
502     { return "變數說明文件"; }
503
504     /*! This is used in the documentation of a file/namespace/group before
505      *  the list of links to documented compounds
506      */
507     virtual QCString trCompounds()
508     {
509       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
510       {
511         return "資料結構";
512       }
513       else
514       {
515         return "複合項目";
516       }
517     }
518
519     /*! This is used in the standard footer of each page and indicates when
520      *  the page was generated
521      */
522     virtual QCString trGeneratedAt(const char *date,const char *projName)
523     {
524       QCString result=(QCString)"產生日期:"+date;
525       if (projName) result+=(QCString)", 專案:"+projName;
526       result+=(QCString)", 產生器:";
527       return result;
528     }
529     /*! This is part of the sentence used in the standard footer of each page.
530      */
531     virtual QCString trWrittenBy()
532     {
533       return "撰寫人:";
534     }
535
536     /*! this text is put before a class diagram */
537     virtual QCString trClassDiagram(const char *clName)
538     {
539       return (QCString)"類別"+clName+"的繼承圖:";
540     }
541
542     /*! this text is generated when the \\internal command is used. */
543     virtual QCString trForInternalUseOnly()
544     { return "僅供內部使用."; }
545
546     /*! this text is generated when the \\warning command is used. */
547     virtual QCString trWarning()
548     { return "警告"; }
549
550     /*! this text is generated when the \\version command is used. */
551     virtual QCString trVersion()
552     { return "版本"; }
553
554     /*! this text is generated when the \\date command is used. */
555     virtual QCString trDate()
556     { return "日期"; }
557
558     /*! this text is generated when the \\return command is used. */
559     virtual QCString trReturns()
560     { return "傳回值"; }
561
562     /*! this text is generated when the \\sa command is used. */
563     virtual QCString trSeeAlso()
564     { return "參閱"; }
565
566     /*! this text is generated when the \\param command is used. */
567     virtual QCString trParameters()
568     { return "參數"; }
569
570     /*! this text is generated when the \\exception command is used. */
571     virtual QCString trExceptions()
572     { return "例外"; }
573
574     /*! this text is used in the title page of a LaTeX document. */
575     virtual QCString trGeneratedBy()
576     { return "產生者:"; }
577
578 //////////////////////////////////////////////////////////////////////////
579 // new since 0.49-990307
580 //////////////////////////////////////////////////////////////////////////
581
582     /*! used as the title of page containing all the index of all namespaces. */
583     virtual QCString trNamespaceList()
584     { return "命名空間(name space)列表"; }
585
586     /*! used as an introduction to the namespace list */
587     virtual QCString trNamespaceListDescription(bool extractAll)
588     {
589       QCString result="這是所有附帶簡略說明的";
590       if (!extractAll) result+="文件化的";
591       result+="命名空間(namespaces):";
592       return result;
593     }
594
595     /*! used in the class documentation as a header before the list of all
596      *  friends of a class
597      */
598     virtual QCString trFriends()
599     { return "類別朋友(Friends)"; }
600
601 //////////////////////////////////////////////////////////////////////////
602 // new since 0.49-990405
603 //////////////////////////////////////////////////////////////////////////
604
605     /*! used in the class documentation as a header before the list of all
606      * related classes
607      */
608     virtual QCString trRelatedFunctionDocumentation()
609     { return "類別朋友及相關函式說明文件"; }
610
611 //////////////////////////////////////////////////////////////////////////
612 // new since 0.49-990425
613 //////////////////////////////////////////////////////////////////////////
614
615     /*! used as the title of the HTML page of a class/struct/union */
616     virtual QCString trCompoundReference(const char *clName,
617                                     ClassDef::CompoundType compType,
618                                     bool isTemplate)
619     {
620       QCString result=(QCString)clName+" ";
621       switch(compType)
622       {
623         case ClassDef::Class:      result+=" 類別"; break;
624         case ClassDef::Struct:     result+=" 結構"; break;
625         case ClassDef::Union:      result+=" 聯合"; break;
626         case ClassDef::Interface:  result+=" 介面"; break;
627         case ClassDef::Protocol:   result+=" 協定"; break; 
628         case ClassDef::Category:   result+=" 分類"; break;
629         case ClassDef::Exception:  result+=" 例外"; break;
630       }
631       if (isTemplate) result+=" 樣版";
632       result+=" 參考文件";
633       return result;
634     }
635
636     /*! used as the title of the HTML page of a file */
637     virtual QCString trFileReference(const char *fileName)
638     {
639       QCString result=fileName;
640       result+=" 檔案參考文件";
641       return result;
642     }
643
644     /*! used as the title of the HTML page of a namespace */
645     virtual QCString trNamespaceReference(const char *namespaceName)
646     {
647       QCString result=namespaceName;
648       result+=" 命名空間(Namespace)參考文件";
649       return result;
650     }
651
652     virtual QCString trPublicMembers()
653     { return "公開方法(Public Methods)"; }
654     virtual QCString trPublicSlots()
655     { return "公開插槽(Public Slots)"; }
656     virtual QCString trSignals()
657     { return "訊號(Signals)"; }
658     virtual QCString trStaticPublicMembers()
659     { return "靜態公開方法(Static Public Methods)"; }
660     virtual QCString trProtectedMembers()
661     { return "保護方法(Protected Methods)"; }
662     virtual QCString trProtectedSlots()
663     { return "保護插槽(Protected Slots)"; }
664     virtual QCString trStaticProtectedMembers()
665     { return "靜態保護方法(Static Protected Methods)"; }
666     virtual QCString trPrivateMembers()
667     { return "私有方法(Private Methods)"; }
668     virtual QCString trPrivateSlots()
669     { return "私有插槽(Private Slots)"; }
670     virtual QCString trStaticPrivateMembers()
671     { return "靜態私有方法(Static Private Methods)"; }
672
673     /*! this function is used to produce a comma-separated list of items.
674      *  use generateMarker(i) to indicate where item i should be put.
675      */
676     virtual QCString trWriteList(int numEntries)
677     {
678       QCString result;
679       int i;
680       // the inherits list contain `numEntries' classes
681       for (i=0;i<numEntries;i++)
682       {
683         // use generateMarker to generate placeholders for the class links!
684         result+=generateMarker(i); // generate marker for entry i in the list
685                                    // (order is left to right)
686
687         if (i!=numEntries-1)  // not the last entry, so we need a separator
688         {
689           if (i<numEntries-2) // not the fore last entry
690             result+=", ";
691           else                // the fore last entry
692             result+=", 及 ";
693         }
694       }
695       return result;
696     }
697
698     /*! used in class documentation to produce a list of base classes,
699      *  if class diagrams are disabled.
700      */
701     virtual QCString trInheritsList(int numEntries)
702     {
703       return "繼承自 "+trWriteList(numEntries)+".";
704     }
705
706     /*! used in class documentation to produce a list of super classes,
707      *  if class diagrams are disabled.
708      */
709     virtual QCString trInheritedByList(int numEntries)
710     {
711       return "被 "+trWriteList(numEntries)+"繼承.";
712     }
713
714     /*! used in member documentation blocks to produce a list of
715      *  members that are hidden by this one.
716      */
717     virtual QCString trReimplementedFromList(int numEntries)
718     {
719       return "依據"+trWriteList(numEntries)+"重新實作.";
720     }
721
722     /*! used in member documentation blocks to produce a list of
723      *  all member that overwrite the implementation of this member.
724      */
725     virtual QCString trReimplementedInList(int numEntries)
726     {
727       return "在"+trWriteList(numEntries)+"重新實作.";
728     }
729
730     /*! This is put above each page as a link to all members of namespaces. */
731     virtual QCString trNamespaceMembers()
732     { return "命名空間(Namespace)成員"; }
733
734     /*! This is an introduction to the page with all namespace members */
735     virtual QCString trNamespaceMemberDescription(bool extractAll)
736     {
737       QCString result="此處列表為所有 ";
738       if (!extractAll) result+="文件化的 ";
739       result+="命名空間(namespace)成員,並且附帶連結至 ";
740       if (extractAll)
741         result+="每個成員的說明文件:";
742       else
743         result+="該命名空間所屬之處:";
744       return result;
745     }
746     /*! This is used in LaTeX as the title of the chapter with the
747      *  index of all namespaces.
748      */
749     virtual QCString trNamespaceIndex()
750     { return "命名空間(Namespace)索引"; }
751
752     /*! This is used in LaTeX as the title of the chapter containing
753      *  the documentation of all namespaces.
754      */
755     virtual QCString trNamespaceDocumentation()
756     { return "命名空間(Namespace)說明文件"; }
757
758 //////////////////////////////////////////////////////////////////////////
759 // new since 0.49-990522
760 //////////////////////////////////////////////////////////////////////////
761
762     /*! This is used in the documentation before the list of all
763      *  namespaces in a file.
764      */
765     virtual QCString trNamespaces()
766     { return "命名空間(Namespaces)"; }
767
768 //////////////////////////////////////////////////////////////////////////
769 // new since 0.49-990728
770 //////////////////////////////////////////////////////////////////////////
771
772     /*! This is put at the bottom of a class documentation page and is
773      *  followed by a list of files that were used to generate the page.
774      */
775     virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
776         bool single)
777     { // here s is one of " Class", " Struct" or " Union"
778       // single is true implies a single file
779       QCString result=(QCString)"此";
780       switch(compType)
781       {
782         case ClassDef::Class:      result+="類別(class)"; break;
783         case ClassDef::Struct:     result+="結構(structure)"; break;
784         case ClassDef::Union:      result+="聯合(union)"; break;
785         case ClassDef::Interface:  result+="介面(interface)"; break;
786         case ClassDef::Protocol:   result+="協定(protocol)"; break;
787         case ClassDef::Category:   result+="分類(category)"; break;
788         case ClassDef::Exception:  result+="例外(exception)"; break;
789       }
790       result+=" 文件是由下列檔案中產生";
791       if (single) result+=":"; else result+=":";
792       return result;
793     }
794
795     /*! This is in the (quick) index as a link to the alphabetical compound
796      * list.
797      */
798     virtual QCString trAlphabeticalList()
799     { return "字母順序列表"; }
800
801 //////////////////////////////////////////////////////////////////////////
802 // new since 0.49-990901
803 //////////////////////////////////////////////////////////////////////////
804
805     /*! This is used as the heading text for the retval command. */
806     virtual QCString trReturnValues()
807     { return "傳回值"; }
808
809     /*! This is in the (quick) index as a link to the main page (index.html)
810      */
811     virtual QCString trMainPage()
812     { return "主頁面"; }
813
814     /*! This is used in references to page that are put in the LaTeX
815      *  documentation. It should be an abbreviation of the word page.
816      */
817     virtual QCString trPageAbbreviation()
818     { return "p."; }
819
820 //////////////////////////////////////////////////////////////////////////
821 // new since 0.49-991003
822 //////////////////////////////////////////////////////////////////////////
823
824     virtual QCString trDefinedAtLineInSourceFile()
825     {
826       return "定義在 @1 檔案之第 @0 行.";
827     }
828     virtual QCString trDefinedInSourceFile()
829     {
830       return "定義在 @0 檔.";
831     }
832
833 //////////////////////////////////////////////////////////////////////////
834 // new since 0.49-991205
835 //////////////////////////////////////////////////////////////////////////
836
837     virtual QCString trDeprecated()
838     {
839       return "過時";
840     }
841
842 //////////////////////////////////////////////////////////////////////////
843 // new since 1.0.0
844 //////////////////////////////////////////////////////////////////////////
845
846     /*! this text is put before a collaboration diagram */
847     virtual QCString trCollaborationDiagram(const char *clName)
848     {
849       return (QCString)""+clName+"的合作圖:";
850     }
851     /*! this text is put before an include dependency graph */
852     virtual QCString trInclDepGraph(const char *fName)
853     {
854       return (QCString)""+fName+"的包含相依圖:";
855     }
856     /*! header that is put before the list of constructor/destructors. */
857     virtual QCString trConstructorDocumentation()
858     {
859       return "建構子與解構子說明文件";
860     }
861     /*! Used in the file documentation to point to the corresponding sources. */
862     virtual QCString trGotoSourceCode()
863     {
864       return "查看本檔案的原始碼.";
865     }
866     /*! Used in the file sources to point to the corresponding documentation. */
867     virtual QCString trGotoDocumentation()
868     {
869       return "查看本檔案說明文件.";
870     }
871     /*! Text for the \\pre command */
872     virtual QCString trPrecondition()
873     {
874       return "前置條件";
875     }
876     /*! Text for the \\post command */
877     virtual QCString trPostcondition()
878     {
879       return "後置條件";
880     }
881     /*! Text for the \\invariant command */
882     virtual QCString trInvariant()
883     {
884       return "常數";
885     }
886     /*! Text shown before a multi-line variable/enum initialization */
887     virtual QCString trInitialValue()
888     {
889       return "初值:";
890     }
891     /*! Text used the source code in the file index */
892     virtual QCString trCode()
893     {
894       return "程式碼";
895     }
896     virtual QCString trGraphicalHierarchy()
897     {
898       return "圖形化之類別階層";
899     }
900     virtual QCString trGotoGraphicalHierarchy()
901     {
902       return "查看圖形化之類別階層";
903     }
904     virtual QCString trGotoTextualHierarchy()
905     {
906       return "查看文字化之類別階層";
907     }
908     virtual QCString trPageIndex()
909     {
910       return "頁面索引";
911     }
912
913 //////////////////////////////////////////////////////////////////////////
914 // new since 1.1.0
915 //////////////////////////////////////////////////////////////////////////
916
917     virtual QCString trNote()
918     {
919       return "註";
920     }
921     virtual QCString trPublicTypes()
922     {
923       return "公開型態";
924     }
925     virtual QCString trPublicAttribs()
926     {
927       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
928       {
929         return "資料欄位";
930       }
931       else
932       {
933         return "公開屬性";
934       }
935     }
936     virtual QCString trStaticPublicAttribs()
937     {
938       return "靜態公開屬性";
939     }
940     virtual QCString trProtectedTypes()
941     {
942       return "保護型態";
943     }
944     virtual QCString trProtectedAttribs()
945     {
946       return "保護屬性";
947     }
948     virtual QCString trStaticProtectedAttribs()
949     {
950       return "靜態保護屬性";
951     }
952     virtual QCString trPrivateTypes()
953     {
954       return "私有型態";
955     }
956     virtual QCString trPrivateAttribs()
957     {
958       return "私有屬性";
959     }
960     virtual QCString trStaticPrivateAttribs()
961     {
962       return "靜態私有屬性";
963     }
964
965 //////////////////////////////////////////////////////////////////////////
966 // new since 1.1.3
967 //////////////////////////////////////////////////////////////////////////
968
969     /*! Used as a marker that is put before a \\todo item */
970     virtual QCString trTodo()
971     {
972       return "待辦事項";
973     }
974     /*! Used as the header of the todo list */
975     virtual QCString trTodoList()
976     {
977       return "待辦事項列表";
978     }
979
980 //////////////////////////////////////////////////////////////////////////
981 // new since 1.1.4
982 //////////////////////////////////////////////////////////////////////////
983
984     virtual QCString trReferencedBy()
985     {
986       return "被參考於";
987     }
988     virtual QCString trRemarks()
989     {
990       return "備註";
991     }
992     virtual QCString trAttention()
993     {
994       return "注意";
995     }
996     virtual QCString trInclByDepGraph()
997     {
998       return "本圖顯示出哪些檔案直接或間接include本檔 "
999              ":";
1000     }
1001     virtual QCString trSince()
1002     {
1003       return "自";
1004     }
1005
1006 //////////////////////////////////////////////////////////////////////////
1007 // new since 1.1.5
1008 //////////////////////////////////////////////////////////////////////////
1009
1010     /*! title of the graph legend page */
1011     virtual QCString trLegendTitle()
1012     {
1013       return "圖示";
1014     }
1015     /*! page explaining how the dot graph's should be interpreted
1016      *  The %A in the text below are to prevent link to classes called "A".
1017      */
1018     virtual QCString trLegendDocs()
1019     {
1020       return
1021         "本頁解釋如何解譯這些由doxygen所產生的圖示 "
1022         ".<p>\n"
1023         "請看下面範例:\n"
1024         "\\code\n"
1025         "/*! 因為截斷的不可見類別 */\n"
1026         "class Invisible { };\n\n"
1027         "/*! 截斷的類別, 繼承關係被隱藏 */\n"
1028         "class Truncated : public Invisible { };\n\n"
1029         "/* 未經過doxygen註解處理過的類別 */\n"
1030         "class Undocumented { };\n\n"
1031         "/*! 經過公開(Public)繼承的類別 */\n"
1032         "class PublicBase : public Truncated { };\n\n"
1033         "/*! 一個樣版類別 */\n"
1034         "template<class T> class Templ { };\n\n"
1035         "/*! 使用保護(Protected)繼承的類別 */\n"
1036         "class ProtectedBase { };\n\n"
1037         "/*! 使用私有(Private)繼承的類別 */\n"
1038         "class PrivateBase { };\n\n"
1039         "/*! 由被繼承類別所使用的類別 */\n"
1040         "class Used { };\n\n"
1041         "/*! 由數個其他類別所繼承來的超類別(Super Class) */\n"
1042         "class Inherited : public PublicBase,\n"
1043         "                  protected ProtectedBase,\n"
1044         "                  private PrivateBase,\n"
1045         "                  public Undocumented,\n"
1046         "                  public Templ<int>\n"
1047         "{\n"
1048         "  private:\n"
1049         "    Used *m_usedClass;\n"
1050         "};\n"
1051         "\\endcode\n"
1052         "若在組態檔中的 \\c MAX_DOT_GRAPH_HEIGHT tag "
1053         "設為 240,將會產生下列的圖示:"
1054         "<p><center><img src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
1055         "<p>\n"
1056         "上圖中的各區塊意義如下:\n"
1057         "<ul>\n"
1058         "<li>%A 填滿黑色的區塊代表產生這個圖示的類別或結構 "
1059         ".\n"
1060         "<li>%A 黑邊的區塊代表文件化過的結構或類別.\n"
1061         "<li>%A 灰邊的區塊代表未經文件化的結構或是類別.\n"
1062         "<li>%A 紅邊的區塊代表文件化的結構或是類別,"
1063         "這些結構或類別的繼承或包含關係不會全部顯示. %A 圖示 "
1064         "若無法塞入指定的邊界中將會被截斷.\n"
1065         "</ul>\n"
1066         "箭頭具有下面的意義:\n"
1067         "<ul>\n"
1068         "<li>%A 深藍色箭頭用來代表兩個類別間的公開繼承 "
1069         "關係.\n"
1070         "<li>%A 深綠色箭頭代表保護繼承.\n"
1071         "<li>%A 深紅色箭頭代表私有繼承.\n"
1072         "<li>%A 紫色箭頭用來表示類別被另一個包含或是使用."
1073         "箭頭上標示著可存取該類別或是結構的對應變數"
1074         ".\n"
1075         "<li>%A 黃色箭頭代表樣版實體與樣版類別之間的關係。"
1076         "箭頭上標記著樣版實體上的參數"
1077         ".\n"
1078         "</ul>\n";
1079     }
1080     /*! text for the link to the legend page */
1081     virtual QCString trLegend()
1082     {
1083       return "圖示";
1084     }
1085
1086 //////////////////////////////////////////////////////////////////////////
1087 // new since 1.2.0
1088 //////////////////////////////////////////////////////////////////////////
1089
1090     /*! Used as a marker that is put before a test item */
1091     virtual QCString trTest()
1092     {
1093       return "測試項目";
1094     }
1095     /*! Used as the header of the test list */
1096     virtual QCString trTestList()
1097     {
1098       return "測試項目列表";
1099     }
1100
1101 //////////////////////////////////////////////////////////////////////////
1102 // new since 1.2.1
1103 //////////////////////////////////////////////////////////////////////////
1104
1105     /*! Used as a section header for KDE-2 IDL methods */
1106     virtual QCString trDCOPMethods()
1107     {
1108       return "DCOP方法";
1109     }
1110
1111 //////////////////////////////////////////////////////////////////////////
1112 // new since 1.2.2
1113 //////////////////////////////////////////////////////////////////////////
1114
1115     /*! Used as a section header for IDL properties */
1116     virtual QCString trProperties()
1117     {
1118       return "屬性(properties)";
1119     }
1120     /*! Used as a section header for IDL property documentation */
1121     virtual QCString trPropertyDocumentation()
1122     {
1123       return "屬性(property)說明文件";
1124     }
1125
1126 //////////////////////////////////////////////////////////////////////////
1127 // new since 1.2.4
1128 //////////////////////////////////////////////////////////////////////////
1129
1130     /*! Used for Java classes in the summary section of Java packages */
1131     virtual QCString trClasses()
1132     {
1133       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
1134       {
1135         return "資料結構";
1136       }
1137       else
1138       {
1139         return "類別";
1140       }
1141     }
1142     /*! Used as the title of a Java package */
1143     virtual QCString trPackage(const char *name)
1144     {
1145       return (QCString)"Package "+name;
1146     }
1147     /*! Title of the package index page */
1148     virtual QCString trPackageList()
1149     {
1150       return "Package列表";
1151     }
1152     /*! The description of the package index page */
1153     virtual QCString trPackageListDescription()
1154     {
1155       return "此處為Package的概略說明(如果有的話):";
1156     }
1157     /*! The link name in the Quick links header for each page */
1158     virtual QCString trPackages()
1159     {
1160       return "Packages";
1161     }
1162
1163     /*! Text shown before a multi-line define */
1164     virtual QCString trDefineValue()
1165     {
1166       return "巨集內容:";
1167     }
1168
1169 //////////////////////////////////////////////////////////////////////////
1170 // new since 1.2.5
1171 //////////////////////////////////////////////////////////////////////////
1172
1173     /*! Used as a marker that is put before a \\bug item */
1174     virtual QCString trBug()
1175     {
1176       return "臭蟲";
1177     }
1178     /*! Used as the header of the bug list */
1179     virtual QCString trBugList()
1180     {
1181       return "臭蟲列表";
1182     }
1183
1184 //////////////////////////////////////////////////////////////////////////
1185 // new since 1.2.6
1186 //////////////////////////////////////////////////////////////////////////
1187
1188     /*! Used as ansicpg for RTF file
1189      *
1190      * The following table shows the correlation of Charset name, Charset Value and
1191      * <pre>
1192      * Codepage number:
1193      * Charset Name       Charset Value(hex)  Codepage number
1194      * ------------------------------------------------------
1195      * DEFAULT_CHARSET           1 (x01)
1196      * SYMBOL_CHARSET            2 (x02)
1197      * OEM_CHARSET             255 (xFF)
1198      * ANSI_CHARSET              0 (x00)            1252
1199      * RUSSIAN_CHARSET         204 (xCC)            1251
1200      * EE_CHARSET              238 (xEE)            1250
1201      * GREEK_CHARSET           161 (xA1)            1253
1202      * TURKISH_CHARSET         162 (xA2)            1254
1203      * BALTIC_CHARSET          186 (xBA)            1257
1204      * HEBREW_CHARSET          177 (xB1)            1255
1205      * ARABIC _CHARSET         178 (xB2)            1256
1206      * SHIFTJIS_CHARSET        128 (x80)             932
1207      * HANGEUL_CHARSET         129 (x81)             949
1208      * GB2313_CHARSET          134 (x86)             936
1209      * CHINESEBIG5_CHARSET     136 (x88)             950
1210      * </pre>
1211      *
1212      */
1213     virtual QCString trRTFansicp()
1214     {
1215       return "950";
1216     }
1217
1218
1219     /*! Used as ansicpg for RTF fcharset
1220      *  \see trRTFansicp() for a table of possible values.
1221      */
1222     virtual QCString trRTFCharSet()
1223     {
1224       return "136";
1225     }
1226
1227     /*! Used as header RTF general index */
1228     virtual QCString trRTFGeneralIndex()
1229     {
1230       return "索引";
1231     }
1232
1233     /*! This is used for translation of the word that will possibly
1234      *  be followed by a single name or by a list of names
1235      *  of the category.
1236      */
1237     virtual QCString trClass(bool /*first_capital*/, bool /*singular*/)
1238     {
1239       return QCString("類別");
1240     }
1241
1242     /*! This is used for translation of the word that will possibly
1243      *  be followed by a single name or by a list of names
1244      *  of the category.
1245      */
1246     virtual QCString trFile(bool /*first_capital*/, bool /*singular*/)
1247     {
1248       return QCString("檔案");
1249     }
1250
1251     /*! This is used for translation of the word that will possibly
1252      *  be followed by a single name or by a list of names
1253      *  of the category.
1254      */
1255     virtual QCString trNamespace(bool /*first_capital*/, bool /*singular*/)
1256     {
1257       return QCString("命名空間");
1258     }
1259
1260     /*! This is used for translation of the word that will possibly
1261      *  be followed by a single name or by a list of names
1262      *  of the category.
1263      */
1264     virtual QCString trGroup(bool /*first_capital*/, bool /*singular*/)
1265     {
1266       return QCString("群組");
1267     }
1268
1269     /*! This is used for translation of the word that will possibly
1270      *  be followed by a single name or by a list of names
1271      *  of the category.
1272      */
1273     virtual QCString trPage(bool /*first_capital*/, bool /*singular*/)
1274     {
1275       return QCString("頁面");
1276     }
1277
1278     /*! This is used for translation of the word that will possibly
1279      *  be followed by a single name or by a list of names
1280      *  of the category.
1281      */
1282     virtual QCString trMember(bool /*first_capital*/, bool /*singular*/)
1283     {
1284       return QCString("成員");
1285     }
1286
1287     /*! This is used for translation of the word that will possibly
1288      *  be followed by a single name or by a list of names
1289      *  of the category.
1290      */
1291     virtual QCString trGlobal(bool /*first_capital*/, bool /*singular*/)
1292     {
1293       return QCString("全域");
1294     }
1295
1296 //////////////////////////////////////////////////////////////////////////
1297 // new since 1.2.7
1298 //////////////////////////////////////////////////////////////////////////
1299
1300     /*! This text is generated when the \\author command is used and
1301      *  for the author section in man pages. */
1302     virtual QCString trAuthor(bool /*first_capital*/, bool /*singular*/)
1303     {
1304       return QCString("作者");
1305     }
1306
1307 //////////////////////////////////////////////////////////////////////////
1308 // new since 1.2.11
1309 //////////////////////////////////////////////////////////////////////////
1310
1311     /*! This text is put before the list of members referenced by a member
1312      */
1313     virtual QCString trReferences()
1314     {
1315       return "參考";
1316     }
1317
1318 //////////////////////////////////////////////////////////////////////////
1319 // new since 1.2.13
1320 //////////////////////////////////////////////////////////////////////////
1321
1322     /*! used in member documentation blocks to produce a list of
1323      *  members that are implemented by this one.
1324      */
1325     virtual QCString trImplementedFromList(int numEntries)
1326     {
1327       return "實作 "+trWriteList(numEntries)+".";
1328     }
1329
1330     /*! used in member documentation blocks to produce a list of
1331      *  all members that implement this abstract member.
1332      */
1333     virtual QCString trImplementedInList(int numEntries)
1334     {
1335       return "實作於 "+trWriteList(numEntries)+".";
1336     }
1337
1338     //////////////////////////////////////////////////////////////////////////
1339 // new since 1.2.16
1340 //////////////////////////////////////////////////////////////////////////
1341
1342     /*! used in RTF documentation as a heading for the Table
1343      *  of Contents.
1344      */
1345     virtual QCString trRTFTableOfContents()
1346     {
1347       return "目錄";
1348     }
1349
1350 //////////////////////////////////////////////////////////////////////////
1351 // new since 1.2.17
1352 //////////////////////////////////////////////////////////////////////////
1353
1354     /*! Used as the header of the list of item that have been
1355      *  flagged deprecated
1356      */
1357     virtual QCString trDeprecatedList()
1358     {
1359       return "過時項目(Deprecated) 列表";
1360     }
1361
1362 //////////////////////////////////////////////////////////////////////////
1363 // new since 1.2.18
1364 //////////////////////////////////////////////////////////////////////////
1365
1366     /*! Used as a header for declaration section of the events found in
1367      * a C# program
1368      */
1369     virtual QCString trEvents()
1370     {
1371       return "Events";
1372     }
1373     /*! Header used for the documentation section of a class' events. */
1374     virtual QCString trEventDocumentation()
1375     {
1376       return "Event 文件";
1377     }
1378
1379 //////////////////////////////////////////////////////////////////////////
1380 // new since 1.3
1381 //////////////////////////////////////////////////////////////////////////
1382
1383     /*! Used as a heading for a list of Java class types with package scope.
1384      */
1385     virtual QCString trPackageTypes()
1386     {
1387       return "Package 型別";
1388     }
1389     /*! Used as a heading for a list of Java class functions with package
1390      * scope.
1391      */
1392     virtual QCString trPackageMembers()
1393     {
1394       return "Package 函數列表";
1395     }
1396     /*! Used as a heading for a list of static Java class functions with
1397      *  package scope.
1398      */
1399     virtual QCString trStaticPackageMembers()
1400     {
1401       return "靜態 Package 函數列表";
1402     }
1403     /*! Used as a heading for a list of Java class variables with package
1404      * scope.
1405      */
1406     virtual QCString trPackageAttribs()
1407     {
1408       return "Package 屬性";
1409     }
1410     /*! Used as a heading for a list of static Java class variables with
1411      * package scope.
1412      */
1413     virtual QCString trStaticPackageAttribs()
1414     {
1415       return "靜態 Package 屬性";
1416     }
1417
1418 //////////////////////////////////////////////////////////////////////////
1419 // new since 1.3.1
1420 //////////////////////////////////////////////////////////////////////////
1421
1422     /*! Used in the quick index of a class/file/namespace member list page
1423      *  to link to the unfiltered list of all members.
1424      */
1425     virtual QCString trAll()
1426     {
1427       return "全部";
1428     }
1429     /*! Put in front of the call graph for a function. */
1430     virtual QCString trCallGraph()
1431     {
1432       return "這是此函數的引用函數圖:";
1433     }
1434
1435 //////////////////////////////////////////////////////////////////////////
1436 // new since 1.3.3
1437 //////////////////////////////////////////////////////////////////////////
1438
1439     /*! When the search engine is enabled this text is put in the header
1440      *  of each page before the field where one can enter the text to search
1441      *  for.
1442      */
1443     virtual QCString trSearchForIndex()
1444     {
1445       return "搜尋索引";
1446     }
1447     /*! This string is used as the title for the page listing the search
1448      *  results.
1449      */
1450     virtual QCString trSearchResultsTitle()
1451     {
1452       return "搜尋結果";
1453     }
1454     /*! This string is put just before listing the search results. The
1455      *  text can be different depending on the number of documents found.
1456      *  Inside the text you can put the special marker $num to insert
1457      *  the number representing the actual number of search results.
1458      *  The @a numDocuments parameter can be either 0, 1 or 2, where the
1459      *  value 2 represents 2 or more matches. HTML markup is allowed inside
1460      *  the returned string.
1461      */
1462     virtual QCString trSearchResults(int numDocuments)
1463     {
1464       if (numDocuments==0)
1465       {
1466         return "找不到符合的資料.";
1467       }
1468       else if (numDocuments==1)
1469       {
1470         return "找到 <b>1</b> 筆符合的資料.";
1471       }
1472       else
1473       {
1474         return "找到 <b>$num</b> 筆符合的資料. "
1475                "越符合的結果顯示在越前面.";
1476       }
1477     }
1478     /*! This string is put before the list of matched words, for each search
1479      *  result. What follows is the list of words that matched the query.
1480      */
1481     virtual QCString trSearchMatches()
1482     {
1483       return "符合:";
1484     }
1485
1486 //////////////////////////////////////////////////////////////////////////
1487 // new since 1.3.8
1488 //////////////////////////////////////////////////////////////////////////
1489
1490     /*! This is used in HTML as the title of page with source code for file filename
1491      */
1492     virtual QCString trSourceFile(QCString& filename)
1493     {
1494       return filename + " 原始程式檔";
1495     }
1496     
1497 //////////////////////////////////////////////////////////////////////////
1498 // new since 1.3.9
1499 //////////////////////////////////////////////////////////////////////////
1500
1501     /*! This is used as the name of the chapter containing the directory
1502      *  hierarchy.
1503      */
1504     virtual QCString trDirIndex()
1505     { return "目錄階層"; }
1506
1507     /*! This is used as the name of the chapter containing the documentation
1508      *  of the directories.
1509      */
1510     virtual QCString trDirDocumentation()
1511     { return "目錄說明文件"; }
1512
1513     /*! This is used as the title of the directory index and also in the
1514      *  Quick links of a HTML page, to link to the directory hierarchy.
1515      */
1516     virtual QCString trDirectories()
1517     { return "目錄"; }
1518
1519     /*! This returns a sentences that introduces the directory hierarchy. 
1520      *  and the fact that it is sorted alphabetically per level
1521      */
1522     virtual QCString trDirDescription()
1523     { return "這個目錄階層經過簡略的字母排序: ";
1524     }
1525
1526     /*! This returns the title of a directory page. The name of the
1527      *  directory is passed via \a dirName.
1528      */
1529     virtual QCString trDirReference(const char *dirName)
1530     { QCString result=dirName; result+=" 目錄參考文件"; return result; }
1531
1532     /*! This returns the word directory with or without starting capital
1533      *  (\a first_capital) and in sigular or plural form (\a singular).
1534      */
1535     virtual QCString trDir(bool /*first_capital*/, bool /*singular*/)
1536     {
1537       return QCString("目錄");
1538     }
1539     
1540 //////////////////////////////////////////////////////////////////////////
1541 // new since 1.4.1
1542 //////////////////////////////////////////////////////////////////////////
1543
1544     /*! This text is added to the documentation when the \\overload command
1545      *  is used for a overloaded function.
1546      */
1547     virtual QCString trOverloadText()
1548     {
1549        return "這是一個為了便利性所提供 overload 成員函數,"
1550               "只有在接受的參數上,與前一個函數不同.";
1551     }
1552 //////////////////////////////////////////////////////////////////////////
1553 // new since 1.4.6
1554 //////////////////////////////////////////////////////////////////////////
1555
1556     /*! This is used to introduce a caller (or called-by) graph */
1557     virtual QCString trCallerGraph()
1558     {
1559       return "呼叫此函數的函數列表:";
1560     }
1561
1562
1563 //////////////////////////////////////////////////////////////////////////
1564 // new since 1.5.4 (mainly for Fortran)
1565 //////////////////////////////////////////////////////////////////////////
1566     
1567     /*! header that is put before the list of member subprograms (Fortran). */
1568     virtual QCString trMemberFunctionDocumentationFortran()
1569     { return "成員函數/子程序 文件"; }
1570
1571     /*! This is put above each page as a link to the list of annotated data types (Fortran). */    
1572     virtual QCString trCompoundListFortran()
1573     { return "資料型態列表"; }
1574
1575     /*! This is put above each page as a link to all members of compounds (Fortran). */
1576     virtual QCString trCompoundMembersFortran()
1577     { return "資料欄位"; }
1578
1579     /*! This is an introduction to the annotated compound list (Fortran). */
1580     virtual QCString trCompoundListDescriptionFortran()
1581     { return "資料型態簡短說明列表:"; }
1582
1583     /*! This is an introduction to the page with all data types (Fortran). */
1584     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
1585     {
1586       QCString result="此處列出所有";
1587       if (!extractAll)
1588       {
1589         result+="有文件的";
1590       }
1591       result+="資料型別成員函數";
1592       result+=" 附帶連結到 ";
1593       if (!extractAll) 
1594       {
1595          result+="每個成員函數的資料結構文件";
1596       }
1597       else 
1598       {
1599          result+="他們屬於的資料型別";
1600       }
1601       return result;
1602     }
1603
1604     /*! This is used in LaTeX as the title of the chapter with the 
1605      * annotated compound index (Fortran).
1606      */
1607     virtual QCString trCompoundIndexFortran()
1608     { return "資料型別索引"; }
1609
1610     /*! This is used in LaTeX as the title of the chapter containing
1611      *  the documentation of all data types (Fortran).
1612      */
1613     virtual QCString trTypeDocumentation()
1614     { return "資料型別文件"; }
1615
1616     /*! This is used in the documentation of a file as a header before the 
1617      *  list of (global) subprograms (Fortran).
1618      */
1619     virtual QCString trSubprograms()
1620     { return "函數/子程序"; }
1621
1622     /*! This is used in the documentation of a file/namespace before the list 
1623      *  of documentation blocks for subprograms (Fortran)
1624      */
1625     virtual QCString trSubprogramDocumentation()
1626     { return "函數/子程序 文件"; }
1627
1628     /*! This is used in the documentation of a file/namespace/group before 
1629      *  the list of links to documented compounds (Fortran)
1630      */
1631      virtual QCString trDataTypes()
1632     { return "資料型別"; }
1633     
1634     /*! used as the title of page containing all the index of all modules (Fortran). */
1635     virtual QCString trModulesList()
1636     { return "模組列表"; }
1637
1638     /*! used as an introduction to the modules list (Fortran) */
1639     virtual QCString trModulesListDescription(bool extractAll)
1640     {
1641       QCString result="此處列出所有";
1642       if (!extractAll) result+="有文件的";
1643       result+="模組附帶簡短說明:";
1644       return result;
1645     }
1646
1647     /*! used as the title of the HTML page of a module/type (Fortran) */
1648     virtual QCString trCompoundReferenceFortran(const char *clName,
1649                                     ClassDef::CompoundType compType,
1650                                     bool isTemplate)
1651     {
1652       QCString result=(QCString)clName;
1653       switch(compType)
1654       {
1655         case ClassDef::Class:      result+="模組"; break;
1656         case ClassDef::Struct:     result+="型態"; break;
1657         case ClassDef::Union:      result+="聯合"; break;
1658         case ClassDef::Interface:  result+="介面"; break;
1659         case ClassDef::Protocol:   result+="協議"; break;
1660         case ClassDef::Category:   result+="分類"; break;
1661         case ClassDef::Exception:  result+="例外"; break;
1662       }
1663       if (isTemplate) result+=" Template";
1664       result+="參考文件";
1665       return result;
1666     }
1667     /*! used as the title of the HTML page of a module (Fortran) */
1668     virtual QCString trModuleReference(const char *namespaceName)
1669     {
1670       QCString result=namespaceName;
1671       result+="模組參考文件";
1672       return result;
1673     }
1674     
1675     /*! This is put above each page as a link to all members of modules. (Fortran) */
1676     virtual QCString trModulesMembers()
1677     { return "模組成員"; }
1678
1679     /*! This is an introduction to the page with all modules members (Fortran) */
1680     virtual QCString trModulesMemberDescription(bool extractAll)
1681     { 
1682       QCString result="此處列出所有";
1683       if (!extractAll) result+="有文件的";
1684       result+="模組成員附帶連結到";
1685       if (extractAll) 
1686       {
1687         result+="每個函數的模組文件:";
1688       }
1689       else 
1690       {
1691         result+="他們所屬的模組:";
1692       }
1693       return result;
1694     }
1695
1696     /*! This is used in LaTeX as the title of the chapter with the 
1697      *  index of all modules (Fortran).
1698      */
1699     virtual QCString trModulesIndex()
1700     { return "模組索引"; }
1701     
1702     /*! This is used for translation of the word that will possibly
1703      *  be followed by a single name or by a list of names 
1704      *  of the category.
1705      */
1706     virtual QCString trModule(bool /* first_capital */, bool /* singular */)
1707     {       
1708       QCString result("模組");
1709       return result; 
1710     }
1711     /*! This is put at the bottom of a module documentation page and is
1712      *  followed by a list of files that were used to generate the page.
1713      */
1714     virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
1715         bool /* single */)
1716     { // here s is one of " Module", " Struct" or " Union"
1717       // single is true implies a single file
1718       QCString result=(QCString)"這個";
1719       switch(compType)
1720       {
1721         case ClassDef::Class:      result+="模組"; break;
1722         case ClassDef::Struct:     result+="型態"; break;
1723         case ClassDef::Union:      result+="聯合"; break;
1724         case ClassDef::Interface:  result+="介面"; break;
1725         case ClassDef::Protocol:   result+="協議"; break;
1726         case ClassDef::Category:   result+="分類"; break;
1727         case ClassDef::Exception:  result+="例外"; break;
1728       }
1729       result+="文件由下列檔案產生";
1730       return result;
1731     }
1732     /*! This is used for translation of the word that will possibly
1733      *  be followed by a single name or by a list of names 
1734      *  of the category.
1735      */
1736     virtual QCString trType(bool /* first_capital */, bool /* singular */)
1737     { 
1738       QCString result("型別");
1739       return result; 
1740     }
1741     /*! This is used for translation of the word that will possibly
1742      *  be followed by a single name or by a list of names 
1743      *  of the category.
1744      */
1745     virtual QCString trSubprogram(bool /* first_capital */, bool /* singular */)
1746     { 
1747       QCString result("子程式");
1748       return result; 
1749     }
1750
1751     /*! C# Type Constraint list */
1752     virtual QCString trTypeConstraints()
1753     {
1754       return "型別限制條件";
1755     }
1756         
1757 //////////////////////////////////////////////////////////////////////////
1758 // new since 1.6.0 (mainly for the new search engine)
1759 //////////////////////////////////////////////////////////////////////////
1760
1761     /*! directory relation for \a name */
1762     virtual QCString trDirRelation(const char *name)
1763     {
1764       return QCString(name)+" 關連";
1765     }
1766
1767     /*! Loading message shown when loading search results */
1768     virtual QCString trLoading()
1769     {
1770       return "載入中...";
1771     }
1772
1773     /*! Label used for search results in the global namespace */
1774     virtual QCString trGlobalNamespace()
1775     {
1776       return "全域命名空間";
1777     }
1778
1779     /*! Message shown while searching */
1780     virtual QCString trSearching()
1781     {
1782       return "搜尋中...";
1783     }
1784
1785     /*! Text shown when no search results are found */
1786     virtual QCString trNoMatches()
1787     {
1788       return "無符合項目";
1789     }
1790
1791 //////////////////////////////////////////////////////////////////////////
1792 // new since 1.6.3 (missing items for the directory pages)
1793 //////////////////////////////////////////////////////////////////////////
1794
1795     /*! introduction text for the directory dependency graph */
1796     virtual QCString trDirDependency(const char *name)
1797     {
1798       return (QCString)name+"的目錄關連圖";
1799     }
1800
1801     /*! when clicking a directory dependency label, a page with a
1802      *  table is shown. The heading for the first column mentions the
1803      *  source file that has a relation to another file.
1804      */
1805     virtual QCString trFileIn(const char *name)
1806     {
1807       return (QCString)"檔案在"+name;
1808     }
1809
1810     /*! when clicking a directory dependency label, a page with a
1811      *  table is shown. The heading for the second column mentions the
1812      *  destination file that is included.
1813      */
1814     virtual QCString trIncludesFileIn(const char *name)
1815     {
1816       return (QCString)"含入檔案在"+name;
1817     }
1818
1819     /** Compiles a date string. 
1820      *  @param year Year in 4 digits
1821      *  @param month Month of the year: 1=January
1822      *  @param day Day of the Month: 1..31
1823      *  @param dayOfWeek Day of the week: 1=Monday..7=Sunday
1824      *  @param hour Hour of the day: 0..23
1825      *  @param minutes Minutes in the hour: 0..59
1826      *  @param seconds Seconds within the minute: 0..59
1827      *  @param includeTime Include time in the result string?
1828      */
1829     virtual QCString trDateTime(int year,int month,int day,int dayOfWeek,
1830                                 int hour,int minutes,int seconds,
1831                                 bool includeTime)
1832     {
1833       static const char *days[]   = { "星期一","星期二","星期三","星期四","星期五","星期六","星期日" };
1834       static const char *months[] = { "1","2","3","4","5","6","7","8","9","10","11","12" };
1835       QCString sdate;
1836       sdate.sprintf("%d年%s月%d日 %s",year,months[month-1],day,days[dayOfWeek-1]);
1837       if (includeTime)
1838       {
1839         QCString stime;
1840         stime.sprintf(" %.2d:%.2d:%.2d",hour,minutes,seconds);
1841         sdate+=stime;
1842       }
1843       return sdate;
1844     }
1845
1846 //////////////////////////////////////////////////////////////////////////
1847 // new since 1.7.5
1848 //////////////////////////////////////////////////////////////////////////
1849
1850     /*! Header for the page with bibliographic citations */
1851     virtual QCString trCiteReferences()
1852     { return "參考文獻資料"; }
1853
1854     /*! Text for copyright paragraph */
1855     virtual QCString trCopyright()
1856     { return "版權聲明"; }
1857
1858     /*! Header for the graph showing the directory dependencies */
1859     virtual QCString trDirDepGraph(const char *name)
1860     { return QCString(name)+"的目錄關連圖"+":"; }
1861
1862 };
1863
1864 #endif