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.

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.

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

${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