You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.7 KiB

主题内置了多语言包,默认选择根据浏览器自动选择语言,后台外观设置可以手动修改语言。

多语言分为两部分:

  • 主题默认集成多语言文件(在主题的根目录的lang文件夹下)
  • 用户自定义语言文件(在主题的根目录usr/lang文件夹下)

用户自定义语言文件优先级最高,请勿修改默认翻译文件lang/目录下面的语言文件),只要修改usr/lang下的语言文件即可。

通过修改相应的语言文件,可以更改主题里面**任何词组**和**时间格式**。在本文最后会举几个例子方便大家自行修改。

语言显示规则

  • Auto :自动根据用户浏览器的语言设置显示相应的语言文件。

  • 简体中文 :显示顺序依次是:usr/lang/zh_CN.php —> lang/zh_CN.php,其他的语言文件(如zh_TW.php)则不会生效。其他语言设置同理。

修改主题默认翻译

以语言设置中选择了使用简体中文为例

**比如:**文章页面的「浏览次数」默认显示为「200次浏览」,希望改成「200次小伙伴来过」

usr/lang/zh_CN.php修改如下:

/**
* @return array 返回包含翻译文本的数组
*/
    public function translated() {
        return array(
            '次浏览' => '次小伙伴来过'
            //添加翻译的词汇,每两组之间,用英文逗号隔开
        );
    }

注意,语言文件的翻译,是针对**已存在的词组**进行重新翻译,**而不是对任意汉字或不存在的词组翻译**。打开`lang/zh_TW.php` 可以看到所有可以翻译的词组。(目前所有翻译词组没有分类,有些凌乱,v4.0.0会进行整理)

**再比如:**文章顶部的「最后修改时间的时间格式」,默认为:「Y 年 m 月 d 日 h : i A」,想要修改为24进制时间

在相应的语言文件的翻译函数里面增加:

'Y 年 m 月 d 日 h : i  A' => 'Y 年 m 月 d 日 G : i "

修改其他语言同上所述,是完全一样的。

增加自定义语言文件

主题默认集成了中文简体、中文繁体、英语三种语言设置。

首先需要了解多语言文件的命名规则:

多语言文件名称 = Locale Code + .php。如 zh_CN.phpen.php

一些常见语言的Local Code:

zh_CN: 中文简体
zh_HK: 中文繁体,港澳
zh_TW: 中文繁体,台湾
en   : 英语
en_US: 英语,美式
en_CA: 英语,加拿大
en_AU: 英语,澳洲
ja   : 日语
ko   : 韩语

如果你想再增加一份新的语言文件,比如 日语

首先在usr/lang目录下创建语言文件:ja.php

文件初始化内容如下:

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

/**
 * ja.php
 * Author     : Your name
 * Date       :
 * Version    :
 * Description:
 */
class Usr_Lang_ja extends Lang {

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


    /**
     * @return array 返回包含翻译文本的数组
     */
    public function translated() {
        return array(
            '首页' => '家',
            '分类' => '分類'
        );
    }

    public function dateFormat() {
        return "月のM Y D日";
    }

}

在文件中的translated函数里面,按照格式填写翻译内容即可。

最后在后台语言设置中选择日语即可。

自己创建的语言文件中,需要对所有的**已存在的词组进行翻译**,否则将默认返回简体中文默认的词组。这项工作量要远远大于修改主题默认翻译。