diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/language.doc | 40 | ||||
-rw-r--r-- | doc/maintainers.txt | 2 | ||||
-rw-r--r-- | doc/translator.py | 108 | ||||
-rw-r--r-- | doc/translator_report.txt | 174 |
4 files changed, 135 insertions, 189 deletions
diff --git a/doc/language.doc b/doc/language.doc index a56a419..7281318 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other than English (the default). The output language is chosen through the configuration file (with default name and known as Doxyfile). -Currently (version 1.3.8-20040913), 30 languages +Currently (version 1.3.9), 30 languages are supported (sorted alphabetically): Afrikaans, Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Czech, Danish, Dutch, English, Finnish, French, @@ -59,8 +59,8 @@ when the translator was updated. <tr bgcolor="#ffffff"> <td>Brazilian Portuguese</td> <td>Fabio "FJTC" Jun Takada Chino</td> - <td>chino at icmc dot sc dot usp dot br</td> - <td>1.3.9</td> + <td>jun-chino at uol dot com dot br</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Catalan</td> @@ -72,7 +72,7 @@ when the translator was updated. <td>Chinese</td> <td>Li Daobing<br>Wei Liu</td> <td>lidaobing at gmail dot com<br>liuwei at asiainfo dot com</td> - <td>1.3.9</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Chinese Traditional</td> @@ -84,7 +84,7 @@ when the translator was updated. <td>Croatian</td> <td>Boris Bralo</td> <td>boris.bralo at zg dot htnet dot hr</td> - <td>1.3.9</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Czech</td> @@ -120,13 +120,13 @@ when the translator was updated. <td>French</td> <td>Xavier Outhier</td> <td>xouthier at yahoo dot fr</td> - <td>1.3.8</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>German</td> <td>Jens Seidel</td> <td>jensseidel at users dot sf dot net</td> - <td>1.3.9</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Greek</td> @@ -138,13 +138,13 @@ when the translator was updated. <td>Hungarian</td> <td>Földvári György<br>Ákos Kiss</td> <td>foldvari lost at cyberspace<br>akiss at users dot sourceforge dot net</td> - <td>1.3.9</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Italian</td> <td>Alessandro Falappa<br>Ahmed Aldo Faisal</td> <td>alessandro at falappa dot net<br>aaf23 at cam dot ac dot uk</td> - <td>1.3.9</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Japanese</td> @@ -204,7 +204,7 @@ when the translator was updated. <td>Russian</td> <td>Alexandr Chelpanov</td> <td>cav at cryptopro dot ru</td> - <td>1.3.9</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Serbian</td> @@ -234,7 +234,7 @@ when the translator was updated. <td>Swedish</td> <td>Mikael Hallin</td> <td>mikaelhallin at yahoo dot se</td> - <td>1.3.8</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Ukrainian</td> @@ -259,17 +259,17 @@ when the translator was updated. \hline Afrikaans & Johan Prinsloo & {\tt\tiny johan@zippysnoek.com} & 1.3.9 \\ \hline - Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt\tiny chino@icmc.sc.usp.br} & 1.3.9 \\ + Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt\tiny jun-chino@uol.com.br} & up-to-date \\ \hline Catalan & Albert Mora & {\tt\tiny amora@iua.upf.es} & 1.2.17 \\ \hline - Chinese & Li Daobing & {\tt\tiny lidaobing@gmail.com} & 1.3.9 \\ + Chinese & Li Daobing & {\tt\tiny lidaobing@gmail.com} & up-to-date \\ ~ & Wei Liu & {\tt\tiny liuwei@asiainfo.com} & ~ \\ \hline Chinese Traditional & Daniel YC Lin & {\tt\tiny daniel@twpda.com} & 1.3.8 \\ ~ & Gary Lee & {\tt\tiny garylee@ecosine.com.tw} & ~ \\ \hline - Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.htnet.hr} & 1.3.9 \\ + Croatian & Boris Bralo & {\tt\tiny boris.bralo@zg.htnet.hr} & up-to-date \\ \hline Czech & Petr P\v{r}ikryl & {\tt\tiny prikrylp@skil.cz} & up-to-date \\ \hline @@ -281,16 +281,16 @@ when the translator was updated. \hline Finnish & Olli Korhonen & {\tt\tiny olli.korhonen lost@cyberspace} & obsolete \\ \hline - French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & 1.3.8 \\ + French & Xavier Outhier & {\tt\tiny xouthier@yahoo.fr} & up-to-date \\ \hline - German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} & 1.3.9 \\ + German & Jens Seidel & {\tt\tiny jensseidel@users.sf.net} & up-to-date \\ \hline Greek & Harry Kalogirou & {\tt\tiny harkal@rainbow.cs.unipi.gr} & 1.2.11 \\ \hline - Hungarian & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt\tiny foldvari lost@cyberspace} & 1.3.9 \\ + Hungarian & F\"{o}ldv\'{a}ri Gy\"{o}rgy & {\tt\tiny foldvari lost@cyberspace} & up-to-date \\ ~ & \'{A}kos Kiss & {\tt\tiny akiss@users.sourceforge.net} & ~ \\ \hline - Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & 1.3.9 \\ + Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\ ~ & Ahmed Aldo Faisal & {\tt\tiny aaf23@cam.ac.uk} & ~ \\ \hline Japanese & Ryunosuke Satoh & {\tt\tiny sun594@hotmail.com} & 1.3.9 \\ @@ -316,7 +316,7 @@ when the translator was updated. \hline Romanian & Alexandru Iosup & {\tt\tiny aiosup@yahoo.com} & 1.2.16 \\ \hline - Russian & Alexandr Chelpanov & {\tt\tiny cav@cryptopro.ru} & 1.3.9 \\ + Russian & Alexandr Chelpanov & {\tt\tiny cav@cryptopro.ru} & up-to-date \\ \hline Serbian & Dejan Milosavljevic & {\tt\tiny dmilos@email.com} & 1.3.8 \\ \hline @@ -326,7 +326,7 @@ when the translator was updated. \hline Spanish & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & 1.3.8 \\ \hline - Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.3.8 \\ + Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & up-to-date \\ \hline Ukrainian & Olexij Tkatchenko & {\tt\tiny olexij.tkatchenko@parcs.de} & 1.2.11 \\ \hline diff --git a/doc/maintainers.txt b/doc/maintainers.txt index 82275f5..4122e39 100644 --- a/doc/maintainers.txt +++ b/doc/maintainers.txt @@ -13,7 +13,7 @@ TranslatorAfrikaans Johan Prinsloo: johan@zippysnoek.com TranslatorBrazilian -Fabio "FJTC" Jun Takada Chino: chino@icmc.sc.usp.br +Fabio "FJTC" Jun Takada Chino: jun-chino@uol.com.br TranslatorCatalan Albert Mora: amora@iua.upf.es diff --git a/doc/translator.py b/doc/translator.py index 1c32b5a..81c2fe6 100644 --- a/doc/translator.py +++ b/doc/translator.py @@ -43,6 +43,7 @@ when the report is not restricted to selected languages explicitly via script arguments. 2004/07/26 - Better reporting of not-needed adapters. + 2004/10/04 - Reporting of not called translator methods added. """ from __future__ import generators @@ -1160,7 +1161,7 @@ class Transl: class TrManager: """Collects basic info and builds subordinate Transl objects.""" - def __init__(self): + def __init__(self): """Determines paths, creates and initializes structures. The arguments of the script may explicitly say what languages should @@ -1355,7 +1356,84 @@ class TrManager: tim = tr.getmtime() if tim > self.lastModificationTime: self.lastModificationTime = tim - + + + def __getNoTrSourceFilesLst(self): + """Returns the list of sources to be checked. + + All .cpp files and also .h files that do not declare and define + the translator methods are included in the list. The file names + are searched in doxygen directory recursively.""" + lst = [] + for path, dirs, files in os.walk(self.doxy_path): + + # Files in doxygen/src should be processed first. + if path == self.doxy_path: + dirs.remove('src') + dirs.insert(0, 'src') + + # Search for names with .cpp extension (case independent) + # and append them to the output list. + for fname in files: + name, ext = os.path.splitext(fname) + ext = ext.lower() + if ext == '.cpp' or (ext == '.h' and name.find('translator') == -1): + lst.append(os.path.join(path, fname)) + + return lst + + + def __removeUsedInFiles(self, fname, dic): + """Removes items for method identifiers that are found in fname. + + The method reads the content of the file as one string and searches + for all identifiers from dic. The identifiers that were found in + the file are removed from the dictionary. + + Note: If more files is to be checked, the files where most items are + probably used should be checked first and the resulting reduced + dictionary should be used for checking the next files (speed up). + """ + lst_in = dic.keys() # identifiers to be searched for + + # Read content of the file as one string. + assert os.path.isfile(fname) + f = file(fname) + cont = f.read() + f.close() + + # Remove the items for identifiers that were found in the file. + while lst_in: + item = lst_in.pop(0) + if cont.find(item) != -1: + del dic[item] + + + def __checkForNotUsedTrMethods(self): + """Returns the dictionary of not used translator methods. + + The method can be called only after self.requiredMethodsDic has been + built. The stripped prototypes are the values, the method identifiers + are the keys. + """ + # Build the dictionary of the required method prototypes with + # method identifiers used as keys. + trdic = {} + for prototype in self.requiredMethodsDic.keys(): + ri = prototype.split('(')[0] + identifier = ri.split()[1].strip() + trdic[identifier] = prototype + + # Build the list of source files where translator method identifiers + # can be used. + files = self.__getNoTrSourceFilesLst() + + # Loop through the files and reduce the dictionary of id -> proto. + for fname in files: + self.__removeUsedInFiles(fname, trdic) + + # Return the dictionary of not used translator methods. + return trdic def generateTranslatorReport(self): @@ -1478,6 +1556,27 @@ class TrManager: f.write(' -- ' + obj.note) f.write('\n') + # Check for not used translator methods and generate warning if found. + # The check is rather time consuming, so it is not done when report + # is restricted to explicitly given language identifiers. + if not self.script_argLst: + dic = self.__checkForNotUsedTrMethods() + if dic: + s = '''WARNING FOR DEVELOPERS: The following translator + methods are declared in the Translator class but their + identifiers do not appear in source files. The situation + should be checked. The .cpp files and .h files excluding + the 'translator*.h' files were simply searched for + occurence of the method identifiers:''' + f.write('\n' + '=' * 70 + '\n') + f.write(fill(s) + '\n\n') + + keys = dic.keys() + keys.sort() + for key in keys: + f.write(' ' + dic[key] + '\n') + f.write('\n') + # Write the details for the translators. f.write('\n' + '=' * 70) f.write('\nDetails for translators (classes sorted alphabetically):\n') @@ -1494,8 +1593,6 @@ class TrManager: f.close() - - def __loadMaintainers(self): """Load and process the file with the maintainers. @@ -1545,7 +1642,8 @@ class TrManager: assert(len(lst) == 2) t = (lst[0].strip(), lst[1].strip()) self.__maintainersDic[classId].append(t) - f.close() + f.close() + def generateLanguageDoc(self): """Checks the modtime of files and generates language.doc.""" diff --git a/doc/translator_report.txt b/doc/translator_report.txt index 924252f..2c73b00 100644 --- a/doc/translator_report.txt +++ b/doc/translator_report.txt @@ -1,4 +1,4 @@ -(1.3.8-20040913) +(1.3.9) Doxygen supports the following 30 languages (sorted alphabetically): @@ -8,7 +8,7 @@ German, Greek, Hungarian, Italian, Japanese (+En), Korean (+En), Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. -Of them, 4 translators are up-to-date, 26 translators are based on +Of them, 13 translators are up-to-date, 17 translators are based on some adapter class, and 2 are English based. ---------------------------------------------------------------------- @@ -17,10 +17,19 @@ alphabetically). This means that they derive from the Translator class and they implement all 201 of the required methods. Anyway, there still may be some details listed even for them: + TranslatorBrazilian + TranslatorChinese + TranslatorCroatian TranslatorCzech TranslatorDutch TranslatorEnglish + TranslatorFrench + TranslatorGerman + TranslatorHungarian + TranslatorItalian TranslatorPolish + TranslatorRussian + TranslatorSwedish ---------------------------------------------------------------------- The following translator classes need some maintenance (the most @@ -28,23 +37,14 @@ obsolete at the end). The other info shows the estimation of Doxygen version when the class was last updated and number of methods that must be implemented to become up-to-date: - TranslatorRussian 1.3.9 6 methods to implement TranslatorNorwegian 1.3.9 6 methods to implement TranslatorJapanese 1.3.9 6 methods to implement - TranslatorItalian 1.3.9 6 methods to implement - TranslatorHungarian 1.3.9 6 methods to implement - TranslatorGerman 1.3.9 6 methods to implement TranslatorDanish 1.3.9 6 methods to implement - TranslatorCroatian 1.3.9 6 methods to implement - TranslatorChinese 1.3.9 6 methods to implement - TranslatorBrazilian 1.3.9 6 methods to implement TranslatorAfrikaans 1.3.9 6 methods to implement - TranslatorSwedish 1.3.8 7 methods to implement TranslatorSpanish 1.3.8 7 methods to implement TranslatorSerbian 1.3.8 7 methods to implement TranslatorLithuanian 1.3.8 7 methods to implement TranslatorKorean 1.3.8 7 methods to implement - TranslatorFrench 1.3.8 7 methods to implement TranslatorChinesetraditional 1.3.8 7 methods to implement TranslatorPortuguese 1.3.3 11 methods to implement TranslatorSlovak 1.2.18 20 methods to implement @@ -84,21 +84,6 @@ TranslatorAfrikaans (TranslatorAdapter_1_3_9) 6 methods to implement virtual QCString trDir(bool first_capital, bool singular) -TranslatorBrazilian (TranslatorAdapter_1_3_9) 6 methods to implement -------------------- - - Implements 195 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - - TranslatorCatalan (TranslatorAdapter_1_2_17) 21 methods to implement ----------------- @@ -129,21 +114,6 @@ TranslatorCatalan (TranslatorAdapter_1_2_17) 21 methods to implement virtual QCString trAll() -TranslatorChinese (TranslatorAdapter_1_3_9) 6 methods to implement ------------------ - - Implements 195 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - - TranslatorChinesetraditional (TranslatorAdapter_1_3_8) 7 methods to implement ---------------------------- @@ -160,21 +130,6 @@ TranslatorChinesetraditional (TranslatorAdapter_1_3_8) 7 methods to implement virtual QCString trDir(bool first_capital, bool singular) -TranslatorCroatian (TranslatorAdapter_1_3_9) 6 methods to implement ------------------- - - Implements 195 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - - TranslatorDanish (TranslatorAdapter_1_3_9) 6 methods to implement ---------------- @@ -298,44 +253,9 @@ TranslatorFinnish (TranslatorEnglish) 98 methods to implement Obsolete methods (should be removed, never used): - QCString trGeneratedFrom(const char * s, bool single) - QCString trVerbatimText(const char * f) QCString trFiles() virtual QCString updateNeededMessage() QCString trAuthors() - QCString latexBabelPackage() - QCString trAuthor() - - -TranslatorFrench (TranslatorAdapter_1_3_8) 7 methods to implement ----------------- - - Implements 194 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trSourceFile(QCString & filename) - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - - -TranslatorGerman (TranslatorAdapter_1_3_9) 6 methods to implement ----------------- - - Implements 195 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) TranslatorGreek (TranslatorAdapter_1_2_11) 25 methods to implement @@ -371,40 +291,6 @@ TranslatorGreek (TranslatorAdapter_1_2_11) 25 methods to implement virtual QCString trAll() virtual QCString trRTFTableOfContents() - Obsolete methods (should be removed, never used): - - virtual QCString latexBabelPackage() - - -TranslatorHungarian (TranslatorAdapter_1_3_9) 6 methods to implement -------------------- - - Implements 195 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - - -TranslatorItalian (TranslatorAdapter_1_3_9) 6 methods to implement ------------------ - - Implements 195 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - TranslatorJapanese (TranslatorAdapter_1_3_9) 6 methods to implement ------------------ @@ -547,21 +433,6 @@ TranslatorRomanian (TranslatorAdapter_1_2_16) 22 methods to implement virtual QCString trRTFTableOfContents() -TranslatorRussian (TranslatorAdapter_1_3_9) 6 methods to implement ------------------ - - Implements 195 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - - TranslatorSerbian (TranslatorAdapter_1_3_8) 7 methods to implement ----------------- @@ -653,29 +524,6 @@ TranslatorSpanish (TranslatorAdapter_1_3_8) 7 methods to implement virtual QCString trDirReference(const char * dirName) virtual QCString trDir(bool first_capital, bool singular) - Obsolete methods (should be removed, never used): - - virtual QCString trVerbatimText(const char * f) - virtual QCString trFiles() - virtual QCString trAuthors() - virtual QCString latexBabelPackage() - - -TranslatorSwedish (TranslatorAdapter_1_3_8) 7 methods to implement ------------------ - - Implements 194 of the required methods. - - Missing methods (should be implemented): - - virtual QCString trDirIndex() - virtual QCString trDirDocumentation() - virtual QCString trDirectories() - virtual QCString trDirDescription() - virtual QCString trSourceFile(QCString & filename) - virtual QCString trDirReference(const char * dirName) - virtual QCString trDir(bool first_capital, bool singular) - TranslatorUkrainian (TranslatorAdapter_1_2_11) 25 methods to implement ------------------- |