MENU

国际化扩展 - Mirages 帮助文档

• December 19, 2016 • Read: 6905 • 教程

Mirages 在1.6.0版本新增了国际化支持。在主题外观设置里可以设置。其中「自动」的意思是跟随用户浏览器设定。

注意:

  • 主题的国际化范围仅包含非用户产生的内容
  • 第三方内容(多说等)同样不在主题国际化的范围之内
为什么不用 Typecho内置的国际化

Typecho 内置了国际化支持,但需要编译并安装语言文件,不适用于小白用户,且不方便扩展与修改。

Mirages主题实现了自己的 i18n 的方案,且会在必要的时候调用 Typecho的国际化支持方案。优点是方便扩展及修改,缺点是性能不如 Typecho 内置的方案。

扩展 - 自定义部分内置短语

有些时候,我们可能想自定义一些主题内置的词语,如:

文章页在标题下方会显示「阅读: 1234」,我们想自定义为其他词语,如:「非常健康的经受了1234人的围观」😂

最简单的,你可以通过直接修改主题模板源文件来完成上述需求,但这样的修改会在下次更新时被覆盖掉,所以本人并不推荐直接修改源代码。

现在,通过 i18n 扩展,我们可以方便的完成上述的需求,而不需要修改主题源文件。方法也很简单:

1. 确认你要修改的语言,并获取其 Locale Code

如要修改简体中文,那么其 Locale Code 即:zh_CN

一些常见语言的 Locale Code:

zh   : Chinese
zh_CN: Chinese-Simplified
zh_HK: Chinese-Traditional, Hong Kong SAR China
zh_TW: Chinese-Traditional, Taiwan
en   : English
en_US: English-United States
en_CA: English-Canada
en_AU: English-Australia
ja   : Japanese
ko   : Korean
2. 创建自定义语言文件

自定义的语言文件需要放在主题目录/usr/lang/目录下。

命名为:Locale Code + .php,简体中文示例:zh_CN.php

内容为:

<?php
if (!defined('__TYPECHO_ROOT_DIR__')) exit;

/**
 * zh_CN.php
 * Author     : You
 * Date       : 2017/07/10
 * Version    : 
 * Description: 
 */
class Usr_Lang_zh_CN extends Lang{

    /**
     * @return string 返回语言名称
     */
    public function name() {
        return "简体中文";
    }

    /**
     * @return string 返回日期的格式化字符串
     */
    public function dateFormat() {
        return "m 月 d 日 Y 年 ";
    }

    /**
     * @return array 返回包含翻译文本的数组
     */
    public function translated() {
        return array(
            '阅读: %d' => '非常健康的经受了 %d 人的围观',
        );
    }
}

类的命名规范为Usr_Lang_ + Locale Code,类必须继承自Lang类,然后在translated方法中实现自己的自定义词语。

需要翻译的词组可以在主题目录/lang/en.php中的translated方法中找到。

添加新语言

恩。。。不多说了。。。同上。。。。

需要翻译的词组可以在主题目录/lang/en.php中的translated方法中找到。

其他

初始内置的翻译并不专业,所以在此期待更好的翻译。

另外,如果有厉害的家伙,也欢迎提供更多语言的翻译。

可以直接发到我邮箱。。。。😂😂😂😂😂😂😂😂😂

以上。

Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

3 Comments
  1. 我发现一个BUG

    1. @Meekdai我回复第二次

    2. @Meekdai这不科学