Loading doc/language.doc +36 −39 Original line number Original line Diff line number Diff line Loading @@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means that the text fragments that doxygen generates can be produced in that the text fragments that doxygen generates can be produced in languages other than English (the default) at configuration time. languages other than English (the default) at configuration time. Currently (version 1.2.11-20011021), 24 languages Currently (version 1.2.11-20011111), 24 languages are supported (sorted alphabetically): are supported (sorted alphabetically): Brazilian Portuguese, Chinese, Croatian, Czech, Danish, Brazilian Portuguese, Chinese, Croatian, Czech, Danish, Dutch, English, Finnish, French, German, Dutch, English, Finnish, French, German, Loading Loading @@ -72,7 +72,7 @@ when the translator was updated. <TD>Czech</TD> <TD>Czech</TD> <TD>Petr Přikryl</TD> <TD>Petr Přikryl</TD> <TD>prikrylp@NOSPAM.skil.cz</TD> <TD>prikrylp@NOSPAM.skil.cz</TD> <TD>1.2.11</TD> <TD>up-to-date</TD> </TR> </TR> <TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff"> <TD>Danish</TD> <TD>Danish</TD> Loading Loading @@ -162,7 +162,7 @@ when the translator was updated. <TD>Russian</TD> <TD>Russian</TD> <TD>Alexandr Chelpanov</TD> <TD>Alexandr Chelpanov</TD> <TD>cav@NOSPAM.cryptopro.ru</TD> <TD>cav@NOSPAM.cryptopro.ru</TD> <TD>1.2.11</TD> <TD>up-to-date</TD> </TR> </TR> <TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff"> <TD>Slovak</TD> <TD>Slovak</TD> Loading Loading @@ -212,7 +212,7 @@ when the translator was updated. \hline \hline Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} & 1.2.11 \\ Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} & 1.2.11 \\ \hline \hline Czech & Petr P\v{r}ikryl & {\tt prikrylp@skil.cz} & 1.2.11 \\ Czech & Petr P\v{r}ikryl & {\tt prikrylp@skil.cz} & up-to-date \\ \hline \hline Danish & Erik S\o{}e S\o{}rensen & {\tt erik@mail.nu} & 1.2.7 \\ Danish & Erik S\o{}e S\o{}rensen & {\tt erik@mail.nu} & 1.2.7 \\ \hline \hline Loading Loading @@ -244,7 +244,7 @@ when the translator was updated. \hline \hline Romanian & Alexandru Iosup & {\tt aiosup@yahoo.com} & 1.2.1 \\ Romanian & Alexandru Iosup & {\tt aiosup@yahoo.com} & 1.2.1 \\ \hline \hline Russian & Alexandr Chelpanov & {\tt cav@cryptopro.ru} & 1.2.11 \\ Russian & Alexandr Chelpanov & {\tt cav@cryptopro.ru} & up-to-date \\ \hline \hline Slovak & Stanislav Kudl\'{a}\v{c} & {\tt qwerty1@pobox.sk} & 1.2.11 \\ Slovak & Stanislav Kudl\'{a}\v{c} & {\tt qwerty1@pobox.sk} & 1.2.11 \\ \hline \hline Loading Loading @@ -331,21 +331,23 @@ Just follow these steps: <h3>Maintaining a language</h3> <h3>Maintaining a language</h3> As new versions of doxygen appear, new sentences (\c trXxxx() New versions of doxygen may use new translated sentences. In such methods) will be added to the \c Translator interface class. Of situation, the \c Translator class requires implementation of new course, these need to be translated as well (otherwise doxygen methods -- its interface changes. Of course, the English wouldn't even compile!). Waiting until all language maintainers sentences need to be translated to the other languages. At least, have translated the new sentences and sent the results would not new methods have to be implemented by the language-related be very practical. The following text describes the usage of translator class; otherwise, doxygen wouldn't even compile. Waiting translator adapters to solve the problem. 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. <b>The role of Translator Adapters.</b> <b>The role of Translator Adapters.</b> Whenever the \c Translator class interface changes in the new Whenever the \c Translator class interface changes in the new release, the new class \c TranslatorAdapter_x_y_z is added to the \c 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 translator_adapter.h file (here x, y, and z are numbers that correspond to the current version of doxygen). All translators that correspond to the current official version of doxygen). All previously derived from the \c Translator class now derive from this translators that previously derived from the \c Translator class now adapter class. derive from this adapter class. The \c TranslatorAdapter_x_y_z class implements the new, required The \c TranslatorAdapter_x_y_z class implements the new, required methods. If the new method replaces some similar but obsolete methods. If the new method replaces some similar but obsolete Loading @@ -355,7 +357,7 @@ 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 result which is as close as possible to the older result in the target language. If it is not possible, the result (the default target language. If it is not possible, the result (the default translation) is obtained using the English translator, which is (by translation) is obtained using the English translator, which is (by definition) always up to date. definition) always up-to-date. <b>For example,</b> when the new \c trFile() method with <b>For example,</b> when the new \c trFile() method with parameters (to determine the capitalization of the first letter and parameters (to determine the capitalization of the first letter and Loading Loading @@ -429,29 +431,25 @@ The translator adapter classes are chained so that the older translator adapter class uses the one-step-newer translator adapter translator adapter class uses the one-step-newer translator adapter as the base class. The newer adapter does less \e adapting work as the base class. The newer adapter does less \e adapting work than the older one. The oldest adapter class derives (indirectly) than the older one. The oldest adapter class derives (indirectly) from all of the adapter classes. The newest adapter class derives from all of the adapter classes. The name of the adapter class is directly from the abstract class \c Translator. chosen so that its suffix is derived from the previous official version of doxygen that did not need the adapter. This way, one can The name of the adapter class was chosen so that its suffix is say approximately, when the language translator class was last derived from the previous version of doxygen. This way, one can say updated -- see details below. approximately, when the language translator class was last updated -- see details below. The newest adapter translator for CVS release The newest translator adapter derives from the abstract \c (i.e. non official) is named \c TranslatorAdapterCVS. As it derives TranslatorAdapterBase class that derives directly from the abstract only from the \c Translator class, it can be used only for language \c Translator class. It adds only the private English-translator translator classes that were up-to-date in the time of the last member for easy implementation of the default translation inside the release. adapter classes, and it also enforces implementation of one method for noticing the user that the language translation is not up-to-date Status of the translators that derive from the \c (because of that some sentences in the generated files may appear in TranslatorAdapterCVS is named as <em>almost up-to-date</em>. English). Its code is moved into the new \c Translator_x_y_z when new version of doxygen is officially released. Once the oldest adapter class is not used by any of the language Once the oldest adapter class is not used by any of the language translators, it can be removed from the doxygen project. This also translators, it can be removed from the doxygen project. The means, that there probably still is some language which uses the maintainers should try to reach the state with the minimal number of oldest adapter. The maintainers should try to reach the state with translator adapter classes. the minimal number of translator adapter classes. <b>To simplify the maintenance of the language translator classes</b> <b>To simplify the maintenance of the language translator classes</b> for the supported languages, the \c translator.pl perl for the supported languages, the \c translator.pl perl Loading @@ -473,7 +471,6 @@ 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 can find the same information by looking at the adapter class and its base classes. its base classes. <b>How should I update my language translator?</b> Firstly, you <b>How should I update my language translator?</b> Firstly, you should be the language maintainer, or you should let him/her know should be the language maintainer, or you should let him/her know about the changes. The following text was written for the language about the changes. The following text was written for the language Loading Loading @@ -525,7 +522,7 @@ can change the translator adapter base to the newer one. Do not blindly implement all methods that are implemented by your Do not blindly implement all methods that are implemented by your translator adapter base class. The reason is that the adapter translator adapter base class. The reason is that the adapter classes implement also obsolete methods. Another reason is that classes implement also obsolete methods. Another reason is that some of the methods could become obsolete later. some of the methods could become obsolete from some newer adapter on. */ */ doc/language.tpl +31 −34 Original line number Original line Diff line number Diff line Loading @@ -104,21 +104,23 @@ Just follow these steps: <h3>Maintaining a language</h3> <h3>Maintaining a language</h3> As new versions of doxygen appear, new sentences (\c trXxxx() New versions of doxygen may use new translated sentences. In such methods) will be added to the \c Translator interface class. Of situation, the \c Translator class requires implementation of new course, these need to be translated as well (otherwise doxygen methods -- its interface changes. Of course, the English wouldn't even compile!). Waiting until all language maintainers sentences need to be translated to the other languages. At least, have translated the new sentences and sent the results would not new methods have to be implemented by the language-related be very practical. The following text describes the usage of translator class; otherwise, doxygen wouldn't even compile. Waiting translator adapters to solve the problem. 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. <b>The role of Translator Adapters.</b> <b>The role of Translator Adapters.</b> Whenever the \c Translator class interface changes in the new Whenever the \c Translator class interface changes in the new release, the new class \c TranslatorAdapter_x_y_z is added to the \c 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 translator_adapter.h file (here x, y, and z are numbers that correspond to the current version of doxygen). All translators that correspond to the current official version of doxygen). All previously derived from the \c Translator class now derive from this translators that previously derived from the \c Translator class now adapter class. derive from this adapter class. The \c TranslatorAdapter_x_y_z class implements the new, required The \c TranslatorAdapter_x_y_z class implements the new, required methods. If the new method replaces some similar but obsolete methods. If the new method replaces some similar but obsolete Loading @@ -128,7 +130,7 @@ 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 result which is as close as possible to the older result in the target language. If it is not possible, the result (the default target language. If it is not possible, the result (the default translation) is obtained using the English translator, which is (by translation) is obtained using the English translator, which is (by definition) always up to date. definition) always up-to-date. <b>For example,</b> when the new \c trFile() method with <b>For example,</b> when the new \c trFile() method with parameters (to determine the capitalization of the first letter and parameters (to determine the capitalization of the first letter and Loading Loading @@ -202,29 +204,25 @@ The translator adapter classes are chained so that the older translator adapter class uses the one-step-newer translator adapter translator adapter class uses the one-step-newer translator adapter as the base class. The newer adapter does less \e adapting work as the base class. The newer adapter does less \e adapting work than the older one. The oldest adapter class derives (indirectly) than the older one. The oldest adapter class derives (indirectly) from all of the adapter classes. The newest adapter class derives from all of the adapter classes. The name of the adapter class is directly from the abstract class \c Translator. chosen so that its suffix is derived from the previous official version of doxygen that did not need the adapter. This way, one can The name of the adapter class was chosen so that its suffix is say approximately, when the language translator class was last derived from the previous version of doxygen. This way, one can say updated -- see details below. approximately, when the language translator class was last updated -- see details below. The newest adapter translator for CVS release The newest translator adapter derives from the abstract \c (i.e. non official) is named \c TranslatorAdapterCVS. As it derives TranslatorAdapterBase class that derives directly from the abstract only from the \c Translator class, it can be used only for language \c Translator class. It adds only the private English-translator translator classes that were up-to-date in the time of the last member for easy implementation of the default translation inside the release. adapter classes, and it also enforces implementation of one method for noticing the user that the language translation is not up-to-date Status of the translators that derive from the \c (because of that some sentences in the generated files may appear in TranslatorAdapterCVS is named as <em>almost up-to-date</em>. English). Its code is moved into the new \c Translator_x_y_z when new version of doxygen is officially released. Once the oldest adapter class is not used by any of the language Once the oldest adapter class is not used by any of the language translators, it can be removed from the doxygen project. This also translators, it can be removed from the doxygen project. The means, that there probably still is some language which uses the maintainers should try to reach the state with the minimal number of oldest adapter. The maintainers should try to reach the state with translator adapter classes. the minimal number of translator adapter classes. <b>To simplify the maintenance of the language translator classes</b> <b>To simplify the maintenance of the language translator classes</b> for the supported languages, the \c translator.pl perl for the supported languages, the \c translator.pl perl Loading @@ -245,7 +243,6 @@ 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 can find the same information by looking at the adapter class and its base classes. its base classes. <b>How should I update my language translator?</b> Firstly, you <b>How should I update my language translator?</b> Firstly, you should be the language maintainer, or you should let him/her know should be the language maintainer, or you should let him/her know about the changes. The following text was written for the language about the changes. The following text was written for the language Loading Loading @@ -297,7 +294,7 @@ can change the translator adapter base to the newer one. Do not blindly implement all methods that are implemented by your Do not blindly implement all methods that are implemented by your translator adapter base class. The reason is that the adapter translator adapter base class. The reason is that the adapter classes implement also obsolete methods. Another reason is that classes implement also obsolete methods. Another reason is that some of the methods could become obsolete later. some of the methods could become obsolete from some newer adapter on. */ */ doc/translator.pl +10 −17 Original line number Original line Diff line number Diff line Loading @@ -82,6 +82,11 @@ # method identifier and the opening parenthesis to match better # method identifier and the opening parenthesis to match better # the method prototype with the one in the translator.h. # the method prototype with the one in the translator.h. # # # 2001/11/06 # - TranslatorAdapterCVS is not used any more. There is nothing # like "almost up-to-date" any more. The script was simplified # to reflect the changes. # ################################################################ ################################################################ use 5.005; use 5.005; Loading Loading @@ -517,10 +522,6 @@ xxxTABLE_FOOTxxx my $i = $status =~ s{^Translator$}{up-to-date}; my $i = $status =~ s{^Translator$}{up-to-date}; if ($i == 0) { $i = $status =~ s{^TranslatorAdapterCVS}{almost up-to-date}; } if ($i == 0) { if ($i == 0) { $i = $status =~ s{^TranslatorAdapter_(\d)_(\d)_(\d)} $i = $status =~ s{^TranslatorAdapter_(\d)_(\d)_(\d)} {$1.$2.$3}x; {$1.$2.$3}x; Loading Loading @@ -972,19 +973,15 @@ print STDERR "\n\n"; # If there are up-to-date translators, list them. #{{{ # If there are up-to-date translators, list them. #{{{ # # my @list = sort grep { $cb{$_} =~ m/^Translator(AdapterCVS)?$/ } keys %cb; my @list = sort grep { $cb{$_} =~ m/^Translator$/ } keys %cb; if (@list) { if (@list) { print FOUT "\n" .'-' x 70 . "\n"; print FOUT "\n" .'-' x 70 . "\n"; print FOUT "The following translator classes are up-to-date " print FOUT "The following translator classes are up-to-date " . "(sorted alphabetically).\n" . "(sorted alphabetically).\n" . "This means that they derive from the Translator class. " . "This means that they derive from the Translator class. " . "If the translator\n" . "Anyway, there still\n" . "derives from TranslatorAdapterCVS, it is considered " . "may be some details listed even for " . "to be almost up-to-date.\n" . "In other words, it is newer than the last official " . "release. Anyway, there\n" . "still may be some details listed even for " . "the up-to-date translators.\n" . "the up-to-date translators.\n" . "Please, check the text below if the translator " . "Please, check the text below if the translator " . "is marked so.\n\n"; . "is marked so.\n\n"; Loading @@ -995,10 +992,6 @@ print STDERR "\n\n"; # # print FOUT " $_"; print FOUT " $_"; # For almost up-to-date translators, show also the base class. # if ($cb{$_} ne 'Translator') { print FOUT "\t($cb{$_})"; } # If some details were listed for the translator class, # If some details were listed for the translator class, # add a notice. # add a notice. # # Loading Loading @@ -1030,7 +1023,7 @@ print STDERR "\n\n"; # # @list = sort @list = sort grep { $cb{$_} !~ m/^Translator$/ } grep { $cb{$_} !~ m/^Translator$/ } grep { $cb{$_} !~ m/^TranslatorAdapter/ } grep { $cb{$_} !~ m/^TranslatorAdapter_/ } keys %cb; keys %cb; if (@list) { if (@list) { Loading Loading
doc/language.doc +36 −39 Original line number Original line Diff line number Diff line Loading @@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means that the text fragments that doxygen generates can be produced in that the text fragments that doxygen generates can be produced in languages other than English (the default) at configuration time. languages other than English (the default) at configuration time. Currently (version 1.2.11-20011021), 24 languages Currently (version 1.2.11-20011111), 24 languages are supported (sorted alphabetically): are supported (sorted alphabetically): Brazilian Portuguese, Chinese, Croatian, Czech, Danish, Brazilian Portuguese, Chinese, Croatian, Czech, Danish, Dutch, English, Finnish, French, German, Dutch, English, Finnish, French, German, Loading Loading @@ -72,7 +72,7 @@ when the translator was updated. <TD>Czech</TD> <TD>Czech</TD> <TD>Petr Přikryl</TD> <TD>Petr Přikryl</TD> <TD>prikrylp@NOSPAM.skil.cz</TD> <TD>prikrylp@NOSPAM.skil.cz</TD> <TD>1.2.11</TD> <TD>up-to-date</TD> </TR> </TR> <TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff"> <TD>Danish</TD> <TD>Danish</TD> Loading Loading @@ -162,7 +162,7 @@ when the translator was updated. <TD>Russian</TD> <TD>Russian</TD> <TD>Alexandr Chelpanov</TD> <TD>Alexandr Chelpanov</TD> <TD>cav@NOSPAM.cryptopro.ru</TD> <TD>cav@NOSPAM.cryptopro.ru</TD> <TD>1.2.11</TD> <TD>up-to-date</TD> </TR> </TR> <TR BGCOLOR="#ffffff"> <TR BGCOLOR="#ffffff"> <TD>Slovak</TD> <TD>Slovak</TD> Loading Loading @@ -212,7 +212,7 @@ when the translator was updated. \hline \hline Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} & 1.2.11 \\ Croatian & Boris Bralo & {\tt boris.bralo@zg.tel.hr} & 1.2.11 \\ \hline \hline Czech & Petr P\v{r}ikryl & {\tt prikrylp@skil.cz} & 1.2.11 \\ Czech & Petr P\v{r}ikryl & {\tt prikrylp@skil.cz} & up-to-date \\ \hline \hline Danish & Erik S\o{}e S\o{}rensen & {\tt erik@mail.nu} & 1.2.7 \\ Danish & Erik S\o{}e S\o{}rensen & {\tt erik@mail.nu} & 1.2.7 \\ \hline \hline Loading Loading @@ -244,7 +244,7 @@ when the translator was updated. \hline \hline Romanian & Alexandru Iosup & {\tt aiosup@yahoo.com} & 1.2.1 \\ Romanian & Alexandru Iosup & {\tt aiosup@yahoo.com} & 1.2.1 \\ \hline \hline Russian & Alexandr Chelpanov & {\tt cav@cryptopro.ru} & 1.2.11 \\ Russian & Alexandr Chelpanov & {\tt cav@cryptopro.ru} & up-to-date \\ \hline \hline Slovak & Stanislav Kudl\'{a}\v{c} & {\tt qwerty1@pobox.sk} & 1.2.11 \\ Slovak & Stanislav Kudl\'{a}\v{c} & {\tt qwerty1@pobox.sk} & 1.2.11 \\ \hline \hline Loading Loading @@ -331,21 +331,23 @@ Just follow these steps: <h3>Maintaining a language</h3> <h3>Maintaining a language</h3> As new versions of doxygen appear, new sentences (\c trXxxx() New versions of doxygen may use new translated sentences. In such methods) will be added to the \c Translator interface class. Of situation, the \c Translator class requires implementation of new course, these need to be translated as well (otherwise doxygen methods -- its interface changes. Of course, the English wouldn't even compile!). Waiting until all language maintainers sentences need to be translated to the other languages. At least, have translated the new sentences and sent the results would not new methods have to be implemented by the language-related be very practical. The following text describes the usage of translator class; otherwise, doxygen wouldn't even compile. Waiting translator adapters to solve the problem. 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. <b>The role of Translator Adapters.</b> <b>The role of Translator Adapters.</b> Whenever the \c Translator class interface changes in the new Whenever the \c Translator class interface changes in the new release, the new class \c TranslatorAdapter_x_y_z is added to the \c 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 translator_adapter.h file (here x, y, and z are numbers that correspond to the current version of doxygen). All translators that correspond to the current official version of doxygen). All previously derived from the \c Translator class now derive from this translators that previously derived from the \c Translator class now adapter class. derive from this adapter class. The \c TranslatorAdapter_x_y_z class implements the new, required The \c TranslatorAdapter_x_y_z class implements the new, required methods. If the new method replaces some similar but obsolete methods. If the new method replaces some similar but obsolete Loading @@ -355,7 +357,7 @@ 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 result which is as close as possible to the older result in the target language. If it is not possible, the result (the default target language. If it is not possible, the result (the default translation) is obtained using the English translator, which is (by translation) is obtained using the English translator, which is (by definition) always up to date. definition) always up-to-date. <b>For example,</b> when the new \c trFile() method with <b>For example,</b> when the new \c trFile() method with parameters (to determine the capitalization of the first letter and parameters (to determine the capitalization of the first letter and Loading Loading @@ -429,29 +431,25 @@ The translator adapter classes are chained so that the older translator adapter class uses the one-step-newer translator adapter translator adapter class uses the one-step-newer translator adapter as the base class. The newer adapter does less \e adapting work as the base class. The newer adapter does less \e adapting work than the older one. The oldest adapter class derives (indirectly) than the older one. The oldest adapter class derives (indirectly) from all of the adapter classes. The newest adapter class derives from all of the adapter classes. The name of the adapter class is directly from the abstract class \c Translator. chosen so that its suffix is derived from the previous official version of doxygen that did not need the adapter. This way, one can The name of the adapter class was chosen so that its suffix is say approximately, when the language translator class was last derived from the previous version of doxygen. This way, one can say updated -- see details below. approximately, when the language translator class was last updated -- see details below. The newest adapter translator for CVS release The newest translator adapter derives from the abstract \c (i.e. non official) is named \c TranslatorAdapterCVS. As it derives TranslatorAdapterBase class that derives directly from the abstract only from the \c Translator class, it can be used only for language \c Translator class. It adds only the private English-translator translator classes that were up-to-date in the time of the last member for easy implementation of the default translation inside the release. adapter classes, and it also enforces implementation of one method for noticing the user that the language translation is not up-to-date Status of the translators that derive from the \c (because of that some sentences in the generated files may appear in TranslatorAdapterCVS is named as <em>almost up-to-date</em>. English). Its code is moved into the new \c Translator_x_y_z when new version of doxygen is officially released. Once the oldest adapter class is not used by any of the language Once the oldest adapter class is not used by any of the language translators, it can be removed from the doxygen project. This also translators, it can be removed from the doxygen project. The means, that there probably still is some language which uses the maintainers should try to reach the state with the minimal number of oldest adapter. The maintainers should try to reach the state with translator adapter classes. the minimal number of translator adapter classes. <b>To simplify the maintenance of the language translator classes</b> <b>To simplify the maintenance of the language translator classes</b> for the supported languages, the \c translator.pl perl for the supported languages, the \c translator.pl perl Loading @@ -473,7 +471,6 @@ 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 can find the same information by looking at the adapter class and its base classes. its base classes. <b>How should I update my language translator?</b> Firstly, you <b>How should I update my language translator?</b> Firstly, you should be the language maintainer, or you should let him/her know should be the language maintainer, or you should let him/her know about the changes. The following text was written for the language about the changes. The following text was written for the language Loading Loading @@ -525,7 +522,7 @@ can change the translator adapter base to the newer one. Do not blindly implement all methods that are implemented by your Do not blindly implement all methods that are implemented by your translator adapter base class. The reason is that the adapter translator adapter base class. The reason is that the adapter classes implement also obsolete methods. Another reason is that classes implement also obsolete methods. Another reason is that some of the methods could become obsolete later. some of the methods could become obsolete from some newer adapter on. */ */
doc/language.tpl +31 −34 Original line number Original line Diff line number Diff line Loading @@ -104,21 +104,23 @@ Just follow these steps: <h3>Maintaining a language</h3> <h3>Maintaining a language</h3> As new versions of doxygen appear, new sentences (\c trXxxx() New versions of doxygen may use new translated sentences. In such methods) will be added to the \c Translator interface class. Of situation, the \c Translator class requires implementation of new course, these need to be translated as well (otherwise doxygen methods -- its interface changes. Of course, the English wouldn't even compile!). Waiting until all language maintainers sentences need to be translated to the other languages. At least, have translated the new sentences and sent the results would not new methods have to be implemented by the language-related be very practical. The following text describes the usage of translator class; otherwise, doxygen wouldn't even compile. Waiting translator adapters to solve the problem. 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. <b>The role of Translator Adapters.</b> <b>The role of Translator Adapters.</b> Whenever the \c Translator class interface changes in the new Whenever the \c Translator class interface changes in the new release, the new class \c TranslatorAdapter_x_y_z is added to the \c 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 translator_adapter.h file (here x, y, and z are numbers that correspond to the current version of doxygen). All translators that correspond to the current official version of doxygen). All previously derived from the \c Translator class now derive from this translators that previously derived from the \c Translator class now adapter class. derive from this adapter class. The \c TranslatorAdapter_x_y_z class implements the new, required The \c TranslatorAdapter_x_y_z class implements the new, required methods. If the new method replaces some similar but obsolete methods. If the new method replaces some similar but obsolete Loading @@ -128,7 +130,7 @@ 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 result which is as close as possible to the older result in the target language. If it is not possible, the result (the default target language. If it is not possible, the result (the default translation) is obtained using the English translator, which is (by translation) is obtained using the English translator, which is (by definition) always up to date. definition) always up-to-date. <b>For example,</b> when the new \c trFile() method with <b>For example,</b> when the new \c trFile() method with parameters (to determine the capitalization of the first letter and parameters (to determine the capitalization of the first letter and Loading Loading @@ -202,29 +204,25 @@ The translator adapter classes are chained so that the older translator adapter class uses the one-step-newer translator adapter translator adapter class uses the one-step-newer translator adapter as the base class. The newer adapter does less \e adapting work as the base class. The newer adapter does less \e adapting work than the older one. The oldest adapter class derives (indirectly) than the older one. The oldest adapter class derives (indirectly) from all of the adapter classes. The newest adapter class derives from all of the adapter classes. The name of the adapter class is directly from the abstract class \c Translator. chosen so that its suffix is derived from the previous official version of doxygen that did not need the adapter. This way, one can The name of the adapter class was chosen so that its suffix is say approximately, when the language translator class was last derived from the previous version of doxygen. This way, one can say updated -- see details below. approximately, when the language translator class was last updated -- see details below. The newest adapter translator for CVS release The newest translator adapter derives from the abstract \c (i.e. non official) is named \c TranslatorAdapterCVS. As it derives TranslatorAdapterBase class that derives directly from the abstract only from the \c Translator class, it can be used only for language \c Translator class. It adds only the private English-translator translator classes that were up-to-date in the time of the last member for easy implementation of the default translation inside the release. adapter classes, and it also enforces implementation of one method for noticing the user that the language translation is not up-to-date Status of the translators that derive from the \c (because of that some sentences in the generated files may appear in TranslatorAdapterCVS is named as <em>almost up-to-date</em>. English). Its code is moved into the new \c Translator_x_y_z when new version of doxygen is officially released. Once the oldest adapter class is not used by any of the language Once the oldest adapter class is not used by any of the language translators, it can be removed from the doxygen project. This also translators, it can be removed from the doxygen project. The means, that there probably still is some language which uses the maintainers should try to reach the state with the minimal number of oldest adapter. The maintainers should try to reach the state with translator adapter classes. the minimal number of translator adapter classes. <b>To simplify the maintenance of the language translator classes</b> <b>To simplify the maintenance of the language translator classes</b> for the supported languages, the \c translator.pl perl for the supported languages, the \c translator.pl perl Loading @@ -245,7 +243,6 @@ 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 can find the same information by looking at the adapter class and its base classes. its base classes. <b>How should I update my language translator?</b> Firstly, you <b>How should I update my language translator?</b> Firstly, you should be the language maintainer, or you should let him/her know should be the language maintainer, or you should let him/her know about the changes. The following text was written for the language about the changes. The following text was written for the language Loading Loading @@ -297,7 +294,7 @@ can change the translator adapter base to the newer one. Do not blindly implement all methods that are implemented by your Do not blindly implement all methods that are implemented by your translator adapter base class. The reason is that the adapter translator adapter base class. The reason is that the adapter classes implement also obsolete methods. Another reason is that classes implement also obsolete methods. Another reason is that some of the methods could become obsolete later. some of the methods could become obsolete from some newer adapter on. */ */
doc/translator.pl +10 −17 Original line number Original line Diff line number Diff line Loading @@ -82,6 +82,11 @@ # method identifier and the opening parenthesis to match better # method identifier and the opening parenthesis to match better # the method prototype with the one in the translator.h. # the method prototype with the one in the translator.h. # # # 2001/11/06 # - TranslatorAdapterCVS is not used any more. There is nothing # like "almost up-to-date" any more. The script was simplified # to reflect the changes. # ################################################################ ################################################################ use 5.005; use 5.005; Loading Loading @@ -517,10 +522,6 @@ xxxTABLE_FOOTxxx my $i = $status =~ s{^Translator$}{up-to-date}; my $i = $status =~ s{^Translator$}{up-to-date}; if ($i == 0) { $i = $status =~ s{^TranslatorAdapterCVS}{almost up-to-date}; } if ($i == 0) { if ($i == 0) { $i = $status =~ s{^TranslatorAdapter_(\d)_(\d)_(\d)} $i = $status =~ s{^TranslatorAdapter_(\d)_(\d)_(\d)} {$1.$2.$3}x; {$1.$2.$3}x; Loading Loading @@ -972,19 +973,15 @@ print STDERR "\n\n"; # If there are up-to-date translators, list them. #{{{ # If there are up-to-date translators, list them. #{{{ # # my @list = sort grep { $cb{$_} =~ m/^Translator(AdapterCVS)?$/ } keys %cb; my @list = sort grep { $cb{$_} =~ m/^Translator$/ } keys %cb; if (@list) { if (@list) { print FOUT "\n" .'-' x 70 . "\n"; print FOUT "\n" .'-' x 70 . "\n"; print FOUT "The following translator classes are up-to-date " print FOUT "The following translator classes are up-to-date " . "(sorted alphabetically).\n" . "(sorted alphabetically).\n" . "This means that they derive from the Translator class. " . "This means that they derive from the Translator class. " . "If the translator\n" . "Anyway, there still\n" . "derives from TranslatorAdapterCVS, it is considered " . "may be some details listed even for " . "to be almost up-to-date.\n" . "In other words, it is newer than the last official " . "release. Anyway, there\n" . "still may be some details listed even for " . "the up-to-date translators.\n" . "the up-to-date translators.\n" . "Please, check the text below if the translator " . "Please, check the text below if the translator " . "is marked so.\n\n"; . "is marked so.\n\n"; Loading @@ -995,10 +992,6 @@ print STDERR "\n\n"; # # print FOUT " $_"; print FOUT " $_"; # For almost up-to-date translators, show also the base class. # if ($cb{$_} ne 'Translator') { print FOUT "\t($cb{$_})"; } # If some details were listed for the translator class, # If some details were listed for the translator class, # add a notice. # add a notice. # # Loading Loading @@ -1030,7 +1023,7 @@ print STDERR "\n\n"; # # @list = sort @list = sort grep { $cb{$_} !~ m/^Translator$/ } grep { $cb{$_} !~ m/^Translator$/ } grep { $cb{$_} !~ m/^TranslatorAdapter/ } grep { $cb{$_} !~ m/^TranslatorAdapter_/ } keys %cb; keys %cb; if (@list) { if (@list) { Loading