Output.Rocks nutzt Locale-Funktionen zur kulturspezifischen Formatierung von Zahlen und Datumsangaben. Diese Funktionen ermöglichen die Anpassung der Ausgabe an verschiedene Spracheinstellungen und regionale Anforderungen.

Locale-Codes können sowohl als vollständige Kombination ('de_DE') als auch als einzelne Sprach- ('de') oder Ländercodes ('DE') angegeben werden.

  • Achten Sie auf die korrekte Schreibweise der Locale-Codes, da diese case-sensitive sind. Verwenden Sie die hier definierten Codes.

  • Verwende einfache Anführungszeichen (') für String-Parameter: numFormat(wert, 'format', 'locale')

Verfügbare Locale Einsätze

In Tornado stehen zwei Hauptfunktionen mit Locale-Unterstützung zur Verfügung:

Locale-Syntax und Formate

Unterstützte Locale-Formate

Kombiniert: 'de_DE', 'en_US', 'fr_FR', 'de,CH'

Land-Code: 'DE', 'US', 'FR', 'CH', 'AT'

Land-ISO: 'DEU', 'USA', 'FRA', 'CHE', 'AUT'

Sprach-Code: 'de', 'en', 'fr', 'es', 'ar'

Sprach-ISO: 'deu', 'eng', 'fra', 'spa', 'ara'

Match-Reihenfolge:

  1. Land - Code, ISO-Code
  2. Sprache - Code, ISO-Code

Da nur Land- oder Sprach-Angaben mehrdeutig sein können, wird zuerst nach dem Land gesucht, dann nach der Sprache.

Syntax-Beispiele

Präzise: 'de_DE', 'en,US', 'fr_CH'

Land: 'DE', 'CH', 'USA'

Sprache: 'de', 'eng', 'fra'

Zahlenformatierung mit numFormat()

Die numFormat()-Funktion unterstützt Locale-spezifische Zahlenformatierung als dritten Parameter.

// Deutsche Formatierung
<<{numFormat(betrag, '#,###.00', 'DE')}>>

// US-amerikanische Formatierung
<<{numFormat(betrag, '#,###.00', 'US')}>>

// Britische Währung
<<{numFormat(betrag, '¤#,###.00', 'GBR')}>>

// Deutsche Währung
<<{numFormat(betrag, ' #.###,00¤', 'DE')}>>

Erweiterte Zahlenformatierung

// Stromverbrauch anzeigen
<<{numFormat(verbrauch.kwh, '#,###.0', kunde.locale)}>> kWh

// Grundpreis formatieren
<<{numFormat(tarif.grundpreis, '¤#,###.00', kunde.locale)}>>

// Arbeitspreis mit hoher Präzision
<<{numFormat(tarif.arbeitspreis, '#,###.0000', kunde.locale)}>> ct/kWh

// Prozentsatz darstellen
<<{numFormat(steuer.mwst, '#,###.0%', kunde.locale)}>>

Der vierte Parameter von numFormat() ist ein Boolean-Wert, der angibt, ob eingehende Daten gemäß dem Locale interpretiert werden sollen. Standardwert ist true.

Datumsformatierung mit dateFormat()

Die dateFormat()-Funktion unterstützt mehrere Locale-Parameter für ein- und ausgehende Formatierung.

// Deutsche Ausgabe
<<{dateFormat(datum, 'dd/MM/yyyy', null, 'DE')}>>

// Deutscher Wochentag
<<{dateFormat(datum, 'EEEE', null, 'DE')}>>

// Deutscher Monat + Jahr
<<{dateFormat(datum, 'MMMM yyyy', null, 'DE')}>>

// Deutsche Eingabe → US-Ausgabe
<<{dateFormat(datum, null, null, 'US', 'DE')}>>

Erweiterte Datumsformatierung

// Rechnungsdatum
<<{dateFormat(rechnung.datum, 'dd. MMMM yyyy', null, kunde.sprache)}>>

// Ableseperiode
<<{dateFormat(ablesung.von, 'MMM yyyy', null, kunde.sprache)}>> - <<{dateFormat(ablesung.bis, 'MMM yyyy', null, kunde.sprache)}>>

// Fälligkeitstermin
Fällig am <<{dateFormat(rechnung.faellig, 'EEEE, dd. MMM yyyy', null, kunde.sprache)}>>

Unterstützte Locale-Codes

Output.Rocks unterstützt Locale-Codes basierend auf der vollständigen Tornado-Dokumentation. Diese werden nach Code, ISO-Code, Name strukturiert sowohl für Länder als auch Sprachen:

Jeder Eintrag zeigt: Land-Code/ISO-Code und Sprach-Code/ISO-Code, unser Bsp.-Locale in der Tabelle nutzt dann die 2-Zeichen Codes für beides.

Land-Code/ISOSprach-Code/ISOLocaleFormat/Währung
DE/DEU (Deutschland)de/deu (German)DE_de1.234,56 €
AT/AUT (Austria)de/deu (German)AT_de1.234,56 €
CH/CHE (Switzerland)it/ita (Italian)CH_it1'234.56 CHF
GB/GBR (United Kingdom)en/eng (British English)GB_en£1,234.56
US/USA (United States)en/eng (American English)US_en$1,234.56
FR/FRA (France)fr/fra (French)FR_fr1 234,56 €
LU/LUX (Luxembourg)fr/fra (French)LU_fr1 234,56 €

Kombinierte Locale-Anwendung

<<$locale=kunde.sprache>>
<<$betrag=rechnung.gesamtbetrag>>
<<$datum=rechnung.datum>>

Rechnungsbetrag: <<{numFormat($betrag, '¤#,###.00', $locale)}>>
Rechnungsdatum: <<{dateFormat($datum, 'dd. MMMM yyyy', null, $locale)}>>

Abrechnungszeitraum:
<<{dateFormat(periode.von, 'MMM yyyy', null, $locale)}>> bis <<{dateFormat(periode.bis, 'MMM yyyy', null, $locale)}>>

Bedingte Locale-Verwendung

<<cs_kunde.land == 'DE'>>
Sehr geehrte Damen und Herren,

Ihr Stromverbrauch: <<{numFormat(verbrauch, '#,###.0', 'DE_de')}>> kWh
Rechnungsdatum: <<{dateFormat(datum, 'dd. MMMM yyyy', null, 'DE_de')}>>
<<else>>
Dear Customer,

Your electricity consumption: <<{numFormat(verbrauch, '#,###.0', 'US_en')}>> kWh
Invoice date: <<{dateFormat(datum, 'MMMM dd, yyyy', null, 'US_en')}>>
<<es_>>

Verwenden Sie Variablen für Locale-Parameter, um Vorlagen dynamisch an verschiedene Märkte anzupassen: <<$locale=kunde.sprache>>