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