Adding a translation to gkrellm-volume
0) History
This document is taken from the gkrellm source tree and adapted for gkrellm-volume
1) Extract the strings from the source
In the gkrellm-volume top level directory, create the .po template (.pot):
xgettext -k_ -kN_ src/*.c -o po/gkrellm-volume.pot
2) Update or create .po files
If there are any existing translations, XX.po files, then merge them:
cd po
msgmerge XX.po gkrellm-volume.pot > XX.po.new
mv XX.po.new XX.po
Or, if this is a new translation, copy the template:
cd po
cp gkrellm-volume.pot XX.po
3) Add translations
Edit XX.po to add translations for new strings, fix broken translations, and touch up fuzzy translations.
4) Make and install gkrellm-volume with i18n enabled
If make is run from this directory instead of the top level dir, you must explicitely enable i18n in all the below examples by adding enable_nls=1 to the make command:
make enable_nls=1
And for the install step:
make install enable_nls=1
i18n will be automatically enabled when make is run from the top level dir.
In either case, a make install will for each XX.po file create a XX.mo file and copy it to:
$LOCALEDIR/XX/LC_MESSAGES/gkrellm-volume.mo
If there is no LOCALEDIR environment variable, then the default install will be to:
/usr/share/locale/XX/LC_MESSAGES/gkrellm-volume.mo
But, if you want a different explicit install directory, do for example:
make install LOCALEDIR=/usr/local/share/locale
or (for bash)
export LOCALEDIR=/usr/local/share/locale
make install
Other export lines:
sh: export LOCALEDIR; LOCALEDIR=/usr/local/share/locale
csh: setenv LOCALEDIR /usr/local/share/locale
You can also specify the textdomain package name. From bash:
make install PACKAGE=gkrellm-volume2
Using a translation
A user must have localizations enabled for a translation to be used. To enable a localization, the LANG environment variable should be set via the command line or the shell login startup files.
For example, to see the French translation, a user should be able to:
From bash:
export LANG=fr_FR
or from csh
setenv LANG fr_FR
If fr_FR does not work, try fr_FR.ISO_8859-1
