zoukankan      html  css  js  c++  java
  • YII2配置多语言

    我的YII2版本是2.0.7, 设置多语言时和其他教程有不同的地方, 所以整理如下

    1. 在一个controller里面写一个调用i18n的语句, 比如actionIndex

    echo Yii::t('app', 'whatisthis');

    现在进入这个页面, 页面输出whatisthis

    2. 手动创建一个文件夹messages来存放多语言相关文件, 如果是advanced版本则在frontend下面创建这个文件夹

    3. 创建i18n配置文件

    yii message/config frontend/messages/config.php

    会自动生成一个config.php文件

    然后打开frontend/messages/config.php, language行设置为

    'languages' => ['en', 'zh-CN'],

    4. 创建message文件, 执行

    yii message frontend/messages/config.php

    这样在frontend/messages里面会生成en和zh-CN文件夹

    5. 打开frontend/messages/zh-CH/yii.php

    添加一行

    'whatisthis' => '这是啥玩意',

    6. 在/yii2/frontend/config/main.php里设置

    components中加入

    'i18n' => [
                'translations' => [
                    'app*' => [
                        'class' => 'yiii18nPhpMessageSource',
                        //'basePath' => '@app/messages',
                        //'sourceLanguage' => 'en-US',
                        'fileMap' => [
                            'app' => 'yii.php',
                            'app/error' => 'error.php',
                        ],
                    ],
                ],
            ],

    注意, 如果想要更改validate等yii本身的翻译
    需增加下面设置到'translations' => []中:
    'yii' => [ 'class' => 'yiii18nPhpMessageSource', 'sourceLanguage' => 'en-US', 'basePath' => '@app/messages' ],

    components同等级后加入

    'language' => 'zh-CN',

    7. 再刷新页面, 应该会显示"这是啥玩意"了.

    8. 当你需要新增其他语言时候, 执行第3,4步会重新生成文件, 之前的翻译(whatisthis)会保留, 但我试了之后发现变成了

    'whatisthis' => '@@这是啥玩意@@',

    很奇怪的两边多出@@.

  • 相关阅读:
    qt串口
    视频笔记
    视频笔记3
    视频笔记2
    视频笔记1
    将VariantMap添加到数据库
    QT5.9笔记
    li里面input框贴顶
    html增加空格
    linux图形化界面管理工具宝塔面板
  • 原文地址:https://www.cnblogs.com/derrck/p/5213834.html
Copyright © 2011-2022 走看看