Imported Upstream version 1.8.15
[platform/upstream/doxygen.git] / src / translator_cn.h
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_CN_H
19 #define TRANSLATOR_CN_H
20
21 /*!
22    If you want insert a space whenever Chinese meets English characters, set
23    CN_SPC to " ", else null.
24 */
25 #define CN_SPC " "
26
27 class TranslatorChinese : public TranslatorAdapter_1_8_15
28 {
29   public:
30     /*! Used for identification of the language. The identification
31      * should not be translated. It should be replaced by the name
32      * of the language in English using lower-case characters only
33      * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
34      * the identification used in the language.cpp.
35      */
36
37     virtual QCString idLanguage()
38     { return "chinese"; }
39
40     /*! Used to get the LaTeX command(s) for the language support.
41      * This method should return string with commands that switch
42      * LaTeX to the desired language.  For example
43      * <pre>"\\usepackage[german]{babel}\n"
44      * </pre>
45      * or
46      * <pre>"\\usepackage{polski}\n"
47      * "\\usepackage[latin2]{inputenc}\n"
48      * "\\usepackage[T1]{fontenc}\n"
49      * </pre>
50      *
51      * The English LaTeX does not use such commands.  Because of this
52      * the empty string is returned in this implementation.
53      */
54     virtual QCString latexLanguageSupportCommand()
55     {
56       return "\\usepackage{CJKutf8}\n";
57     }
58     virtual QCString latexFontenc()
59     {
60       return "";
61     }
62     virtual QCString latexDocumentPre()
63     {
64       return "\\begin{CJK}{UTF8}{min}\n";
65     }
66     virtual QCString latexDocumentPost()
67     {
68       return "\\end{CJK}\n";
69     }
70
71     /*! used in the compound documentation before a list of related functions.
72      */
73     virtual QCString trRelatedFunctions()
74     { return "相关函数"; }
75
76     /*! subscript for the related functions. */
77     virtual QCString trRelatedSubscript()
78     { return "(请注意: 这些不是成员函数.)"; }
79
80     /*! header that is put before the detailed description of files,
81      * classes and namespaces.
82      */
83     virtual QCString trDetailedDescription()
84     { return "详细描述"; }
85
86     /*! header that is put before the list of typedefs. */
87     virtual QCString trMemberTypedefDocumentation()
88     { return "成员类型定义说明"; }
89
90     /*! header that is put before the list of enumerations. */
91     virtual QCString trMemberEnumerationDocumentation()
92     { return "成员枚举类型说明"; }
93
94     /*! header that is put before the list of member function. */
95     virtual QCString trMemberFunctionDocumentation()
96     { return "成员函数说明"; }
97
98     /*! header that is put before the list of member attributes. */
99     virtual QCString trMemberDataDocumentation()
100     {
101       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
102       {
103         return "结构体成员变量说明";
104       }
105       else
106       {
107         return "类成员变量说明";
108       }
109     }
110
111     /*! this is the text of a link put after brief descriptions. */
112     virtual QCString trMore()
113     { return "更多..."; }
114
115     /*! put in the class documentation */
116     virtual QCString trListOfAllMembers()
117     { return "所有成员列表"; }
118
119     /*! used as the title of the "list of all members" page of a class */
120     virtual QCString trMemberList()
121     { return "成员列表"; }
122
123     /*! this is the first part of a sentence that is followed by a class name */
124     virtual QCString trThisIsTheListOfAllMembers()
125     { return "成员的完整列表,这些成员属于" CN_SPC; }
126
127     /*! this is the remainder of the sentence after the class name */
128     virtual QCString trIncludingInheritedMembers()
129     { return ",包括所有继承而来的类成员"; }
130
131     /*! this is put at the author sections at the bottom of man pages.
132      *  parameter s is name of the project name.
133      */
134     virtual QCString trGeneratedAutomatically(const char *s)
135     { QCString result;
136       result = "由" CN_SPC "Doyxgen" CN_SPC "通过分析" CN_SPC;
137       if (s) result += ((QCString)s+CN_SPC "的" CN_SPC);
138       result+= "源代码自动生成.";
139       return result;
140     }
141
142     /*! put after an enum name in the list of all members */
143     virtual QCString trEnumName()
144     { return "枚举名称"; }
145
146     /*! put after an enum value in the list of all members */
147     virtual QCString trEnumValue()
148     { return "枚举值"; }
149
150     /*! put after an undocumented member in the list of all members */
151     virtual QCString trDefinedIn()
152     { return "定义于" CN_SPC; }
153
154     // quick reference sections
155
156     /*! This is put above each page as a link to the list of all groups of
157      *  compounds or files (see the \\group command).
158      */
159     virtual QCString trModules()
160     { return "模块"; }
161
162     /*! This is put above each page as a link to the class hierarchy */
163      virtual QCString trClassHierarchy()
164     { return "类继承关系"; }
165
166     /*! This is put above each page as a link to the list of annotated class */
167      virtual QCString trCompoundList()
168     {
169       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
170         return "结构体";
171       }
172       else {
173         return "类列表";
174       }
175     }
176
177     /*! This is put above each page as a link to the list of documented files */
178     virtual QCString trFileList()
179     { return "文件列表"; }
180
181     /*! This is put above each page as a link to all members of compounds. */
182     virtual QCString trCompoundMembers()
183     {
184       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
185         return "成员变量";
186       }
187       else {
188         return "类成员";
189       }
190     }
191
192     /*! This is put above each page as a link to all member of files. */
193     virtual QCString trFileMembers()
194     {
195       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
196         return "全局定义";
197       } else {
198         return "文件成员";
199       }
200     }
201
202     /*! This is put above each page as a link to all related pages. */
203     virtual QCString trRelatedPages()
204     { return "相关页面"; }
205
206     /*! This is put above each page as a link to all examples. */
207     virtual QCString trExamples()
208     { return "示例"; }
209
210     virtual QCString trSearch()
211     { return "搜索"; }
212
213     virtual QCString trClassHierarchyDescription()
214     { return "此继承关系列表按字典顺序粗略的排序:" CN_SPC; }
215
216     virtual QCString trFileListDescription(bool extractAll)
217     {
218       QCString result="这里列出了所有";
219       if (!extractAll) result+="文档化的";
220       result+="文件,并附带简要说明:";
221       return result;
222     }
223
224     virtual QCString trCompoundListDescription()
225     {
226       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
227       {
228         return "这里列出了所有结构体,并附带简要说明:";
229       }
230       else
231       {
232         return "这里列出了所有类、结构、联合以及接口定义等,并附带简要说明:";
233       }
234     }
235
236     virtual QCString trCompoundMembersDescription(bool extractAll)
237     {
238       QCString result="这里列出了所有";
239       if (!extractAll) {
240         result+="文档化的";
241       }
242       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
243         result+="结构体和联合体的成员变量,并附带";
244       }
245       else {
246         result+="类成员,并附带";
247       }
248       //result+=" with links to ";
249       if (extractAll) {
250         if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
251           result+="结构体或联合的详细说明:";
252         }
253         else {
254           result+="类的详细说明:";
255         }
256       }
257       else {
258         if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
259           result+="结构或联合所属的文件:";
260         }
261         else {
262           result+="类所属的文件:";
263         }
264       }
265       return result;
266     }
267
268     virtual QCString trFileMembersDescription(bool extractAll)
269     {
270       QCString result="这里列出了所有";
271       if (!extractAll)
272         result +="文档化的";
273       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C)) {
274         result +="函数,变量,宏,枚举和类型定义等,并附带";
275       }
276       else {
277         result +="文件成员,并附带";
278       }
279
280       if (extractAll)
281         result+="其所属的文件:";
282       else
283         result+="其详细说明:";
284       return result;
285     }
286
287     virtual QCString trExamplesDescription()
288     { return "这里列出了所有示例:"; }
289
290     virtual QCString trRelatedPagesDescription()
291     { return "这里列出了所有相关页面:"; }
292
293     virtual QCString trModulesDescription()
294     { return "这里列出了所有模块:"; }
295
296     virtual QCString trDocumentation()
297     { return "文档"; }
298
299     virtual QCString trModuleIndex()
300     { return "模块索引"; }
301
302     virtual QCString trHierarchicalIndex()
303     { return "继承关系索引"; }
304
305     virtual QCString trCompoundIndex()
306     {
307       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
308       {
309         return "结构体索引";
310       }
311       else {
312         return "类索引";
313       }
314     }
315
316     virtual QCString trFileIndex()
317     { return "文件索引"; }
318
319     virtual QCString trModuleDocumentation()
320     { return "模块说明"; }
321
322     virtual QCString trClassDocumentation()
323     {
324       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
325       {
326         return "结构体说明";
327       }
328       else {
329         return "类说明";
330       }
331     }
332
333     virtual QCString trFileDocumentation()
334     { return "文件说明"; }
335
336     virtual QCString trExampleDocumentation()
337     { return "示例说明"; }
338
339     virtual QCString trPageDocumentation()
340     { return "页面说明"; }
341
342     virtual QCString trReferenceManual()
343     { return "参考手册"; }
344
345     virtual QCString trDefines()
346     { return "宏定义"; }
347
348     virtual QCString trTypedefs()
349     { return "类型定义"; }
350
351     virtual QCString trEnumerations()
352     { return "枚举"; }
353
354     virtual QCString trFunctions()
355     { return "函数"; }
356
357     virtual QCString trVariables()
358     { return "变量"; }
359
360     virtual QCString trEnumerationValues()
361     { return "枚举值"; }
362
363
364     virtual QCString trDefineDocumentation()
365     { return "宏定义说明"; }
366
367     virtual QCString trTypedefDocumentation()
368     { return "类型定义说明"; }
369
370     virtual QCString trEnumerationTypeDocumentation()
371     { return "枚举类型说明"; }
372
373     virtual QCString trFunctionDocumentation()
374     { return "函数说明"; }
375
376     virtual QCString trVariableDocumentation()
377     { return "变量说明"; }
378
379     virtual QCString trCompounds()
380     {
381       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
382       {
383         return "结构体";
384       }
385       else {
386         return "类";
387       }
388     }
389
390     virtual QCString trGeneratedAt(const char *date,const char *projName)
391     { QCString result=(QCString)"生成于" CN_SPC+date;
392       if (projName) result+=(QCString)CN_SPC ", 为" CN_SPC+projName;
393       result+=(QCString)"使用" CN_SPC;
394       return result;
395     }
396
397     virtual QCString trClassDiagram(const char *clName)
398     {
399       return (QCString)"类" CN_SPC+clName+CN_SPC "继承关系图:";
400     }
401
402      virtual QCString trForInternalUseOnly()
403     { return "仅限内部使用."; }
404
405      virtual QCString trWarning()
406     { return "警告"; }
407
408      virtual QCString trVersion()
409     { return "版本"; }
410
411      virtual QCString trDate()
412     { return "日期"; }
413
414      virtual QCString trReturns()
415     { return "返回"; }
416
417      virtual QCString trSeeAlso()
418     { return "参见"; }
419
420      virtual QCString trParameters()
421     { return "参数"; }
422
423      virtual QCString trExceptions()
424     { return "异常"; }
425
426      virtual QCString trGeneratedBy()
427     { return "制作者"; }
428
429 //////////////////////////////////////////////////////////////////////////
430 // new since 0.49-990307
431 //////////////////////////////////////////////////////////////////////////
432
433      virtual QCString trNamespaceList()
434     { return "命名空间列表"; }
435
436      virtual QCString trNamespaceListDescription(bool extractAll)
437     {
438        QCString result="这里列出了所有";
439       if (!extractAll) result+="文档化的";
440       result+="命名空间定义,附带简要说明:";
441       return result;
442     }
443
444      virtual QCString trFriends()
445     { return "友元"; }
446
447 //////////////////////////////////////////////////////////////////////////
448 // new since 0.49-990405
449 //////////////////////////////////////////////////////////////////////////
450
451      virtual QCString trRelatedFunctionDocumentation()
452     { return "友元及相关函数文档"; }
453
454 //////////////////////////////////////////////////////////////////////////
455 // new since 0.49-990425
456 //////////////////////////////////////////////////////////////////////////
457
458      virtual QCString trCompoundReference(const char *clName,
459                                  ClassDef::CompoundType compType,
460                                  bool isTemplate)
461       // used as the title of the HTML page of a class/struct/union
462     {
463        QCString result=(QCString)clName;
464       if (isTemplate) result+=CN_SPC "模板";
465       switch(compType)
466       {
467         case ClassDef::Class:  result+="类"; break;
468         case ClassDef::Struct: result+="结构体"; break;
469         case ClassDef::Union:  result+="联合体"; break;
470         case ClassDef::Interface:  result+="接口"; break;
471         case ClassDef::Protocol:   result+="协议"; break;
472         case ClassDef::Category:   result+="分类"; break;
473         case ClassDef::Exception:  result+="异常"; break;
474         default: break;
475       }
476       result+=CN_SPC "参考";
477       return result;
478     }
479
480     /*! used as the title of the HTML page of a file */
481     virtual QCString trFileReference(const char *fileName)
482     {
483       QCString result=fileName;
484       result+=CN_SPC "文件参考";
485       return result;
486     }
487
488     /*! used as the title of the HTML page of a namespace */
489     virtual QCString trNamespaceReference(const char *namespaceName)
490     { QCString result=namespaceName;
491       result+=CN_SPC "命名空间参考";
492       return result;
493     }
494
495     // these are for the member sections of a class, struct or union
496     virtual QCString trPublicMembers()
497     { return "Public 成员函数"; }
498
499     virtual QCString trPublicSlots()
500     { return "Public 槽"; }
501
502     virtual QCString trSignals()
503     { return "信号"; }
504
505     virtual QCString trStaticPublicMembers()
506     { return "静态 Public 成员函数"; }
507
508     virtual QCString trProtectedMembers()
509     { return "Protected 成员函数"; }
510
511     virtual QCString trProtectedSlots()
512     { return "Protected 槽"; }
513
514     virtual QCString trStaticProtectedMembers()
515     { return "静态 Protected 成员函数"; }
516
517     virtual QCString trPrivateMembers()
518     { return "Private 成员函数"; }
519
520     virtual QCString trPrivateSlots()
521     { return "Private 槽"; }
522
523     virtual QCString trStaticPrivateMembers()
524     { return "静态 Private 成员函数"; }
525
526     // end of member sections
527     virtual QCString trWriteList(int numEntries)
528     {
529       // this function is used to produce a comma-separated list of items.
530       // use generateMarker(i) to indicate where item i should be put.
531       QCString result;
532       int i;
533       // the inherits list contain `numEntries' classes
534       for (i=0;i<numEntries;i++)
535       {
536         // use generateMarker to generate placeholders for the class links!
537         result+=generateMarker(i); // generate marker for entry i in the list
538                                    // (order is left to right)
539
540         if (i!=numEntries-1)  // not the last entry, so we need a separator
541         {
542           if (i<numEntries-2) // not the fore last entry
543             result+="," CN_SPC;
544           else                // the fore last entry
545             result+=CN_SPC ", 以及" CN_SPC;
546         }
547       }
548       return result;
549     }
550
551     /*! used in class documentation to produce a list of base classes,
552      *  if class diagrams are disabled.
553      */
554     virtual QCString trInheritsList(int numEntries)
555     { return "继承自" CN_SPC+trWriteList(numEntries)+CN_SPC ".";  }
556
557     /*! used in class documentation to produce a list of super classes,
558      *  if class diagrams are disabled.
559      */
560     virtual QCString trInheritedByList(int numEntries)
561     {
562       return "被" CN_SPC+trWriteList(numEntries)+CN_SPC "继承.";
563     }
564
565     /*! used in member documentation blocks to produce a list of
566      *  members that are hidden by this one.
567      */
568     virtual QCString trReimplementedFromList(int numEntries)
569     {
570       return "重载" CN_SPC+trWriteList(numEntries)+CN_SPC ".";
571     }
572
573     /*! used in member documentation blocks to produce a list of
574      *  all member that overwrite the implementation of this member.
575      */
576     virtual QCString trReimplementedInList(int numEntries)
577     {
578       return "被" CN_SPC+trWriteList(numEntries)+CN_SPC "重载.";
579     }
580
581     /*! This is put above each page as a link to all members of namespaces. */
582     virtual QCString trNamespaceMembers()
583     { return "命名空间成员"; }
584
585     /*! This is an introduction to the page with all namespace members */
586     virtual QCString trNamespaceMemberDescription(bool extractAll)
587     {
588        QCString result="这里列出了所有";
589       if (!extractAll) result+="文档化的";
590       result+="命名空间成员,并附带";
591       if (extractAll)
592         result+="其说明文档:";
593       else
594         result+="其所属的文件:";
595       return result;
596     }
597
598     /*! This is used in LaTeX as the title of the chapter with the
599      *  index of all namespaces.
600      */
601     virtual QCString trNamespaceIndex()
602     { return "命名空间索引"; }
603
604     /*! This is used in LaTeX as the title of the chapter containing
605      *  the documentation of all namespaces.
606      */
607     virtual QCString trNamespaceDocumentation()
608     { return "命名空间文档"; }
609
610 //////////////////////////////////////////////////////////////////////////
611 // new since 0.49-990522
612 //////////////////////////////////////////////////////////////////////////
613
614     /*! This is used in the documentation before the list of all
615      *  namespaces in a file.
616      */
617     virtual QCString trNamespaces()
618     {
619       return "命名空间";
620     }
621
622 //////////////////////////////////////////////////////////////////////////
623 // new since 0.49-990728
624 //////////////////////////////////////////////////////////////////////////
625
626     /*! This is put at the bottom of a class documentation page and is
627      *  followed by a list of files that were used to generate the page.
628      */
629     virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
630         bool)
631     { // here s is one of " Class", " Struct" or " Union"
632       // single is true implies a single file
633        QCString result=(QCString)"该";
634       switch(compType)
635       {
636         case ClassDef::Class:      result+="类"; break;
637         case ClassDef::Struct:     result+="结构体"; break;
638         case ClassDef::Union:      result+="联合体"; break;
639         case ClassDef::Interface:  result+="接口"; break;
640         case ClassDef::Protocol:   result+="协议"; break;
641         case ClassDef::Category:   result+="分类"; break;
642         case ClassDef::Exception:  result+="异常"; break;
643         default: break;
644       }
645       result+="的文档由以下文件生成:";
646       return result;
647     }
648
649 //////////////////////////////////////////////////////////////////////////
650 // new since 0.49-990901
651 //////////////////////////////////////////////////////////////////////////
652
653     /*! This is used as the heading text for the retval command. */
654     virtual QCString trReturnValues()
655     { return "返回值"; }
656
657     /*! This is in the (quick) index as a link to the main page (index.html)
658      */
659     virtual QCString trMainPage()
660     { return "首页"; }
661
662     /*! This is used in references to page that are put in the LaTeX
663      *  documentation. It should be an abbreviation of the word page.
664      */
665     virtual QCString trPageAbbreviation()
666     { return "p."; }
667
668 //////////////////////////////////////////////////////////////////////////
669 // new since 0.49-991106
670 //////////////////////////////////////////////////////////////////////////
671
672     virtual QCString trDefinedAtLineInSourceFile()
673     {
674       return "在文件" CN_SPC "@1" CN_SPC "第" CN_SPC "@0" CN_SPC "行定义.";
675     }
676
677     virtual QCString trDefinedInSourceFile()
678     {
679       return "在文件" CN_SPC "@0" CN_SPC "中定义.";
680     }
681
682 //////////////////////////////////////////////////////////////////////////
683 // new since 0.49-991205
684 //////////////////////////////////////////////////////////////////////////
685
686     virtual QCString trDeprecated()
687     {
688       return "弃用";
689     }
690
691 //////////////////////////////////////////////////////////////////////////
692 // new since 1.0.0
693 //////////////////////////////////////////////////////////////////////////
694
695     /*! this text is put before a collaboration diagram */
696     virtual QCString trCollaborationDiagram(const char *clName)
697     {
698       return (QCString)clName+CN_SPC "的协作图:";
699     }
700
701     /*! this text is put before an include dependency graph */
702     virtual QCString trInclDepGraph(const char *fName)
703     {
704       return (QCString)fName+CN_SPC "的引用(Include)关系图:";
705     }
706
707     /*! header that is put before the list of constructor/destructors. */
708     virtual QCString trConstructorDocumentation()
709     {
710       return "构造及析构函数说明";
711     }
712
713     /*! Used in the file documentation to point to the corresponding sources. */
714     virtual QCString trGotoSourceCode()
715     {
716       return "浏览源代码.";
717     }
718
719     /*! Used in the file sources to point to the corresponding documentation. */
720     virtual QCString trGotoDocumentation()
721     {
722       return "浏览该文件的文档.";
723     }
724
725     /*! Text for the \\pre command */
726     virtual QCString trPrecondition()
727     {
728       return "前置条件";
729     }
730
731     /*! Text for the \\post command */
732     virtual QCString trPostcondition()
733     {
734       return "后置条件";
735     }
736
737     /*! Text for the \\invariant command */
738     virtual QCString trInvariant()
739     {
740       return "不变性";
741     }
742
743     /*! Text shown before a multi-line variable/enum initialization */
744     virtual QCString trInitialValue()
745     {
746       return "初始值:";
747     }
748
749     /*! Text used the source code in the file index */
750     virtual QCString trCode()
751     {
752       return "代码";
753     }
754
755     virtual QCString trGraphicalHierarchy()
756     {
757       return "类继承关系图";
758     }
759
760     virtual QCString trGotoGraphicalHierarchy()
761     {
762       return "浏览类继承关系图";
763     }
764
765     virtual QCString trGotoTextualHierarchy()
766     {
767       return "浏览类继承关系表";
768     }
769
770     virtual QCString trPageIndex()
771     {
772       return "页面索引";
773     }
774
775 //////////////////////////////////////////////////////////////////////////
776 // new since 1.1.0
777 //////////////////////////////////////////////////////////////////////////
778
779     virtual QCString trNote()
780     {
781       return "注解";
782     }
783
784     virtual QCString trPublicTypes()
785     {
786       return "Public 类型";
787     }
788
789     virtual QCString trPublicAttribs()
790     {
791        if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
792        {
793          return "成员变量";
794        }
795        else {
796          return "Public 属性";
797        }
798     }
799
800     virtual QCString trStaticPublicAttribs()
801     {
802       return "静态 Public 属性";
803     }
804
805     virtual QCString trProtectedTypes()
806     {
807       return "Protected 类型";
808     }
809
810     virtual QCString trProtectedAttribs()
811     {
812       return "Protected 属性";
813     }
814
815     virtual QCString trStaticProtectedAttribs()
816     {
817       return "静态 Protected 属性";
818     }
819
820     virtual QCString trPrivateTypes()
821     {
822       return "Private 类型";
823     }
824
825     virtual QCString trPrivateAttribs()
826     {
827       return "Private 属性";
828     }
829
830     virtual QCString trStaticPrivateAttribs()
831     {
832       return "静态 Private 属性";
833     }
834
835
836 //////////////////////////////////////////////////////////////////////////
837 // new since 1.1.3
838 //////////////////////////////////////////////////////////////////////////
839
840     /*! Used as a marker that is put before a todo item */
841     virtual QCString trTodo()
842     {
843       return "待办事项";
844     }
845
846     /*! Used as the header of the todo list */
847     virtual QCString trTodoList()
848     {
849       return "待办事项列表";
850     }
851
852 //////////////////////////////////////////////////////////////////////////
853 // new since 1.1.4
854 //////////////////////////////////////////////////////////////////////////
855
856     virtual QCString trReferencedBy()
857     {
858       return "被这些函数引用";
859     }
860
861     virtual QCString trRemarks()
862     {
863       return "备注";
864     }
865
866     virtual QCString trAttention()
867     {
868       return "注意";
869     }
870
871     virtual QCString trInclByDepGraph()
872     {
873       return "此图展示该文件直接或间接的被哪些文件引用了:";
874     }
875
876     virtual QCString trSince()
877     {
878       return "自从";
879     }
880
881 //////////////////////////////////////////////////////////////////////////
882 // new since 1.1.5
883 //////////////////////////////////////////////////////////////////////////
884
885     /*! title of the graph legend page */
886     virtual QCString trLegendTitle()
887     {
888       return "图例";
889     }
890
891     /*! page explaining how the dot graph's should be interpreted */
892     virtual QCString trLegendDocs()
893     {
894       return "本页将向您解释如何理解由" CN_SPC "doxygen" CN_SPC "生成的图.<p>\n"
895         "考虑如下例子:\n"
896         "\\code\n"
897         "/*! 由于截断而使 Invisible 不可见 */\n"
898         "class Invisible { };\n\n"
899         "/*! Truncated 的继承关系将被隐藏 */\n"
900         "class Truncated : public Invisible { };\n\n"
901         "/* 没有被doxygen文档化的类 */\n"
902         "class Undocumented { };\n\n"
903         "/*! public 继承关系的类 */\n"
904         "class PublicBase : public Truncated { };\n\n"
905         "/*! 一个模板类 */\n"
906         "template<class T> class Templ { };\n\n"
907         "/*! protected 继承关系的类 */\n"
908         "class ProtectedBase { };\n\n"
909         "/*! private 继承关系的类 */\n"
910         "class PrivateBase { };\n\n"
911         "/*! 被 Inherited 使用的类 */\n"
912         "class Used { };\n\n"
913         "/*! 继承自其它若干类的超级类 */\n"
914         "class Inherited : public PublicBase,\n"
915         "                  protected ProtectedBase,\n"
916         "                  private PrivateBase,\n"
917         "                  public Undocumented,\n"
918         "                  public Templ<int>\n"
919         "{\n"
920         "  private:\n"
921         "    Used *m_usedClass;\n"
922         "};\n"
923         "\\endcode\n"
924         "结果将会生成以下图:"
925         "<p><center><img alt=\"\" src=\"graph_legend."+getDotImageExtension()+"\"></center></p>\n"
926         "<p>\n"
927         "上图中的矩形有如下意义:\n"
928         "</p>\n"
929         "<ul>\n"
930         "<li>%灰色填充的矩形 表示上图是由该结构体或类生成.</li>\n"
931         "<li>%黑色边框的矩形 表示已经被文档化的结构体或类.</li>\n"
932         "<li>%灰色边框的矩形 表示未被文档化的结构体或类.</li>\n"
933         "<li>%红色边框的矩形 表示该结构体或类的关系没有被完全显示."
934         "%如果生成的图不能调整到制定的尺寸,有一些关系就会被截断而不显示出来.</li>\n"
935         "</ul>\n"
936         "<p>\n"
937         "箭头有如下意义:\n"
938         "</p>\n"
939         "<ul>\n"
940         "<li>%深蓝色的箭头被用于展示 public 的继承关系.</li>\n"
941         "<li>%深绿色的箭头表示 protected 的继承关系.</li>\n"
942         "<li>%深红色的箭头说明了是 privated 的继承关系.</li>\n"
943         "<li>%紫色虚线箭头用来表示两个类之间的聚合关系. 被箭头指向的类的类型的变量,可以通过箭头旁标明的变量去访问.</li>\n"
944         "<li>%黄色虚线箭头表示模板类实例和模板类之间的关系. 箭头旁边标明了模板类实例化的参数.</li>\n"
945         "</ul>\n";
946     }
947
948     /*! text for the link to the legend page */
949     virtual QCString trLegend()
950     {
951       return "图例";
952     }
953
954 //////////////////////////////////////////////////////////////////////////
955 // new since 1.2.0
956 //////////////////////////////////////////////////////////////////////////
957
958     /*! Used as a marker that is put before a test item */
959     virtual QCString trTest()
960     {
961       return "测试";
962     }
963
964     /*! Used as the header of the test list */
965     virtual QCString trTestList()
966     {
967       return "测试列表";
968     }
969
970 //////////////////////////////////////////////////////////////////////////
971 //// new since 1.2.2
972 ////////////////////////////////////////////////////////////////////////////
973
974     /*! Used as a section header for IDL properties */
975     virtual QCString trProperties()
976     {
977       return "属性";
978     }
979
980     /*! Used as a section header for IDL property documentation */
981     virtual QCString trPropertyDocumentation()
982     {
983       return "属性说明";
984     }
985
986 //////////////////////////////////////////////////////////////////////////
987 // new since 1.2.4
988 //////////////////////////////////////////////////////////////////////////
989
990     /*! Used for Java classes in the summary section of Java packages */
991     virtual QCString trClasses()
992     {
993       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
994       {
995         return "结构体";
996       }
997       else
998       {
999         return "类";
1000       }
1001     }
1002
1003     /*! Used as the title of a Java package */
1004     virtual QCString trPackage(const char *name)
1005     {
1006       return (QCString)"包" CN_SPC+name;
1007     }
1008
1009     /*! Title of the package index page */
1010     virtual QCString trPackageList()
1011     {
1012       return "包列表";
1013     }
1014
1015     /*! The description of the package index page */
1016     virtual QCString trPackageListDescription()
1017     {
1018        return "这里列出所有的包,附带简要说明(如果有的话):";
1019     }
1020
1021     /*! The link name in the Quick links header for each page */
1022     virtual QCString trPackages()
1023     {
1024       return "包";
1025     }
1026
1027     /*! Text shown before a multi-line define */
1028     virtual QCString trDefineValue()
1029     {
1030       return "值:";
1031     }
1032
1033 ////////////////////////////////////////////////////////////////////////////
1034 //// new since 1.2.6
1035 ////////////////////////////////////////////////////////////////////////////
1036     virtual QCString trBug ()
1037     {
1038       return "Bug";
1039     }
1040
1041     virtual QCString trBugList ()
1042     {
1043       return "Bug" CN_SPC "列表";
1044     }
1045
1046 //////////////////////////////////////////////////////////////////////////
1047 // new since 1.2.6
1048 //////////////////////////////////////////////////////////////////////////
1049
1050     /*! Used as ansicpg for RTF file
1051      *
1052      * The following table shows the correlation of Charset name, Charset Value and
1053      * <pre>
1054      * Codepage number:
1055      * Charset Name       Charset Value(hex)  Codepage number
1056      * ------------------------------------------------------
1057      * DEFAULT_CHARSET           1 (x01)
1058      * SYMBOL_CHARSET            2 (x02)
1059      * OEM_CHARSET             255 (xFF)
1060      * ANSI_CHARSET              0 (x00)            1252
1061      * RUSSIAN_CHARSET         204 (xCC)            1251
1062      * EE_CHARSET              238 (xEE)            1250
1063      * GREEK_CHARSET           161 (xA1)            1253
1064      * TURKISH_CHARSET         162 (xA2)            1254
1065      * BALTIC_CHARSET          186 (xBA)            1257
1066      * HEBREW_CHARSET          177 (xB1)            1255
1067      * ARABIC _CHARSET         178 (xB2)            1256
1068      * SHIFTJIS_CHARSET        128 (x80)             932
1069      * HANGEUL_CHARSET         129 (x81)             949
1070      * GB2313_CHARSET          134 (x86)             936
1071      * CHINESEBIG5_CHARSET     136 (x88)             950
1072      * </pre>
1073      *
1074      */
1075     virtual QCString trRTFansicp()
1076     {
1077       return "936";
1078     }
1079
1080     /*! Used as ansicpg for RTF fcharset
1081      *  \see trRTFansicp() for a table of possible values.
1082      */
1083     virtual QCString trRTFCharSet()
1084     {
1085       return "134";
1086     }
1087
1088
1089     /*! Used as header RTF general index */
1090     virtual QCString trRTFGeneralIndex()
1091     {
1092       return "索引";
1093     }
1094
1095
1096     /*! This is used for translation of the word that will possibly
1097      *  be followed by a single name or by a list of names
1098      *  of the category.
1099      */
1100     virtual QCString trClass(bool /*first_capital*/, bool /*singular*/)
1101     {
1102       /*
1103        QCString result((first_capital ? "Class" : "class"));
1104       if (!singular)  result+="es";
1105       return result;
1106       */
1107       return "类";
1108     }
1109
1110     /*! This is used for translation of the word that will possibly
1111      *  be followed by a single name or by a list of names
1112      *  of the category.
1113      */
1114     virtual QCString trFile(bool /*first_capital*/, bool /*singular*/)
1115     {
1116       /*
1117        QCString result((first_capital ? "File" : "file"));
1118       if (!singular)  result+="s";
1119       return result;
1120       */
1121       return "文件";
1122
1123     }
1124
1125     /*! This is used for translation of the word that will possibly
1126      *  be followed by a single name or by a list of names
1127      *  of the category.
1128      */
1129     virtual QCString trNamespace(bool /*first_capital*/, bool /*singular*/)
1130     {
1131       /*
1132        QCString result((first_capital ? "Namespace" : "namespace"));
1133       if (!singular)  result+="s";
1134       return result;
1135       */
1136       return "命名空间";
1137     }
1138
1139     /*! This is used for translation of the word that will possibly
1140      *  be followed by a single name or by a list of names
1141      *  of the category.
1142      */
1143     virtual QCString trGroup(bool /*first_capital*/, bool /*singular*/)
1144     {
1145       /*
1146        QCString result((first_capital ? "Group" : "group"));
1147       if (!singular)  result+="s";
1148       return result;
1149       */
1150       return "组";
1151     }
1152
1153     /*! This is used for translation of the word that will possibly
1154      *  be followed by a single name or by a list of names
1155      *  of the category.
1156      */
1157     virtual QCString trPage(bool /*first_capital*/, bool /*singular*/)
1158     {
1159       /*
1160        QCString result((first_capital ? "Page" : "page"));
1161       if (!singular)  result+="s";
1162       return result;
1163       */
1164       return "页";
1165     }
1166
1167     /*! This is used for translation of the word that will possibly
1168      *  be followed by a single name or by a list of names
1169      *  of the category.
1170      */
1171     virtual QCString trMember(bool /*first_capital*/, bool /*singular*/)
1172     {
1173       /*
1174        QCString result((first_capital ? "Member" : "member"));
1175       if (!singular)  result+="s";
1176       return result;
1177       */
1178       return "成员";
1179     }
1180
1181     /*! This is used for translation of the word that will possibly
1182      *  be followed by a single name or by a list of names
1183      *  of the category.
1184      */
1185     virtual QCString trGlobal(bool /*first_capital*/, bool /*singular*/)
1186     {
1187       /*
1188        QCString result((first_capital ? "Global" : "global"));
1189       if (!singular)  result+="s";
1190       return result;
1191       */
1192       return "全局";
1193     }
1194
1195 //////////////////////////////////////////////////////////////////////////
1196 // new since 1.2.7
1197 //////////////////////////////////////////////////////////////////////////
1198
1199     /*! This text is generated when the \\author command is used and
1200      *  for the author section in man pages. */
1201     virtual QCString trAuthor(bool /*first_capital*/, bool /*singular*/)
1202     {
1203       /*
1204        QCString result((first_capital ? "Author" : "author"));
1205       if (!singular)  result+="s";
1206       return result;
1207       */
1208       return "作者";
1209     }
1210
1211 //////////////////////////////////////////////////////////////////////////
1212 // new since 1.2.11
1213 //////////////////////////////////////////////////////////////////////////
1214
1215     /*! This text is put before the list of members referenced by a member
1216      */
1217     virtual QCString trReferences()
1218     {
1219       return "引用了";
1220     }
1221
1222 //////////////////////////////////////////////////////////////////////////
1223 // new since 1.2.13
1224 //////////////////////////////////////////////////////////////////////////
1225
1226     /*! used in member documentation blocks to produce a list of
1227      *  members that are implemented by this one.
1228      */
1229     virtual QCString trImplementedFromList(int numEntries)
1230     {
1231       /* return "Implements "+trWriteList(numEntries)+"."; */
1232       return "实现了" CN_SPC+trWriteList(numEntries)+".";
1233     }
1234
1235     /*! used in member documentation blocks to produce a list of
1236      *  all members that implement this abstract member.
1237      */
1238     virtual QCString trImplementedInList(int numEntries)
1239     {
1240       /* return "Implemented in "+trWriteList(numEntries)+"."; */
1241       return "在" CN_SPC+trWriteList(numEntries)+CN_SPC "内被实现.";
1242     }
1243
1244 //////////////////////////////////////////////////////////////////////////
1245 // new since 1.2.16
1246 //////////////////////////////////////////////////////////////////////////
1247
1248     /*! used in RTF documentation as a heading for the Table
1249      *  of Contents.
1250      */
1251     virtual QCString trRTFTableOfContents()
1252     {
1253       /* return "Table of Contents"; */
1254       return "目录";
1255     }
1256
1257 //////////////////////////////////////////////////////////////////////////
1258 // new since 1.2.17
1259 //////////////////////////////////////////////////////////////////////////
1260
1261     /*! Used as the header of the list of item that have been
1262      *  flagged deprecated
1263      */
1264     virtual QCString trDeprecatedList()
1265     {
1266       return "弃用列表";
1267     }
1268
1269 //////////////////////////////////////////////////////////////////////////
1270 // new since 1.2.18
1271 //////////////////////////////////////////////////////////////////////////
1272
1273     /*! Used as a header for declaration section of the events found in
1274      * a C# program
1275      */
1276     virtual QCString trEvents()
1277     {
1278       return "事件";
1279     }
1280
1281     /*! Header used for the documentation section of a class' events. */
1282     virtual QCString trEventDocumentation()
1283     {
1284       return "事件说明";
1285     }
1286
1287 //////////////////////////////////////////////////////////////////////////
1288 // new since 1.3
1289 //////////////////////////////////////////////////////////////////////////
1290
1291     /*! Used as a heading for a list of Java class types with package scope.
1292      */
1293     virtual QCString trPackageTypes()
1294     {
1295       return "包类型";
1296     }
1297
1298     /*! Used as a heading for a list of Java class functions with package
1299      * scope.
1300      */
1301     virtual QCString trPackageMembers()
1302     {
1303       return "包函数";
1304     }
1305
1306     /*! Used as a heading for a list of static Java class functions with
1307      *  package scope.
1308      */
1309     virtual QCString trStaticPackageMembers()
1310     {
1311       return "静态包函数";
1312     }
1313
1314     /*! Used as a heading for a list of Java class variables with package
1315      * scope.
1316      */
1317     virtual QCString trPackageAttribs()
1318     {
1319       return "包属性";
1320     }
1321
1322     /*! Used as a heading for a list of static Java class variables with
1323      * package scope.
1324      */
1325     virtual QCString trStaticPackageAttribs()
1326     {
1327       return "静态包属性";
1328     }
1329
1330 //////////////////////////////////////////////////////////////////////////
1331 // new since 1.3.1
1332 //////////////////////////////////////////////////////////////////////////
1333
1334     /*! Used in the quick index of a class/file/namespace member list page
1335      *  to link to the unfiltered list of all members.
1336      */
1337     virtual QCString trAll()
1338     {
1339       return "全部";
1340     }
1341
1342     /*! Put in front of the call graph for a function. */
1343     virtual QCString trCallGraph()
1344     {
1345       return "函数调用图:";
1346     }
1347
1348 //////////////////////////////////////////////////////////////////////////
1349 // new since 1.3.3
1350 //////////////////////////////////////////////////////////////////////////
1351
1352     /*! This string is used as the title for the page listing the search
1353      *  results.
1354      */
1355     virtual QCString trSearchResultsTitle()
1356     {
1357       return "搜索结果";
1358     }
1359
1360     /*! This string is put just before listing the search results. The
1361      *  text can be different depending on the number of documents found.
1362      *  Inside the text you can put the special marker $num to insert
1363      *  the number representing the actual number of search results.
1364      *  The @a numDocuments parameter can be either 0, 1 or 2, where the
1365      *  value 2 represents 2 or more matches. HTML markup is allowed inside
1366      *  the returned string.
1367      */
1368     virtual QCString trSearchResults(int numDocuments)
1369     {
1370       if (numDocuments==0)
1371       {
1372         return "抱歉,未找到与您查询相符的文档.";
1373       }
1374       else if (numDocuments==1)
1375       {
1376         return "找到<b>1</b>篇与您查询相符的文档.";
1377       }
1378       else
1379       {
1380         return "找到<b>$num</b>篇与您查询相符的文档."
1381                "优先显示最符合的文档.";
1382       }
1383     }
1384     /*! This string is put before the list of matched words, for each search
1385      *  result. What follows is the list of words that matched the query.
1386      */
1387     virtual QCString trSearchMatches()
1388     {
1389       return "符合的结果:";
1390     }
1391
1392 //////////////////////////////////////////////////////////////////////////
1393 // new since 1.3.8
1394 //////////////////////////////////////////////////////////////////////////
1395
1396     /*! This is used in HTML as the title of page with source code for file filename
1397      */
1398     virtual QCString trSourceFile(QCString& filename)
1399     {
1400       /* return filename + " Source File"; */
1401       return filename + CN_SPC "源文件";
1402     }
1403 //////////////////////////////////////////////////////////////////////////
1404 // new since 1.3.9
1405 //////////////////////////////////////////////////////////////////////////
1406
1407     /*! This is used as the name of the chapter containing the directory
1408      *  hierarchy.
1409      */
1410     virtual QCString trDirIndex()
1411     {
1412       return "目录结构";
1413     }
1414
1415     /*! This is used as the name of the chapter containing the documentation
1416      *  of the directories.
1417      */
1418     virtual QCString trDirDocumentation()
1419     {
1420       return "目录说明";
1421     }
1422
1423                 /*! This is used as the title of the directory index and also in the
1424      *  Quick links of an HTML page, to link to the directory hierarchy.
1425      */
1426     virtual QCString trDirectories()
1427     { return "目录"; }
1428
1429     /*! This returns a sentences that introduces the directory hierarchy.
1430      *  and the fact that it is sorted alphabetically per level
1431      */
1432     virtual QCString trDirDescription()
1433     {
1434       return "此继承关系列表按字典顺序粗略的排序:" CN_SPC;
1435     }
1436
1437     /*! This returns the title of a directory page. The name of the
1438      *  directory is passed via \a dirName.
1439      */
1440     virtual QCString trDirReference(const char *dirName)
1441     {
1442       QCString result=dirName;
1443       result+=CN_SPC "目录参考";
1444       return result;
1445     }
1446
1447     /*! This returns the word directory with or without starting capital
1448      *  (\a first_capital) and in sigular or plural form (\a singular).
1449      */
1450     virtual QCString trDir(bool /*first_capital*/, bool /*singular*/)
1451     {
1452       return "目录";
1453     }
1454
1455 //////////////////////////////////////////////////////////////////////////
1456 // new since 1.4.1
1457 //////////////////////////////////////////////////////////////////////////
1458
1459     /*! This text is added to the documentation when the \\overload command
1460      *  is used for a overloaded function.
1461      */
1462     virtual QCString trOverloadText()
1463     {
1464       return "这是为便于使用而提供的一个重载成员函数."
1465              "与上面的函数相比,它接受不同类型的参数.";
1466     }
1467
1468 //////////////////////////////////////////////////////////////////////////
1469 // new since 1.4.6
1470 //////////////////////////////////////////////////////////////////////////
1471
1472     /*! This is used to introduce a caller (or called-by) graph */
1473     virtual QCString trCallerGraph()
1474     {
1475       return "这是这个函数的调用关系图:";
1476     }
1477
1478     /*! This is used in the documentation of a file/namespace before the list
1479      *  of documentation blocks for enumeration values
1480      */
1481     virtual QCString trEnumerationValueDocumentation()
1482     {
1483       return "枚举变量说明";
1484     }
1485
1486 //////////////////////////////////////////////////////////////////////////
1487 // new since 1.5.4 (mainly for Fortran)
1488 //////////////////////////////////////////////////////////////////////////
1489
1490     /*! header that is put before the list of member subprograms (Fortran). */
1491     virtual QCString trMemberFunctionDocumentationFortran()
1492     { return "成员函数/子程序说明"; }
1493
1494     /*! This is put above each page as a link to the list of annotated data types (Fortran). */
1495     virtual QCString trCompoundListFortran()
1496     { return "数据类型列表"; }
1497
1498     /*! This is put above each page as a link to all members of compounds (Fortran). */
1499     virtual QCString trCompoundMembersFortran()
1500     { return "数据项"; }
1501
1502     /*! This is an introduction to the annotated compound list (Fortran). */
1503     virtual QCString trCompoundListDescriptionFortran()
1504     { return "带简要描述的数据类型列表:"; }
1505
1506     /*! This is an introduction to the page with all data types (Fortran). */
1507     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
1508     {
1509       QCString result="这里列出了所有";
1510       if (!extractAll)
1511       {
1512         result+="文档化的";
1513       }
1514       result+="数据类型成员,并附带";
1515       //result+=" with links to ";
1516       if (!extractAll)
1517       {
1518         result+="其说明文档:";
1519       }
1520       else
1521       {
1522         result+="其所属的文件:";
1523       }
1524       return result;
1525     }
1526
1527     /*! This is used in LaTeX as the title of the chapter with the
1528      * annotated compound index (Fortran).
1529      */
1530     virtual QCString trCompoundIndexFortran()
1531     { return "数据类型索引"; }
1532
1533
1534     /*! This is used in LaTeX as the title of the chapter containing
1535      *  the documentation of all data types (Fortran).
1536      */
1537     virtual QCString trTypeDocumentation()
1538     { return "数据类型文档"; }
1539
1540     /*! This is used in the documentation of a file as a header before the
1541      *  list of (global) subprograms (Fortran).
1542      */
1543     virtual QCString trSubprograms()
1544     { return "函数/子程序"; }
1545
1546     /*! This is used in the documentation of a file/namespace before the list
1547      *  of documentation blocks for subprograms (Fortran)
1548      */
1549     virtual QCString trSubprogramDocumentation()
1550     { return "函数/子程序说明"; }
1551
1552
1553     /*! This is used in the documentation of a file/namespace/group before
1554      *  the list of links to documented compounds (Fortran)
1555      */
1556      virtual QCString trDataTypes()
1557     { return "数据类型"; }
1558
1559     /*! used as the title of page containing all the index of all modules (Fortran). */
1560     virtual QCString trModulesList()
1561     { return "模块列表"; }
1562
1563     /*! used as an introduction to the modules list (Fortran) */
1564     virtual QCString trModulesListDescription(bool extractAll)
1565     {
1566       QCString result="这里列出了所有";
1567       if (!extractAll) result+="文档化的";
1568       result+="模块,并附带简要说明:";
1569       return result;
1570     }
1571
1572     /*! used as the title of the HTML page of a module/type (Fortran) */
1573     virtual QCString trCompoundReferenceFortran(const char *clName,
1574                                     ClassDef::CompoundType compType,
1575                                     bool isTemplate)
1576     {
1577       QCString result=(QCString)clName;
1578       switch(compType)
1579       {
1580         case ClassDef::Class:      result+=CN_SPC "模块"; break;
1581         case ClassDef::Struct:     result+=CN_SPC "类型"; break;
1582         case ClassDef::Union:      result+=CN_SPC "联合体"; break;
1583         case ClassDef::Interface:  result+=CN_SPC "接口"; break;
1584         case ClassDef::Protocol:   result+=CN_SPC "协议"; break;
1585         case ClassDef::Category:   result+=CN_SPC "目录"; break;
1586         case ClassDef::Exception:  result+=CN_SPC "异常"; break;
1587         default: break;
1588       }
1589       if (isTemplate) result+="模板" CN_SPC;
1590       result+="参考手册";
1591       return result;
1592     }
1593
1594     /*! used as the title of the HTML page of a module (Fortran) */
1595     virtual QCString trModuleReference(const char *namespaceName)
1596     {
1597       QCString result=namespaceName;
1598       result += CN_SPC "模块参考手册";
1599       return result;
1600     }
1601
1602     /*! This is put above each page as a link to all members of modules. (Fortran) */
1603     virtual QCString trModulesMembers()
1604     { return "模块成员"; }
1605
1606     /*! This is an introduction to the page with all modules members (Fortran) */
1607     virtual QCString trModulesMemberDescription(bool extractAll)
1608     {
1609       // QCString result="Here is a list of all ";
1610       // if (!extractAll) result+="documented ";
1611       // result+="module members with links to ";
1612       // if (extractAll)
1613       // {
1614       //   result+="the module documentation for each member:";
1615       // }
1616       // else
1617       // {
1618       //   result+="the modules they belong to:";
1619       // }
1620       // return result;
1621       if(!extractAll) {
1622         return "这里是有文档的模块成员列表,含有到每个成员所在模块的文档的链接:";
1623       } else {
1624         return "这里是模块成员列表,含有到成员所属的模块的链接:";
1625       }
1626     }
1627
1628     /*! This is used in LaTeX as the title of the chapter with the
1629      *  index of all modules (Fortran).
1630      */
1631     virtual QCString trModulesIndex()
1632     // { return "Modules Index"; }
1633     { return "模块索引"; }
1634
1635     /*! This is used for translation of the word that will possibly
1636      *  be followed by a single name or by a list of names
1637      *  of the category.
1638      */
1639     virtual QCString trModule(bool, bool)
1640     {
1641       // QCString result((first_capital ? "Module" : "module"));
1642       // if (!singular)  result+="s";
1643       // return result;
1644       return "模块";
1645     }
1646     /*! This is put at the bottom of a module documentation page and is
1647      *  followed by a list of files that were used to generate the page.
1648      */
1649     virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
1650         bool)
1651     {
1652       QCString result="该";
1653       switch(compType)
1654       {
1655         case ClassDef::Class:      result+=CN_SPC "模块"; break;
1656         case ClassDef::Struct:     result+=CN_SPC "结构体"; break;
1657         case ClassDef::Union:      result+=CN_SPC "联合体"; break;
1658         case ClassDef::Interface:  result+=CN_SPC "接口"; break;
1659         case ClassDef::Protocol:   result+=CN_SPC "协议"; break;
1660         case ClassDef::Category:   result+=CN_SPC "目录"; break;
1661         case ClassDef::Exception:  result+=CN_SPC "异常"; break;
1662         default: break;
1663       }
1664       result+=CN_SPC "的文档由以下文件生成:";
1665       return result;
1666     }
1667
1668     /*! This is used for translation of the word that will possibly
1669      *  be followed by a single name or by a list of names
1670      *  of the category.
1671      */
1672     virtual QCString trType(bool, bool)
1673     {
1674       return "类型";
1675     }
1676
1677     /*! This is used for translation of the word that will possibly
1678      *  be followed by a single name or by a list of names
1679      *  of the category.
1680      */
1681     virtual QCString trSubprogram(bool, bool)
1682     {
1683       return "子程序";
1684     }
1685
1686     /*! C# Type Constraint list */
1687     virtual QCString trTypeConstraints()
1688     {
1689       return "类型限制";
1690     }
1691
1692 //////////////////////////////////////////////////////////////////////////
1693 // new since 1.6.0
1694 //////////////////////////////////////////////////////////////////////////
1695   virtual QCString trDirRelation(const char *name)
1696   {
1697     // return QCString(name)+" Relation";
1698     // unsure
1699     return QCString(name)+CN_SPC "关系";
1700   }
1701
1702     virtual QCString trLoading()
1703   {
1704     return "载入中...";
1705   }
1706
1707   virtual QCString trGlobalNamespace()
1708   {
1709     return "全局命名空间";
1710   }
1711
1712     virtual QCString trSearching()
1713   {
1714     return "搜索中...";
1715   }
1716
1717   virtual QCString trNoMatches()
1718   {
1719     return "未找到";
1720   }
1721
1722 //////////////////////////////////////////////////////////////////////////
1723 // new since 1.6.3
1724 //////////////////////////////////////////////////////////////////////////
1725
1726   virtual QCString trFileIn(const char *name)
1727   {
1728     return (QCString)"文件在"+CN_SPC+name;
1729   }
1730
1731   virtual QCString trIncludesFileIn(const char *name)
1732   {
1733     return (QCString)"在" CN_SPC+name+CN_SPC "中引用";
1734   }
1735
1736   virtual QCString trDateTime(int year,int month,int day,int dayOfWeek,
1737                                 int hour,int minutes,int seconds,
1738                                 bool includeTime)
1739   {
1740     static const char *days[]   = { "一","二","三","四","五","六","日" };
1741       static const char *months[] = { "一","二","三","四","五","六","七","八","九","十","十一","十二" };
1742
1743     QCString sdate;
1744
1745     sdate.sprintf("%d年" CN_SPC "%s月" CN_SPC "%d日" CN_SPC "星期%s",year, months[month-1], day, days[dayOfWeek-1]);
1746
1747     if (includeTime)
1748     {
1749       QCString stime;
1750       stime.sprintf(" %.2d:%.2d:%.2d",hour,minutes,seconds);
1751       sdate+=stime;
1752     }
1753     return sdate;
1754   }
1755
1756 //////////////////////////////////////////////////////////////////////////
1757 // new since 1.7.5
1758 //////////////////////////////////////////////////////////////////////////
1759
1760     /*! Header for the page with bibliographic citations */
1761     virtual QCString trCiteReferences()
1762     { return "参考书目"; }
1763
1764     /*! Text for copyright paragraph */
1765     virtual QCString trCopyright()
1766     { return "版权所有"; }
1767
1768     /*! Header for the graph showing the directory dependencies */
1769     virtual QCString trDirDepGraph(const char *name)
1770     {
1771       return QCString(name)+CN_SPC "的目录依赖关系图";
1772     }
1773
1774 //////////////////////////////////////////////////////////////////////////
1775 // new since 1.8.0
1776 //////////////////////////////////////////////////////////////////////////
1777
1778     /*! Detail level selector shown for hierarchical indices */
1779     virtual QCString trDetailLevel()
1780     { return "详情级别"; }
1781
1782     /*! Section header for list of template parameters */
1783     virtual QCString trTemplateParameters()
1784     { return "模板参数"; }
1785
1786     /*! Used in dot graph when UML_LOOK is enabled and there are many fields */
1787     virtual QCString trAndMore(const QCString &number)
1788     { return "和" CN_SPC+number+CN_SPC "更多..."; }
1789
1790     /*! Used file list for a Java enum */
1791     virtual QCString trEnumGeneratedFromFiles(bool /*single*/)
1792     { return "枚举说明文档从下列文件生成:"; }
1793
1794     /*! Header of a Java enum page (Java enums are represented as classes). */
1795     virtual QCString trEnumReference(const char *name)
1796     { return QCString(name)+CN_SPC "枚举类型参考"; }
1797
1798     /*! Used for a section containing inherited members */
1799     virtual QCString trInheritedFrom(const char *members,const char *what)
1800     { return QCString(members)+CN_SPC "继承自" CN_SPC+what; }
1801
1802     /*! Header of the sections with inherited members specific for the
1803      *  base class(es)
1804      */
1805     virtual QCString trAdditionalInheritedMembers()
1806     { return "额外继承的成员函数"; }
1807
1808 //////////////////////////////////////////////////////////////////////////
1809
1810 //////////////////////////////////////////////////////////////////////////
1811 // new since 1.8.2
1812 //////////////////////////////////////////////////////////////////////////
1813
1814     /*! Used as a tooltip for the toggle button that appears in the
1815      *  navigation tree in the HTML output when GENERATE_TREEVIEW is
1816      *  enabled. This tooltip explains the meaning of the button.
1817      */
1818     virtual QCString trPanelSynchronisationTooltip(bool enable)
1819     {
1820       QCString opt = enable ? "开启" : "关闭";
1821       return "点击" CN_SPC+opt+CN_SPC "面板同步";
1822     }
1823
1824     /*! Used in a method of an Objective-C class that is declared in a
1825      *  a category. Note that the @1 marker is required and is replaced
1826      *  by a link.
1827      */
1828     virtual QCString trProvidedByCategory()
1829     {
1830       return "由 category @0 提供.";
1831     }
1832
1833     /*! Used in a method of an Objective-C category that extends a class.
1834      *  Note that the @1 marker is required and is replaced by a link to
1835      *  the class method.
1836      */
1837     virtual QCString trExtendsClass()
1838     {
1839       return "扩展类 @0.";
1840     }
1841
1842     /*! Used as the header of a list of class methods in Objective-C.
1843      *  These are similar to static public member functions in C++.
1844      */
1845     virtual QCString trClassMethods()
1846     {
1847       return "类方法";
1848     }
1849
1850     /*! Used as the header of a list of instance methods in Objective-C.
1851      *  These are similar to public member functions in C++.
1852      */
1853     virtual QCString trInstanceMethods()
1854     {
1855       return "构造函数";
1856     }
1857
1858     /*! Used as the header of the member functions of an Objective-C class.
1859      */
1860     virtual QCString trMethodDocumentation()
1861     {
1862       return "函数文档";
1863     }
1864
1865     /*! Used as the title of the design overview picture created for the
1866      *  VHDL output.
1867      */
1868     virtual QCString trDesignOverview()
1869     {
1870       return "设计概要";
1871     }
1872
1873 //////////////////////////////////////////////////////////////////////////
1874 // new since 1.8.4
1875 //////////////////////////////////////////////////////////////////////////
1876
1877     /** old style UNO IDL services: implemented interfaces */
1878     virtual QCString trInterfaces()
1879     { return "导出的接口"; }
1880
1881     /** old style UNO IDL services: inherited services */
1882     virtual QCString trServices()
1883     { return "包含的服务"; }
1884
1885     /** UNO IDL constant groups */
1886     virtual QCString trConstantGroups()
1887     { return "常量组"; }
1888
1889     /** UNO IDL constant groups */
1890     virtual QCString trConstantGroupReference(const char *namespaceName)
1891     {
1892       QCString result=namespaceName;
1893       result+= CN_SPC "常量组参考";
1894       return result;
1895     }
1896     /** UNO IDL service page title */
1897     virtual QCString trServiceReference(const char *sName)
1898     {
1899       QCString result=(QCString)sName;
1900       result+= CN_SPC "服务参考";
1901       return result;
1902     }
1903     /** UNO IDL singleton page title */
1904     virtual QCString trSingletonReference(const char *sName)
1905     {
1906       QCString result=(QCString)sName;
1907       result+= CN_SPC "单例参考";
1908       return result;
1909     }
1910     /** UNO IDL service page */
1911     virtual QCString trServiceGeneratedFromFiles(bool single)
1912     {
1913       // single is true implies a single file
1914       return "该服务的文档由下列文件生成:";
1915     }
1916     /** UNO IDL singleton page */
1917     virtual QCString trSingletonGeneratedFromFiles(bool single)
1918     {
1919       // single is true implies a single file
1920       return "该单例的文档由下列文件生成:";
1921     }
1922
1923 //////////////////////////////////////////////////////////////////////////
1924 };
1925
1926 #endif
1927