/****************************************************************************** * * * * 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. * */ #ifndef TRANSLATOR_CZ_H #define TRANSLATOR_CZ_H #include "translator.h" // The translation from English to Czech by Vlastimil Havran. // In the cases where are more translations possible I hope // that I have selected the most reasonable text. If not, please, // mail the comments and text proposals to // // havran@fel.cvut.cz, 1999/04/11 // // Updates: // -------- // 2000/06/20 // - The prototype version of Czech strings with diacritics implemented by // Petr Prikryl (prikrylp@skil.cz). (Vlastimil Havran is still // the maintainer.) The translation was based on translator.h // of Doxygen versison 1.1.4 (from scratch). // // 2000/07/10 (Petr Prikryl) // - Updated version based on 1.1.5 sources (including important updates // of the up-to-1.1.4 strings). Czech strings this file were written // in windows-1250 encoding. On-line decoding into iso-8859-2 ensured // via conditional compilation if the sources are compiled under UNIX. // // 2000/07/19 (Petr Prikryl) // - Encoding conversion tables moved to the methods that use them. // - Updates for "new since 1.1.5". // // Notices: // -------- // The conditional compilation ensures or the neutral functionality // of the macro DECODE, or calling the WinToISO() method for // on-line encoding conversion. If you want to maintain the source // in the iso-8859-2, do convert the source, change the conditional // definition of the DECODE macro using the method ISOToWin() -- // for conversion of strings for the Windows version. The version // which does not call the function is slightly faster. // // Only one of the private method WinToISO() and ISOToWin() is // necessary depending on whether this source is maintained in // windows-1250 or iso-8859-2 encoding. However, there is not a // big loose of space when both methods with the conversion tables // are supported. The other (not used now) may be handy in future. // Do not erase it. // Here the DECODE macro assumes the source written in Windows encoding. // #ifdef _WIN32 #define DECODE(sInput) sInput #else #define DECODE(sInput) WinToISO(sInput) #endif class TranslatorCzech : public Translator { private: /*! returns the string converted from windows-1250 to iso-8859-2 */ QCString WinToISO(const QCString sInput) { // The conversion table for characters >127 // static const char WinToISOTab[] = { '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87', '\x88', '\x89', '\xA9', '\x8B', '\xA6', '\xAB', '\xAE', '\xAC', '\x90', '\x91', '\x92', '\x93', '\x94', '\x2E', '\x96', '\x97', '\x98', '\x99', '\xB9', '\x9B', '\xB6', '\xBB', '\xBE', '\xBC', '\xA0', '\x20', '\x20', '\xA3', '\xA4', '\xA1', '\xA6', '\xA7', '\x22', '\xA9', '\xAA', '\x3C', '\xAC', '\x2D', '\xAE', '\xAF', '\x2E', '\x2B', '\x20', '\xB3', '\x27', '\x75', '\xB6', '\xB7', '\x20', '\xB1', '\xBA', '\x3E', '\xA5', '\x22', '\xB5', '\xBF', '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7', '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF', '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7', '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF', '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7', '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF', '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\x2D', '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF', '\0' }; QCString result; int len = sInput.length(); for (int i = 0; i < len; ++i) { unsigned int c = sInput[i]; result += (c > 127) ? WinToISOTab[c & 0x7F] : c; } return result; } /*! returns the string converted from iso-8859-2 to windows-1250 */ QCString ISOToWin(const QCString sInput) { // The conversion table for characters >127 // static const char ISOToWinTab[] = { '\x80', '\x81', '\x82', '\x83', '\x84', '\x85', '\x86', '\x87', '\x88', '\x89', '\x8A', '\x8B', '\x8C', '\x8D', '\x8E', '\x8F', '\x90', '\x91', '\x92', '\x93', '\x94', '\x95', '\x96', '\x97', '\x98', '\x99', '\x9A', '\x9B', '\x9C', '\x9D', '\x9E', '\x9F', '\xA0', '\xA5', '\xA2', '\xA3', '\xA4', '\xBC', '\x8C', '\xA7', '\xA8', '\x8A', '\xAA', '\x8D', '\x8F', '\xAD', '\x8E', '\xAF', '\xB0', '\xB9', '\xB2', '\xB3', '\xB4', '\xBE', '\x9C', '\xB7', '\xB8', '\x9A', '\xBA', '\x9D', '\x9F', '\xBD', '\x9E', '\xBF', '\xC0', '\xC1', '\xC2', '\xC3', '\xC4', '\xC5', '\xC6', '\xC7', '\xC8', '\xC9', '\xCA', '\xCB', '\xCC', '\xCD', '\xCE', '\xCF', '\xD0', '\xD1', '\xD2', '\xD3', '\xD4', '\xD5', '\xD6', '\xD7', '\xD8', '\xD9', '\xDA', '\xDB', '\xDC', '\xDD', '\xDE', '\xDF', '\xE0', '\xE1', '\xE2', '\xE3', '\xE4', '\xE5', '\xE6', '\xE7', '\xE8', '\xE9', '\xEA', '\xEB', '\xEC', '\xED', '\xEE', '\xEF', '\xF0', '\xF1', '\xF2', '\xF3', '\xF4', '\xF5', '\xF6', '\xF7', '\xF8', '\xF9', '\xFA', '\xFB', '\xFC', '\xFD', '\xFE', '\xFF', '\0' }; QCString result; int len = sInput.length(); for (int i = 0; i < len; ++i) { unsigned int c = sInput[i]; result += (c > 127) ? ISOToWinTab[c & 0x7F] : c; } return result; } public: // --- Language contol methods ------------------- virtual QCString idLanguage() { return "czech"; } virtual QCString latexLanguageSupportCommand() { return "\\usepackage{czech}\n"; } /*! returns the name of the package that is included by LaTeX */ virtual QCString latexBabelPackage() { return ""; } /*! return the language charset. This will be used for the HTML output */ virtual QCString idLanguageCharset() { #ifdef _WIN32 return "windows-1250"; #else return "iso-8859-2"; #endif } // --- Language translation methods ------------------- /*! used in the compound documentation before a list of related functions. */ virtual QCString trRelatedFunctions() { return DECODE("Související funkce"); } /*! subscript for the related functions. */ virtual QCString trRelatedSubscript() { return DECODE("(Uvedené funkce nejsou členskými funkcemi.)"); } /*! header that is put before the detailed description of files, classes and namespaces. */ virtual QCString trDetailedDescription() { return DECODE("Detailní popis"); } /*! header that is put before the list of typedefs. */ virtual QCString trMemberTypedefDocumentation() { return DECODE("Dokumentace k členských typům"); } /*! header that is put before the list of enumerations. */ virtual QCString trMemberEnumerationDocumentation() { return DECODE("Dokumentace k členským výčtům"); } /*! header that is put before the list of member functions. */ virtual QCString trMemberFunctionDocumentation() { return DECODE("Dokumentace k metodám"); } /*! header that is put before the list of member attributes. */ virtual QCString trMemberDataDocumentation() { return DECODE("Dokumentace k datovým členům"); } /*! this is the text of a link put after brief descriptions. */ virtual QCString trMore() { return DECODE("(...)"); } /*! put in the class documentation */ virtual QCString trListOfAllMembers() { return DECODE("Seznam všech členů."); } /*! used as the title of the "list of all members" page of a class */ virtual QCString trMemberList() { return DECODE("Seznam členů třídy"); } /*! this is the first part of a sentence that is followed by a class name */ virtual QCString trThisIsTheListOfAllMembers() { return DECODE("Zde naleznete úplný seznam členů třídy "); } /*! this is the remainder of the sentence after the class name */ virtual QCString trIncludingInheritedMembers() { return DECODE(", včetně všech zděděných členů."); } /*! 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="Generováno automaticky programem Doxygen " "ze zdrojových textů"; if (s) result+=(QCString)" projektu "+s; result+="."; return DECODE(result); } /*! put after an enum name in the list of all members */ virtual QCString trEnumName() { return DECODE("jméno výčtu"); } /*! put after an enum value in the list of all members */ virtual QCString trEnumValue() { return DECODE("hodnota výčtu"); } /*! put after an undocumented member in the list of all members */ virtual QCString trDefinedIn() { return DECODE("definován v"); } /*! put as in introduction in the verbatim header file of a class. * parameter f is the name of the include file. */ virtual QCString trVerbatimText(const char *f) { return DECODE((QCString)"Úplný text vkládaného souboru "+f+"."); } // 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("Moduly"); } /*! This is put above each page as a link to the class hierarchy */ virtual QCString trClassHierarchy() { return DECODE("Hierarchie tříd"); } /*! This is put above each page as a link to the list of annotated classes */ virtual QCString trCompoundList() { return DECODE("Seznam tříd"); } /*! This is put above each page as a link to the list of documented files */ virtual QCString trFileList() { return DECODE("Seznam souborů"); } /*! This is put above each page as a link to the list of all verbatim headers */ virtual QCString trHeaderFiles() { return DECODE("Seznam hlavičkových souborů"); } /*! This is put above each page as a link to all members of compounds. */ virtual QCString trCompoundMembers() { return DECODE("Seznam členů tříd"); } /*! This is put above each page as a link to all members of files. */ virtual QCString trFileMembers() { return DECODE("Symboly v souborech"); } /*! This is put above each page as a link to all related pages. */ virtual QCString trRelatedPages() { return DECODE("Související stránky"); } /*! This is put above each page as a link to all examples. */ virtual QCString trExamples() { return DECODE("Příklady"); } /*! This is put above each page as a link to the search engine. */ virtual QCString trSearch() { return DECODE("Hledat"); } /*! This is an introduction to the class hierarchy. */ virtual QCString trClassHierarchyDescription() { return DECODE("Zde naleznete seznam, vyjadřující vztah dědičnosti tříd. " "Je seřazen přibližně (ale ne úplně) podle abecedy:"); } /*! This is an introduction to the list with all files. */ virtual QCString trFileListDescription(bool extractAll) { QCString result="Zde naleznete seznam všech "; if (!extractAll) result+="dokumentovaných "; result+="souborů se stručnými popisy:"; return DECODE(result); } /*! This is an introduction to the annotated compound list. */ virtual QCString trCompoundListDescription() { return DECODE("Následující seznam obsahuje především identifikace tříd, " "ale nachází se zde i další netriviální prvky, jako jsou " "struktury (struct), unie (union) a rozhraní (interface). " "V seznamu jsou uvedeny jejich stručné popisy:"); } /*! This is an introduction to the page with all class members. */ virtual QCString trCompoundMembersDescription(bool extractAll) { QCString result="Zde naleznete seznam všech "; if (!extractAll) result+="dokumentovaných "; result+="členů tříd s odkazy na "; if (extractAll) result+="dokumentaci tříd, ke kterým příslušejí:"; else result+="třídy, ke kterým příslušejí:"; return DECODE(result); } /*! This is an introduction to the page with all file members. */ virtual QCString trFileMembersDescription(bool extractAll) { QCString result="Zde naleznete seznam všech "; if (!extractAll) result+="dokumentovaných "; result+="symbolů, které jsou definovány na úrovni svých souborů. " "Pro každý symbol je uveden odkaz na "; if (extractAll) result+="dokumentaci příslušného souboru"; else result+="soubor, ve kterém je symbol definován"; result+=". Podle způsobu definice může být symbol globálním symbolem " "nebo symbolem, který je viditelný pouze z daného souboru " "(to se týká například statických proměnných v C++). " "Seznam neobsahuje symboly členů tříd. " "Symbol může označovat makro, typ, instanci třídy, " "proměnnou, konstantu, funkci, výčet, hodnotu výčtu a podobně:"; return DECODE(result); } /*! This is an introduction to the page with the list of all header files. */ virtual QCString trHeaderFilesDescription() { return DECODE("Zde naleznete hlavičkové soubory, které tvoří " "aplikační programátorské rozhraní (API):"); } /*! This is an introduction to the page with the list of all examples */ virtual QCString trExamplesDescription() { return DECODE("Zde naleznete seznam všech příkladů:"); } /*! This is an introduction to the page with the list of related pages */ virtual QCString trRelatedPagesDescription() { return DECODE("Zde naleznete seznam všech souvisejících stránek " "dokumentace:"); } /*! This is an introduction to the page with the list of class/file groups */ virtual QCString trModulesDescription() { return DECODE("Zde naleznete seznam všech modulů:"); } /*! This sentences is used in the annotated class/file lists if no brief * description is given. */ virtual QCString trNoDescriptionAvailable() { return DECODE("Popis není k dispozici"); } // 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("Dokumentace"); } /*! This is used in LaTeX as the title of the chapter with the * index of all groups. */ virtual QCString trModuleIndex() { return DECODE("Rejstřík modulů"); } /*! This is used in LaTeX as the title of the chapter with the * class hierarchy. */ virtual QCString trHierarchicalIndex() { return DECODE("Rejstřík hierarchie tříd"); } /*! This is used in LaTeX as the title of the chapter with the * annotated compound index. */ virtual QCString trCompoundIndex() { return DECODE("Rejstřík tříd"); } /*! This is used in LaTeX as the title of the chapter with the * list of all files. */ virtual QCString trFileIndex() { return DECODE("Rejstřík souborů"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all groups. */ virtual QCString trModuleDocumentation() { return DECODE("Dokumentace modulů"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all classes, structs and unions. */ virtual QCString trClassDocumentation() { return DECODE("Dokumentace tříd"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all files. */ virtual QCString trFileDocumentation() { return DECODE("Dokumentace souborů"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all examples. */ virtual QCString trExampleDocumentation() { return DECODE("Dokumentace příkladů"); } /*! This is used in LaTeX as the title of the chapter containing * the documentation of all related pages. */ virtual QCString trPageDocumentation() { return DECODE("Dokumentace souvisejících stránek"); } /*! This is used in LaTeX as the title of the document */ virtual QCString trReferenceManual() { return DECODE("Referenční příručka"); } /*! This is used in the documentation of a file as a header before the * list of defines */ virtual QCString trDefines() { return DECODE("Definice maker"); } /*! This is used in the documentation of a file as a header before the * list of function prototypes */ virtual QCString trFuncProtos() { return DECODE("Prototypy"); } /*! This is used in the documentation of a file as a header before the * list of typedefs */ virtual QCString trTypedefs() { return DECODE("Definice typů"); } /*! This is used in the documentation of a file as a header before the * list of enumerations */ virtual QCString trEnumerations() { return DECODE("Výčty"); } /*! This is used in the documentation of a file as a header before the * list of (global) functions */ virtual QCString trFunctions() { return DECODE("Funkce"); } /*! This is used in the documentation of a file as a header before the * list of (global) variables */ virtual QCString trVariables() { return DECODE("Proměnné"); } /*! This is used in the documentation of a file as a header before the * list of (global) variables */ virtual QCString trEnumerationValues() { return DECODE("Hodnoty výčtů"); } /*! This is used in man pages as the author section. */ virtual QCString trAuthor() { return DECODE("Autor"); } /*! This is used in the documentation of a file before the list of * documentation blocks for defines */ virtual QCString trDefineDocumentation() { return DECODE("Dokumentace k definicím maker"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for function prototypes */ virtual QCString trFunctionPrototypeDocumentation() { return DECODE("Dokumentace prototypů"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for typedefs */ virtual QCString trTypedefDocumentation() { return DECODE("Dokumentace definic typů"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration types */ virtual QCString trEnumerationTypeDocumentation() { return DECODE("Dokumentace výčtových typů"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration values */ virtual QCString trEnumerationValueDocumentation() { return DECODE("Dokumentace výčtových hodnot"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for functions */ virtual QCString trFunctionDocumentation() { return DECODE("Dokumentace funkcí"); } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for variables */ virtual QCString trVariableDocumentation() { return DECODE("Dokumentace proměnných"); } /*! This is used in the documentation of a file/namespace/group before * the list of links to documented compounds */ virtual QCString trCompounds() { return DECODE("Třídy"); } /*! This is used in the documentation of a group before the list of * links to documented files */ virtual QCString trFiles() { return DECODE("Soubory"); } /*! 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=(QCString)"Generováno "+date; if (projName) result+=(QCString)" pro projekt "+projName; result+=(QCString)" programem"; return DECODE(result); } /*! This is part of the sentence used in the standard footer of each page. */ virtual QCString trWrittenBy() { return DECODE(" -- autor "); } /*! this text is put before a class diagram */ virtual QCString trClassDiagram(const char *clName) { return DECODE((QCString)"Diagram dědičnosti pro třídu "+clName); } /*! this text is generated when the \internal command is used. */ virtual QCString trForInternalUseOnly() { return DECODE("Pouze pro vnitřní použití."); } /*! this text is generated when the \reimp command is used. */ virtual QCString trReimplementedForInternalReasons() { return DECODE("Reimplementováno z interních důvodů; " "aplikační rozhraní zachováno."); } /*! this text is generated when the \warning command is used. */ virtual QCString trWarning() { return DECODE("Pozor"); } /*! this text is generated when the \bug command is used. */ virtual QCString trBugsAndLimitations() { return DECODE("Chyby a omezení"); } /*! this text is generated when the \version command is used. */ virtual QCString trVersion() { return DECODE("Verze"); } /*! this text is generated when the \date command is used. */ virtual QCString trDate() { return DECODE("Datum"); } /*! this text is generated when the \author command is used. */ virtual QCString trAuthors() { return DECODE("Autor/autoři"); } /*! this text is generated when the \return command is used. */ virtual QCString trReturns() { return DECODE("Návratová hodnota"); } /*! this text is generated when the \sa command is used. */ virtual QCString trSeeAlso() { return DECODE("Viz také"); } /*! this text is generated when the \param command is used. */ virtual QCString trParameters() { return DECODE("Parametry"); } /*! this text is generated when the \exception command is used. */ virtual QCString trExceptions() { return DECODE("Výjimky"); } /*! this text is used in the title page of a LaTeX document. */ virtual QCString trGeneratedBy() { return DECODE("Generováno programem"); } // new since 0.49-990307 /*! used as the title of page containing all the index of all namespaces. */ virtual QCString trNamespaceList() { return DECODE("Seznam prostorů jmen"); } /*! used as an introduction to the namespace list */ virtual QCString trNamespaceListDescription(bool extractAll) { QCString result="Zde naleznete seznam všech "; if (!extractAll) result+="dokumentovaných "; result+="prostorů jmen se stručným popisem:"; 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("Friends"); } ////////////////////////////////////////////////////////////////////////// // 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("Dokumentace k friends"); } ////////////////////////////////////////////////////////////////////////// // 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("Dokumentace "); if (isTemplate) result+="šablony "; switch(compType) { case ClassDef::Class: result+="třídy "; break; case ClassDef::Struct: result+="struktury "; break; case ClassDef::Union: result+="unie "; break; case ClassDef::Interface: result+="rozhraní "; break; case ClassDef::Exception: result+="výjimky "; break; } result+=clName; return DECODE(result); } /*! used as the title of the HTML page of a file */ virtual QCString trFileReference(const char *fileName) { QCString result("Dokumentace souboru "); result+=fileName; return DECODE(result); } /*! used as the title of the HTML page of a namespace */ virtual QCString trNamespaceReference(const char *namespaceName) { QCString result("Dokumentace prostoru jmen "); result+=namespaceName; return DECODE(result); } /*! \mgroup Class sections * these are for the member sections of a class, struct or union */ virtual QCString trPublicMembers() { return DECODE("Veřejné metody"); } virtual QCString trPublicSlots() { return DECODE("Veřejné sloty"); } virtual QCString trSignals() { return DECODE("Signály"); } virtual QCString trStaticPublicMembers() { return DECODE("Statické veřejné metody"); } virtual QCString trProtectedMembers() { return DECODE("Chráněné metody"); } virtual QCString trProtectedSlots() { return DECODE("Chráněné sloty"); } virtual QCString trStaticProtectedMembers() { return DECODE("Statické chráněné metody"); } virtual QCString trPrivateMembers() { return DECODE("Privátní metody"); } virtual QCString trPrivateSlots() { return DECODE("Privátní sloty"); } virtual QCString trStaticPrivateMembers() { return DECODE("Statické privátní metody"); } /*! \endmgroup */ /*! 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