美文网首页
Yii1.x 国际化三步走

Yii1.x 国际化三步走

作者: Nomandia | 来源:发表于2020-07-29 12:14 被阅读0次

    本文介绍了Yii1.x版本的国际化方案及相关问题解决办法

    一 、Yii 国际化配置

    找到main.php并按照如下修改配置

    return [
        'sourceLanguage'=>'zh_cn', // 源语言、即不需要翻译的默认语言
        'language'=>'zh_cn', // 当前默认语言
        'components' => [ 
            // 组件配置
        ]
    ];
    

    配置中sourceLanguage一般指定zh_cn就好,中文是不需要翻译的;而language默认跟他一样,需要注意的是:二者一样时是不会翻译文本而是原样输出。

    二、 代码处理

    这里主要指view的代码

    // 1. 普通
    Yii::t('app', '要翻译的文字');
    // 输出:要翻译的文字
    
    // 2. 替换关键字
    Yii::t('app', ' {0},你好!', ['0'=>'世界']);
    // 输出:世界,你好!
    
    // 3. 选择符
    Yii::t('app', '1#有效|2#无效', 2); // 注意第三个参数必须是数字
    // 输出:无效
    
    // 4. 高级范
    Yii::t('app', '1#有效|0#无效|n>1#神秘数字n', 5); // 此处n表示输入的第三个变量
    // 输出:神秘数字n
    

    其中app表示文件名,可以根据需要自行分类。切换语言可以这样:

    $targetLang = 'en_us';
    Yii:app()->setLanguage($targetLang); // 切换后相当于配置中的language变为此语音
    

    其实名字可以随便起,只需要确保有相关配置即可

    三、生成翻译文件

    大家都过yii的命令行吧,其中有一个 yiic message [option]就可以用来自动生成配置文件,步骤如下:

    1. 复制/framework/messages/config.php到项目路径下/protected/messages/config.php,其中config.php也可以叫别的
    2. 输入命令 yiic message config.php,等几秒后便根据配置自动生成了代码中用Yii::t方法输出的翻译文件,连文件名都区分了

    接下来我们看下config.php都有什么

    <?php
    <?php
    return array(
        'sourcePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', // 源语言目录
        // 其他语言目录,sourcePath同级
     'messagePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'messages', 
        'languages'=>array('zh_cn','en_us','ko_kr'), // 待翻译的语言
        'fileTypes'=>array('php'), // 检测的文件扩展名
        'overwrite'=>true, // 是否覆盖源文件,开启后生成快
        'exclude'=>array( // 要排除的文件或目录
            '.svn',
            '.gitignore',
            'yiilite.php',
            'yiit.php',
            '/i18n/data',
            '/messages',
            '/vendors',
            '/web/js',
        ),
    );
    

    FAQ

    1. 语言不能正常切换

    检查下sourceLanguage是否为英文en_us,即当languagesourceLanguage一样时不会进行翻译

    以后翻译直接写好代码,完事通过命令自动刷新翻译文件就行了。至于最终由谁来将中文译成其他文字那不在讨论范围了。

    相关文章

      网友评论

          本文标题:Yii1.x 国际化三步走

          本文链接:https://www.haomeiwen.com/subject/jalhrktx.html