Updated addon repository URL and improved debug output on download
[supertux.git] / external / tinygettext / TODO
1 tinygettext API related stuff:
2 ==============================
3
4 * translate, translate_ctxt, translate_ctxt_plural, ... could be
5   unified via overloading, not sure if that is a good idea. For the
6   same reason add_translation() could be de-overloaded, to
7   add_translation_ctxt, ...
8
9 * iconv handling needs cleanup and more flexibility, since some
10   systems don't provide iconv or only through SDL
11
12 * Customizability could use grouping and documentation or other means
13   to make it more obvious:
14
15   - POParser::pedantic
16   - iconv (???)
17   - logging (log_callback(std::string))
18
19 * handle errors better, not with log_* stream, cases of errors:
20
21   - couldn't translate
22   - collision while adding translation
23   - failure to open file or directory
24   - unknown language
25   - iconv failure to convert charset
26
27 * ABI management/freezing. If tinygettext is to benefit other projects,
28   it should be able to provide a stable API (and, better, ABI).
29
30
31 tinygettext implementation details:
32 ===================================
33
34 * with PluralForms moved into Dictionary a lot of the Langugae stuff
35   is pointless
36
37 * get rid of goto
38
39 * POParser can handle Big5, but needs testing.
40   Big5 is one byte for ASCII letters and two bytes for chinese ones,
41   this means some two byte characters collide with '\', some .po files
42   seem to escape the \ properly so that the string can be read as
43   usual, while others don't.
44
45 * _()  -> getext() (gettext default)
46   N_(id) -> gettext_noop(id) (gettext default)
47   C_(ctxt, id) -> pgettext(ctxt, id) (Gnome does this: http://library.gnome.org/devel/glib/2.16/glib-I18N.html#Q-:CAPS)
48   NC_(ctxt, id) -> pgettext(ctxt, id) (Gnome does this: http://library.gnome.org/devel/glib/2.16/glib-I18N.html#Q-:CAPS)
49
50 * figure out how up-to-date other tinygettext implementations in the
51   wild are (LinCity):
52
53   Pingus: 
54   -------
55   dictionary.hpp (synced with Pingus)
56   dictionary_manager.hpp (PhysFS vs opendir())
57   language_def.hpp (synced with Pingus)
58   po_file_reader.hpp (UTF-8 0xef-'header', lots of stuff from mathner)
59   tinygettext.hpp (iconv vs convert)
60
61 \f
62 Random Unimportant Stuff
63 ========================
64
65 * a hashmap instead of std::map might be a good idea
66
67 * support for .gmo files would be cool
68 \f
69 tinygettext Documentation:
70 ==========================
71
72 * recommend a way to handle translation of speech and other data files
73
74 * document how to use tinygettext and make it work like gettext
75 \f
76 # EOF #