美文网首页
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 国际化三步走

    本文介绍了Yii1.x版本的国际化方案及相关问题解决办法 一 、Yii 国际化配置 找到main.php并按照如下...

  • 100字小故事‖十三与十九的对话

    13:十九,听说你要提出“新三步走”战略,它与我提出的“三步走”有啥不同呢? 19:我们的“新三步走”:第一步,到...

  • 2017-12-08

    人生智慧三步走

  • vue 跨域

    vue 本地跨域三步走 ;

  • iOS开发之APP内部切换语言

    前言 iOS开发中,随着APP越来越完善,很多APP都做了国际化,也实现了APP内部切换语言。 原理 国际化都会走...

  • 三步走

    我的一个好朋友喝多了,给我打电话。 他说要过三个关卡才能成为大人。 爱一个人到你能想象的未来生活里都有她,然后失去...

  • 三步走

    “权变领导”有两个核心要点:第一,就是要对下属分类、分析;第二,就是要通过有效的领导方式设计,能够带动最多的下属跟...

  • 三步走

    最近一直在琢磨我的语文未来的教学之路。想了很多,落脚点还是决定在:趣味阅读与创意写作方面。 想好自己的方向,就努力...

  • 十三步----莫言

    走向死亡的十三步,走向凋亡的十三步。 “她说人只要看到麻雀像小鸡一样往前走,就会有好运气降临,它走一步你交财运,走...

  • 简书赚钱三步走【在简书上赚钱看这篇文章就够了】

    希望大家给我点赞!!! 文~略有小成了 一、简书赚钱三步走之基本玩法【停留在作家阶段】 简书赚钱三步走之1.1:免...

网友评论

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

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