Ich versuche, die Frontend-Übersetzung der Website mit dem i18l-Ding einzurichten. Hier ist meine i18l.php Datei am Frontend/config platziertYii2 - Mehrsprachig
<?php
return [
'sourcePath' => 'frontend',
'languages' => ['en-US', 'pt-BR'] , //Add languages to the array for the language files to be generated.
'translator' => 'Yii::t',
'sort' => false,
'removeUnused' => false,
'only' => ['*.php'],
'except' => [
'.svn',
'.git',
'.gitignore',
'.gitkeep',
'.hgignore',
'.hgkeep',
'/messages',
'/vendor',
],
'format' => 'php',
'messagePath' => 'frontend' . DIRECTORY_SEPARATOR . 'translations',
'overwrite' => true,
];
und hier meinen main.php auch am Frontend
(...)
'language' => 'en-US',
'components' => [
'i18n' => [
'translations' => [
'app*' => [
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => 'frontend/translations',
'fileMap' => [
'app' => 'app.php',
'app/error' => 'error.php',
],
],
],
]
ich die <?= Yii::t('app', 'some string') ?>
auf den Seiten bin mit und Layouts und wenn ich laufe der Befehl ./yii message/extract @ frontend/config/i18n.php erstellt mir einen Ordner namens 'Übersetzungen', der zwei andere Ordner 'en-US' und 'pt-BR' enthält, beide mit app.php, die ich bereits hatte mit einigen Übersetzungen gefüllt. Aber trotzdem passiert keine Übersetzung, wenn ich die Sprache in der main.php so ändere, wie es sein sollte (denke ich). Ich würde mich freuen, wenn mir jemand dabei helfen könnte.
Danke.
Toller Beitrag. Ich wollte nur auf etwas hinweisen. ' =' könnte riskant sein. Nicht alle Setups haben kurze Tags aktiviert. klingt vielleicht albern, aber es kann Ihr gesamtes System bei der Migration auf einen neuen Server ausschalten. Warum nicht stattdessen ' Php echo' verwenden? :) – Gogol
Nicht sicher, ob das ist, aber ich habe festgestellt, dass, wenn die Ziel-und Quellziele die gleichen sind, müssen Sie Übersetzungen zwingen, um es zu erhalten, die Datei anstelle der Param-Eingabe von 'Yii zu halten :: t'. http://www.yiiframework.com/doc-2.0/yiii-i18n-messagesource.html#$forceTranslation-detail –