GSoC Ideas
Internationalization interface
Finalize design and implement in C and Z-Shell an
internationalization interface for strings in shell code.
Design
- finalize the rule for $"..." (or equivalent)
- invent rules for finding the catalogue which should probably be
flexible, ideally allowing both per-fpath-directory and
per-autoloadable-function files while still allowing the user to have
all their own translations collected in one place. For the last case it
would probably be OK to fall back on NLSPATH. (I'm not implying
people will use all the mechanisms, just that at this stage we should
plan on flexibility.)
- decide if we want strings in the source to use a similar scheme
or (perhaps better) just normal gettext() rules.
Shell source
- add parsing for $"..."
- add config support for locating libraries for language catalogues and
(where necessary) determining their abilities
- also (a separate job) we should prepare the C code for use of
gettext() --- as I said, this is conceptually simpler but still a lot
of work. Someone needs to look at gettextize: this is really part of
the previous point except that we won't want to rely just on the GNU
version; a quick look suggests it assumes a bit to much of a standard
GNU interface in some areas, but I haven't gone into any detail.
- add some trial mechanism behind $"..." using catopen() / catgets() /
catclose(). This is where we're going to need the most fiddling to get
the interface right.
Shell functions etc.
- add a few trial translation files for the completion system and
possibly other files to test the water
- ditto translations for strings in the shell's source code
- write a whole set of utilities that
- create bare catalogues
- update catalogues with untranslated strings
- check for uniqueness of the zsh msgid (needs some subtlety since
obviously reuse is a good thing: presumably we need to check that
the English text after the colon is the same in both cases)
- install catalogues
- manipulate (e.g. agglomerate) catalogues
- list or query what translations are available
- check catalogues for redundant translations