【发布时间】:2016-08-26 10:27:08
【问题描述】:
我设置了一个 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 ??
有什么我忘记了吗?
谢谢。
【问题讨论】:
标签: php yii view internationalization yii2