Internationalisierung (i18n)
E-Mails
E-Mail Templates sollten immer mit der Endung .html gespeichert werden. Der Mailer versucht zunächst eine zur Locale passende Template-Datei im gleichen Verzeichnis wie die Originaldatei zu finden. Gelingt dies nicht, wird der übergebene Dateiname als Template verwendet. Beispiel:
IchBinEinTemplate.html
IchBinEinTemplate.EN.html // Dateiname wird vom Mailer gebildet
Internationalisierung in bestehendem Projekt aktivieren
Folgende Zeile in der Bootstrap.php einfügen, direkt über dem
setEngine
-Befehl:Application::getInstance()->nostromoAutoload();
Folgende Zeile in der Bootstrap.php einfügen, beim
Application::register
-Block:Application::register('translator', TranslatorProvider::class);
Folgende Zeilen zur composer.json hinzufügen:
"scripts": {
"post-autoload-dump": [
"NewFrontiers\\Framework\\Discovery\\Discovery::discover"
]
}In der Konsole folgenden Befehl ausführen:
composer install
Nun kann übersetzt werden mit _T('zu übersetzender Text')
Übersetzungen in Javascript
Mit nostromo/framework 6.5.113 und höher kann in Javascript-Code äquivalent zu PHP übersetzt werden mit:
var translated = _T('zu übersetzender Text');
Dazu muss aber der Text wie folgt auf PHP-Seite bereitgestellt werden:
JavascriptTranslationProvider::provide(['zu übersetzender Text', 'anderer zu übersetzender Text']);
Die Methode kann beliebig oft an verschiedenen Stellen im Code aufgerufen werden.