多语言设置
大约 3 分钟TypechoHandsome高级功能主题
主题内置了多语言包,默认选择根据浏览器自动选择语言,后台外观设置可以手动修改语言。
多语言分为两部分:
- 主题默认集成多语言文件(在主题的根目录的文件夹下)
- 用户自定义语言文件(在主题的根目录文件夹下)
用户自定义语言文件优先级最高,请勿修改默认翻译文件(/目录下面的语言文件),只要修改下的语言文件即可。
提示
通过修改相应的语言文件,可以更改主题里面任何词组和时间格式。在本文最后会举几个例子方便大家自行修改。
语言显示规则

- :自动根据用户浏览器的语言设置显示相应的语言文件。
- :显示顺序依次是:usr/lang/zh_CN.php —> lang/zh_CN.php,其他的语言文件(如zh_TW.php)则不会生效。其他语言设置同理。
修改主题默认翻译
以语言设置中选择了使用简体中文为例
**比如:**文章页面的「浏览次数」默认显示为「200次浏览」,希望改成「200次小伙伴来过」
在修改如下:
/**
* @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 "
修改其他语言同上所述,是完全一样的。
增加自定义语言文件
主题默认集成了中文简体、中文繁体、英语三种语言设置。
首先需要了解多语言文件的命名规则:
多语言文件名称 = 如 和
一些常见语言的Local Code:
zh_CN: 中文简体
zh_HK: 中文繁体,港澳
zh_TW: 中文繁体,台湾
en : 英语
en_US: 英语,美式
en_CA: 英语,加拿大
en_AU: 英语,澳洲
ja : 日语
ko : 韩语
如果你想再增加一份新的语言文件,比如 日语
首先在目录下创建语言文件:
文件初始化内容如下:
<?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日";
}
}
在文件中的函数里面,按照格式填写翻译内容即可。
最后在后台语言设置中选择即可。
提示
自己创建的语言文件中,需要对所有的已存在的词组进行翻译,否则将默认返回简体中文默认的词组。这项工作量要远远大于修改主题默认翻译。