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

  1. Folgende Zeile in der Bootstrap.php einfügen, direkt über dem setEngine-Befehl:
    Application::getInstance()->nostromoAutoload();

  2. Folgende Zeile in der Bootstrap.php einfügen, beim Application::register-Block:
    Application::register('translator', TranslatorProvider::class);

  3. Folgende Zeilen zur composer.json hinzufügen:
    "scripts": {
      "post-autoload-dump": [
        "NewFrontiers\\Framework\\Discovery\\Discovery::discover"
       ]
    }

  4. 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.