Things we plan to do. Comments welcome. - Documentation: Distinguish more clearly between gettext/xgettext, the Translation Project for GNU packages, and the PO mode. - Look at Christian Robottom Reis's manual: http://www.async.com.br/~kiko/gettext.html - KBabel: http://i18n.kde.org/translation-howto/gui-specialized-apps.html http://i18n.kde.org/tools/kbabel/ - Tool to help people to correct msgid strings: 1. Program to move msgstr contents to msgid contents, 2. Program to update the translations accordingly, much like msgmerge. - Mention Qt linguist (part of Qt 3) - Easier delivery of PO directory for maintainer! Add a target for incoming PO files - Qt 3.0 compatibility: - .ts, .qph catalogs, example: http://dooble.svn.sourceforge.net/viewvc/dooble/trunk/browser/translations/ - .qm binary catalogs - Add logging to libintl, in order to catch each of these problems: > - if the directory that was argument to bindtextdomain is usable > - what catalogs are installed there > - if the language , that is requested by LC_ALL or some other > variable is really there ... > - if program tries to translate some message, it doesn't really know > if it really get translated ... And if requested more than > one language , you have no way to realize into what > language, it had been really translated !!!!!!! - msgdiff People recommend the 'poediff' program from Pology: http://pology.nedohodnik.net which supports merging the diff back to the PO - automake integration: Add to "make dist" an invocation of "intltool-update --maintain", parametrized through a few variables that specify - where to look for i18n files, - which file types are to be considered by i18n, - which files are explicitly not i18n (e.g. generated files like src/po-gram-gen.c) - Generating sr@latin PO file automatically from sr.po. - XLIFF support - object-oriented locale datatype, similar to giulia/glocale - automatic download at installation time of PO files that have been provided by the translators after the official release. - Conversion of compendia from/to TMX format. - Support some of the conversions found in the translate-toolkit package, see http://translate.sourceforge.net/wiki/nonpo - xgettext should have a simpler way to specify the --flags. - man page pgettext.3 - po-mode.el: Editing of msgstr[i] plural forms, and setting of formula. - The recode-* programs and msggrep should ignore the accelerator char transparently. a word is divided by shortcut symbol (like "Raści_ahni") that will be converted incorrectly (like "Расьці_агні", not "Расьц_ягні") - PO spell checker. People recommend: - 'pospell' - qui ne gère apparemment pas les accents - gettext-lint / POFileSpell - qui fonctionne mais le contexte est trop court - une version mise à jour de http://lists.debian.org/debian-l10n-french/2000/04/msg00058.html (qui date de 2000 quand même - voir en fin de message) - pas mal, mais pas moyen de sauvegarder ni même de s'arrêter avant la fin du .po - pofilter - acheck - An alternative converter for Java .properties files. E.g. error.socket.connect=Cannot connect socket error.database.connect=Cannot connect to database {0} -> msgctxt "error.socket.connect" msgid "Cannot connect socket" msgstr "" msgctxt "error.database.connect" msgid "Cannot connect to database {0}" msgstr "" - For people who use a 15 MB large compendium: Add an msgmerge option --cache-compendium, which stores (during the first run) or reuses (during subsequent runs) an mmapable file that represents the index of the compendium file. Should be located in /var/tmp/, in a filename that is a hash of the realpath of the compendium. - Translating via an intermediate language (see thread 2006-09-28): > For my language alone, there are many possible translators who would > work much better from Chinese or Russian to Vietnamese than from > English. It's simply a matter of which languages you have had the > opportunity to learn. Now _that_ is an interesting idea! Gettext can already nearly do this, too, if you write three small scripts/ programs to - convert an English-based .pot file into a Russian-based .pot file, - convert an English->Vietnamese PO file to a Russian->Vietnamese PO file, (to be used when such a translator starts her work), - convert an Russian->Vietnamese PO file back to an English->Vietnamese PO file (to be used when a translator is done with her work). And then the translator has these additional conversions steps all the time. It would be better, for the future, that the translator has only one additional step to perform: When she gets a new PO file, she converts it to a mixed English/Russian->Vietnamese PO file. Such a mixed English/Russian->Vietnamese PO file would 1) permit the translator to peek into the English original when something is unclear, 2) also work when not some of the Russian translations are missing or fuzzy, 3) get rid of the "convert back" step, since msgfmt could directly grok the mixed English/Russian->Vietnamese PO file. The syntax for a mixed PO file could like this: msgid "Hello, world!" msgid[ru] "Здравствуй, мир!" msgstr "Chào thế giới !" - filter-sr-latin should transform the resulting output to NFC form. Needed because the input may contain decomposed Cyrillic accented letters. - In x-c.c, support C++0x escape sequences, see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm - Use libunistring as hard dependency. - Texinfo document translation, through TexinfoXML. - A way to hook xgettext to call external scanner written in the target programming language. This would be particularly useful for scripting languages which need run-time information to extract strings. Some programming languages already provide their own scanners: pygettext in Python, rgettext in Ruby. - Make xgettext XML handling extensible through user ITS files http://lists.gnu.org/archive/html/bug-gettext/2014-06/msg00026.html - 3-way merge tool for PO files msg3way was proposed by Panos Christeas http://lists.gnu.org/archive/html/bug-gnu-utils/2010-11/msg00051.html