Fix for UBSan build
[platform/upstream/doxygen.git] / src / translator_ar.h
1 /******************************************************************************
2  *
3  * 
4  *
5  * Copyright (C) 1997-2012 by Dimitri van Heesch.
6  *
7  * Permission to use, copy, modify, and distribute this software and its
8  * documentation under the terms of the GNU General Public License is hereby 
9  * granted. No representations are made about the suitability of this software 
10  * for any purpose. It is provided "as is" without express or implied warranty.
11  * See the GNU General Public License for more details.
12  *
13  * Documents produced by Doxygen are derivative works derived from the
14  * input used in their production; they are not affected by this license.
15  *
16  */
17
18 /*
19  * Arabic translation for Doxygen
20  *
21  * Please send your comments on this translation to moazreyad@yahoo.com
22  *
23  * Note : consider this file as Beta version for testing Arabic output with Doxygen.
24  * 
25  * Revision history :
26  *
27  * 6/2006 : Created initial version of Arabic translation.
28  */
29
30 #ifndef TRANSLATOR_AR_H
31 #define TRANSLATOR_AR_H
32
33 class TranslatorArabic : public TranslatorAdapter_1_4_6
34 {
35   protected:
36     friend class TranslatorAdapterBase;
37     virtual ~TranslatorArabic() {}
38
39   public:
40
41     // --- Language control methods -------------------
42     
43     /*! Used for identification of the language. The identification 
44      * should not be translated. It should be replaced by the name 
45      * of the language in English using lower-case characters only
46      * (e.g. "czech", "japanese", "russian", etc.). It should be equal to 
47      * the identification used in language.cpp.
48      */
49     virtual QCString idLanguage()
50     { return "arabic"; }
51     
52     /*! Used to get the LaTeX command(s) for the language support. 
53      *  This method should return string with commands that switch
54      *  LaTeX to the desired language.  For example 
55      *  <pre>"\\usepackage[german]{babel}\n"
56      *  </pre>
57      *  or
58      *  <pre>"\\usepackage{polski}\n"
59      *  "\\usepackage[latin2]{inputenc}\n"
60      *  "\\usepackage[T1]{fontenc}\n"
61      *  </pre>
62      * 
63      * The English LaTeX does not use such commands.  Because of this
64      * the empty string is returned in this implementation.
65      */
66     virtual QCString latexLanguageSupportCommand()
67     {
68       return "";
69     }
70
71     /*! return the language charset. This will be used for the HTML output */
72     virtual QCString idLanguageCharset()
73     {
74       return "cp1256";
75     }
76
77     // --- Language translation methods -------------------
78
79     /*! used in the compound documentation before a list of related functions. */
80     virtual QCString trRelatedFunctions()
81     { return "ÏæÇá ÐÇÊ ÕáÉ"; }
82
83     /*! subscript for the related functions. */
84     virtual QCString trRelatedSubscript()
85     { return "(áÇÍÙ Ãä åÐå ÇáÏæÇá áíÓÊ ÃÚÖÇÁ)"; }
86
87     /*! header that is put before the detailed description of files, classes and namespaces. */
88     virtual QCString trDetailedDescription()
89     { return "æÕÝ ÊÝÕíáí"; }
90
91     /*! header that is put before the list of typedefs. */
92     virtual QCString trMemberTypedefDocumentation()
93     { return "ÊæËíÞ ÊÚÑíÝÇÊ ÇáäæÚ ÇáÃÚÖÇÁ"; }
94     
95     /*! header that is put before the list of enumerations. */
96     virtual QCString trMemberEnumerationDocumentation()
97     { return "ÊæËíÞ ÇáÚÏÏíÇÊ ÇáÃÚÖÇÁ"; }
98     
99     /*! header that is put before the list of member functions. */
100     virtual QCString trMemberFunctionDocumentation()
101     { return "ÊæËíÞ ÇáÏæÇá ÇáÃÚÖÇÁ"; }
102     
103     /*! header that is put before the list of member attributes. */
104     virtual QCString trMemberDataDocumentation()
105     { 
106       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
107       {
108         return "ÊæËíÞ ÇáÍÞá"; 
109       }
110       else
111       {
112         return "ÊæËíÞ ÇáÈíÇä ÇáÚÖæ"; 
113       }
114     }
115
116     /*! this is the text of a link put after brief descriptions. */
117     virtual QCString trMore() 
118     { return "ÇáãÒíÏ ..."; }
119
120     /*! put in the class documentation */
121     virtual QCString trListOfAllMembers()
122     { return "ÇÚÑÖ ßá ÇáÃÚÖÇÁ"; }
123
124     /*! used as the title of the "list of all members" page of a class */
125     virtual QCString trMemberList()
126     { return "ÞÇÆãÉ ÇáÃÚÖÇÁ"; }
127
128     /*! this is the first part of a sentence that is followed by a class name */
129     virtual QCString trThisIsTheListOfAllMembers()
130     { return "åÐå ÝÇÆãÉ Èßá ÇáÃÚÖÇÁ Ýí "; }
131
132     /*! this is the remainder of the sentence after the class name */
133     virtual QCString trIncludingInheritedMembers()
134     { return ", ãÊÖãäÉ ßá ÇáÃÚÖÇÁ ÇáãæÑæËÉ"; }
135     
136     /*! this is put at the author sections at the bottom of man pages.
137      *  parameter s is name of the project name.
138      */
139     virtual QCString trGeneratedAutomatically(const char *s)
140     { QCString result="Êã ÊßæíäåÇ ÂáíÇ ÈæÇÓØÉ Doxygen";
141       if (s) result+=(QCString)" áÜ "+s;
142       result+=" ãä ãáÝÇÊ ÇáãÕÏÑ."; 
143       return result;
144     }
145
146     /*! put after an enum name in the list of all members */
147     virtual QCString trEnumName()
148     { return "ÇáÅÓã ÇáÚÏÏí"; }
149     
150     /*! put after an enum value in the list of all members */
151     virtual QCString trEnumValue()
152     { return "ÇáÞíãÉ ÇáÚÏÏíÉ"; }
153     
154     /*! put after an undocumented member in the list of all members */
155     virtual QCString trDefinedIn()
156     { return "ãÚÑÝ Ýí"; }
157
158     // quick reference sections
159
160     /*! This is put above each page as a link to the list of all groups of 
161      *  compounds or files (see the \\group command).
162      */
163     virtual QCString trModules()
164     { return "ãßæäÇÊ"; }
165     
166     /*! This is put above each page as a link to the class hierarchy */
167     virtual QCString trClassHierarchy()
168     { return "ÇáÔßá ÇáåÑãí ááÝÆÉ"; }
169     
170     /*! This is put above each page as a link to the list of annotated classes */
171     virtual QCString trCompoundList()
172     { 
173       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
174       {
175         return "åíÇßá ÇáÈíÇäÇÊ";
176       }
177       else
178       {
179         return "ÞÇÆãÉ ÇáÝÆÇÊ"; 
180       }
181     }
182     
183     /*! This is put above each page as a link to the list of documented files */
184     virtual QCString trFileList()
185     { return "ÞÇÆãÉ ÇáãáÝÇÊ"; }
186
187     /*! This is put above each page as a link to the list of all verbatim headers */
188     virtual QCString trHeaderFiles()
189     { return "ÇáãáÝÇÊ ÇáÑÃÓíÉ"; }
190
191     /*! This is put above each page as a link to all members of compounds. */
192     virtual QCString trCompoundMembers()
193     { 
194       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
195       {
196         return "ÍÞæá ÇáÈíÇäÇÊ"; 
197       }
198       else
199       {
200         return "ÃÚÖÇÁ ÇáÝÆÉ"; 
201       }
202     }
203
204     /*! This is put above each page as a link to all members of files. */
205     virtual QCString trFileMembers()
206     { 
207       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
208       {
209         return "ÇáÚæÇã"; 
210       }
211       else
212       {
213         return "ÃÚÖÇÁ ÇáãáÝ"; 
214       }
215     }
216
217     /*! This is put above each page as a link to all related pages. */
218     virtual QCString trRelatedPages()
219     { return "ÕÝÍÇÊ ÐÇÊ ÕáÉ"; }
220
221     /*! This is put above each page as a link to all examples. */
222     virtual QCString trExamples()
223     { return "ÃãËáÉ"; }
224
225     /*! This is put above each page as a link to the search engine. */
226     virtual QCString trSearch()
227     { return "ÈÍË"; }
228
229     /*! This is an introduction to the class hierarchy. */
230     virtual QCString trClassHierarchyDescription()
231     { return "ÞÇÆãÉ ÇáÊæÇÑË åÐå Êã ÊÑÊíÈåÇ ÃÈÌÏíÇ ÈÕæÑÉ ÊÞÑíÈíÉ ¡ "
232              "æáßä áíÓ ÈÕæÑÉ ÊÇãÉ:";
233     }
234
235     /*! This is an introduction to the list with all files. */
236     virtual QCString trFileListDescription(bool extractAll)
237     {
238       QCString result="åÐå ÞÇÆãÉ Èßá ÇáãáÝÇÊ";
239       if (!extractAll) result+="ÇáãæËÞÉ ";
240           result+="ãÚ æÕÝ ãÎÊÕÑ :";
241       return result;
242     }
243
244     /*! This is an introduction to the annotated compound list. */
245     virtual QCString trCompoundListDescription()
246     { 
247       
248       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
249       {
250         return "åÐå åí åíÇßá ÇáÈíÇäÇÊ ãÚ æÕÝ ãÎÊÕÑ:"; 
251       }
252       else
253       {
254         return "åÐå åí ÇáÝÆÇÊ ¡ ÇáÈäÇÁÇÊ ¡"
255                         "ÇáÅÊÍÇÏÇÊ æÇáæÇÌåÇÊ ãÚ æÕÝ ãÎÊÕÑ:"; 
256       }
257     }
258
259     /*! This is an introduction to the page with all class members. */
260     virtual QCString trCompoundMembersDescription(bool extractAll)
261     {
262       QCString result="åÐå ÞÇÆãÉ Èßá ";
263       
264       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
265       {
266         result+="ÍÞæá ÇáÈäÇÁÇÊ æÇáÅÊÍÇÏÇÊ";
267       }
268       else
269       {
270         result+="ÃÚÖÇÁ ÇáÝÆÉ";
271       }
272           if (!extractAll)
273       {
274         result+=" ÇáãæËÞÉ ";
275       }
276       result+=" ãÚ æÕáÇÊ Åáì ";
277       if (!extractAll) 
278       {
279         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
280         {
281           result+="ÊæËíÞ ÇáÈäÇÁ/ÇáÅÊÍÇÏ áßá ÍÞá:";
282         }
283         else
284         {
285           result+="ÊæËíÞ ÇáÝÆÉ áßá ÚÖæ:";
286         }
287       }
288       else 
289       {
290         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
291         {
292           result+="ÇáÈäÇÁÇÊ/ÇáÅÊÍÇÏÇÊ ÇáÊí íäÊãæä ÅáíåÇ:";
293         }
294         else
295         {
296           result+="ÇáÝÆÇÊ ÇáÊí íäÊãæä ÅáíåÇ:";
297         }
298       }
299       return result;
300     }
301
302     /*! This is an introduction to the page with all file members. */
303     virtual QCString trFileMembersDescription(bool extractAll)
304     {
305       QCString result="Here is a list of all ";
306       if (!extractAll) result+="documented ";
307       
308       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
309       {
310         result+="functions, variables, defines, enums, and typedefs";
311       }
312       else
313       {
314         result+="file members";
315       }
316       result+=" with links to ";
317       if (extractAll) 
318         result+="the files they belong to:";
319       else 
320         result+="the documentation:";
321       return result;
322     }
323
324     /*! This is an introduction to the page with the list of all header files. */
325     virtual QCString trHeaderFilesDescription()
326     { return "Here are the header files that make up the API:"; }
327
328     /*! This is an introduction to the page with the list of all examples */
329     virtual QCString trExamplesDescription()
330     { return "åÐå ÞÇÆãÉ Èßá ÇáÃãËáÉ:"; }
331
332     /*! This is an introduction to the page with the list of related pages */
333     virtual QCString trRelatedPagesDescription()
334     { return "åÐå ÞÇÆãÉ Èßá ÕÝÍÇÊ ÇáÊæËíÞ ÐÇÊ ÇáÕáÉ:"; }
335
336     /*! This is an introduction to the page with the list of class/file groups */
337     virtual QCString trModulesDescription()
338     { return "åÐå ÞÇÆãÉ Èßá ÇáãßæäÇÊ:"; }
339
340     /*! This sentences is used in the annotated class/file lists if no brief
341      * description is given. 
342      */
343     virtual QCString trNoDescriptionAvailable()
344     { return "áÇ íæÌÏ æÕÝ ãÊÇÍ"; }
345     
346     // index titles (the project name is prepended for these) 
347
348
349     /*! This is used in HTML as the title of index.html. */
350     virtual QCString trDocumentation()
351     { return "ÇáÊæËíÞ"; }
352
353     /*! This is used in LaTeX as the title of the chapter with the 
354      * index of all groups.
355      */
356     virtual QCString trModuleIndex()
357     { return "ÝåÑÓ ÇáãßæäÇÊ"; }
358
359     /*! This is used in LaTeX as the title of the chapter with the 
360      * class hierarchy.
361      */
362     virtual QCString trHierarchicalIndex()
363     { return "ÇáÝåÑÓ ÇáåÑãí"; }
364
365     /*! This is used in LaTeX as the title of the chapter with the 
366      * annotated compound index.
367      */
368     virtual QCString trCompoundIndex()
369     {
370       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
371       { 
372         return "ÝåÑÓ åíßá ÇáÈíÇäÇÊ";
373       }
374       else
375       {
376         return "ÝåÑÓ ÇáÝÆÉ"; 
377       }
378     }
379
380     /*! This is used in LaTeX as the title of the chapter with the
381      * list of all files.
382      */
383     virtual QCString trFileIndex() 
384     { return "ÝåÑÓ ÇáãáÝÇÊ"; }
385
386     /*! This is used in LaTeX as the title of the chapter containing
387      *  the documentation of all groups.
388      */
389     virtual QCString trModuleDocumentation()
390     { return "ÊæËíÞ Çáãßæä"; }
391
392     /*! This is used in LaTeX as the title of the chapter containing
393      *  the documentation of all classes, structs and unions.
394      */
395     virtual QCString trClassDocumentation()
396     { 
397       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
398       {
399         return "ÝåÑÓ åíßá ÇáÈíÇäÇÊ"; 
400       }
401       else
402       {
403         return "ÝåÑÓ ÇáÝÆÉ"; 
404       }
405     }
406
407     /*! This is used in LaTeX as the title of the chapter containing
408      *  the documentation of all files.
409      */
410     virtual QCString trFileDocumentation()
411     { return "ÊæËíÞ ÇáãáÝÇÊ"; }
412
413     /*! This is used in LaTeX as the title of the chapter containing
414      *  the documentation of all examples.
415      */
416     virtual QCString trExampleDocumentation()
417     { return "ÊæËíÞ ÇáÃãËáÉ"; }
418
419     /*! This is used in LaTeX as the title of the chapter containing
420      *  the documentation of all related pages.
421      */
422     virtual QCString trPageDocumentation()
423     { return "ÊæËíÞ ÇáÕÝÍÇÊ"; }
424
425     /*! This is used in LaTeX as the title of the document */
426     virtual QCString trReferenceManual()
427     { return "ÇáßÊíÈ ÇáãÑÌÚí"; }
428     
429     /*! This is used in the documentation of a file as a header before the 
430      *  list of defines
431      */
432     virtual QCString trDefines()
433     { return "ÇáÊÚÑíÝÇÊ"; }
434
435     /*! This is used in the documentation of a file as a header before the 
436      *  list of function prototypes
437      */
438     virtual QCString trFuncProtos()
439     { return "Function Prototypes"; }
440
441     /*! This is used in the documentation of a file as a header before the 
442      *  list of typedefs
443      */
444     virtual QCString trTypedefs()
445     { return "Typedefs"; }
446
447     /*! This is used in the documentation of a file as a header before the 
448      *  list of enumerations
449      */
450     virtual QCString trEnumerations()
451     { return "ÇáÚÏÏíÇÊ"; }
452
453     /*! This is used in the documentation of a file as a header before the 
454      *  list of (global) functions
455      */
456     virtual QCString trFunctions()
457     { return "ÇáÏæÇá"; }
458
459     /*! This is used in the documentation of a file as a header before the 
460      *  list of (global) variables
461      */
462     virtual QCString trVariables()
463     { return "ÇáãÊÛíÑÇÊ"; }
464
465     /*! This is used in the documentation of a file as a header before the 
466      *  list of (global) variables
467      */
468     virtual QCString trEnumerationValues()
469     { return "Enumerator"; }
470     
471     /*! This is used in the documentation of a file before the list of
472      *  documentation blocks for defines
473      */
474     virtual QCString trDefineDocumentation()
475     { return "Define Documentation"; }
476
477     /*! This is used in the documentation of a file/namespace before the list 
478      *  of documentation blocks for function prototypes
479      */
480     virtual QCString trFunctionPrototypeDocumentation()
481     { return "Function Prototype Documentation"; }
482
483     /*! This is used in the documentation of a file/namespace before the list 
484      *  of documentation blocks for typedefs
485      */
486     virtual QCString trTypedefDocumentation()
487     { return "Typedef Documentation"; }
488
489     /*! This is used in the documentation of a file/namespace before the list 
490      *  of documentation blocks for enumeration types
491      */
492     virtual QCString trEnumerationTypeDocumentation()
493     { return "Enumeration Type Documentation"; }
494
495     /*! This is used in the documentation of a file/namespace before the list 
496      *  of documentation blocks for enumeration values
497      */
498     virtual QCString trEnumerationValueDocumentation()
499     { return "Enumerator Documentation"; }
500
501     /*! This is used in the documentation of a file/namespace before the list 
502      *  of documentation blocks for functions
503      */
504     virtual QCString trFunctionDocumentation()
505     { return "ÊæËíÞ ÇáÏÇáÉ"; }
506
507     /*! This is used in the documentation of a file/namespace before the list 
508      *  of documentation blocks for variables
509      */
510     virtual QCString trVariableDocumentation()
511     { return "ÊæËíÞ ÇáãÊÛíÑ"; }
512
513     /*! This is used in the documentation of a file/namespace/group before 
514      *  the list of links to documented compounds
515      */
516     virtual QCString trCompounds()
517     { 
518       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
519       {
520         return "åíÇßá ÇáÈíÇäÇÊ"; 
521       }
522       else
523       {
524         return "ÇáÝÆÇÊ"; 
525       }
526     }
527
528     /*! This is used in the standard footer of each page and indicates when 
529      *  the page was generated 
530      */
531     virtual QCString trGeneratedAt(const char *date,const char *projName)
532     { 
533       QCString result=(QCString)"Generated on "+date;
534       if (projName) result+=(QCString)" for "+projName;
535       result+=(QCString)" by";
536       return result;
537     }
538     /*! This is part of the sentence used in the standard footer of each page.
539      */
540     virtual QCString trWrittenBy()
541     {
542       return "ßÊÈ ÈæÇÓØÉ";
543     }
544
545     /*! this text is put before a class diagram */
546     virtual QCString trClassDiagram(const char *clName)
547     {
548       return (QCString)"Inheritance diagram for "+clName+":";
549     }
550     
551     /*! this text is generated when the \\internal command is used. */
552     virtual QCString trForInternalUseOnly()
553     { return "ááÇÓÊÎÏÇã ÇáÏÇÎáí ÝÞØ."; }
554
555     /*! this text is generated when the \\reimp command is used. */
556     virtual QCString trReimplementedForInternalReasons()
557     { return "Reimplemented for internal reasons; the API is not affected."; }
558
559     /*! this text is generated when the \\warning command is used. */
560     virtual QCString trWarning()
561     { return "ÊäÈíå"; }
562
563     /*! this text is generated when the \\bug command is used. */
564     virtual QCString trBugsAndLimitations()
565     { return "Bugs and limitations"; }
566
567     /*! this text is generated when the \\version command is used. */
568     virtual QCString trVersion()
569     { return "ÅÕÏÇÑÉ"; }
570
571     /*! this text is generated when the \\date command is used. */
572     virtual QCString trDate()
573     { return "ÊÇÑíÎ"; }
574
575     /*! this text is generated when the \\return command is used. */
576     virtual QCString trReturns()
577     { return "Returns"; }
578
579     /*! this text is generated when the \\sa command is used. */
580     virtual QCString trSeeAlso()
581     { return "ÇäÙÑ ÃíÖÇ"; }
582
583     /*! this text is generated when the \\param command is used. */
584     virtual QCString trParameters()
585     { return "Parameters"; }
586
587     /*! this text is generated when the \\exception command is used. */
588     virtual QCString trExceptions()
589     { return "ÇÓÊËäÇÁÇÊ"; }
590     
591     /*! this text is used in the title page of a LaTeX document. */
592     virtual QCString trGeneratedBy()
593     { return "ÇäÊÌÊ ÈæÇÓØÉ"; }
594
595 //////////////////////////////////////////////////////////////////////////
596 // new since 0.49-990307
597 //////////////////////////////////////////////////////////////////////////
598     
599     /*! used as the title of page containing all the index of all namespaces. */
600     virtual QCString trNamespaceList()
601     { return "ÞÇÆãÉ ãÌÇáÇÊ ÇáÃÓãÇÁ"; }
602
603     /*! used as an introduction to the namespace list */
604     virtual QCString trNamespaceListDescription(bool extractAll)
605     {
606       QCString result="Here is a list of all ";
607       if (!extractAll) result+="documented ";
608       result+="namespaces with brief descriptions:";
609       return result;
610     }
611
612     /*! used in the class documentation as a header before the list of all
613      *  friends of a class
614      */
615     virtual QCString trFriends()
616     { return "Friends"; }
617     
618 //////////////////////////////////////////////////////////////////////////
619 // new since 0.49-990405
620 //////////////////////////////////////////////////////////////////////////
621     
622     /*! used in the class documentation as a header before the list of all
623      * related classes 
624      */
625     virtual QCString trRelatedFunctionDocumentation()
626     { return "Friends And Related Function Documentation"; }
627     
628 //////////////////////////////////////////////////////////////////////////
629 // new since 0.49-990425
630 //////////////////////////////////////////////////////////////////////////
631
632     /*! used as the title of the HTML page of a class/struct/union */
633     virtual QCString trCompoundReference(const char *clName,
634                                     ClassDef::CompoundType compType,
635                                     bool isTemplate)
636     {
637       QCString result=(QCString)clName;
638       switch(compType)
639       {
640         case ClassDef::Class:      result+=" Class"; break;
641         case ClassDef::Struct:     result+=" Struct"; break;
642         case ClassDef::Union:      result+=" Union"; break;
643         case ClassDef::Interface:  result+=" Interface"; break;
644         case ClassDef::Protocol:   result+=" Protocol"; break;
645         case ClassDef::Category:   result+=" Category"; break;
646         case ClassDef::Exception:  result+=" Exception"; break;
647       }
648       if (isTemplate) result+=" Template";
649       result+=" Reference";
650       return result;
651     }
652
653     /*! used as the title of the HTML page of a file */
654     virtual QCString trFileReference(const char *fileName)
655     {
656       QCString result=fileName;
657       result+=" File Reference"; 
658       return result;
659     }
660
661     /*! used as the title of the HTML page of a namespace */
662     virtual QCString trNamespaceReference(const char *namespaceName)
663     {
664       QCString result=namespaceName;
665       result+=" Namespace Reference";
666       return result;
667     }
668     
669     virtual QCString trPublicMembers()
670     { return "Public Member Functions"; }
671     virtual QCString trPublicSlots()
672     { return "Public Slots"; }
673     virtual QCString trSignals()
674     { return "Signals"; }
675     virtual QCString trStaticPublicMembers()
676     { return "Static Public Member Functions"; }
677     virtual QCString trProtectedMembers()
678     { return "Protected Member Functions"; }
679     virtual QCString trProtectedSlots()
680     { return "Protected Slots"; }
681     virtual QCString trStaticProtectedMembers()
682     { return "Static Protected Member Functions"; }
683     virtual QCString trPrivateMembers()
684     { return "Private Member Functions"; }
685     virtual QCString trPrivateSlots()
686     { return "Private Slots"; }
687     virtual QCString trStaticPrivateMembers()
688     { return "Static Private Member Functions"; }
689     
690     /*! this function is used to produce a comma-separated list of items.
691      *  use generateMarker(i) to indicate where item i should be put.
692      */
693     virtual QCString trWriteList(int numEntries)
694     {
695       QCString result;
696       int i;
697       // the inherits list contain `numEntries' classes
698       for (i=0;i<numEntries;i++) 
699       {
700         // use generateMarker to generate placeholders for the class links!
701         result+=generateMarker(i); // generate marker for entry i in the list 
702                                    // (order is left to right)
703         
704         if (i!=numEntries-1)  // not the last entry, so we need a separator
705         {
706           if (i<numEntries-2) // not the fore last entry 
707             result+=", ";
708           else                // the fore last entry
709             result+=", and ";
710         }
711       }
712       return result; 
713     }
714     
715     /*! used in class documentation to produce a list of base classes,
716      *  if class diagrams are disabled.
717      */
718     virtual QCString trInheritsList(int numEntries)
719     {
720       return "Inherits "+trWriteList(numEntries)+".";
721     }
722
723     /*! used in class documentation to produce a list of super classes,
724      *  if class diagrams are disabled.
725      */
726     virtual QCString trInheritedByList(int numEntries)
727     {
728       return "Inherited by "+trWriteList(numEntries)+".";
729     }
730
731     /*! used in member documentation blocks to produce a list of 
732      *  members that are hidden by this one.
733      */
734     virtual QCString trReimplementedFromList(int numEntries)
735     {
736       return "Reimplemented from "+trWriteList(numEntries)+".";
737     }
738
739     /*! used in member documentation blocks to produce a list of
740      *  all member that overwrite the implementation of this member.
741      */
742     virtual QCString trReimplementedInList(int numEntries)
743     {
744       return "Reimplemented in "+trWriteList(numEntries)+".";
745     }
746
747     /*! This is put above each page as a link to all members of namespaces. */
748     virtual QCString trNamespaceMembers()
749     { return "Namespace Members"; }
750
751     /*! This is an introduction to the page with all namespace members */
752     virtual QCString trNamespaceMemberDescription(bool extractAll)
753     { 
754       QCString result="Here is a list of all ";
755       if (!extractAll) result+="documented ";
756       result+="namespace members with links to ";
757       if (extractAll) 
758         result+="the namespace documentation for each member:";
759       else 
760         result+="the namespaces they belong to:";
761       return result;
762     }
763     /*! This is used in LaTeX as the title of the chapter with the 
764      *  index of all namespaces.
765      */
766     virtual QCString trNamespaceIndex()
767     { return "ÝåÑÓ ãÌÇáÇÊ ÇáÃÓãÇÁ"; }
768
769     /*! This is used in LaTeX as the title of the chapter containing
770      *  the documentation of all namespaces.
771      */
772     virtual QCString trNamespaceDocumentation()
773     { return "ÊæËíÞ ãÌÇáÇÊ ÇáÃÓãÇÁ"; }
774
775 //////////////////////////////////////////////////////////////////////////
776 // new since 0.49-990522
777 //////////////////////////////////////////////////////////////////////////
778
779     /*! This is used in the documentation before the list of all
780      *  namespaces in a file.
781      */
782     virtual QCString trNamespaces()
783     { return "ãÌÇáÇÊ ÇáÃÓãÇÁ"; }
784
785 //////////////////////////////////////////////////////////////////////////
786 // new since 0.49-990728
787 //////////////////////////////////////////////////////////////////////////
788
789     /*! This is put at the bottom of a class documentation page and is
790      *  followed by a list of files that were used to generate the page.
791      */
792     virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType,
793         bool single)
794     { // here s is one of " Class", " Struct" or " Union"
795       // single is true implies a single file
796       QCString result=(QCString)"ÊæËíÞ   ";
797       switch(compType)
798       {
799         case ClassDef::Class:      result+="åÐå ÇáÝÆÉ"; break;
800         case ClassDef::Struct:     result+="åÐÇ ÇáÈäÇÁ"; break;
801         case ClassDef::Union:      result+="åÐÇ ÇáÅÊÍÇÏ"; break;
802         case ClassDef::Interface:  result+="åÐå ÇáæÇÌåÉ"; break;
803         case ClassDef::Protocol:   result+="åÐÇ ÇáÈÑæÊæßæá"; break;
804         case ClassDef::Category:   result+="åÐÇ ÇáÊÕäíÝ"; break;
805         case ClassDef::Exception:  result+="åÐÇ ÇáÅÓÊËäÇÁ"; break;
806       }
807       result+=" Êã Êßæíäå ãä ";
808           if (single) result+="åÐÇ ÇáãáÝ:"; else result+="åÐå ÇáãáÝÇÊ:";
809       return result;
810     }
811
812     /*! This is in the (quick) index as a link to the alphabetical compound
813      * list.
814      */
815     virtual QCString trAlphabeticalList()
816     { return "ÞÇÆãÉ ÃÈÌÏíÉ"; }
817
818 //////////////////////////////////////////////////////////////////////////
819 // new since 0.49-990901
820 //////////////////////////////////////////////////////////////////////////
821
822     /*! This is used as the heading text for the retval command. */
823     virtual QCString trReturnValues()
824     { return "Þíã ÇáÚæÏÉ"; }
825
826     /*! This is in the (quick) index as a link to the main page (index.html)
827      */
828     virtual QCString trMainPage()
829     { return "ÇáÕÝÍÉ ÇáÑÆíÓíÉ"; }
830
831     /*! This is used in references to page that are put in the LaTeX 
832      *  documentation. It should be an abbreviation of the word page.
833      */
834     virtual QCString trPageAbbreviation()
835     { return "Õ."; }
836
837 //////////////////////////////////////////////////////////////////////////
838 // new since 0.49-991003
839 //////////////////////////////////////////////////////////////////////////
840
841     virtual QCString trSources()
842     {
843       return "ãÕÇÏÑ";
844     }
845     virtual QCString trDefinedAtLineInSourceFile()
846     {
847       return "Definition at line @0 of file @1.";
848     }
849     virtual QCString trDefinedInSourceFile()
850     {
851       return "Definition in file @0.";
852     }
853
854 //////////////////////////////////////////////////////////////////////////
855 // new since 0.49-991205
856 //////////////////////////////////////////////////////////////////////////
857
858     virtual QCString trDeprecated()
859     {
860       return "Deprecated";
861     }
862
863 //////////////////////////////////////////////////////////////////////////
864 // new since 1.0.0
865 //////////////////////////////////////////////////////////////////////////
866
867     /*! this text is put before a collaboration diagram */
868     virtual QCString trCollaborationDiagram(const char *clName)
869     {
870       return (QCString)"ÑÓã ÇáÊÚÇæä áÜ "+clName+":";
871     }
872     /*! this text is put before an include dependency graph */
873     virtual QCString trInclDepGraph(const char *fName)
874     {
875       return (QCString)"ÑÓã ÇÚÊãÇÏíÉ ÇáÊÖãíä áÜ "+fName+":";
876     }
877     /*! header that is put before the list of constructor/destructors. */
878     virtual QCString trConstructorDocumentation()
879     {
880       return "ÊæËíÞ ÏæÇá ÇáÈäÇÁ æÇáåÏã"; 
881     }
882     /*! Used in the file documentation to point to the corresponding sources. */
883     virtual QCString trGotoSourceCode()
884     {
885       return "ÇÐåÈ Åáì ÇáßæÏ ÇáÎÇÕ ÈåÐÇ ÇáãáÝ.";
886     }
887     /*! Used in the file sources to point to the corresponding documentation. */
888     virtual QCString trGotoDocumentation()
889     {
890       return "ÇÐåÈ Åáì ÊæËíÞ åÐÇ ÇáãáÝ.";
891     }
892     /*! Text for the \\pre command */
893     virtual QCString trPrecondition()
894     {
895       return "ÔÑØ ÓÇÈÞ";
896     }
897     /*! Text for the \\post command */
898     virtual QCString trPostcondition()
899     {
900       return "ÔÑØ áÇÍÞ";
901     }
902     /*! Text for the \\invariant command */
903     virtual QCString trInvariant()
904     {
905       return "ËÇÈÊ";
906     }
907     /*! Text shown before a multi-line variable/enum initialization */
908     virtual QCString trInitialValue()
909     {
910                 return "ÞíãÉ ãÈÏÆíÉ:";
911     }
912     /*! Text used the source code in the file index */
913     virtual QCString trCode()
914     {
915       return "ßæÏ";
916     }
917     virtual QCString trGraphicalHierarchy()
918     {
919       return "ÇáÔßá ÇáÑÓæãí ááÝÆÇÊ";
920     }
921     virtual QCString trGotoGraphicalHierarchy()
922     {
923       return "ÇÐåÈ Åáì ÇáÔßá ÇáåÑãí ÇáÑÓæãí ááÝÆÇÊ";
924     }
925     virtual QCString trGotoTextualHierarchy()
926     {
927       return "ÇÐåÈ Åáì ÇáÔßá ÇáåÑãí ÇáäÕí ááÝÆÇÊ";
928     }
929     virtual QCString trPageIndex()
930     {
931       return "ÝåÑÓ ÇáÕÝÍÇÊ";
932     }
933
934 //////////////////////////////////////////////////////////////////////////
935 // new since 1.1.0
936 //////////////////////////////////////////////////////////////////////////
937     
938     virtual QCString trNote()
939     {
940       return "ãáÇÍÙÇÊ";
941     }
942     virtual QCString trPublicTypes()
943     {
944       return "ÃäæÇÚ ÚÇãÉ";
945     }
946     virtual QCString trPublicAttribs()
947     {
948       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
949       {
950         return "ÍÞæá ÈíÇäÇÊ";
951       }
952       else
953       {
954         return "ÕÝÇÊ ÚÇãÉ";
955       }
956     }
957     virtual QCString trStaticPublicAttribs()
958     {
959       return "ÕÝÇÊ ÓÇßäÉ ÚÇãÉ";
960     }
961     virtual QCString trProtectedTypes()
962     {
963       return "ÃäæÇÚ ãÍãíÉ";
964     }
965     virtual QCString trProtectedAttribs()
966     {
967       return "ÕÝÇÊ ãÍãíÉ";
968     }
969     virtual QCString trStaticProtectedAttribs()
970     {
971       return "ÕÝÇÊ ÓÇßäÉ ãÍãíÉ";
972     }
973     virtual QCString trPrivateTypes()
974     {
975       return "ÃäæÇÚ ÎÇÕÉ";
976     }
977     virtual QCString trPrivateAttribs()
978     {
979       return "ÕÝÇÊ ÎÇÕÉ";
980     }
981     virtual QCString trStaticPrivateAttribs()
982     {
983       return "ÕÝÇÊ ÓÇßäÉ ÎÇÕÉ";
984     }
985
986 //////////////////////////////////////////////////////////////////////////
987 // new since 1.1.3
988 //////////////////////////////////////////////////////////////////////////
989
990     /*! Used as a marker that is put before a \\todo item */
991     virtual QCString trTodo()
992     {
993       return "ãåÇã";
994     }
995     /*! Used as the header of the todo list */
996     virtual QCString trTodoList()
997     {
998       return "ÞÇÆãÉ ÇáãåÇã";
999     }
1000
1001 //////////////////////////////////////////////////////////////////////////
1002 // new since 1.1.4
1003 //////////////////////////////////////////////////////////////////////////
1004
1005     virtual QCString trReferencedBy()
1006     {
1007       return "ÐßÑ ÈæÇÓØÉ";
1008     }
1009     virtual QCString trRemarks()
1010     {
1011       return "ÊÚáíÞÇÊ";
1012     }
1013     virtual QCString trAttention()
1014     {
1015       return "ÇäÊÈå";
1016     }
1017     virtual QCString trInclByDepGraph()
1018     {
1019       return "åÐÇ ÇáÑÓã íæÖÍ ÇáãáÝÇÊ ÇáÊí ÖãäÊ åÐÇ ÇáãáÝ"
1020              "ÈÕæÑÉ ãÈÇÔÑÉ Ãæ ÛíÑ ãÈÇÔÑÉ:";
1021     }
1022     virtual QCString trSince()
1023     {
1024       return "ãäÐ";
1025     }
1026     
1027 //////////////////////////////////////////////////////////////////////////
1028 // new since 1.1.5
1029 //////////////////////////////////////////////////////////////////////////
1030
1031     /*! title of the graph legend page */
1032     virtual QCString trLegendTitle()
1033     {
1034       return "Graph Legend";
1035     }
1036     /*! page explaining how the dot graph's should be interpreted 
1037      *  The %A in the text below are to prevent link to classes called "A".
1038      */
1039     virtual QCString trLegendDocs()
1040     {
1041       return 
1042         "This page explains how to interpret the graphs that are generated "
1043         "by doxygen.<p>\n"
1044         "Consider the following example:\n"
1045         "\\code\n"
1046         "/*! Invisible class because of truncation */\n"
1047         "class Invisible { };\n\n"
1048         "/*! Truncated class, inheritance relation is hidden */\n"
1049         "class Truncated : public Invisible { };\n\n"
1050         "/* Class not documented with doxygen comments */\n"
1051         "class Undocumented { };\n\n"
1052         "/*! Class that is inherited using public inheritance */\n"
1053         "class PublicBase : public Truncated { };\n\n"
1054         "/*! A template class */\n"
1055         "template<class T> class Templ { };\n\n"
1056         "/*! Class that is inherited using protected inheritance */\n"
1057         "class ProtectedBase { };\n\n"
1058         "/*! Class that is inherited using private inheritance */\n"
1059         "class PrivateBase { };\n\n"
1060         "/*! Class that is used by the Inherited class */\n"
1061         "class Used { };\n\n"
1062         "/*! Super class that inherits a number of other classes */\n"
1063         "class Inherited : public PublicBase,\n"
1064         "                  protected ProtectedBase,\n"
1065         "                  private PrivateBase,\n"
1066         "                  public Undocumented\n"
1067         "                  public Templ<int>\n"
1068         "{\n"
1069         "  private:\n"
1070         "    Used *m_usedClass;\n"
1071         "};\n"
1072         "\\endcode\n"
1073         "If the \\c MAX_DOT_GRAPH_HEIGHT tag in the configuration file "
1074         "is set to 240 this will result in the following graph:"
1075         "<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n"
1076         "<p>\n"
1077         "The boxes in the above graph have the following meaning:\n"
1078         "<ul>\n"
1079         "<li>%A filled black box represents the struct or class for which the "
1080         "graph is generated.\n"
1081         "<li>%A box with a black border denotes a documented struct or class.\n"
1082         "<li>%A box with a grey border denotes an undocumented struct or class.\n"
1083         "<li>%A box with a red border denotes a documented struct or class for"
1084         "which not all inheritance/containment relations are shown. %A graph is "
1085         "truncated if it does not fit within the specified boundaries.\n"
1086         "</ul>\n"
1087         "The arrows have the following meaning:\n"
1088         "<ul>\n"
1089         "<li>%A dark blue arrow is used to visualize a public inheritance "
1090         "relation between two classes.\n"
1091         "<li>%A dark green arrow is used for protected inheritance.\n"
1092         "<li>%A dark red arrow is used for private inheritance.\n"
1093         "<li>%A purple dashed arrow is used if a class is contained or used "
1094         "by another class. The arrow is labeled with the variable(s) "
1095         "through which the pointed class or struct is accessible.\n"
1096         "<li>%A yellow dashed arrow denotes a relation between a template instance and "
1097         "the template class it was instantiated from. The arrow is labeled with "
1098         "the template parameters of the instance.\n"
1099         "</ul>\n";
1100     }
1101     /*! text for the link to the legend page */
1102     virtual QCString trLegend()
1103     {
1104       return "legend";
1105     }
1106     
1107 //////////////////////////////////////////////////////////////////////////
1108 // new since 1.2.0
1109 //////////////////////////////////////////////////////////////////////////
1110     
1111     /*! Used as a marker that is put before a test item */
1112     virtual QCString trTest()
1113     {
1114       return "ÇÎÊÈÇÑ";
1115     }
1116     /*! Used as the header of the test list */
1117     virtual QCString trTestList()
1118     {
1119       return "ÞÇÆãÉ ÇáÅÎÊÈÇÑÇÊ";
1120     }
1121
1122 //////////////////////////////////////////////////////////////////////////
1123 // new since 1.2.1
1124 //////////////////////////////////////////////////////////////////////////
1125
1126     /*! Used as a section header for KDE-2 IDL methods */
1127     virtual QCString trDCOPMethods()
1128     {
1129       return "DCOP Member Functions";
1130     }
1131
1132 //////////////////////////////////////////////////////////////////////////
1133 // new since 1.2.2
1134 //////////////////////////////////////////////////////////////////////////
1135
1136     /*! Used as a section header for IDL properties */
1137     virtual QCString trProperties()
1138     {
1139       return "ÎÕÇÆÕ";
1140     }
1141     /*! Used as a section header for IDL property documentation */
1142     virtual QCString trPropertyDocumentation()
1143     {
1144       return "ÊæËíÞ ÇáÎÇÕíÉ";
1145     }
1146
1147 //////////////////////////////////////////////////////////////////////////
1148 // new since 1.2.4
1149 //////////////////////////////////////////////////////////////////////////
1150
1151     /*! Used for Java interfaces in the summary section of Java packages */
1152     virtual QCString trInterfaces()
1153     {
1154       return "æÇÌåÇÊ";
1155     }
1156     /*! Used for Java classes in the summary section of Java packages */
1157     virtual QCString trClasses()
1158     {
1159       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
1160       {
1161         return "åíÇßá ÇáÈíÇäÇÊ";
1162       }
1163       else
1164       {
1165         return "ÝÆÇÊ";
1166       }
1167     }
1168     /*! Used as the title of a Java package */
1169     virtual QCString trPackage(const char *name)
1170     {
1171       return (QCString)"ÍÒãÉ "+name;
1172     }
1173     /*! Title of the package index page */
1174     virtual QCString trPackageList()
1175     {
1176       return "ÞÇÆãÉ ÇáÍÒã";
1177     }
1178     /*! The description of the package index page */
1179     virtual QCString trPackageListDescription()
1180     {
1181                 return "åÐå åí ÇáÍÒã ãÚ æÕÝ ãÎÊÕÑ áßá ãäåÇ )Åä æÌÏ( :";   
1182     }
1183     /*! The link name in the Quick links header for each page */
1184     virtual QCString trPackages()
1185     {
1186       return "ÍÒã";
1187     }
1188     /*! Used as a chapter title for Latex & RTF output */
1189     virtual QCString trPackageDocumentation()
1190     {
1191       return "ÊæËíÞ ÇáÍÒã";
1192     }
1193     /*! Text shown before a multi-line define */
1194     virtual QCString trDefineValue()
1195     {
1196                 return "ÇáÞíãÉ:";
1197     }
1198     
1199 //////////////////////////////////////////////////////////////////////////
1200 // new since 1.2.5
1201 //////////////////////////////////////////////////////////////////////////
1202     
1203     /*! Used as a marker that is put before a \\bug item */
1204     virtual QCString trBug()
1205     {
1206       return "ËÛÑÉ";
1207     }
1208     /*! Used as the header of the bug list */
1209     virtual QCString trBugList()
1210     {
1211       return "ÞÇÆãÉ ÇáËÛÑÇÊ";
1212     }
1213
1214 //////////////////////////////////////////////////////////////////////////
1215 // new since 1.2.6
1216 //////////////////////////////////////////////////////////////////////////
1217
1218     /*! Used as ansicpg for RTF file 
1219      * 
1220      * The following table shows the correlation of Charset name, Charset Value and 
1221      * <pre>
1222      * Codepage number:
1223      * Charset Name       Charset Value(hex)  Codepage number
1224      * ------------------------------------------------------
1225      * DEFAULT_CHARSET           1 (x01)
1226      * SYMBOL_CHARSET            2 (x02)
1227      * OEM_CHARSET             255 (xFF)
1228      * ANSI_CHARSET              0 (x00)            1252
1229      * RUSSIAN_CHARSET         204 (xCC)            1251
1230      * EE_CHARSET              238 (xEE)            1250
1231      * GREEK_CHARSET           161 (xA1)            1253
1232      * TURKISH_CHARSET         162 (xA2)            1254
1233      * BALTIC_CHARSET          186 (xBA)            1257
1234      * HEBREW_CHARSET          177 (xB1)            1255
1235      * ARABIC _CHARSET         178 (xB2)            1256
1236      * SHIFTJIS_CHARSET        128 (x80)             932
1237      * HANGEUL_CHARSET         129 (x81)             949
1238      * GB2313_CHARSET          134 (x86)             936
1239      * CHINESEBIG5_CHARSET     136 (x88)             950
1240      * </pre>
1241      * 
1242      */
1243     virtual QCString trRTFansicp()
1244     {
1245       return "1256";
1246     }
1247     
1248
1249     /*! Used as ansicpg for RTF fcharset 
1250      *  \see trRTFansicp() for a table of possible values.
1251      */
1252     virtual QCString trRTFCharSet()
1253     {
1254       return "0";
1255     }
1256
1257     /*! Used as header RTF general index */
1258     virtual QCString trRTFGeneralIndex()
1259     {
1260       return "ÝåÑÓ";
1261     }
1262    
1263     /*! This is used for translation of the word that will possibly
1264      *  be followed by a single name or by a list of names 
1265      *  of the category.
1266      */
1267     virtual QCString trClass(bool /*first_capital*/, bool singular)
1268     { 
1269       QCString result("ÝÆÉ");
1270       if (!singular)  result="ÝÆÇÊ";
1271       return result; 
1272     }
1273
1274     /*! This is used for translation of the word that will possibly
1275      *  be followed by a single name or by a list of names 
1276      *  of the category.
1277      */
1278     virtual QCString trFile(bool /*first_capital*/, bool singular)
1279     { 
1280       QCString result("ãáÝ");
1281       if (!singular)  result="ãáÝÇÊ";
1282       return result; 
1283     }
1284
1285     /*! This is used for translation of the word that will possibly
1286      *  be followed by a single name or by a list of names 
1287      *  of the category.
1288      */
1289     virtual QCString trNamespace(bool /*first_capital*/, bool singular)
1290     { 
1291       QCString result("ãÌÇá ÃÓãÇÁ");
1292       if (!singular)  result="ãÌÇáÇÊ ÃÓãÇÁ";
1293       return result; 
1294     }
1295
1296     /*! This is used for translation of the word that will possibly
1297      *  be followed by a single name or by a list of names 
1298      *  of the category.
1299      */
1300     virtual QCString trGroup(bool /*first_capital*/, bool singular)
1301     { 
1302       QCString result("ãÌãæÚÉ");
1303       if (!singular)  result="ãÌãæÚÇÊ";
1304       return result; 
1305     }
1306
1307     /*! This is used for translation of the word that will possibly
1308      *  be followed by a single name or by a list of names 
1309      *  of the category.
1310      */
1311     virtual QCString trPage(bool /*first_capital*/, bool singular)
1312     { 
1313       QCString result("ÕÝÍÉ");
1314       if (!singular)  result="ÕÝÍÇÊ";
1315       return result; 
1316     }
1317
1318     /*! This is used for translation of the word that will possibly
1319      *  be followed by a single name or by a list of names 
1320      *  of the category.
1321      */
1322     virtual QCString trMember(bool /*first_capital*/, bool singular)
1323     { 
1324       QCString result("ÚÖæ");
1325       if (!singular)  result="ÃÚÖÇÁ";
1326       return result; 
1327     }
1328    
1329     /*! This is used for translation of the word that will possibly
1330      *  be followed by a single name or by a list of names 
1331      *  of the category.
1332      */
1333     virtual QCString trField(bool /*first_capital*/, bool singular)
1334     { 
1335       QCString result("ÍÞá");
1336       if (!singular)  result="ÍÞæá";
1337       return result; 
1338     }
1339
1340     /*! This is used for translation of the word that will possibly
1341      *  be followed by a single name or by a list of names 
1342      *  of the category.
1343      */
1344     virtual QCString trGlobal(bool /*first_capital*/, bool singular)
1345     { 
1346       QCString result("ÚÇã");
1347       if (!singular)  result="ÚæÇã";
1348       return result; 
1349     }
1350
1351 //////////////////////////////////////////////////////////////////////////
1352 // new since 1.2.7
1353 //////////////////////////////////////////////////////////////////////////
1354
1355     /*! This text is generated when the \\author command is used and
1356      *  for the author section in man pages. */
1357     virtual QCString trAuthor(bool /*first_capital*/, bool singular)
1358     {                                                                         
1359       QCString result("ÇáãÄáÝ");
1360       if (!singular)  result="ÇáãÄáÝæä";
1361       return result; 
1362     }
1363
1364 //////////////////////////////////////////////////////////////////////////
1365 // new since 1.2.11
1366 //////////////////////////////////////////////////////////////////////////
1367
1368     /*! This text is put before the list of members referenced by a member
1369      */
1370     virtual QCString trReferences()
1371     {
1372       return "ãÑÌÚíÇÊ";
1373     }
1374
1375 //////////////////////////////////////////////////////////////////////////
1376 // new since 1.2.13
1377 //////////////////////////////////////////////////////////////////////////
1378
1379     /*! used in member documentation blocks to produce a list of 
1380      *  members that are implemented by this one.
1381      */
1382     virtual QCString trImplementedFromList(int numEntries)
1383     {
1384       return "Implements "+trWriteList(numEntries)+".";
1385     }
1386
1387     /*! used in member documentation blocks to produce a list of
1388      *  all members that implement this abstract member.
1389      */
1390     virtual QCString trImplementedInList(int numEntries)
1391     {
1392       return "Implemented in "+trWriteList(numEntries)+".";
1393     }
1394
1395 //////////////////////////////////////////////////////////////////////////
1396 // new since 1.2.16
1397 //////////////////////////////////////////////////////////////////////////
1398
1399     /*! used in RTF documentation as a heading for the Table
1400      *  of Contents.
1401      */
1402     virtual QCString trRTFTableOfContents()
1403     {
1404       return "ÌÏæá ÇáãÍÊæíÇÊ";
1405     }
1406
1407 //////////////////////////////////////////////////////////////////////////
1408 // new since 1.2.17
1409 //////////////////////////////////////////////////////////////////////////
1410
1411     /*! Used as the header of the list of item that have been 
1412      *  flagged deprecated 
1413      */
1414     virtual QCString trDeprecatedList()
1415     {
1416       return "Deprecated List";
1417     }
1418
1419 //////////////////////////////////////////////////////////////////////////
1420 // new since 1.2.18
1421 //////////////////////////////////////////////////////////////////////////
1422
1423     /*! Used as a header for declaration section of the events found in 
1424      * a C# program
1425      */
1426     virtual QCString trEvents()
1427     {
1428       return "ÇáÃÍÏÇË";
1429     }
1430     /*! Header used for the documentation section of a class' events. */
1431     virtual QCString trEventDocumentation()
1432     {
1433       return "ÊæËíÞ ÇáÃÍÏÇË";
1434     }
1435
1436 //////////////////////////////////////////////////////////////////////////
1437 // new since 1.3
1438 //////////////////////////////////////////////////////////////////////////
1439
1440     /*! Used as a heading for a list of Java class types with package scope.
1441      */
1442     virtual QCString trPackageTypes()
1443     { 
1444       return "ÃäæÇÚ ÇáÍÒãÉ";
1445     }
1446     /*! Used as a heading for a list of Java class functions with package 
1447      * scope. 
1448      */
1449     virtual QCString trPackageMembers()
1450     { 
1451       return "ÏæÇá ÇáÍÒãÉ";
1452     }
1453     /*! Used as a heading for a list of static Java class functions with 
1454      *  package scope.
1455      */
1456     virtual QCString trStaticPackageMembers()
1457     { 
1458       return "ÏæÇá ÓÇßäÉ ááÍÒãÉ";
1459     }
1460     /*! Used as a heading for a list of Java class variables with package 
1461      * scope.
1462      */
1463     virtual QCString trPackageAttribs()
1464     { 
1465       return "ÎÕÇÆÕ ÇáÍÒãÉ";
1466     }
1467     /*! Used as a heading for a list of static Java class variables with 
1468      * package scope.
1469      */
1470     virtual QCString trStaticPackageAttribs()
1471     { 
1472       return "ÎÕÇÆÕ ÓÇßäÉ ááÍÒãÉ";
1473     }
1474     
1475 //////////////////////////////////////////////////////////////////////////
1476 // new since 1.3.1
1477 //////////////////////////////////////////////////////////////////////////
1478
1479     /*! Used in the quick index of a class/file/namespace member list page 
1480      *  to link to the unfiltered list of all members.
1481      */
1482     virtual QCString trAll()
1483     {
1484       return "Çáßá";
1485     }
1486     /*! Put in front of the call graph for a function. */
1487     virtual QCString trCallGraph()
1488     {
1489                 return "åÐÇ åæ ÑÓã ÇáÇÓÊÏÚÇÁ áåÐå ÇáÏÇáÉ:";
1490     }
1491
1492 //////////////////////////////////////////////////////////////////////////
1493 // new since 1.3.3
1494 //////////////////////////////////////////////////////////////////////////
1495
1496     /*! When the search engine is enabled this text is put in the header 
1497      *  of each page before the field where one can enter the text to search 
1498      *  for. 
1499      */
1500     virtual QCString trSearchForIndex()
1501     {
1502       return "ÈÍË Úä";
1503     }
1504     /*! This string is used as the title for the page listing the search
1505      *  results.
1506      */
1507     virtual QCString trSearchResultsTitle()
1508     {
1509       return "äÊÇÆÌ ÇáÈÍË";
1510     }
1511     /*! This string is put just before listing the search results. The
1512      *  text can be different depending on the number of documents found.
1513      *  Inside the text you can put the special marker $num to insert
1514      *  the number representing the actual number of search results.
1515      *  The @a numDocuments parameter can be either 0, 1 or 2, where the 
1516      *  value 2 represents 2 or more matches. HTML markup is allowed inside
1517      *  the returned string.
1518      */
1519     virtual QCString trSearchResults(int numDocuments)
1520     {
1521       if (numDocuments==0)
1522       {
1523         return "ÚÝæÇ ¡ áÇ íæÌÏ ÊæËíÞ ãáÇÆã áãÇ ÈÍËÊ Úäå.";
1524       }
1525       else if (numDocuments==1)
1526       {
1527         return "æËíÞÉ ãäÇÓÈÉ áãÇ ÈÍËÊ Úäå. <b>1</b> Êã ÇáÚËæÑ Úáì.";
1528       }
1529       else 
1530       {
1531         return "æËíÞÉ ãØÇÈÞÉ áãÇ ÈÍËÊ Úäå <b>$num</b> Êã ÅíÌÇÏ ."
1532                "æÊã ÊÑÊíÈåã ÈÍíË íßæä ÇáÃÞÑÈ áäÊíÌÉ ÇáÈÍË ÃæáÇ.";
1533       }
1534     }
1535     /*! This string is put before the list of matched words, for each search 
1536      *  result. What follows is the list of words that matched the query.
1537      */
1538     virtual QCString trSearchMatches()
1539     {
1540                 return "íÊØÇÈÞ ãÚ:";
1541     }
1542
1543 //////////////////////////////////////////////////////////////////////////
1544 // new since 1.3.8
1545 //////////////////////////////////////////////////////////////////////////
1546
1547     /*! This is used in HTML as the title of page with source code for file filename
1548      */
1549     virtual QCString trSourceFile(QCString& filename)
1550     {
1551       return " ãáÝ ÇáãÕÏÑ" + filename ;
1552     }
1553
1554 //////////////////////////////////////////////////////////////////////////
1555 // new since 1.3.9
1556 //////////////////////////////////////////////////////////////////////////
1557
1558     /*! This is used as the name of the chapter containing the directory
1559      *  hierarchy.
1560      */
1561     virtual QCString trDirIndex()
1562     { return "Ôßá åÑãí ááÃÏáÉ"; }
1563
1564     /*! This is used as the name of the chapter containing the documentation
1565      *  of the directories.
1566      */
1567     virtual QCString trDirDocumentation()
1568     { return "ÊæËíÞ ÇáÃÏáÉ"; }
1569
1570     /*! This is used as the title of the directory index and also in the
1571      *  Quick links of an HTML page, to link to the directory hierarchy.
1572      */
1573     virtual QCString trDirectories()
1574     { return "ÇáÃÏáÉ"; }
1575
1576     /*! This returns a sentences that introduces the directory hierarchy. 
1577      *  and the fact that it is sorted alphabetically per level
1578      */
1579     virtual QCString trDirDescription()
1580     { return "åÐÇ ÇáÔßá ÇáåÑãí ááÃÏáÉ Êã ÊÑÊíÈå ÃÈÌÏíÇ ÈÕæÑÉ ÊÞÑíÈíÉ¡ "
1581         "æáíÓ ÊÑÊíÈÇ ÃÈÌÏíÇ ßÇãáÇ:";
1582     }
1583
1584     /*! This returns the title of a directory page. The name of the
1585      *  directory is passed via \a dirName.
1586      */
1587     virtual QCString trDirReference(const char *dirName)
1588     { QCString result=" ãÑÌÚ ÇáÏáíá"; result+=dirName; return result; }
1589
1590     /*! This returns the word directory with or without starting capital
1591      *  (\a first_capital) and in sigular or plural form (\a singular).
1592      */
1593     virtual QCString trDir(bool first_capital, bool singular)
1594     { 
1595       QCString result((first_capital ? "Director" : "director"));
1596       if (singular) result+="y"; else result+="ies";
1597       return result; 
1598     }
1599
1600 //////////////////////////////////////////////////////////////////////////
1601 // new since 1.4.1
1602 //////////////////////////////////////////////////////////////////////////
1603
1604     /*! This text is added to the documentation when the \\overload command
1605      *  is used for a overloaded function.
1606      */
1607     virtual QCString trOverloadText()
1608     {
1609        return "åÐå ÏÇáÉ ÚÖæ ÒÇÆÏÉ ÇáÊÍãíá ¡"
1610               "æÌÏ ÃäåÇ ãáÇÆãÉ. ÅäåÇ ÊÎÊáÝ Úä ÇáÏÇáÉ ÃÚáÇå"
1611               "ÝÞØ Ýí äæÚíÉ Çá argument(s) ÇáÊí ÊÞÈáåÇ.";
1612     }
1613 };
1614
1615 #endif