2019-06-06 15:08:03 1398次浏览 1条回答 0 悬赏 10 金钱

我想把要翻译的内容分类存放在不同的文件中,假如翻译一个 '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'
            ]
        ]
    ]
],

请问是哪里没弄对?

最佳答案

  • 发布于 2019-06-08 11:20 举报

    很明显,配置中的 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 条回复
    回复于 2019-06-15 15:41 回复

    谢谢!!!!

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
捣捣爸
见习主管

捣捣爸

注册时间:2019-05-23
最后登录:2022-04-26
在线时长:9小时29分
  • 粉丝0
  • 金钱105
  • 威望10
  • 积分295

热门问题