Skip to content

Latest commit

 

History

History
38 lines (27 loc) · 1.6 KB

addons_project_clang.md

File metadata and controls

38 lines (27 loc) · 1.6 KB

Tipps für Sprachen in REDAXO

Datum in korrekter Sprache ausgeben

Szenario

Die Redaxo-Website verfügt über verschiedene Sprachen. Ein Datum ist im MYSQL-Format hinterlegt und soll in Abhängigkeit der Sprache korrekt formatiert ausgegeben werden.

Lösung

setlocale() in PHP mit Sprach-Metainfos setzen.

Schritt-für-Schritt-Anleitung

Die Funktion setlocale() benötigt eine Kombination aus Language Code und Country Code.

  1. Im Addon Meta Infos unter Sprachen ein neues Feld clang_country einfügen:
  Spaltenname: country
  Feldbezeichnung: Country Code (ISO 3166)
  Feldtyp: Text
  Feldattribut (optional): pattern="[A-Z]{2}"
  1. In System unter Sprachen die gewünschten Sprachen anlegen und dabei in den Feldern Code (für Language Code) und Country Code den korrekten Sprach- und Region-Codes eintragen, z.B. de und DE, de und AT, en und GB oder en und US. Eine Liste der

Eine vollständige Liste an korrekten Country-Codes gibt es auf oracle.com: Language Codes und Country Codes

  1. Im project-Addon in der boot.php folgenden Code einfügen
  $clang = rex_clang::getCurrent();
  setlocale(LC_TIME, $clang->getCode()."_".$clang->getValue('country').".utf8");
  1. Nun ist der aktuelle Sprachcode überal gesetzt und ein Datum kann ganz einfach mit strftime() formatiert werden, z.B.
  strftime('%d. %B %Y', strtotime($event['date_begin'])) // Ergibt 03. Februar 2013