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

多语言分为两部分:

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

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

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

语言显示规则

语言显示规则 - 图1

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

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

修改主题默认翻译

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

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

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

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

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

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

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

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

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

增加自定义语言文件

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

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

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

一些常见语言的Local Code:

  1. zh_CN: 中文简体
  2. zh_HK: 中文繁体,港澳
  3. zh_TW: 中文繁体,台湾
  4. en : 英语
  5. en_US: 英语,美式
  6. en_CA: 英语,加拿大
  7. en_AU: 英语,澳洲
  8. ja : 日语
  9. ko : 韩语

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

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

文件初始化内容如下:

  1. <?php
  2. if (!defined('__TYPECHO_ROOT_DIR__')) exit;
  3. /**
  4. * ja.php
  5. * Author : Your name
  6. * Date :
  7. * Version :
  8. * Description:
  9. */
  10. class Usr_Lang_ja extends Lang {
  11. /**
  12. * @return string 返回语言名称
  13. */
  14. public function name() {
  15. return "日语";
  16. }
  17. /**
  18. * @return array 返回包含翻译文本的数组
  19. */
  20. public function translated() {
  21. return array(
  22. '首页' => '家',
  23. '分类' => '分類'
  24. );
  25. }
  26. public function dateFormat() {
  27. return "月のM Y D日";
  28. }
  29. }

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

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

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