Je mis en place une page i18n, où je traduis des messages en utilisant yii\i18n\PhpMessageSource
avec la partie de configuration suivante: (config/web.php)vue de la traduction pour l'application Yii pas trouvé
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['debug'],
'language' => 'de-DE',
'components' => [
'i18n' => [
'translations' => [
'app*' => [
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => '@app/messages',
'fileMap' => [
'app' => 'app.php',
],
'forceTranslation' => true,
],
],
]]
... byt la manière : ça fonctionne bien. Pour une sorte de contenu statique - comme une empreinte -, j'aime utiliser une vue traduite complète. donc j'ai ajouté quelques sous-répertoires dans le views
- dossier, avec la perspicacité de vue:
@app/views/myController/de-DE/myview.php
@app/views/myController/en-US/myview.php
Donc mon action effectue les opérations suivantes:
public function actionImpressum() {
\Yii::$app->language = 'en-US';
return $this->render('myview');
}
... qui se traduit par un paramètre non valide
yii\base\InvalidParamException: The view file does not
exist: /path/to/my/app/views/myCtrl/myview.php
Cette erreur est valide car il n'y a pas de vue sur ce chemin. Mais ne devrait pas la méthode render()
utiliser le chemin pour les vues de traduction, comme: /path/to/my/app/views/myCtrl/en-US/myview.php
?? Y a-t-il quelque chose que j'ai oublié?
Merci.
Mais je définis: '' forceTranslation '=> true, '. Et, la même erreur se produit, si je mets 'language' et' sourceLanguage' à 'de-DE'. En passant: traduire des parties du texte avec phpMessages-Feature et les mêmes paramètres de configuration fonctionne bien. –
'forceTranslation' est pour les messages seulement et avec' language' et 'sourceLanguage' tous les deux réglés sur' de-DE' c'est la même situation source = target – Bizley
@Bizley a raison. Vous définissez 'forceTranslation = true' pour un dictionnaire spécifique, mais le rendu des vues ne dépend d'aucun dictionnaire. Découvrez ['FileHelper :: localize()'] (https://github.com/yiisoft/yii2/blob/master/framework/helpers/BaseFileHelper.php#L93) – SilverFire