Thanks to Lionel N. who bugged me with his Windows installation where
the XML file was not found by GIMP. We should output a warning when this
happens so that packagers can detect the issue and the expected
installation path for this dependency.
The reporter wants me to call him "Padawan Lionel" but I won't fall for
it! Or did I? :-D
Improvements:
- setenv/getenv() are not thread-safe, hence they should be run only at
startup before any threading occurs.
- it is counter-productive to load the huge ISO-639 XML file each time
the user opens the Preferences dialog or the text tool options.
Some languages have no 2-letter ISO-639-1. This is the case in particular
for 3 languages we have translations for: ast (Asturian), csb (Kashubian)
and nds (Low German), which have only 3-letter ISO-639-2/3 codes.
They were not visible in the list of languages in the Preferences dialog
until now.
setenv() does not behave well on some systems, in particular OSX (and
probably some BSDs), when the set value is NULL. In this case, let's
unsetenv() the environment variable instead.
glib's g_getenv() doc says: "The returned string may be overwritten by
the next call to g_getenv(), g_setenv() or g_unsetenv()". And I do
g_setenv() calls just after, while I wish to keep the value intact.
As a consequence, even though the previous commit seemed to work just fine,
I duplicate the return value of g_getenv(), just to be on the safe side.
The trick works by temporarily resetting the current locale to localize
each language label in its own lang.
One exception is English that is equivalent to the "C" code, and we make
also some special exception for Chinese where there are very different
variant depending on the region.
I also ensure the "System Language" string is translated in whatever
language is the system actually set to.
Derive GimpTranslationStore from GimpLanguageStore. It lists the
installed GIMP translations. Also sort the list alphabetically
instead of relying on the XML file being sorted.
2009-01-17 Michael Natterer <mitch@gimp.org>
* all files with a GPL header and all COPYING files:
Change licence to GPLv3 (and to LGPLv3 for libgimp).
Cleaned up some copyright headers and regenerated the parsers in
the ImageMap plugin.
svn path=/trunk/; revision=27913
2008-06-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimplanguagestore-parser.c: include
"libgimpbase/gimpbase.h" instead of "libgimpbase/gimpenv.h".
svn path=/trunk/; revision=26004
2008-02-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimplanguagestore-parser.c: inverted logic; #ifdef
is IMO easier to read than #ifndef.
svn path=/trunk/; revision=24868
2008-02-12 Tor Lillqvist <tml@novell.com>
* app/widgets/gimplanguagestore-parser.c
(gimp_language_store_populate): Don't use the compile-time paths
to iso-codes on Windows. Instead assume iso-codes is installed in
the same location as GIMP. Make sure translated language names are
in UTF-8 by calling bind_textdomain_codeset().
svn path=/trunk/; revision=24867
2008-02-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimplanguagestore.[ch]
* app/widgets/gimplanguagestore-parser.c: actually populate the
language store. Still work in progress...
* app/widgets/gimptexteditor.c: added a combo-box for language
selection. Not functional yet; just something to play with.
svn path=/trunk/; revision=24833