a0046b04d978a5d9fbc63e8f298ee82a464059b6
[platform/upstream/doxygen.git] / src / translator_vi.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_VI_H
19 #define TRANSLATOR_VI_H
20
21 /*
22  * 17 Oct 2008 : Translation to Vietnamese by
23  *               Đặng Minh Tuấn <tuanvietkey@gmail.com>
24  *
25  */
26
27
28 /*!
29  When defining a translator class for the new language, follow
30  the description in the documentation.  One of the steps says
31  that you should copy the translator_en.h (this) file to your
32  translator_xx.h new file.  Your new language should use the
33  Translator class as the base class.  This means that you need to
34  implement exactly the same (pure virtual) methods as the
35  TranslatorEnglish does.  Because of this, it is a good idea to
36  start with the copy of TranslatorEnglish and replace the strings
37  one by one.
38
39  It is not necessary to include "translator.h" or
40  "translator_adapter.h" here.  The files are included in the
41  language.cpp correctly.  Not including any of the mentioned
42  files frees the maintainer from thinking about whether the
43  first, the second, or both files should be included or not, and
44  why.  This holds namely for localized translators because their
45  base class is changed occasionaly to adapter classes when the
46  Translator class changes the interface, or back to the
47  Translator class (by the local maintainer) when the localized
48  translator is made up-to-date again.
49 */
50 class TranslatorVietnamese : public TranslatorAdapter_1_6_0
51 {
52   public:
53
54     // --- Language control methods -------------------
55
56     /*! Used for identification of the language. The identification
57      * should not be translated. It should be replaced by the name
58      * of the language in English using lower-case characters only
59      * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
60      * the identification used in language.cpp.
61      */
62     virtual QCString idLanguage()
63     { return "vietnamese"; }
64
65     /*! Used to get the LaTeX command(s) for the language support.
66      *  This method should return string with commands that switch
67      *  LaTeX to the desired language.  For example
68      *  <pre>"\\usepackage[german]{babel}\n"
69      *  </pre>
70      *  or
71      *  <pre>"\\usepackage{polski}\n"
72      *  "\\usepackage[latin2]{inputenc}\n"
73      *  "\\usepackage[T1]{fontenc}\n"
74      *  </pre>
75      *
76      * The English LaTeX does not use such commands.  Because of this
77      * the empty string is returned in this implementation.
78      */
79     virtual QCString latexLanguageSupportCommand()
80     {
81       return "";
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 "Những hàm liên quan"; }
89
90     /*! subscript for the related functions. */
91     virtual QCString trRelatedSubscript()
92     { return "(Chú ý những hàm này không phải là hàm thành viên.)"; }
93
94     /*! header that is put before the detailed description of files, classes and namespaces. */
95     virtual QCString trDetailedDescription()
96     { return "Mô tả chi tiết"; }
97
98     /*! header that is put before the list of typedefs. */
99     virtual QCString trMemberTypedefDocumentation()
100     { return "Thông tin về Member Typedef"; }
101
102     /*! header that is put before the list of enumerations. */
103     virtual QCString trMemberEnumerationDocumentation()
104     { return "Thông tin về Member Enumeration"; }
105
106     /*! header that is put before the list of member functions. */
107     virtual QCString trMemberFunctionDocumentation()
108     { return "Thông tin về hàm thành viên"; }
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 "Thông tin về trường";
116       }
117       else
118       {
119         return "Thông tin về Member Data";
120       }
121     }
122
123     /*! this is the text of a link put after brief descriptions. */
124     virtual QCString trMore()
125     { return "Tiếp..."; }
126
127     /*! put in the class documentation */
128     virtual QCString trListOfAllMembers()
129     { return "Liệt kê tất cả các thành viên"; }
130
131     /*! used as the title of the "list of all members" page of a class */
132     virtual QCString trMemberList()
133     { return "Danh sách thành viên"; }
134
135     /*! this is the first part of a sentence that is followed by a class name */
136     virtual QCString trThisIsTheListOfAllMembers()
137     { return "Danh sách các thành viên đầy đủ cho "; }
138
139     /*! this is the remainder of the sentence after the class name */
140     virtual QCString trIncludingInheritedMembers()
141     { return ", cùng với tất cả các thành viên kế thừa."; }
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="Được tạo ra bởi Doxygen";
148       if (s) result+=(QCString)" cho "+s;
149       result+=" từ mã nguồn.";
150       return result;
151     }
152
153     /*! put after an enum name in the list of all members */
154     virtual QCString trEnumName()
155     { return "tên enum"; }
156
157     /*! put after an enum value in the list of all members */
158     virtual QCString trEnumValue()
159     { return "giá trị enum"; }
160
161     /*! put after an undocumented member in the list of all members */
162     virtual QCString trDefinedIn()
163     { return "được định nghĩa trong"; }
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 "Các Modules"; }
172
173     /*! This is put above each page as a link to the class hierarchy */
174     virtual QCString trClassHierarchy()
175     { return "Kiến trúc Class"; }
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 "Cấu trúc cơ sở dữ liệu (Data Structures)";
183       }
184       else
185       {
186         return "Danh mục các Class";
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 "Danh mục File"; }
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 "Các trường dữ liệu";
200       }
201       else
202       {
203         return "Các thành viên của Class";
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 "Toàn cục";
213       }
214       else
215       {
216         return "File thành viên";
217       }
218     }
219
220     /*! This is put above each page as a link to all related pages. */
221     virtual QCString trRelatedPages()
222     { return "Các trang liên quan"; }
223
224     /*! This is put above each page as a link to all examples. */
225     virtual QCString trExamples()
226     { return "Các ví dụ"; }
227
228     /*! This is put above each page as a link to the search engine. */
229     virtual QCString trSearch()
230     { return "Tìm kiếm"; }
231
232     /*! This is an introduction to the class hierarchy. */
233     virtual QCString trClassHierarchyDescription()
234     { return "Danh sách kế thừa đã được sắp xếp theo ABC, "
235              "nhưng chưa đầy đủ:";
236     }
237
238     /*! This is an introduction to the list with all files. */
239     virtual QCString trFileListDescription(bool extractAll)
240     {
241       QCString result="Danh mục đầy đủ tất cả các ";
242       if (!extractAll) result+="(đã được biên soạn) ";
243       result+="files cùng với các mô tả tóm tắt:";
244       return result;
245     }
246
247     /*! This is an introduction to the annotated compound list. */
248     virtual QCString trCompoundListDescription()
249     {
250
251       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
252       {
253         return "Đây là cấu trúc cơ sở dữ liệu với mô tả tóm tắt:";
254       }
255       else
256       {
257         return "Đây là các classes, structs, "
258                "unions và interfaces với các mô tả tóm tắt:";
259       }
260     }
261
262     /*! This is an introduction to the page with all class members. */
263     virtual QCString trCompoundMembersDescription(bool extractAll)
264     {
265       QCString result="Danh mục tất cả các ";
266       if (!extractAll)
267       {
268         result+="(đã được mô tả) ";
269       }
270       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
271       {
272         result+="struct và union fields";
273       }
274       else
275       {
276         result+="class members";
277       }
278       result+=" cùng với các các liên kết đến ";
279       if (!extractAll)
280       {
281         if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
282         {
283           result+="Thông tin về struct/union cho từng trường:";
284         }
285         else
286         {
287           result+="Thông tin về class cho từng thành viên:";
288         }
289       }
290       else
291       {
292         if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
293         {
294           result+="các structures/unions thuộc:";
295         }
296         else
297         {
298           result+="các lớp thuộc:";
299         }
300       }
301       return result;
302     }
303
304     /*! This is an introduction to the page with all file members. */
305     virtual QCString trFileMembersDescription(bool extractAll)
306     {
307       QCString result="Danh sách tất cả các ";
308       if (!extractAll) result+="(đã được mô tat) ";
309
310       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
311       {
312         result+="functions, variables, defines, enums, và typedefs";
313       }
314       else
315       {
316         result+="các file thành viên";
317       }
318       result+=" cùng với links tới ";
319       if (extractAll)
320         result+="các files thuộc:";
321       else
322         result+="tài liệu:";
323       return result;
324     }
325
326     /*! This is an introduction to the page with the list of all examples */
327     virtual QCString trExamplesDescription()
328     { return "Danh sách tất cả các ví dụ:"; }
329
330     /*! This is an introduction to the page with the list of related pages */
331     virtual QCString trRelatedPagesDescription()
332     { return "Danh sách tất cả các trang Thông tin có liên quan:"; }
333
334     /*! This is an introduction to the page with the list of class/file groups */
335     virtual QCString trModulesDescription()
336     { return "Danh sách tất cả các thành viên:"; }
337
338     // index titles (the project name is prepended for these)
339
340     /*! This is used in HTML as the title of index.html. */
341     virtual QCString trDocumentation()
342     { return "Thông tin"; }
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 "Chỉ mục (Index) Module"; }
349
350     /*! This is used in LaTeX as the title of the chapter with the
351      * class hierarchy.
352      */
353     virtual QCString trHierarchicalIndex()
354     { return "Hierarchical Index"; }
355
356     /*! This is used in LaTeX as the title of the chapter with the
357      * annotated compound index.
358      */
359     virtual QCString trCompoundIndex()
360     {
361       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
362       {
363         return "Index cấu trúc cơ sở dữ liệu";
364       }
365       else
366       {
367         return "Class Index";
368       }
369     }
370
371     /*! This is used in LaTeX as the title of the chapter with the
372      * list of all files.
373      */
374     virtual QCString trFileIndex()
375     { return "File Index"; }
376
377     /*! This is used in LaTeX as the title of the chapter containing
378      *  the documentation of all groups.
379      */
380     virtual QCString trModuleDocumentation()
381     { return "Thông tin về các Module"; }
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 "Thông tin về cấu trúc cơ sở dữ liệu";
391       }
392       else
393       {
394         return "Thông tin về Class";
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 "Thông tin về File"; }
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 "Thông tin về các ví dụ"; }
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 "Trang Thông tin"; }
415
416     /*! This is used in LaTeX as the title of the document */
417     virtual QCString trReferenceManual()
418     { return "Thông tin tham chiếu"; }
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 "Định nghĩa"; }
425
426     /*! This is used in the documentation of a file as a header before the
427      *  list of typedefs
428      */
429     virtual QCString trTypedefs()
430     { return "Typedefs"; }
431
432     /*! This is used in the documentation of a file as a header before the
433      *  list of enumerations
434      */
435     virtual QCString trEnumerations()
436     { return "Enumerations"; }
437
438     /*! This is used in the documentation of a file as a header before the
439      *  list of (global) functions
440      */
441     virtual QCString trFunctions()
442     { return "Các hàm"; }
443
444     /*! This is used in the documentation of a file as a header before the
445      *  list of (global) variables
446      */
447     virtual QCString trVariables()
448     { return "Các biến"; }
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 trEnumerationValues()
454     { return "Enumerator"; }
455
456     /*! This is used in the documentation of a file before the list of
457      *  documentation blocks for defines
458      */
459     virtual QCString trDefineDocumentation()
460     { return "Thông tin về định nghĩa"; }
461
462     /*! This is used in the documentation of a file/namespace before the list
463      *  of documentation blocks for typedefs
464      */
465     virtual QCString trTypedefDocumentation()
466     { return "Thông tin về Typedef"; }
467
468     /*! This is used in the documentation of a file/namespace before the list
469      *  of documentation blocks for enumeration types
470      */
471     virtual QCString trEnumerationTypeDocumentation()
472     { return "Thông tin về Enumeration Type"; }
473
474     /*! This is used in the documentation of a file/namespace before the list
475      *  of documentation blocks for functions
476      */
477     virtual QCString trFunctionDocumentation()
478     { return "Thông tin về hàm"; }
479
480     /*! This is used in the documentation of a file/namespace before the list
481      *  of documentation blocks for variables
482      */
483     virtual QCString trVariableDocumentation()
484     { return "Thông tin về các biến"; }
485
486     /*! This is used in the documentation of a file/namespace/group before
487      *  the list of links to documented compounds
488      */
489     virtual QCString trCompounds()
490     {
491       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
492       {
493         return "Cấu trúc cơ sở dữ liệu";
494       }
495       else
496       {
497         return "Classes";
498       }
499     }
500
501     /*! This is used in the standard footer of each page and indicates when
502      *  the page was generated
503      */
504     virtual QCString trGeneratedAt(const char *date,const char *projName)
505     {
506       QCString result=(QCString)"Được biên soạn vào "+date;
507       if (projName) result+=(QCString)" cho mã nguồn dự án "+projName;
508       result+=(QCString)" bởi";
509       return result;
510     }
511
512     /*! this text is put before a class diagram */
513     virtual QCString trClassDiagram(const char *clName)
514     {
515       return (QCString)"Sơ đồ kế thừa cho "+clName+":";
516     }
517
518     /*! this text is generated when the \\internal command is used. */
519     virtual QCString trForInternalUseOnly()
520     { return "Chỉ cho sử dụng nội bộ."; }
521
522     /*! this text is generated when the \\warning command is used. */
523     virtual QCString trWarning()
524     { return "Lưu ý"; }
525
526     /*! this text is generated when the \\version command is used. */
527     virtual QCString trVersion()
528     { return "Phiên bản"; }
529
530     /*! this text is generated when the \\date command is used. */
531     virtual QCString trDate()
532     { return "Ngày"; }
533
534     /*! this text is generated when the \\return command is used. */
535     virtual QCString trReturns()
536     { return "Giá trị trả về"; }
537
538     /*! this text is generated when the \\sa command is used. */
539     virtual QCString trSeeAlso()
540     { return "Xem thêm"; }
541
542     /*! this text is generated when the \\param command is used. */
543     virtual QCString trParameters()
544     { return "Các tham số"; }
545
546     /*! this text is generated when the \\exception command is used. */
547     virtual QCString trExceptions()
548     { return "Exceptions"; }
549
550     /*! this text is used in the title page of a LaTeX document. */
551     virtual QCString trGeneratedBy()
552     { return "Được biên soạn bởi"; }
553
554 //////////////////////////////////////////////////////////////////////////
555 // new since 0.49-990307
556 //////////////////////////////////////////////////////////////////////////
557
558     /*! used as the title of page containing all the index of all namespaces. */
559     virtual QCString trNamespaceList()
560     { return "Danh sách Namespace"; }
561
562     /*! used as an introduction to the namespace list */
563     virtual QCString trNamespaceListDescription(bool extractAll)
564     {
565       QCString result="Danh sách tất cả các ";
566       if (!extractAll) result+="(đã được biên tập) ";
567       result+="namespaces với mô tả tóm tắt:";
568       return result;
569     }
570
571     /*! used in the class documentation as a header before the list of all
572      *  friends of a class
573      */
574     virtual QCString trFriends()
575     { return "Friends"; }
576
577 //////////////////////////////////////////////////////////////////////////
578 // new since 0.49-990405
579 //////////////////////////////////////////////////////////////////////////
580
581     /*! used in the class documentation as a header before the list of all
582      * related classes
583      */
584     virtual QCString trRelatedFunctionDocumentation()
585     { return "Thông tin về Friends và các hàm liên quan"; }
586
587 //////////////////////////////////////////////////////////////////////////
588 // new since 0.49-990425
589 //////////////////////////////////////////////////////////////////////////
590
591     /*! used as the title of the HTML page of a class/struct/union */
592     virtual QCString trCompoundReference(const char *clName,
593                                     ClassDef::CompoundType compType,
594                                     bool isTemplate)
595     {
596       QCString result=(QCString)clName;
597       switch(compType)
598       {
599         case ClassDef::Class:      result+=" Class"; break;
600         case ClassDef::Struct:     result+=" Struct"; break;
601         case ClassDef::Union:      result+=" Union"; break;
602         case ClassDef::Interface:  result+=" Interface"; break;
603         case ClassDef::Protocol:   result+=" Protocol"; break;
604         case ClassDef::Category:   result+=" Category"; break;
605         case ClassDef::Exception:  result+=" Exception"; break;
606         default: break;
607       }
608       if (isTemplate) result+=" Template";
609       result+=" Tham chiếu";
610       return result;
611     }
612
613     /*! used as the title of the HTML page of a file */
614     virtual QCString trFileReference(const char *fileName)
615     {
616       QCString result=fileName;
617       result+=" File Tham chiếu";
618       return result;
619     }
620
621     /*! used as the title of the HTML page of a namespace */
622     virtual QCString trNamespaceReference(const char *namespaceName)
623     {
624       QCString result=namespaceName;
625       result+=" Namespace Tham chiếu";
626       return result;
627     }
628
629     virtual QCString trPublicMembers()
630     { return "Các hàm thành viên Public"; }
631     virtual QCString trPublicSlots()
632     { return "Public Slots"; }
633     virtual QCString trSignals()
634     { return "Signals"; }
635     virtual QCString trStaticPublicMembers()
636     { return "Các hàm Static Public"; }
637     virtual QCString trProtectedMembers()
638     { return "Các hàm thành viên Protected"; }
639     virtual QCString trProtectedSlots()
640     { return "Protected Slots"; }
641     virtual QCString trStaticProtectedMembers()
642     { return "Các hàm thành viên Static Protected"; }
643     virtual QCString trPrivateMembers()
644     { return "Các hàm thành viên Private"; }
645     virtual QCString trPrivateSlots()
646     { return "Private Slots"; }
647     virtual QCString trStaticPrivateMembers()
648     { return "Các hàm thành viên Static Private"; }
649
650     /*! this function is used to produce a comma-separated list of items.
651      *  use generateMarker(i) to indicate where item i should be put.
652      */
653     virtual QCString trWriteList(int numEntries)
654     {
655       QCString result;
656       int i;
657       // the inherits list contain `numEntries' classes
658       for (i=0;i<numEntries;i++)
659       {
660         // use generateMarker to generate placeholders for the class links!
661         result+=generateMarker(i); // generate marker for entry i in the list
662                                    // (order is left to right)
663
664         if (i!=numEntries-1)  // not the last entry, so we need a separator
665         {
666           if (i<numEntries-2) // not the fore last entry
667             result+=", ";
668           else                // the fore last entry
669             result+=", và ";
670         }
671       }
672       return result;
673     }
674
675     /*! used in class documentation to produce a list of base classes,
676      *  if class diagrams are disabled.
677      */
678     virtual QCString trInheritsList(int numEntries)
679     {
680       return "Kế thừa "+trWriteList(numEntries)+".";
681     }
682
683     /*! used in class documentation to produce a list of super classes,
684      *  if class diagrams are disabled.
685      */
686     virtual QCString trInheritedByList(int numEntries)
687     {
688       return "Được kế thừa bởi "+trWriteList(numEntries)+".";
689     }
690
691     /*! used in member documentation blocks to produce a list of
692      *  members that are hidden by this one.
693      */
694     virtual QCString trReimplementedFromList(int numEntries)
695     {
696       return "Được thực thi lại từ "+trWriteList(numEntries)+".";
697     }
698
699     /*! used in member documentation blocks to produce a list of
700      *  all member that overwrite the implementation of this member.
701      */
702     virtual QCString trReimplementedInList(int numEntries)
703     {
704       return "Được thực thi lại trong "+trWriteList(numEntries)+".";
705     }
706
707     /*! This is put above each page as a link to all members of namespaces. */
708     virtual QCString trNamespaceMembers()
709     { return "Thành viên Namespace"; }
710
711     /*! This is an introduction to the page with all namespace members */
712     virtual QCString trNamespaceMemberDescription(bool extractAll)
713     {
714       QCString result="Danh sách tất cả các ";
715       if (!extractAll) result+="(đã được biên soạn) ";
716       result+="các thành viên namespace cùng với link tới ";
717       if (extractAll)
718         result+="Thông tin namespace cho từng thành viên:";
719       else
720         result+=" namespaces mà phụ thuộc bởi:";
721       return result;
722     }
723     /*! This is used in LaTeX as the title of the chapter with the
724      *  index of all namespaces.
725      */
726     virtual QCString trNamespaceIndex()
727     { return "Namespace Index"; }
728
729     /*! This is used in LaTeX as the title of the chapter containing
730      *  the documentation of all namespaces.
731      */
732     virtual QCString trNamespaceDocumentation()
733     { return "Thông tin về Namespace"; }
734
735 //////////////////////////////////////////////////////////////////////////
736 // new since 0.49-990522
737 //////////////////////////////////////////////////////////////////////////
738
739     /*! This is used in the documentation before the list of all
740      *  namespaces in a file.
741      */
742     virtual QCString trNamespaces()
743     { return "Namespaces"; }
744
745 //////////////////////////////////////////////////////////////////////////
746 // new since 0.49-990728
747 //////////////////////////////////////////////////////////////////////////
748
749     /*! This is put at the bottom of a class documentation page and is
750      *  followed by a list of files that were used to generate the page.
751      */
752     virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,bool)
753     { // here s is one of " Class", " Struct" or " Union"
754       // single is true implies a single file
755       QCString result=(QCString)"Thông tin cho ";
756       switch(compType)
757       {
758         case ClassDef::Class:      result+="class"; break;
759         case ClassDef::Struct:     result+="struct"; break;
760         case ClassDef::Union:      result+="union"; break;
761         case ClassDef::Interface:  result+="interface"; break;
762         case ClassDef::Protocol:   result+="protocol"; break;
763         case ClassDef::Category:   result+="category"; break;
764         case ClassDef::Exception:  result+="exception"; break;
765         default: break;
766       }
767       result+=" được biên soạn từ các file sau đây";
768       result+=":";
769       return result;
770     }
771
772 //////////////////////////////////////////////////////////////////////////
773 // new since 0.49-990901
774 //////////////////////////////////////////////////////////////////////////
775
776     /*! This is used as the heading text for the retval command. */
777     virtual QCString trReturnValues()
778     { return "Các giá trị trả về"; }
779
780     /*! This is in the (quick) index as a link to the main page (index.html)
781      */
782     virtual QCString trMainPage()
783     { return "Tranh chính"; }
784
785     /*! This is used in references to page that are put in the LaTeX
786      *  documentation. It should be an abbreviation of the word page.
787      */
788     virtual QCString trPageAbbreviation()
789     { return "tr."; }
790
791 //////////////////////////////////////////////////////////////////////////
792 // new since 0.49-991003
793 //////////////////////////////////////////////////////////////////////////
794
795     virtual QCString trDefinedAtLineInSourceFile()
796     {
797       return "Định nghĩa tại dòng @0 trong file @1.";
798     }
799     virtual QCString trDefinedInSourceFile()
800     {
801       return "Định nghĩa trong file @0.";
802     }
803
804 //////////////////////////////////////////////////////////////////////////
805 // new since 0.49-991205
806 //////////////////////////////////////////////////////////////////////////
807
808     virtual QCString trDeprecated()
809     {
810       return "Không tán thành";
811     }
812
813 //////////////////////////////////////////////////////////////////////////
814 // new since 1.0.0
815 //////////////////////////////////////////////////////////////////////////
816
817     /*! this text is put before a collaboration diagram */
818     virtual QCString trCollaborationDiagram(const char *clName)
819     {
820       return (QCString)"Sơ đồ liên kết cho "+clName+":";
821     }
822     /*! this text is put before an include dependency graph */
823     virtual QCString trInclDepGraph(const char *fName)
824     {
825       return (QCString)"Kèm theo graph phụ thuộc cho "+fName+":";
826     }
827     /*! header that is put before the list of constructor/destructors. */
828     virtual QCString trConstructorDocumentation()
829     {
830       return "Thông tin về Constructor và Destructor";
831     }
832     /*! Used in the file documentation to point to the corresponding sources. */
833     virtual QCString trGotoSourceCode()
834     {
835       return "Tới mã nguồn của file này.";
836     }
837     /*! Used in the file sources to point to the corresponding documentation. */
838     virtual QCString trGotoDocumentation()
839     {
840       return "Tới Thông tin của file này.";
841     }
842     /*! Text for the \\pre command */
843     virtual QCString trPrecondition()
844     {
845       return "Điều kiện trước";
846     }
847     /*! Text for the \\post command */
848     virtual QCString trPostcondition()
849     {
850       return "Điều kiện sau";
851     }
852     /*! Text for the \\invariant command */
853     virtual QCString trInvariant()
854     {
855       return "Bất biến";
856     }
857     /*! Text shown before a multi-line variable/enum initialization */
858     virtual QCString trInitialValue()
859     {
860       return "Giá trị khởi tạo:";
861     }
862     /*! Text used the source code in the file index */
863     virtual QCString trCode()
864     {
865       return "mã nguồn";
866     }
867     virtual QCString trGraphicalHierarchy()
868     {
869       return "Kiến trúc đồ họa của Class";
870     }
871     virtual QCString trGotoGraphicalHierarchy()
872     {
873       return "Tới kiến trúc đồ họa của Class";
874     }
875     virtual QCString trGotoTextualHierarchy()
876     {
877       return "Tới kiến trúc text của Class";
878     }
879     virtual QCString trPageIndex()
880     {
881       return "Chỉ mục trang";
882     }
883
884 //////////////////////////////////////////////////////////////////////////
885 // new since 1.1.0
886 //////////////////////////////////////////////////////////////////////////
887
888     virtual QCString trNote()
889     {
890       return "Ghi chú";
891     }
892     virtual QCString trPublicTypes()
893     {
894       return "Public Types";
895     }
896     virtual QCString trPublicAttribs()
897     {
898       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
899       {
900         return "các trường đữ liệu";
901       }
902       else
903       {
904         return "Các thuộc tính Public";
905       }
906     }
907     virtual QCString trStaticPublicAttribs()
908     {
909       return "Các thuộc tính Static Public";
910     }
911     virtual QCString trProtectedTypes()
912     {
913       return "Các kiểu Protected";
914     }
915     virtual QCString trProtectedAttribs()
916     {
917       return "các thuộc tính Protected";
918     }
919     virtual QCString trStaticProtectedAttribs()
920     {
921       return "Các thuộc tính Static Protected";
922     }
923     virtual QCString trPrivateTypes()
924     {
925       return "Các kiểu Private";
926     }
927     virtual QCString trPrivateAttribs()
928     {
929       return "Các thuộc tính Private";
930     }
931     virtual QCString trStaticPrivateAttribs()
932     {
933       return "Các thuộc tính Static Private";
934     }
935
936 //////////////////////////////////////////////////////////////////////////
937 // new since 1.1.3
938 //////////////////////////////////////////////////////////////////////////
939
940     /*! Used as a marker that is put before a \\todo item */
941     virtual QCString trTodo()
942     {
943       return "Mục tiêu";
944     }
945     /*! Used as the header of the todo list */
946     virtual QCString trTodoList()
947     {
948       return "Danh sách hàng mục cần thực hiện";
949     }
950
951 //////////////////////////////////////////////////////////////////////////
952 // new since 1.1.4
953 //////////////////////////////////////////////////////////////////////////
954
955     virtual QCString trReferencedBy()
956     {
957       return "Tham chiếu bởi";
958     }
959     virtual QCString trRemarks()
960     {
961       return "Ghi chú";
962     }
963     virtual QCString trAttention()
964     {
965       return "Chú ý";
966     }
967     virtual QCString trInclByDepGraph()
968     {
969       return "Đồ thị này biểu thị những file nào trực tiếp hoặc"
970              "không trực tiếp bao gồm file này:";
971     }
972     virtual QCString trSince()
973     {
974       return "Từ";
975     }
976
977 //////////////////////////////////////////////////////////////////////////
978 // new since 1.1.5
979 //////////////////////////////////////////////////////////////////////////
980
981     /*! title of the graph legend page */
982     virtual QCString trLegendTitle()
983     {
984       return "Chú giải Graph";
985     }
986     /*! page explaining how the dot graph's should be interpreted
987      *  The %A in the text below are to prevent link to classes called "A".
988      */
989     virtual QCString trLegendDocs()
990     {
991       return
992         "Trang này giải nghĩa các biểu đồ được biên soạn bởi "
993         " doxygen.<p>\n"
994         "Hãy xem xét các ví dụ sau:\n"
995         "\\code\n"
996         "/*! Các lướp không thấy được bởi sự cắt ngắn */\n"
997         "Lớp không nhìn thấy class { };\n\n"
998         "/*! class bị cắt, quan hệ kế thừa bị ẩn */\n"
999         "class bị cắt : bị ẩn toàn cục { };\n\n"
1000         "/* Class không được mô tả với các chú giải doxygen */\n"
1001         "class không được mô tả { };\n\n"
1002         "/*! Class được kế thừa sử dụng các kế thừa public */\n"
1003         "class PublicBase : public Truncated { };\n\n"
1004         "/*!  template class */\n"
1005         "template<class T> class Templ { };\n\n"
1006         "/*! Class được kế thừa sử dụng kế thừa protected */\n"
1007         "class ProtectedBase { };\n\n"
1008         "/*! Class được kế thừa sử dụng kế thừa protected private */\n"
1009         "class PrivateBase { };\n\n"
1010         "/*! Class được sử dụng bởi các class kế thừa */\n"
1011         "class được sử dụng { };\n\n"
1012         "/*! Super class kế thừa một số các class khác */\n"
1013         "class được kế thừa : public PublicBase,\n"
1014         "                  protected ProtectedBase,\n"
1015         "                  private PrivateBase,\n"
1016         "                  public Undocumented,\n"
1017         "                  public Templ<int>\n"
1018         "{\n"
1019         "  private:\n"
1020         "    Used *m_usedClass;\n"
1021         "};\n"
1022         "\\endcode\n"
1023         "Kết quả trong biểu đồ sau đây:"
1024         "<p><center><img alt=\"\" src=\"graph_legend."+getDotImageExtension()+"\"></center>\n"
1025         "<p>\n"
1026         "Các hộp trong biểu đồ trên có ý nghĩa như sau:\n"
1027         "<ul>\n"
1028         "<li>%Hộp màu xám biểu thị cấu trúc clas cho "
1029         "biểu đồ được thể hiện.\n"
1030         "<li>%Hộp có khung mầu đen biểu thị struct hoặc class được mô tả.\n"
1031         "<li>%Hộp có khung mầu xám biểu thị struct hoặc class chưa được mô tả.\n"
1032         "<li>%Hộp có khung mầu đỏ biểu thị struct hoặc class được mổ tả "
1033         "khi mà không phải tất cả các quan hệ kế thừa/containment được biển diễn.. %Biểu đồ bị "
1034         "cắt nếu nó không nằm trọn trong các biên được cho trước..\n"
1035         "</ul>\n"
1036         "Các mũi tên có ý nghĩa như sau::\n"
1037         "<ul>\n"
1038         "<li>%Mũi tên mầu xanh đậm biểu thị các quan hệ kế thừa công khai "
1039         "giữa 2 class.\n"
1040         "<li>%Mũi tên màu xanh lá cây đậm biểu thị kế thừa được bảo về (protected).\n"
1041         "<li>%Mũi tên đỏ đậm biểu thị kế thừa dạng private.\n"
1042         "<li>%Mũi tên màu hồng đứt quảng biểu thị class được sử dụng "
1043         "bởi class khác. Mũi tên được gán nhãn với các giá trị "
1044         "mà các calsss hoặc struct được truy cập tới.\n"
1045         "<li>%Mũi tên vàng đắt quãng được thị quan hệ giữa template instance và "
1046         "template class được dẫn xuất từ đó. Mũi tên được gán nhãn với "
1047         "tham số của template.\n"
1048         "</ul>\n";
1049     }
1050     /*! text for the link to the legend page */
1051     virtual QCString trLegend()
1052     {
1053       return "Chú giải";
1054     }
1055
1056 //////////////////////////////////////////////////////////////////////////
1057 // new since 1.2.0
1058 //////////////////////////////////////////////////////////////////////////
1059
1060     /*! Used as a marker that is put before a test item */
1061     virtual QCString trTest()
1062     {
1063       return "Test";
1064     }
1065     /*! Used as the header of the test list */
1066     virtual QCString trTestList()
1067     {
1068       return "Danh sách Test";
1069     }
1070
1071 //////////////////////////////////////////////////////////////////////////
1072 // new since 1.2.2
1073 //////////////////////////////////////////////////////////////////////////
1074
1075     /*! Used as a section header for IDL properties */
1076     virtual QCString trProperties()
1077     {
1078       return "Thuộc tính";
1079     }
1080     /*! Used as a section header for IDL property documentation */
1081     virtual QCString trPropertyDocumentation()
1082     {
1083       return "Thông tin thuộc tính (Property)";
1084     }
1085
1086 //////////////////////////////////////////////////////////////////////////
1087 // new since 1.2.4
1088 //////////////////////////////////////////////////////////////////////////
1089
1090     /*! Used for Java classes in the summary section of Java packages */
1091     virtual QCString trClasses()
1092     {
1093       if (Config_getBool(OPTIMIZE_OUTPUT_FOR_C))
1094       {
1095         return "Cấu trúc dữ liệu";
1096       }
1097       else
1098       {
1099         return "Classes";
1100       }
1101     }
1102     /*! Used as the title of a Java package */
1103     virtual QCString trPackage(const char *name)
1104     {
1105       return (QCString)"Gói "+name;
1106     }
1107     /*! Title of the package index page */
1108     virtual QCString trPackageList()
1109     {
1110       return "Danh sách gói";
1111     }
1112     /*! The description of the package index page */
1113     virtual QCString trPackageListDescription()
1114     {
1115       return "Danh sách các gói cùng với mô tả tóm tắt (khi có thể có):";
1116     }
1117     /*! The link name in the Quick links header for each page */
1118     virtual QCString trPackages()
1119     {
1120       return "Các gói";
1121     }
1122     /*! Text shown before a multi-line define */
1123     virtual QCString trDefineValue()
1124     {
1125       return "Giá trị:";
1126     }
1127
1128 //////////////////////////////////////////////////////////////////////////
1129 // new since 1.2.5
1130 //////////////////////////////////////////////////////////////////////////
1131
1132     /*! Used as a marker that is put before a \\bug item */
1133     virtual QCString trBug()
1134     {
1135       return "Lỗi";
1136     }
1137     /*! Used as the header of the bug list */
1138     virtual QCString trBugList()
1139     {
1140       return "Danh sách lỗi";
1141     }
1142
1143 //////////////////////////////////////////////////////////////////////////
1144 // new since 1.2.6
1145 //////////////////////////////////////////////////////////////////////////
1146
1147     /*! Used as ansicpg for RTF file
1148      *
1149      * The following table shows the correlation of Charset name, Charset Value and
1150      * <pre>
1151      * Codepage number:
1152      * Charset Name       Charset Value(hex)  Codepage number
1153      * ------------------------------------------------------
1154      * DEFAULT_CHARSET           1 (x01)
1155      * SYMBOL_CHARSET            2 (x02)
1156      * OEM_CHARSET             255 (xFF)
1157      * ANSI_CHARSET              0 (x00)            1252
1158      * RUSSIAN_CHARSET         204 (xCC)            1251
1159      * EE_CHARSET              238 (xEE)            1250
1160      * GREEK_CHARSET           161 (xA1)            1253
1161      * TURKISH_CHARSET         162 (xA2)            1254
1162      * BALTIC_CHARSET          186 (xBA)            1257
1163      * HEBREW_CHARSET          177 (xB1)            1255
1164      * ARABIC _CHARSET         178 (xB2)            1256
1165      * SHIFTJIS_CHARSET        128 (x80)             932
1166      * HANGEUL_CHARSET         129 (x81)             949
1167      * GB2313_CHARSET          134 (x86)             936
1168      * CHINESEBIG5_CHARSET     136 (x88)             950
1169      * </pre>
1170      *
1171      */
1172     virtual QCString trRTFansicp()
1173     {
1174       return "1258";
1175     }
1176
1177
1178     /*! Used as ansicpg for RTF fcharset
1179      *  \see trRTFansicp() for a table of possible values.
1180      */
1181     virtual QCString trRTFCharSet()
1182     {
1183       return "163";
1184     }
1185
1186     /*! Used as header RTF general index */
1187     virtual QCString trRTFGeneralIndex()
1188     {
1189       return "Chỉ số";
1190     }
1191
1192     /*! This is used for translation of the word that will possibly
1193      *  be followed by a single name or by a list of names
1194      *  of the category.
1195      */
1196     virtual QCString trClass(bool first_capital, bool singular)
1197     {
1198       QCString result((first_capital ? "Class" : "class"));
1199       if (!singular)  result+="es";
1200       return result;
1201     }
1202
1203     /*! This is used for translation of the word that will possibly
1204      *  be followed by a single name or by a list of names
1205      *  of the category.
1206      */
1207     virtual QCString trFile(bool first_capital, bool singular)
1208     {
1209       QCString result((first_capital ? "File" : "file"));
1210       if (!singular)  result+="s";
1211       return result;
1212     }
1213
1214     /*! This is used for translation of the word that will possibly
1215      *  be followed by a single name or by a list of names
1216      *  of the category.
1217      */
1218     virtual QCString trNamespace(bool first_capital, bool singular)
1219     {
1220       QCString result((first_capital ? "Namespace" : "namespace"));
1221       if (!singular)  result+="s";
1222       return result;
1223     }
1224
1225     /*! This is used for translation of the word that will possibly
1226      *  be followed by a single name or by a list of names
1227      *  of the category.
1228      */
1229     virtual QCString trGroup(bool first_capital, bool singular)
1230     {
1231       QCString result((first_capital ? "Group" : "group"));
1232       if (!singular)  result+="s";
1233       return result;
1234     }
1235
1236     /*! This is used for translation of the word that will possibly
1237      *  be followed by a single name or by a list of names
1238      *  of the category.
1239      */
1240     virtual QCString trPage(bool first_capital, bool singular)
1241     {
1242       QCString result((first_capital ? "Trang" : "trang"));
1243       if (!singular)  result+="";
1244       return result;
1245     }
1246
1247     /*! This is used for translation of the word that will possibly
1248      *  be followed by a single name or by a list of names
1249      *  of the category.
1250      */
1251     virtual QCString trMember(bool first_capital, bool singular)
1252     {
1253       QCString result((first_capital ? "Member" : "member"));
1254       if (!singular)  result+="s";
1255       return result;
1256     }
1257
1258     /*! This is used for translation of the word that will possibly
1259      *  be followed by a single name or by a list of names
1260      *  of the category.
1261      */
1262     virtual QCString trGlobal(bool first_capital, bool singular)
1263     {
1264       QCString result((first_capital ? "Global" : "global"));
1265       if (!singular)  result+="s";
1266       return result;
1267     }
1268
1269 //////////////////////////////////////////////////////////////////////////
1270 // new since 1.2.7
1271 //////////////////////////////////////////////////////////////////////////
1272
1273     /*! This text is generated when the \\author command is used and
1274      *  for the author section in man pages. */
1275     virtual QCString trAuthor(bool first_capital, bool singular)
1276     {
1277       QCString result((first_capital ? "Tác giả" : "tác giả"));
1278       if (!singular)  result+="";
1279       return result;
1280     }
1281
1282 //////////////////////////////////////////////////////////////////////////
1283 // new since 1.2.11
1284 //////////////////////////////////////////////////////////////////////////
1285
1286     /*! This text is put before the list of members referenced by a member
1287      */
1288     virtual QCString trReferences()
1289     {
1290       return "Tham chiếu";
1291     }
1292
1293 //////////////////////////////////////////////////////////////////////////
1294 // new since 1.2.13
1295 //////////////////////////////////////////////////////////////////////////
1296
1297     /*! used in member documentation blocks to produce a list of
1298      *  members that are implemented by this one.
1299      */
1300     virtual QCString trImplementedFromList(int numEntries)
1301     {
1302       return "Thực hiện "+trWriteList(numEntries)+".";
1303     }
1304
1305     /*! used in member documentation blocks to produce a list of
1306      *  all members that implement this abstract member.
1307      */
1308     virtual QCString trImplementedInList(int numEntries)
1309     {
1310       return "Được thực hiện trong "+trWriteList(numEntries)+".";
1311     }
1312
1313 //////////////////////////////////////////////////////////////////////////
1314 // new since 1.2.16
1315 //////////////////////////////////////////////////////////////////////////
1316
1317     /*! used in RTF documentation as a heading for the Table
1318      *  of Contents.
1319      */
1320     virtual QCString trRTFTableOfContents()
1321     {
1322       return "Mục lục";
1323     }
1324
1325 //////////////////////////////////////////////////////////////////////////
1326 // new since 1.2.17
1327 //////////////////////////////////////////////////////////////////////////
1328
1329     /*! Used as the header of the list of item that have been
1330      *  flagged deprecated
1331      */
1332     virtual QCString trDeprecatedList()
1333     {
1334       return "Danh sách Deprecated";
1335     }
1336
1337 //////////////////////////////////////////////////////////////////////////
1338 // new since 1.2.18
1339 //////////////////////////////////////////////////////////////////////////
1340
1341     /*! Used as a header for declaration section of the events found in
1342      * a C# program
1343      */
1344     virtual QCString trEvents()
1345     {
1346       return "Sự kiện";
1347     }
1348     /*! Header used for the documentation section of a class' events. */
1349     virtual QCString trEventDocumentation()
1350     {
1351       return "Thông tin về sự kiện";
1352     }
1353
1354 //////////////////////////////////////////////////////////////////////////
1355 // new since 1.3
1356 //////////////////////////////////////////////////////////////////////////
1357
1358     /*! Used as a heading for a list of Java class types with package scope.
1359      */
1360     virtual QCString trPackageTypes()
1361     {
1362       return "Kiểu gói";
1363     }
1364     /*! Used as a heading for a list of Java class functions with package
1365      * scope.
1366      */
1367     virtual QCString trPackageMembers()
1368     {
1369       return "Các hàm Package";
1370     }
1371     /*! Used as a heading for a list of static Java class functions with
1372      *  package scope.
1373      */
1374     virtual QCString trStaticPackageMembers()
1375     {
1376       return "Các hàm Static Package";
1377     }
1378     /*! Used as a heading for a list of Java class variables with package
1379      * scope.
1380      */
1381     virtual QCString trPackageAttribs()
1382     {
1383       return "Các thuộc tính Package";
1384     }
1385     /*! Used as a heading for a list of static Java class variables with
1386      * package scope.
1387      */
1388     virtual QCString trStaticPackageAttribs()
1389     {
1390       return "Các thuộc tính Static Package";
1391     }
1392
1393 //////////////////////////////////////////////////////////////////////////
1394 // new since 1.3.1
1395 //////////////////////////////////////////////////////////////////////////
1396
1397     /*! Used in the quick index of a class/file/namespace member list page
1398      *  to link to the unfiltered list of all members.
1399      */
1400     virtual QCString trAll()
1401     {
1402       return "Tất cả";
1403     }
1404     /*! Put in front of the call graph for a function. */
1405     virtual QCString trCallGraph()
1406     {
1407       return "Biểu đồ các lời gọi cho hàm này:";
1408     }
1409
1410 //////////////////////////////////////////////////////////////////////////
1411 // new since 1.3.3
1412 //////////////////////////////////////////////////////////////////////////
1413
1414     /*! This string is used as the title for the page listing the search
1415      *  results.
1416      */
1417     virtual QCString trSearchResultsTitle()
1418     {
1419       return "Kết quả tìm kiếm";
1420     }
1421     /*! This string is put just before listing the search results. The
1422      *  text can be different depending on the number of documents found.
1423      *  Inside the text you can put the special marker $num to insert
1424      *  the number representing the actual number of search results.
1425      *  The @a numDocuments parameter can be either 0, 1 or 2, where the
1426      *  value 2 represents 2 or more matches. HTML markup is allowed inside
1427      *  the returned string.
1428      */
1429     virtual QCString trSearchResults(int numDocuments)
1430     {
1431       if (numDocuments==0)
1432       {
1433         return "Không có tài liệu nào thỏa mãn các truy vấn của bạn.";
1434       }
1435       else if (numDocuments==1)
1436       {
1437         return "Tìm thấy <b>1</b> tài liệu thỏa mã truy vấn của bạn.";
1438       }
1439       else
1440       {
1441         return "Tìm thấy tất cả <b>$num</b> tài liệu thỏa mã truy vấn của bạn. "
1442                "Hiển thị những thỏa mãn tốt nhất trước.";
1443       }
1444     }
1445     /*! This string is put before the list of matched words, for each search
1446      *  result. What follows is the list of words that matched the query.
1447      */
1448     virtual QCString trSearchMatches()
1449     {
1450       return "Các kết quả thỏa mãn đk:";
1451     }
1452
1453 //////////////////////////////////////////////////////////////////////////
1454 // new since 1.3.8
1455 //////////////////////////////////////////////////////////////////////////
1456
1457     /*! This is used in HTML as the title of page with source code for file filename
1458      */
1459     virtual QCString trSourceFile(QCString& filename)
1460     {
1461       return filename + " File nguồn";
1462     }
1463
1464 //////////////////////////////////////////////////////////////////////////
1465 // new since 1.3.9
1466 //////////////////////////////////////////////////////////////////////////
1467
1468     /*! This is used as the name of the chapter containing the directory
1469      *  hierarchy.
1470      */
1471     virtual QCString trDirIndex()
1472     { return "Cấu trúc thư mục"; }
1473
1474     /*! This is used as the name of the chapter containing the documentation
1475      *  of the directories.
1476      */
1477     virtual QCString trDirDocumentation()
1478     { return "Thông tin về thư mục"; }
1479
1480     /*! This is used as the title of the directory index and also in the
1481      *  Quick links of an HTML page, to link to the directory hierarchy.
1482      */
1483     virtual QCString trDirectories()
1484     { return "Các thư mục"; }
1485
1486     /*! This returns a sentences that introduces the directory hierarchy.
1487      *  and the fact that it is sorted alphabetically per level
1488      */
1489     virtual QCString trDirDescription()
1490     { return "Thư mục đã được sắp xếp theo al-pha-bê, "
1491              "nhưng chưa đầy đủ:";
1492     }
1493
1494     /*! This returns the title of a directory page. The name of the
1495      *  directory is passed via \a dirName.
1496      */
1497     virtual QCString trDirReference(const char *dirName)
1498     { QCString result=dirName; result+=" Tham chiếu thư mục"; return result; }
1499
1500     /*! This returns the word directory with or without starting capital
1501      *  (\a first_capital) and in sigular or plural form (\a singular).
1502      */
1503     virtual QCString trDir(bool first_capital, bool)
1504     {
1505       QCString result((first_capital ? "Thư mục" : "thư mục"));
1506       return result;
1507     }
1508
1509 //////////////////////////////////////////////////////////////////////////
1510 // new since 1.4.1
1511 //////////////////////////////////////////////////////////////////////////
1512
1513     /*! This text is added to the documentation when the \\overload command
1514      *  is used for a overloaded function.
1515      */
1516     virtual QCString trOverloadText()
1517     {
1518        return "Hàm thành viên dạng overloaded, "
1519               "được chỉ ra cho việc tra cứu dễ dàng. Nó khác với hàm ở trên"
1520               "chỉ ở chỗ những tham số nào nó chấp nhận.";
1521     }
1522
1523 //////////////////////////////////////////////////////////////////////////
1524 // new since 1.4.6
1525 //////////////////////////////////////////////////////////////////////////
1526
1527     /*! This is used to introduce a caller (or called-by) graph */
1528     virtual QCString trCallerGraph()
1529     {
1530       return "Biểu đồ các lời gọi cho hàm này:";
1531     }
1532
1533     /*! This is used in the documentation of a file/namespace before the list
1534      *  of documentation blocks for enumeration values
1535      */
1536     virtual QCString trEnumerationValueDocumentation()
1537     { return "Thông tin Enumerator"; }
1538
1539 //////////////////////////////////////////////////////////////////////////
1540 // new since 1.5.4 (mainly for Fortran)
1541 //////////////////////////////////////////////////////////////////////////
1542
1543     /*! header that is put before the list of member subprograms (Fortran). */
1544     virtual QCString trMemberFunctionDocumentationFortran()
1545     { return "Thông tin về các hàm và các thủ tục thành viên"; }
1546
1547     /*! This is put above each page as a link to the list of annotated data types (Fortran). */
1548     virtual QCString trCompoundListFortran()
1549     { return "Danh sách kiêu dữ liệu"; }
1550
1551     /*! This is put above each page as a link to all members of compounds (Fortran). */
1552     virtual QCString trCompoundMembersFortran()
1553     { return "Trường dữ liệu"; }
1554
1555     /*! This is an introduction to the annotated compound list (Fortran). */
1556     virtual QCString trCompoundListDescriptionFortran()
1557     { return "Kiểu dữ liệu với các mô tả tóm tắt:"; }
1558
1559     /*! This is an introduction to the page with all data types (Fortran). */
1560     virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
1561     {
1562       QCString result="Danh sách tất cả ";
1563       if (!extractAll)
1564       {
1565         result+="(đã được mô tả) ";
1566       }
1567       result+="các kiểu dữ liệu thành viên";
1568       result+=" cùng với liên kết với ";
1569       if (!extractAll)
1570       {
1571          result+="Thông tin cấu trúc dữ liệu cho từng thành viên";
1572       }
1573       else
1574       {
1575          result+=" các kiểu dữ liệu thuộc:";
1576       }
1577       return result;
1578     }
1579
1580     /*! This is used in LaTeX as the title of the chapter with the
1581      * annotated compound index (Fortran).
1582      */
1583     virtual QCString trCompoundIndexFortran()
1584     { return "Chỉ mục kiểu dữ liệu"; }
1585
1586     /*! This is used in LaTeX as the title of the chapter containing
1587      *  the documentation of all data types (Fortran).
1588      */
1589     virtual QCString trTypeDocumentation()
1590     { return "Thông tin về kiểu dữ liệu"; }
1591
1592     /*! This is used in the documentation of a file as a header before the
1593      *  list of (global) subprograms (Fortran).
1594      */
1595     virtual QCString trSubprograms()
1596     { return "Functions/Subroutines"; }
1597
1598     /*! This is used in the documentation of a file/namespace before the list
1599      *  of documentation blocks for subprograms (Fortran)
1600      */
1601     virtual QCString trSubprogramDocumentation()
1602     { return "Thông tin về Function/Subroutine"; }
1603
1604     /*! This is used in the documentation of a file/namespace/group before
1605      *  the list of links to documented compounds (Fortran)
1606      */
1607      virtual QCString trDataTypes()
1608     { return "Kiểu dữ liệu"; }
1609
1610     /*! used as the title of page containing all the index of all modules (Fortran). */
1611     virtual QCString trModulesList()
1612     { return "Danh sách Modules"; }
1613
1614     /*! used as an introduction to the modules list (Fortran) */
1615     virtual QCString trModulesListDescription(bool extractAll)
1616     {
1617       QCString result="Danh sách tất cả ";
1618       if (!extractAll) result+="(đã được mô tả) ";
1619       result+="các module với mô tả tóm tắt:";
1620       return result;
1621     }
1622
1623     /*! used as the title of the HTML page of a module/type (Fortran) */
1624     virtual QCString trCompoundReferenceFortran(const char *clName,
1625                                     ClassDef::CompoundType compType,
1626                                     bool isTemplate)
1627     {
1628       QCString result=(QCString)clName;
1629       switch(compType)
1630       {
1631         case ClassDef::Class:      result+=" Module"; break;
1632         case ClassDef::Struct:     result+=" Type"; break;
1633         case ClassDef::Union:      result+=" Union"; break;
1634         case ClassDef::Interface:  result+=" Interface"; break;
1635         case ClassDef::Protocol:   result+=" Protocol"; break;
1636         case ClassDef::Category:   result+=" Category"; break;
1637         case ClassDef::Exception:  result+=" Exception"; break;
1638         default: break;
1639       }
1640       if (isTemplate) result+=" Template";
1641       result+=" Tham chiếu";
1642       return result;
1643     }
1644     /*! used as the title of the HTML page of a module (Fortran) */
1645     virtual QCString trModuleReference(const char *namespaceName)
1646     {
1647       QCString result=namespaceName;
1648       result+=" Tham chiếu Module";
1649       return result;
1650     }
1651
1652     /*! This is put above each page as a link to all members of modules. (Fortran) */
1653     virtual QCString trModulesMembers()
1654     { return "Thành viên Module"; }
1655
1656     /*! This is an introduction to the page with all modules members (Fortran) */
1657     virtual QCString trModulesMemberDescription(bool extractAll)
1658     {
1659       QCString result="Danh sách tất cả ";
1660       if (!extractAll) result+="(đã được mô tả) ";
1661       result+="các module thành viên cùng với liên kết tới ";
1662       if (extractAll)
1663       {
1664         result+="Thông tin module cho từng thành viên:";
1665       }
1666       else
1667       {
1668         result+="các module thuộc:";
1669       }
1670       return result;
1671     }
1672
1673     /*! This is used in LaTeX as the title of the chapter with the
1674      *  index of all modules (Fortran).
1675      */
1676     virtual QCString trModulesIndex()
1677     { return "Chỉ mục các Module"; }
1678
1679     /*! This is used for translation of the word that will possibly
1680      *  be followed by a single name or by a list of names
1681      *  of the category.
1682      */
1683     virtual QCString trModule(bool first_capital, bool singular)
1684     {
1685       QCString result((first_capital ? "Module" : "module"));
1686       if (!singular)  result+="";
1687       return result;
1688     }
1689     /*! This is put at the bottom of a module documentation page and is
1690      *  followed by a list of files that were used to generate the page.
1691      */
1692     virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType,
1693         bool single)
1694     { // here s is one of " Module", " Struct" or " Union"
1695       // single is true implies a single file
1696       QCString result=(QCString)"Thông tin cho ";
1697       switch(compType)
1698       {
1699         case ClassDef::Class:      result+="module"; break;
1700         case ClassDef::Struct:     result+="type"; break;
1701         case ClassDef::Union:      result+="union"; break;
1702         case ClassDef::Interface:  result+="interface"; break;
1703         case ClassDef::Protocol:   result+="protocol"; break;
1704         case ClassDef::Category:   result+="category"; break;
1705         case ClassDef::Exception:  result+="exception"; break;
1706         default: break;
1707       }
1708       result+=" được biên soạn từ các file sau đây";
1709       if (single) result+=":"; else result+="s:";
1710       return result;
1711     }
1712     /*! This is used for translation of the word that will possibly
1713      *  be followed by a single name or by a list of names
1714      *  of the category.
1715      */
1716     virtual QCString trType(bool first_capital, bool singular)
1717     {
1718       QCString result((first_capital ? "Kiểu" : "kiểu"));
1719       if (!singular)  result+="";
1720       return result;
1721     }
1722     /*! This is used for translation of the word that will possibly
1723      *  be followed by a single name or by a list of names
1724      *  of the category.
1725      */
1726     virtual QCString trSubprogram(bool first_capital, bool singular)
1727     {
1728       QCString result((first_capital ? "Chương trình con" : "chương trình con"));
1729       if (!singular)  result+="";
1730       return result;
1731     }
1732
1733     /*! C# Type Constraint list */
1734     virtual QCString trTypeConstraints()
1735     {
1736       return "Ràng buộc của kiểu (Type)";
1737     }
1738
1739 };
1740
1741 #endif