Mit gettext Skripte zu übersetzen war mir immer etwas unangenehm. Eigentlich finde ich es unschön, die kompilierten .mo-Dateien mit den ansonsten komplett lesbaren Skripten zu vermischen. Andererseits ist $"labelId" schon ein guter Weg, Übersetzungen im Code zu haben. Für izulu wollte ich das mal richtig machen, anstatt wie früher wieder ein eigenes System zu nutzen (je nach Sprache eine andere Datei mit Variablen per source einlesen). Wenn ich direkt an das export denke wird es das nächste mal auch wesentlich angenehmer .
Der Guide erwähnt es zwar, aber verschluckt die Befehle:
Place the resulting localized.sh.mo file in the /usr/local/share/locale/fr/LC_MESSAGES directory, and at the beginning of the script, insert the lines:
TEXTDOMAINDIR=/usr/local/share/locale
TEXTDOMAIN=localized.sh
....
The TEXTDOMAIN and TEXTDOMAINDIR variables need to be set and exported to the environment.
Also:
TEXTDOMAIN="izulu"
TEXTDOMAINDIR="/usr/share/locale/"
export TEXTDOMAIN
export TEXTDOMAINDIR
Ich hatte mit der Syntax gekämpft, um den Inhalt einer Variable als msgid zu nutzen. Letzten Endes bin ich bei dem expliziten gettext-Aufruf gelandet:
notify-send "izulu" "$(gettext "$1")"
Durch das vergessene export funktionierte dies anfangs nicht.