基础版的翻译函数 Yii::t 不进行翻译 [ 2.0 版本 ]
我想把要翻译的内容分类存放在不同的文件中,假如翻译一个 'testtest' => '测试测试'
,我把这句话放在 vendor/yiisoft/yii2/messages/zh-CN/yii.php
中,然后使用 \Yii::t('yii', 'testtest')
是没问题的,但是如果我在 zh-CN 文件夹中新建一个 myapp.php 的文件,写入 return ['testtest' => '测试测试'];
后,使用 \Yii::t('myapp', 'testtest')
仍然显示的是 testtest
。
i18n的配置:
'i18n' =>
[
'translations' =>
[
'myapp' =>
[
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => '@app/messages',
'fileMap' =>
[
//'myapp' => 'myapp.php'
]
]
]
],
请问是哪里没弄对?
最佳答案
-
很明显,配置中的 basePath 配置的路径不正确
1、按你的描述,你的 myapp.php 在 vendor 目录下,basePath 应该这么写 '@vendor/yiisoft/yii2/messages'
2、配置成 '@app/messages' 的话,你的 myapp.php 文件应该放在你的项目文件夹/messages/zh-CN
目录内(messages 文件夹和 vendor 平级)vendor 目录下的内容 推荐 是不要做任何变动的,也不要放自己的文件进去,所以,请采用 如上方法之2
另外,basePath 不做配置的话,其默认值是
@app/messages
,也不是我们可能以为的@vendor/yiisoft/yii2/messages
共 1 条回复
其他 0 个回答
没有找到数据。
捣捣爸
注册时间:2019-05-23
最后登录:2022-04-26
在线时长:9小时29分
最后登录:2022-04-26
在线时长:9小时29分
- 粉丝0
- 金钱105
- 威望10
- 积分295