/****************************************************************************** * * * * Copyright (C) 1997-2000 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby * granted. No representations are made about the suitability of this software * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * * Documents produced by Doxygen are derivative works derived from the * input used in their production; they are not affected by this license. */ /* * * Nickolay Semyonov * Andrey V. Stolyarov released Feb 14, 2001 * Alexandr V. Chelpanov released Apr 21, 2001 * * Доступны так же перевод примеров на русский язык по email (см. выше) * * При переводе заголовков слова list и documentation убраны. * * Modules переведено как группы, так как модули чаще всего в русском * переводе встречается в контексте модуля как единицы трансляции, файла * и др., что в данном случае не совсем подходит, тем более что * соответствующая команда в doxygen именуется \group. * * Просьба не оптимизировать decode обрамляя результат, это может привести * к перекодировке входа в том числе русских имен файлов. * * Отдано предпочтение при переводе related functions - "относящиеся к классу * функции", а не "связанные функции", что верно до тех пор пока есть только * related to class, и нет related to template, package и т.д. Последнее * замечание касается большинства member. * * По возможности при переводе members указывается членом чего этот member * является. * * Compounds переведено как классы, см Строустрап. * * Определения помеченные ?? являются спорными. * * Благодарности: Vitaly A. Repin */ #ifndef TRANSLATOR_RU_H #define TRANSLATOR_RU_H class TranslatorRussian : public Translator { private: /*! The Decode() inline assumes the source written in the Koi8-R encoding (maintainer dependent). */ inline QCString decode(const QCString & sInput) { #ifdef _WIN32 return Koi8RToWindows1251(sInput); #else return sInput; #endif } public: /*! Used for identification of the language. */ virtual QCString idLanguage() { return "russian"; } /* Used to get the command(s) for the language support. */ virtual QCString latexLanguageSupportCommand() #ifdef _WIN32 { return "\\usepackage[cp1251]{inputenc}\n\\usepackage[russian]{babel}\n"; } #else { return "\\usepackage[koi8-r]{inputenc}\n\\usepackage[russian]{babel}\n"; } #endif /*! return the language charset. This will be used for the HTML output */ virtual QCString idLanguageCharset() #ifdef _WIN32 { return "Windows-1251"; } #else { return "koi8-r"; } #endif // --- Language translation methods ------------------- /*! used in the compound documentation before a list of related functions. */ virtual QCString trRelatedFunctions() { return decode("Относящиеся к классу функции"); } /*! subscript for the related functions. */ virtual QCString trRelatedSubscript() { return decode("(не члены класса)"); } /*! header that is put before the detailed description of files, classes and namespaces. */ virtual QCString trDetailedDescription() { return decode("Подробное описание"); } /*! header that is put before the list of typedefs. */ virtual QCString trMemberTypedefDocumentation() { return decode("Определения типов"); } /*! header that is put before the list of enumerations. */ virtual QCString trMemberEnumerationDocumentation() { return decode("Перечисления"); } /*! header that is put before the list of member functions. */ virtual QCString trMemberFunctionDocumentation() { return decode("Методы"); } /*! header that is put before the list of member attributes. */ virtual QCString trMemberDataDocumentation() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return decode( "Поля" ); } else { return decode( "Данные класса" ); } } /*! this is the text of a link put after brief descriptions. */ virtual QCString trMore() { return decode("Подробнее..."); } /*! put in the class documentation */ /* Dosn't use when optimization for C is on. */ virtual QCString trListOfAllMembers() { return decode( "Полный список членов класса" ); } /*! used as the title of the "list of all members" page of a class */ /* Dosn't use when optimization for C is on. */ virtual QCString trMemberList() { return decode( "Cписок членов класса" ); } /*! this is the first part of a sentence that is followed by a class name */ /* Dosn't use when optimization for C is on. */ virtual QCString trThisIsTheListOfAllMembers() { return decode("Полный список членов класса "); } /*! this is the remainder of the sentence after the class name */ /* Dosn't use when optimization for C is on. */ virtual QCString trIncludingInheritedMembers() { return decode(", включая наследуемые из базового класса"); } /*! this is put at the author sections at the bottom of man pages. * parameter s is name of the project name. */ virtual QCString trGeneratedAutomatically(const char *s) { QCString result=decode("Автоматически создано Doxygen"); if (s) result+=decode(" для ")+s; result+=decode(" из исходного текста."); return result; } /*! put after an enum name in the list of all members */ virtual QCString trEnumName() { return decode("перечисление"); } /*! put after an enum value in the list of all members */ virtual QCString trEnumValue() { return decode("элементы перечисления"); } /*! put after an undocumented member in the list of all members */ virtual QCString trDefinedIn() { return decode("определено в"); } // quick reference sections /*! This is put above each page as a link to the list of all groups of * compounds or files (see the \\group command). */ virtual QCString trModules() { return decode("Группы"); } /*! This is put above each page as a link to the class hierarchy */ virtual QCString trClassHierarchy() { return decode("Иерархия классов"); } /*! This is put above each page as a link to the list of annotated classes */ virtual QCString trCompoundList() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return decode( "Структуры данных" ); } else { return decode( "Классы" ); } } /*! This is put above each page as a link to the list of documented files */ virtual QCString trFileList() { return decode("Файлы"); } /*! This is put above each page as a link to the list of all verbatim headers */ virtual QCString trHeaderFiles() { return decode("Заголовочные файлы"); } /*! This is put above each page as a link to all members of compounds. */ virtual QCString trCompoundMembers() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return decode( "Поля структур" ); } else { return decode( "Члены классов" ); } } /*! This is put above each page as a link to all members of files. */ /*??*/ virtual QCString trFileMembers() { return decode( "Члены файла" ); } /*! This is put above each page as a link to all related pages. */ virtual QCString trRelatedPages() /* ?? Вариант перевода "См. также: " более удачный, но не в заголовке, как в данном случае. */ { return decode("Описания"); } /*! This is put above each page as a link to all examples. */ virtual QCString trExamples() { return decode("Примеры"); } /*! This is put above each page as a link to the search engine. */ virtual QCString trSearch() { return decode("Поиск"); } /*! This is an introduction to the class hierarchy. */ virtual QCString trClassHierarchyDescription() { return decode("Иерархия классов."); } /*! This is an introduction to the list with all files. */ virtual QCString trFileListDescription(bool extractAll) { QCString result="Полный список "; if (!extractAll) result+="документированных "; result+="файлов."; return decode(result); } /*! This is an introduction to the annotated compound list. */ virtual QCString trCompoundListDescription() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return decode( "Структуры данных с их кратким описанием." ); } else { return decode( "Классы с их кратким описанием." ); } } /*! This is an introduction to the page with all class members. */ virtual QCString trCompoundMembersDescription(bool extractAll) { QCString result="Список всех "; if(!extractAll) result+="документированных "; if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) result+="членов структур данных со ссылками на "; else result+="членов классов со ссылками на "; if(extractAll) { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) result+="документацию по структуре для каждого члена."; else result+="документацию по классу для каждого члена."; } else { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) result += "структуры"; else result += "классы"; result+=", к которым они принадлежат."; } return decode( result ); } /*! This is an introduction to the page with all file members. */ virtual QCString trFileMembersDescription(bool extractAll) { QCString result="Список всех "; if (!extractAll) result+="документированных "; if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { result+="функций, переменных, макроопределений, " "перечислений и определений типов"; } else { result+="членов файлов "; } result+=" со ссылками на "; if (extractAll) result+="файлы, к которым они принадлежат."; else result+="документацию."; return decode( result ); } /*! This is an introduction to the page with the list of all header files. */ virtual QCString trHeaderFilesDescription() { return decode("Полный список заголовочных файлов."); } /*! This is an introduction to the page with the list of all examples */ virtual QCString trExamplesDescription() { return decode("Полный список примеров."); } /*! This is an introduction to the page with the list of related pages */ virtual QCString trRelatedPagesDescription() { return decode("Полный список дополнительных описаний."); } /*! This is an introduction to the page with the list of class/file groups */ virtual QCString trModulesDescription() { return decode("Полный список групп."); } /*! This sentences is used in the annotated class/file lists if no brief * description is given. */ virtual QCString trNoDescriptionAvailable() { return decode("Описание отсутсвует"); } // index titles (the project name is prepended for these) /*! This is used in HTML as the title of index.html. */ virtual QCString trDocumentation() { return decode("Документация"); } /*! This is used in LaTeX as the title of the chapter with the * index of all groups. */ virtual QCString trModuleIndex() { return decode("Алфавитный указатель групп"); } /*! This is used in LaTeX as the title of the chapter with the * class hierarchy. */ virtual QCString trHierarchicalIndex() { return decode("Иерархический список классов"); } /*! This is used in LaTeX as the title of the chapter with the * annotated compound index. */ virtual QCString trCompoundIndex() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return decode( "Алфавитный указатель структур данных" ); } else { return decode( "Алфавитный указатель классов" ); } } /*! This is used in LaTeX as the title of the chapter with the * list of all files. */ virtual QCString trFileIndex() { return decode( "Список файлов" ); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all groups. */ virtual QCString trModuleDocumentation() { return decode("Группы"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all classes, structs and unions. */ virtual QCString trClassDocumentation() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return decode( "Структуры данных" ); } else { return decode( "Классы" ); } } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all files. */ virtual QCString trFileDocumentation() { return decode("Файлы"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all examples. */ virtual QCString trExampleDocumentation() { return decode("Примеры"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all related pages. */ virtual QCString trPageDocumentation() { return decode("Тематические описания"); } /*! This is used in LaTeX as the title of the document */ virtual QCString trReferenceManual() { return decode("Оглавление"); } /*! This is used in the documentation of a file as a header before the * list of defines */ virtual QCString trDefines() { return decode("Макросы"); } /*! This is used in the documentation of a file as a header before the * list of function prototypes */ virtual QCString trFuncProtos() { return decode("Прототипы функций"); } /*! This is used in the documentation of a file as a header before the * list of typedefs */ virtual QCString trTypedefs() { return decode("Определения типов"); } /*! This is used in the documentation of a file as a header before the * list of enumerations */ virtual QCString trEnumerations() { return decode("Перечисления"); } /*! This is used in the documentation of a file as a header before the * list of (global) functions */ virtual QCString trFunctions() { return decode("Функции"); } /*! This is used in the documentation of a file as a header before the * list of (global) variables */ virtual QCString trVariables() { return decode("Переменные"); } /*! This is used in the documentation of a file as a header before the * list of (global) variables */ virtual QCString trEnumerationValues() { return decode("Элементы перечислений"); } /*! This is used in the documentation of a file before the list of * documentation blocks for defines */ virtual QCString trDefineDocumentation() { return decode("Макросы"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for function prototypes */ virtual QCString trFunctionPrototypeDocumentation() { return decode("Прототипы функций"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for typedefs */ virtual QCString trTypedefDocumentation() { return decode("Типы"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration types */ virtual QCString trEnumerationTypeDocumentation() { return decode("Перечисления"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration values */ virtual QCString trEnumerationValueDocumentation() { return decode("Элементы перечислений"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for functions */ virtual QCString trFunctionDocumentation() { return decode("Функции"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for variables */ virtual QCString trVariableDocumentation() { return decode("Переменные"); } /*! This is used in the documentation of a file/namespace/group before * the list of links to documented compounds */ virtual QCString trCompounds() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return decode( "Структуры данных" ); } else { return decode( "Классы" ); } } /*! This is used in the documentation of a group before the list of * links to documented files */ /*! This is used in the standard footer of each page and indicates when * the page was generated */ virtual QCString trGeneratedAt(const char *date,const char *projName) { QCString result=decode("Документация "); if (projName) result+=decode("по ")+projName; result+=decode(". Последние изменения: ")+date; result+=decode(". Создано системой"); return result; } /*! This is part of the sentence used in the standard footer of each page. */ virtual QCString trWrittenBy() { return decode("Автор:"); } /*! this text is put before a class diagram */ virtual QCString trClassDiagram(const char *clName) { return decode("Граф наследования:")+clName+":"; } /*! this text is generated when the \\internal command is used. */ virtual QCString trForInternalUseOnly() { return decode("Только для внутреннего использования"); } /*! this text is generated when the \\reimp command is used. */ virtual QCString trReimplementedForInternalReasons() /*??*/ { return decode("Изменено по внутренним причинам"); } /*! this text is generated when the \\warning command is used. */ virtual QCString trWarning() { return decode("Предупреждения"); } /*! this text is generated when the \\bug command is used. */ virtual QCString trBugsAndLimitations() { return decode("Ошибки и ограничения"); } /*! this text is generated when the \\version command is used. */ virtual QCString trVersion() { return decode("Версия"); } /*! this text is generated when the \\date command is used. */ virtual QCString trDate() { return decode("Дата"); } /*! this text is generated when the \\return command is used. */ virtual QCString trReturns() { return decode("Возвращает"); } /*! this text is generated when the \\sa command is used. */ virtual QCString trSeeAlso() { return decode("См. также"); } /*! this text is generated when the \\param command is used. */ virtual QCString trParameters() { return decode("Аргументы"); } /*! this text is generated when the \\exception command is used. */ virtual QCString trExceptions() { return decode("Исключения"); } /*! this text is used in the title page of a LaTeX document. */ virtual QCString trGeneratedBy() { return decode("Создано системой"); } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990307 ////////////////////////////////////////////////////////////////////////// /*! used as the title of page containing all the index of all namespaces. */ virtual QCString trNamespaceList() { return decode("Пространства имен"); } /*! used as an introduction to the namespace list */ virtual QCString trNamespaceListDescription(bool extractAll) { QCString result="Полный список "; if (!extractAll) result+="документированных "; result+="пространств имен."; return decode(result); } /*! used in the class documentation as a header before the list of all * friends of a class */ virtual QCString trFriends() { return decode("Друзья"); } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990405 ////////////////////////////////////////////////////////////////////////// /*! used in the class documentation as a header before the list of all * related classes */ virtual QCString trRelatedFunctionDocumentation() { return decode("Документация по друзьям класса и функциям отноносящихся" " к классу"); } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990425 ////////////////////////////////////////////////////////////////////////// /*! used as the title of the HTML page of a class/struct/union */ virtual QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) { QCString result; if (isTemplate) { result="Шаблон "; switch(compType) { case ClassDef::Class: result+="класса"; break; case ClassDef::Struct: result+="структуры"; break; case ClassDef::Union: result+="объединения"; break; case ClassDef::Interface: result+="интерфейса"; break; case ClassDef::Exception: result+="исключения"; break; } } else { switch(compType) { case ClassDef::Class: result+="Класс"; break; case ClassDef::Struct: result+="Структура"; break; case ClassDef::Union: result+="Объединение"; break; case ClassDef::Interface: result+="Интерфейс"; break; case ClassDef::Exception: result+="Исключение"; break; } } result+=" "; return decode(result)+clName; } /*! used as the title of the HTML page of a file */ virtual QCString trFileReference(const char *fileName) { return decode("Файл ")+fileName; } /*! used as the title of the HTML page of a namespace */ virtual QCString trNamespaceReference(const char *namespaceName) { return decode("Пространство имен ")+namespaceName; } virtual QCString trPublicMembers() { return decode("Открытые члены"); } virtual QCString trPublicSlots() { return decode("Открытые слоты"); } virtual QCString trSignals() { return decode("Сигналы"); } virtual QCString trStaticPublicMembers() { return decode("Открытые статические члены"); } virtual QCString trProtectedMembers() { return decode("Защищенные члены"); } virtual QCString trProtectedSlots() { return decode("Защищенные слоты"); } virtual QCString trStaticProtectedMembers() { return decode("Защищенные статические члены"); } virtual QCString trPrivateMembers() { return decode("Закрытые члены"); } virtual QCString trPrivateSlots() { return decode("Закрытые слоты"); } virtual QCString trStaticPrivateMembers() { return decode("Закрытые статические члены"); } /*! this function is used to produce a comma-separated list of items. * use generateMarker(i) to indicate where item i should be put. */ virtual QCString trWriteList(int numEntries) { QCString result; int i; // the inherits list contain `numEntries' classes for (i=0;i