Internationalisierung
Daten, Zeiten, Zahlen und Währungen sehen in verschiedenen Teilen der Welt unterschiedlich aus.
Die gleiche Zahl kann in den USA als 1,250.50
dargestellt werden und in Deutschland als 1.250,50
.
Wenn Sie möchten, dass Doxey mit Zahlen arbeitet, z.B. um Zahlen zu summieren, können Sie in Schwierigkeiten geraten, wenn Sie kein Gebietsschema (=die Sprache und das Land) angeben, das zur Formatierung der Zahlen verwendet wird.
Doxey hilft Ihnen bei der Bewältigung dieser Herausforderung, aber es ist wichtig die grundlegenden Konzepte zu verstehen, also lesen Sie diesen Anleitung sorgfältig durch.
Standardeinstellungen
Sie können die Standardeinstellungen für die Datei, an der Sie gerade arbeiten, im Menü Datei > Einstellungen...
anpassen.
Diese Einstellungen werden standardmäßig verwendet, wenn Sie Zahlen, Daten oder Währungen in Ihren Vorlagen verwenden und das Gebietsschema nicht explizit angeben.
Wenn Sie beim Einfügung einer Variable kein Gebietsschema angeben, kann die generierte Ausgabe je nach Standardeinstellung variieren!
Input locale
Input locale (=Gebietsschema für die Eingabe) wird verwendet, wenn Doxey versucht, Zahlen, Daten oder Währungen richtig zu deuten.
Angenommen Sie haben eine Variable namens betrag
mit dem Wert 1.250,50
, dann ist das eine Zahl, die auf "deutsche Weise" formatiert ist.
Stellen Sie zunächst sicher, dass Sie wissen, wie die Rohdaten aussehen, indem Sie den Debugger verwenden oder den Wert ohne Formatierung auf der Konsole ausgeben:
${betrag}
Sie erhalten den unformatierten Wert:
1.250,50
Wenn für Ihr standardmäßiges Gebietsschema englisch
eingestellt ist und Sie die Variable mit Hilfe des number
Renderers auf der Konsole ausgeben ...
${betrag;number}
.... kann es zu einem unerwarteten Ergebnis kommen:
1.25
Warum ist das so?
Da Doxey auf den angegebenen Wert 1.250,50
englische Formatierungsregeln anwendet, wird der ersten Punkt als Dezimaltrennzeichen gedeutet und ignoriert alles nach dem Komma.
Die konvertierte Zahl lautet 1,25
und wird auf der Konsole ausgegeben.
Wenn Sie für das Standard-Gebietsschema deutsch
einstellen, wird Doxey die Zahl anders darstellen:
1,250.5
Aber was ist, wenn Sie einige Variablen haben, die Zahlen in der Einstellung deutsch
und andere im Format englisch
enthalten?
Wenn Sie Ihr Gebietsschema auf englisch
umschalten, können Sie das Gebietsschema für jede weitere Eingabe gesondert festlegen. Es wird dann nicht das standardmäßige Input locale verwendet, sondern das angegebene Input locale:
${betrag;number(il=de)}
Es wird die richtige Zahl angegeben, auch wenn für das standardmäßige Gebietsschema englisch
eingestellt ist:
1,250.5
Die gleiche Logik gilt für Daten und Währungen.
Stellen Sie sicher, dass das Input locale korrekt eingestellt ist, damit vorgegebene Werte von Doxey korrekt verarbeitet werden können.
Playground
Rendering "betrag" as number with default input locale (en): ${betrag;number} Set input local to German to parse "betrag" ${betrag;number(il=de)}
{ "betrag" : "1.250,50" }
Output locale
Angenommen, Sie möchten das aktuelle Datum und die aktuelle Uhrzeit ausgeben und geben folgendes an:
${now}
auf der Konsole werden Sie daraufhin folgende Ausgabe erhalten:
Thu Sep 20 08:48:13 UTC 2018
Dies sind lediglich die Rohdaten des Datums und der Uhrzeit. Verwenden wir den datetime
Renderer, um die Formatierung zu verbessern:
${now;datetime(op=full)}
Wenn als Standard englisch
eingestellt ist, erhalten Sie auf der Konsole die Ausgabe:
Thursday, September 20, 2018 11:11:07 AM UTC
Wenn als Standard deutsch
eingestellt ist, erhalten Sie ein anderes Ergebnis:
Donnerstag, 20. September 2018 11:11 Uhr UTC
Playground
Ändern Sie Output pattern (=Ausgabeformat), um das Ausgabedatum zu ändern.
Dates and times look differently in different languages ${date;datetime(op=full;ol=fr)} ${date;datetime(op=full;ol=it)} Formatted dates can even vary in different countries speaking the same language ${date;date(op=full;ol=de;oc=AT)} ${date;date(op=full;ol=de;oc=DE)}
{ "date" : "2018-01-12T15:00:00.000Z" }
Zeitzone
Sie haben gelernt, wie man Datums- und Zeitangaben mit den Formatierungsregeln verschiedener Gebietsschemata ausgiebt.
Standardmäßig werden sie in der voreingestellten Zeitzone gedruckt, die in unserem Beispiel auf UTC gesetzt wurde.
Wenn Sie die Standardzeitzone stattdessen auf Pacific Standard Zeitzone einstellen, wenn Sie das aktuelle Datum und die aktuelle Uhrzeit drucken ...
${now;datetime(op=full)}
... erhalten Sie eine Ausgabe mit der richtigen Zeit:
Thursday, September 20, 2018 4:20:40 AM PDT
Sie können die Ausgabe-Zeitzone angeben, um die Standardeinstellungen zu überschreiben und diese für verschiedene Zeitzonen und Sprachen korrekt zu drucken:
${now;datetime(op=full;ol=de;otz=Europe/Berlin)}
${now;datetime(op=full;ol=pt;oc=BR;otz=Brazil/East)}
Sie erhalten die korrekten Daten und Zeiten, die den Formatierungsregeln des angegebenen Gebietsschemas und der angegebenen Zeitzone entsprechen:
Donnerstag, 20. September 2018 13:25 Uhr MESZ
Quinta-feira, 20 de Setembro de 2018 08h25min41s BRT
Playground
Passen Sie die verschiedenen Parameter des datetime
Renderers an, um das gewünschte Ergebnis zu erzielen:
Same time, different timezones ${date;datetime(op=full;ol=en;otz=Europe/Berlin)} ${date;datetime(op=full;ol=en;otz=Brazil/East)}
{ "date" : "2018-04-12T15:00:00.000Z" }
Währung
Bei der Formatierung von Zahlen mit dem currency
Renderer, wird die Standardwährung verwendet.
Angenommen, Sie haben eine Variable namens amount
mit dem Wert 1.250,50
und Ihr Standard-Gebietsschema ist englisch
(US) und für die Währung ist EUR
(Euro) eingestellt, wobei Sie diese Variable mit dem currency
Renderer drucken ...
${amount;currency}
… das erzeugt eine Ausgabe, die die konfigurierte Standardwährung und die Ausgabesprache widerspiegelt:
EUR12,505.00
Wenn Sie die Sprache auf italienisch
umschalten, wird eine andere Ausgabe erzeugt:
€ 12.505,00
Währungen werden für verschiedene Sprachen unterschiedlich dargestellt. Achten Sie darauf, die richtigen Währungs- und Gebietseinstellungen anzugeben, um das gewünschte Ergebnis zu erzielen!
${amount;currency(ol=it)} ${amount;currency(op=USD;ol=en;oc=US} Wussten Sie, dass die Formatierung der Währung in Großbritannien wie folgt aussieht ${amount;currency(op=EUR;ol=en;oc=GB} während die Schreibweise in den USA so ${amount;currency(op=EUR;ol=en;oc=US} aussieht? In Deutschland sieht es so aus ${amount;currency(op=EUR;ol=de;oc=DE} während es so ${amount;currency(op=EUR;ol=de;oc=CH} in der Schweiz aussieht
{ "amount" : "1,250.50" }
Erfahren Sie mehr
Weitere Informationen über die Templating-Sprache finden Sie in folgenden Anleitungen.
Questions and Feedback
If you have any comments on this page, feel free to add suggestions right to the Google document that we are using to create this site.
If you are not yet member of the Doxey community, please join now to get updates from our end or to provide feedback, bug reports and discuss with other users.
Last Updated: 03.01.20