Funktionen
Locale-Funktionen
Lokalisierung in Output.Rocks zur sprachabhängigen Formatierung von Zahlen und Datumsangaben.
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:
- numFormat(): Zahlenformatierung mit Locale-Parameter
- dateFormat(): Datumsformatierung mit Locale-Parameter
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:
- Land - Code, ISO-Code
- 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/ISO | Sprach-Code/ISO | Locale | Format/Währung |
|---|---|---|---|
| DE/DEU (Deutschland) | de/deu (German) | DE_de | 1.234,56 € |
| AT/AUT (Austria) | de/deu (German) | AT_de | 1.234,56 € |
| CH/CHE (Switzerland) | it/ita (Italian) | CH_it | 1'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_fr | 1 234,56 € |
| LU/LUX (Luxembourg) | fr/fra (French) | LU_fr | 1 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>>