From f3172cf19514fc05588878d3fabfffe479495cca Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sun, 9 Feb 2014 13:56:20 +0100 Subject: Added new language maintainer for Swedish, removed generated file language.doc --- .gitignore | 1 + doc/language.doc | 774 ---------------------------------------------------- doc/maintainers.txt | 2 +- 3 files changed, 2 insertions(+), 775 deletions(-) delete mode 100644 doc/language.doc diff --git a/.gitignore b/.gitignore index 8d3fcf3..6abfaa8 100644 --- a/.gitignore +++ b/.gitignore @@ -55,6 +55,7 @@ /doc/Makefile /doc/translator_report.txt /doc/config.doc +/doc/language.doc /doxygen_docs /doxygen.tag diff --git a/doc/language.doc b/doc/language.doc deleted file mode 100644 index f923be3..0000000 --- a/doc/language.doc +++ /dev/null @@ -1,774 +0,0 @@ -/****************************************************************************** - * Do not edit this file. It was generated by the translator.py script. - * Instead edit language.tpl and maintainers.txt - * - * Copyright (C) 1997-2013 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. - * - */ -/*! \page langhowto Internationalization - -

Support for multiple languages

- -Doxygen has built-in support for multiple languages. This means that the -text fragments, generated by doxygen, can be produced in languages other -than English (the default). The output language is chosen through the -configuration option \ref cfg_output_language "OUTPUT_LANGUAGE" in the -configuration file (with default name and known as Doxyfile). - -Currently (version 1.8.5), 40 languages -are supported (sorted alphabetically): -Afrikaans, Arabic, Armenian, Brazilian Portuguese, Catalan, Chinese, -Chinese Traditional, Croatian, Czech, Danish, Dutch, English, -Esperanto, Finnish, French, German, Greek, Hungarian, Indonesian, -Italian, Japanese (+En), Korean (+En), Latvian, Lithuanian, -Macedonian, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, -Serbian, SerbianCyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -Ukrainian, and Vietnamese.. - -The table of information related to the supported languages follows. -It is sorted by language alphabetically. The Status column -was generated from sources and shows approximately the last version -when the translator was updated. - -\htmlonly - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Language Maintainer Contact address - (replace the at and dot) Status
AfrikaansJohan Prinsloojohan at zippysnoek dot com1.6.0
ArabicMoaz Reyad
Muhammad Bashir Al-Noimi
[resigned]
mbnoimi at gmail dot com
1.4.6
ArmenianArmen Tangamyanarmen dot tangamyan at anu dot edu dot au1.8.0
Brazilian PortugueseFabio "FJTC" Jun Takada Chinojun-chino at uol dot com dot br1.8.0
CatalanMaximiliano Pin
Albert Mora
max dot pin at bitroit dot com
[unreachable]
1.8.0
ChineseLian Yang
Li Daobing
Wei Liu
lian dot yang dot cn at gmail dot com
lidaobing at gmail dot com
liuwei at asiainfo dot com
1.8.2
Chinese TraditionalDaniel YC Lin
Gary Lee
dlin dot tw at gmail dot com
garywlee at gmail dot com
almost up-to-date
CroatianBoris Braloboris dot bralo at gmail dot com1.8.2
CzechPetr Přikrylprikryl at atlas dot czup-to-date
DanishPoul-Erik Hansen
Erik Søe Sørensen
pouhan at gnotometrics dot dk
eriksoe+doxygen at daimi dot au dot dk
1.8.0
DutchDimitri van Heeschdimitri at stack dot nlup-to-date
EnglishDimitri van Heeschdimitri at stack dot nlup-to-date
EsperantoAnder Martínezander dot basaundi at gmail dot com1.8.4
FinnishAntti Laineantti dot a dot laine at tut dot fi1.6.0
FrenchDavid Martinet
Xavier Outhier
Benoît BROSSE
contact at e-concept-applications dot fr
xouthier at yahoo dot fr
Benoit dot BROSSE at ingenico dot com
up-to-date
GermanPeter Grotrian
Jens Seidel
Peter dot Grotrian at pdv-FS dot de
jensseidel at users dot sf dot net
1.8.4
GreekPaul Gessosgessos dot paul at yahoo dot gr1.8.4
HungarianÁkos Kiss
Földvári György
akiss at users dot sourceforge dot net
[unreachable]
1.4.6
IndonesianHendy Irawanceefour at gauldong dot net1.8.0
ItalianAlessandro Falappa
Ahmed Aldo Faisal
alessandro at falappa dot net
aaf23 at cam dot ac dot uk
1.8.2
JapaneseSuzumizaki-Kimikata
Hiroki Iseri
Ryunosuke Satoh
Kenji Nagamatsu
Iwasa Kazmi
szmml at h12u.com
goyoki at gmail dot com
sun594 at hotmail dot com
[unreachable]
[unreachable]
up-to-date
JapaneseEnsee the Japanese language English based
KoreanKim Taedong
SooYoung Jung
Richard Kim
fly1004 at gmail dot com
jung5000 at gmail dot com
[unreachable]
up-to-date
KoreanEnsee the Korean language English based
LatvianLaurislauris at nix.lv1.8.4
LithuanianTomas Simonaitis
Mindaugas Radzius
Aidas Berukstis
-- searching for the maintainer --
[unreachable]
[unreachable]
[unreachable]
[Please, try to help to find someone.]
1.4.6
MacedonianSlave Jovanovskislavejovanovski at yahoo dot com1.6.0
NorwegianLars Erik Jordetlejordet at gmail dot com1.4.6
PersianAli Nadalizadehnadalizadeh at gmail dot com1.7.5
PolishPiotr Kaminski
Grzegorz Kowal
Krzysztof Kral
[unreachable]
[unreachable]
krzysztof dot kral at gmail dot com
1.8.2
PortugueseRui Godinho Lopes
Fabio "FJTC" Jun Takada Chino
[resigned]
jun-chino at uol dot com dot br
1.8.0
RomanianIonut Dumitrascu
Alexandru Iosup
reddumy at yahoo dot com
aiosup at yahoo dot com
almost up-to-date
RussianBrilliantov Kirill Vladimirovich
Alexandr Chelpanov
brilliantov at byterg dot ru
cav at cryptopro dot ru
almost up-to-date
SerbianDejan Milosavljevic[unreachable]1.6.0
SerbianCyrillicNedeljko Stefanovicstenedjo at yahoo dot com1.6.0
SlovakKali+Laco Švec
Petr Přikryl
[the Slovak language advisors]
prikryl at atlas dot cz
up-to-date
SloveneMatjaž Ostroveršnikmatjaz dot ostroversnik at ostri dot org1.4.6
SpanishBartomeu
Francisco Oltra Thennet
David Vaquero
bartomeu at loteria3cornella dot com
[unreachable]
david at grupoikusnet dot com
up-to-date
SwedishMikael Hallinmikaelhallin at yahoo dot se1.6.0
TurkishEmin Ilker Cetinbasniw3 at yahoo dot com1.7.5
UkrainianOlexij Tkatchenko
Petro Yermolenko
[resigned]
python at i dot ua
1.8.4
VietnameseDang Minh Tuantuanvietkey at gmail dot com1.6.0
-
-\endhtmlonly - - -\latexonly -\footnotesize -\begin{longtable}{|l|l|l|l|} - \hline - {\bf Language} & {\bf Maintainer} & {\bf Contact address} & {\bf Status} \\ - \hline - - \hline - Afrikaans & Johan Prinsloo & {\tt\tiny johan at zippysnoek dot com} & 1.6.0 \\ - \hline - Arabic & Moaz Reyad & {\tt\tiny [resigned] moazreyad at yahoo dot com} & 1.4.6 \\ - ~ & Muhammad Bashir Al-Noimi & {\tt\tiny mbnoimi at gmail dot com} & ~ \\ - \hline - Armenian & Armen Tangamyan & {\tt\tiny armen dot tangamyan at anu dot edu dot au} & 1.8.0 \\ - \hline - Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt\tiny jun-chino at uol dot com dot br} & 1.8.0 \\ - \hline - Catalan & Maximiliano Pin & {\tt\tiny max dot pin at bitroit dot com} & 1.8.0 \\ - ~ & Albert Mora & {\tt\tiny [unreachable] amora at iua dot upf dot es} & ~ \\ - \hline - Chinese & Lian Yang & {\tt\tiny lian dot yang dot cn at gmail dot com} & 1.8.2 \\ - ~ & Li Daobing & {\tt\tiny lidaobing at gmail dot com} & ~ \\ - ~ & Wei Liu & {\tt\tiny liuwei at asiainfo dot com} & ~ \\ - \hline - Chinese Traditional & Daniel YC Lin & {\tt\tiny dlin dot tw at gmail dot com} & almost up-to-date \\ - ~ & Gary Lee & {\tt\tiny garywlee at gmail dot com} & ~ \\ - \hline - Croatian & Boris Bralo & {\tt\tiny boris dot bralo at gmail dot com} & 1.8.2 \\ - \hline - Czech & Petr Přikryl & {\tt\tiny prikryl at atlas dot cz} & up-to-date \\ - \hline - Danish & Poul-Erik Hansen & {\tt\tiny pouhan at gnotometrics dot dk} & 1.8.0 \\ - ~ & Erik Søe Sørensen & {\tt\tiny eriksoe+doxygen at daimi dot au dot dk} & ~ \\ - \hline - Dutch & Dimitri van Heesch & {\tt\tiny dimitri at stack dot nl} & up-to-date \\ - \hline - English & Dimitri van Heesch & {\tt\tiny dimitri at stack dot nl} & up-to-date \\ - \hline - Esperanto & Ander Martínez & {\tt\tiny ander dot basaundi at gmail dot com} & 1.8.4 \\ - \hline - Finnish & Antti Laine & {\tt\tiny antti dot a dot laine at tut dot fi} & 1.6.0 \\ - \hline - French & David Martinet & {\tt\tiny contact at e-concept-applications dot fr} & up-to-date \\ - ~ & Xavier Outhier & {\tt\tiny xouthier at yahoo dot fr} & ~ \\ - ~ & Benoît BROSSE & {\tt\tiny Benoit dot BROSSE at ingenico dot com} & ~ \\ - \hline - German & Peter Grotrian & {\tt\tiny Peter dot Grotrian at pdv-FS dot de} & 1.8.4 \\ - ~ & Jens Seidel & {\tt\tiny jensseidel at users dot sf dot net} & ~ \\ - \hline - Greek & Paul Gessos & {\tt\tiny gessos dot paul at yahoo dot gr} & 1.8.4 \\ - \hline - Hungarian & Ákos Kiss & {\tt\tiny akiss at users dot sourceforge dot net} & 1.4.6 \\ - ~ & Földvári György & {\tt\tiny [unreachable] foldvari lost at cyberspace} & ~ \\ - \hline - Indonesian & Hendy Irawan & {\tt\tiny ceefour at gauldong dot net} & 1.8.0 \\ - \hline - Italian & Alessandro Falappa & {\tt\tiny alessandro at falappa dot net} & 1.8.2 \\ - ~ & Ahmed Aldo Faisal & {\tt\tiny aaf23 at cam dot ac dot uk} & ~ \\ - \hline - Japanese & Suzumizaki-Kimikata & {\tt\tiny szmml at h12u.com} & up-to-date \\ - ~ & Hiroki Iseri & {\tt\tiny goyoki at gmail dot com} & ~ \\ - ~ & Ryunosuke Satoh & {\tt\tiny sun594 at hotmail dot com} & ~ \\ - ~ & Kenji Nagamatsu & {\tt\tiny [unreachable] naga at joyful dot club dot ne dot jp} & ~ \\ - ~ & Iwasa Kazmi & {\tt\tiny [unreachable] iwasa at cosmo-system dot jp} & ~ \\ - \hline - JapaneseEn & see the Japanese language & {\tt\tiny ~} & English based \\ - \hline - Korean & Kim Taedong & {\tt\tiny fly1004 at gmail dot com} & up-to-date \\ - ~ & SooYoung Jung & {\tt\tiny jung5000 at gmail dot com} & ~ \\ - ~ & Richard Kim & {\tt\tiny [unreachable] ryk at dspwiz dot com} & ~ \\ - \hline - KoreanEn & see the Korean language & {\tt\tiny ~} & English based \\ - \hline - Latvian & Lauris & {\tt\tiny lauris at nix.lv} & 1.8.4 \\ - \hline - Lithuanian & Tomas Simonaitis & {\tt\tiny [unreachable] haden at homelan dot lt} & 1.4.6 \\ - ~ & Mindaugas Radzius & {\tt\tiny [unreachable] mindaugasradzius at takas dot lt} & ~ \\ - ~ & Aidas Berukstis & {\tt\tiny [unreachable] aidasber at takas dot lt} & ~ \\ - ~ & -- searching for the maintainer -- & {\tt\tiny [Please, try to help to find someone.]} & ~ \\ - \hline - Macedonian & Slave Jovanovski & {\tt\tiny slavejovanovski at yahoo dot com} & 1.6.0 \\ - \hline - Norwegian & Lars Erik Jordet & {\tt\tiny lejordet at gmail dot com} & 1.4.6 \\ - \hline - Persian & Ali Nadalizadeh & {\tt\tiny nadalizadeh at gmail dot com} & 1.7.5 \\ - \hline - Polish & Piotr Kaminski & {\tt\tiny [unreachable] Piotr dot Kaminski at ctm dot gdynia dot pl} & 1.8.2 \\ - ~ & Grzegorz Kowal & {\tt\tiny [unreachable] g\_kowal at poczta dot onet dot pl} & ~ \\ - ~ & Krzysztof Kral & {\tt\tiny krzysztof dot kral at gmail dot com} & ~ \\ - \hline - Portuguese & Rui Godinho Lopes & {\tt\tiny [resigned] rgl at ruilopes dot com} & 1.8.0 \\ - ~ & Fabio "FJTC" Jun Takada Chino & {\tt\tiny jun-chino at uol dot com dot br} & ~ \\ - \hline - Romanian & Ionut Dumitrascu & {\tt\tiny reddumy at yahoo dot com} & almost up-to-date \\ - ~ & Alexandru Iosup & {\tt\tiny aiosup at yahoo dot com} & ~ \\ - \hline - Russian & Brilliantov Kirill Vladimirovich & {\tt\tiny brilliantov at byterg dot ru} & almost up-to-date \\ - ~ & Alexandr Chelpanov & {\tt\tiny cav at cryptopro dot ru} & ~ \\ - \hline - Serbian & Dejan Milosavljevic & {\tt\tiny [unreachable] dmilos at email dot com} & 1.6.0 \\ - \hline - SerbianCyrillic & Nedeljko Stefanovic & {\tt\tiny stenedjo at yahoo dot com} & 1.6.0 \\ - \hline - Slovak & Kali+Laco Švec & {\tt\tiny [the Slovak language advisors]} & up-to-date \\ - ~ & Petr Přikryl & {\tt\tiny prikryl at atlas dot cz} & ~ \\ - \hline - Slovene & Matjaž Ostroveršnik & {\tt\tiny matjaz dot ostroversnik at ostri dot org} & 1.4.6 \\ - \hline - Spanish & Bartomeu & {\tt\tiny bartomeu at loteria3cornella dot com} & up-to-date \\ - ~ & Francisco Oltra Thennet & {\tt\tiny [unreachable] foltra at puc dot cl} & ~ \\ - ~ & David Vaquero & {\tt\tiny david at grupoikusnet dot com} & ~ \\ - \hline - Swedish & Mikael Hallin & {\tt\tiny mikaelhallin at yahoo dot se} & 1.6.0 \\ - \hline - Turkish & Emin Ilker Cetinbas & {\tt\tiny niw3 at yahoo dot com} & 1.7.5 \\ - \hline - Ukrainian & Olexij Tkatchenko & {\tt\tiny [resigned] olexij at tkatchenko dot com} & 1.8.4 \\ - ~ & Petro Yermolenko & {\tt\tiny python at i dot ua} & ~ \\ - \hline - Vietnamese & Dang Minh Tuan & {\tt\tiny tuanvietkey at gmail dot com} & 1.6.0 \\ - \hline -\end{longtable} -\normalsize -\endlatexonly - - -Most people on the list have indicated that they were also busy -doing other things, so if you want to help to speed things up please -let them (or me) know. - -If you want to add support for a language that is not yet listed -please read the next section. - - -

Adding a new language to doxygen

- -This short HOWTO explains how to add support for the new language to doxygen: - -Just follow the following steps: -
    -
  1. Tell me for which language you want to add support. If no one else - is already working on support for that language, you will be - assigned as the maintainer for the language. -
  2. Create a copy of `doxygen/src/translator_en.h` and name it - `doxygen/src/translator_.h` - I'll use `xx` in the rest of this document (and `XX` for the uppercase version). -
  3. Edit `doxygen/src/language.cpp`: - Add the following code: -\verbatim -#ifdef LANG_XX -#include -#endif -\endverbatim - Remember to use the same symbol `LANG_XX` that was added to `doxygen/src/lang_cfg.h`. -

    Now, in setTranslator() add -\verbatim -#ifdef LANG_XX - else if (L_EQUAL("your_language_name")) - { - theTranslator = new TranslatorYourLanguage; - } -#endif -\endverbatim - after the if { ... }. I.e., it must be placed after the code - for creating the English translator at the beginning, and before the - else { ... } part that creates the translator for the - default language (English again). -

  4. Edit doxygen/src/translator_xx.h: -
      -
    • Use the UTF-8 capable editor and open the file using the UTF-8 mode. -
    • Rename TRANSLATOR_EN_H to TRANSLATOR_XX_H - twice (i.e. in the \c \#ifndef and \c \#define preprocessor commands at - the beginning of the file). -
    • Rename \c TranslatorEnglish to \c TranslatorYourLanguage -
    • In the member idLanguage() change "english" into the - name of your language (use lower case characters only). Depending - on the language you may also wish to change the member functions - `latexLanguageSupportCommand()` and other (you will recognize them when - you start the work). -
    • Edit all the strings that are returned by the member functions that - start with \c tr. - Try to match punctuation and capitals! - To enter special characters (with accents) you can: -
        -
      • Enter them directly if your keyboard supports that. Recall that - the text is expected to be saved using the UTF-8 encoding. Doxygen - will translate the characters to proper \f$\mbox{\LaTeX}\f$ and - leaves the HTML and man output in UTF-8. -
      • Use HTML codes like \c \ä for an \c a with an \c umlaut (i.e. \c ä). - See the HTML specification for the codes. -
      -
    -
  5. -
      -
    • On *nix systems:
      -
        -
      • Rerun the `configure` script from the root (i.e. in the \c doxygen directory) so - that it generates `doxygen/src/lang_cfg.h`. - This file should now contain a \c \#define for your language code.
        -
      • Run \c make again from the root (i.e. in the \c doxygen - directory) of the distribution, in order to regenerate the `Makefile`s. -
      -
    • On Windows:
      -
        -
      • stop Visual Stdio
        -
      • open a command window
        -
      • goto the directory `doxygen\src`
        -
      • give the command `python languages.py > ..\winbuild\Languages.rules`
        -
      • close the command window
        -
      • start Visual Studio again
        -
      • Your language should now be selectable in the `General` part of the `Settings` of the `Properties` - window of `lang_cfg.py`, by default Your language will be `on`. Rebuild `doxygen` (and `doxywizard`) now. -
      -
    -
  6. Now you can use OUTPUT_LANGUAGE = your_language_name - in the config file to generate output in your language. -
  7. Send translator_xx.h to me so I can add it to doxygen. - Send also your name and e-mail address to be included in the - \c maintainers.txt list. You can also clone the doxygen repository - at GitHub and make a Pull Request later. -
- - -

Maintaining a language

- -New versions of doxygen may use new translated sentences. In such -situation, the \c Translator class requires implementation of new -methods -- its interface changes. Of course, the English -sentences need to be translated to the other languages. At least, -new methods have to be implemented by the language-related -translator class; otherwise, doxygen wouldn't even compile. Waiting -until all language maintainers have translated the new sentences and -sent the results would not be very practical. The following text -describes the usage of translator adapters to solve the problem. - -The role of Translator Adapters. -Whenever the \c Translator class interface changes in the new -release, the new class \c TranslatorAdapter_x_y_z is added to the \c -translator_adapter.h file (here x, y, and z are numbers that -correspond to the current official version of doxygen). All -translators that previously derived from the \c Translator class now -derive from this adapter class. - -The \c TranslatorAdapter_x_y_z class implements the new, required -methods. If the new method replaces some similar but obsolete -method(s) (e.g. if the number of arguments changed and/or the -functionality of the older method was changed or enriched), the \c -TranslatorAdapter_x_y_z class may use the obsolete method to get the -result which is as close as possible to the older result in the -target language. If it is not possible, the result (the default -translation) is obtained using the English translator, which is (by -definition) always up-to-date. - -For example, when the new \c trFile() method with -parameters (to determine the capitalization of the first letter and -the singular/plural form) was introduced to replace the older method -\c trFiles() without arguments, the following code appeared in one -of the translator adapter classes: - -\verbatim - /*! This is the default implementation of the obsolete method - * used in the documentation of a group before the list of - * links to documented files. This is possibly localized. - */ - virtual QCString trFiles() - { return "Files"; } - - /*! This is the localized implementation of newer equivalent - * using the obsolete method trFiles(). - */ - virtual QCString trFile(bool first_capital, bool singular) - { - if (first_capital && !singular) - return trFiles(); // possibly localized, obsolete method - else - return english.trFile(first_capital, singular); - } -\endverbatim - -The \c trFiles() is not present in the \c TranslatorEnglish class, -because it was removed as obsolete. However, it was used until now -and its call was replaced by - -\verbatim - trFile(true, false) -\endverbatim - -in the doxygen source files. Probably, many language translators -implemented the obsolete method, so it perfectly makes sense to use -the same language dependent result in those cases. The \c -TranslatorEnglish does not implement the old method. It derives -from the abstract \c Translator class. On the other hand, the old -translator for a different language does not implement the new \c -trFile() method. Because of that it is derived from another base -class -- \c TranslatorAdapter_x_y_z. The \c TranslatorAdapter_x_y_z -class has to implement the new, required \c trFile() method. -However, the translator adapter would not be compiled if the \c -trFiles() method was not implemented. This is the reason for -implementing the old method in the translator adapter class (using -the same code, that was removed from the TranslatorEnglish). - -The simplest way would be to pass the arguments to the English -translator and to return its result. Instead, the adapter uses the -old \c trFiles() in one special case -- when the new -trFile(true, false) is called. This is the -mostly used case at the time of introducing the new method -- see -above. While this may look too complicated, the technique allows -the developers of the core sources to change the Translator -interface, while the users may not even notice the change. Of -course, when the new \c trFile() is used with different arguments, -the English result is returned and it will be noticed by non English -users. Here the maintainer of the language translator should -implement at least that one particular method. - -What says the base class of a language translator? -If the language translator class inherits from any adapter class then -maintenance is needed. In such case, the language translator is -considered not up-to-date. On the other hand, if the language -translator derives directly from the abstract class \c Translator, the -language translator is up-to-date. - -The translator adapter classes are chained so that the older -translator adapter class uses the one-step-newer translator adapter -as the base class. The newer adapter does less \e adapting work -than the older one. The oldest adapter class derives (indirectly) -from all of the adapter classes. The name of the adapter class is -chosen so that its suffix is derived from the previous official -version of doxygen that did not need the adapter. This way, one can -say approximately, when the language translator class was last -updated -- see details below. - -The newest translator adapter derives from the abstract \c -TranslatorAdapterBase class that derives directly from the abstract -\c Translator class. It adds only the private English-translator -member for easy implementation of the default translation inside the -adapter classes, and it also enforces implementation of one method -for notifying the user that the language translation is not up-to-date -(because of that some sentences in the generated files may appear in -English). - -Once the oldest adapter class is not used by any of the language -translators, it can be removed from the doxygen project. The -maintainers should try to reach the state with the minimal number of -translator adapter classes. - -To simplify the maintenance of the language translator classes -for the supported languages, the \c translator.py Python -script was developed (located in \c doxygen/doc directory). -It extracts the important information about obsolete and -new methods from the source files for each of the languages. -The information is stored in the translator report ASCII file -(\c translator_report.txt). - -\htmlonly If you compiled this documentation -from sources and if you have also doxygen sources available the -link doxygen/doc/translator_report.txt should be valid.\endhtmlonly - -Looking at the base class of the language translator, the script -guesses also the status of the translator -- see the last column of -the table with languages above. The \c translator.py is called -automatically when the doxygen documentation is generated. You can -also run the script manually whenever you feel that it can help you. -Of course, you are not forced to use the results of the script. You -can find the same information by looking at the adapter class and -its base classes. - -How should I update my language translator? First, you -should be the language maintainer, or you should let him/her know -about the changes. The following text was written for the language -maintainers as the primary audience. - -There are several approaches to be taken when updating your -language. If you are not extremely busy, you should always chose -the most radical one. When the update takes much more time than you -expected, you can always decide use some suitable translator adapter to -finish the changes later and still make your translator working. - -The most radical way of updating the language translator is -to make your translator class derive directly -from the abstract class \c Translator and provide translations for the -methods that are required to be implemented -- the compiler will -tell you if you forgot to implement some of them. If you are in -doubt, have a look at the \c TranslatorEnglish class to recognize the -purpose of the implemented method. Looking at the previously used -adapter class may help you sometimes, but it can also be misleading -because the adapter classes do implement also the obsolete methods -(see the previous \c trFiles() example). - -In other words, the up-to-date language translators do not need the -\c TranslatorAdapter_x_y_z classes at all, and you do not need to -implement anything else than the methods required by the Translator -class (i.e. the pure virtual methods of the \c Translator -- they -end with =0;). - -If everything compiles fine, try to run \c translator.py, and have a -look at the translator report (ASCII file) at the \c doxygen/doc -directory. Your translator is marked as up-to-date only if the script -does not detect anything special. If the translator uses the \c Translator -base class, there still may be some remarks related to your source code. -In the case, the translator is marked as almost up-to-date. -Namely, the obsolete methods--that are not used at all--may be listed in the -section for your language. Simply, remove their code (and run the \c -translator.py again). Also, you will be informed when you forgot to -change the base class of your translator class to some newer adapter -class or directly to the Translator class. - -If you do not have time to finish all the updates you should -still start with the most radical approach as described -above. You can always change the base class to the translator -adapter class that implements all of the not-yet-implemented methods. - -If you prefer to update your translator gradually, have a look -at \c TranslatorEnglish (the \c translator_en.h file). Inside, you -will find the comments like new since 1.2.4 that separate -always a number of methods that were implemented in the stated -version. Do implement the group of methods that are placed below the -comment that uses the same version numbers as your translator adapter -class. (For example, your translator class have to use the \c -TranslatorAdapter_1_2_4, if it does not implement the methods below -the comment new since 1.2.4. When you implement them, -your class should use a newer translator adapter. - -Run the \c translator.py script occasionally and give it your \c xx -identification (from \c translator_xx.h) to create the translator -report shorter (also produced faster) -- it will contain only the -information related to your translator. Once you reach the state when -the base class should be changed to some newer adapter, you will see -the note in the translator report. - -Warning: Don't forget to compile doxygen to discover, whether it is -compilable. The \c translator.py does not check if everything is -correct with respect to the compiler. Because of that, it may lie -sometimes about the necessary base class. - -The most obsolete language translators would lead to -implementation of too complicated adapters. Because of that, doxygen -developers may decide to derive such translators from the \c -TranslatorEnglish class, which is by definition always up-to-date. - -When doing so, all the missing methods will be replaced by the -English translation. This means that not-implemented methods will -always return the English result. Such translators are marked using -the word \c obsolete. You should read it really obsolete. No -guess about the last update can be done. - -Often, it is possible to construct better result from the obsolete -methods. Because of that, the translator adapter classes should be -used if possible. On the other hand, implementation of adapters for -really obsolete translators brings too much maintenance and -run-time overhead. - -\htmlonly -Go to the next section or return to the - index. -\endhtmlonly - -*/ - diff --git a/doc/maintainers.txt b/doc/maintainers.txt index 1c76647..30afcd5 100644 --- a/doc/maintainers.txt +++ b/doc/maintainers.txt @@ -151,7 +151,7 @@ Francisco Oltra Thennet: [unreachable] foltra at puc dot cl David Vaquero: david at grupoikusnet dot com TranslatorSwedish -Mikael Hallin: mikaelhallin at yahoo dot se +Björn Palmqvist: bjorn.palmqvist at aidium.se TranslatorTurkish Emin Ilker Cetinbas: niw3 at yahoo dot com -- cgit v0.12