找不到Yii应用程序的翻译视图


translation view for Yii app not found

我设置了一个i18n页面,在这里我使用以下配置部分的yii'i18n'PhpMessageSource翻译消息:(配置/web.php)

$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,
                ],
            ],
]]

…顺便说一句:这很好。对于一种静态内容(如印记),我喜欢使用完全翻译的视图。因此,我在views -文件夹中添加了一些子目录,并使用视图洞察力:

@app/views/myController/de-DE/myview.php
@app/views/myController/en-US/myview.php

所以我的动作是这样的:

public function actionImpressum() {
    'Yii::$app->language = 'en-US';
   return $this->render('myview');
}

…这会导致参数

无效。
yii'base'InvalidParamException: The view file does not 
exist: /path/to/my/app/views/myCtrl/myview.php

这个错误是有效的,因为在这个路径上没有视图。但是render()方法不应该使用翻译视图的路径吗,比如:/path/to/my/app/views/myCtrl/en-US/myview.php ? ?我忘了什么吗?

谢谢。

因为在你的配置中没有设置sourceLanguage,我假设你没有改变它,你的应用程序的源语言是en-US(默认的)。

当源语言与目标语言相同时,查看未翻译

参见文档:

注意:如果目标语言与源语言相同,无论是否存在翻译视图,都将呈现原始视图。

对于en-US,它查找/path/to/my/app/views/myCtrl/myview.php文件