In dem folgenden Beispiel sind alle im ULP verwendeten Strings im Array I18N[] aufgelistet, beginnend mit einem String der die verschiedenen Sprachcodes enthält die dieses ULP unterstützt. Beachten Sie die vtab-Zeichen, die dazu benutzt werden, die einzelnen Teile jedes Strings zu trennen (diese sind wichtig für die lookup-Funktion) und die Benutzung der Kommas um die Strings zu trennen. Die eigentliche Arbeit wird in der Funktion tr() gemacht, welche die übersetzte Version des übergebenen Strings zurückliefert. Sollte der ursprüngliche String im I18N-Array nicht gefunden werden, oder es keine Übersetzung für die aktuelle Sprache geben, so wird der ursprüngliche String unübersetzt verwendet.
Die erste im I18N-Array definierte Sprache muß diejenige sein, in der die im restlichen ULP verwendeten Strings geschrieben sind, und sollte generell Englisch sein um das Programm einer möglichst großen Zahl von Benutzern zugänglich zu machen.
Example
string I18N[] = { "en\v" "de\v" "it\v" , "I18N Demo\v" "Beispiel für Internationalisierung\v" "Esempio per internazionalizzazione\v" , "Hello world!\v" "Hallo Welt!\v" "Ciao mondo!\v" , "+Ok\v" "+Ok\v" "+Approvazione\v" , "-Cancel\v" "-Abbrechen\v" "-Annullamento\v" }; int Language = strstr(I18N[0], language()) / 3; string tr(string s) { string t = lookup(I18N, s, Language, '\v'); return t ? t : s; } dlgDialog(tr("I18N Demo")) { dlgHBoxLayout dlgSpacing(350); dlgLabel(tr("Hello world!")); dlgHBoxLayout { dlgPushButton(tr("+Ok")) dlgAccept(); dlgPushButton(tr("-Cancel")) dlgReject(); } };
Index | Copyright © 2005 CadSoft Computer GmbH |