Phabricator系列之国际化-中文
Phabricator现在有新的方式进行国际化(主要是中文化)了. (2015-07-06) 前一段时间, 团队用的Phabricator开始滚动往前更新, 确定下来是每周和官方网站同步一次. 之前也是为了解决一个问题, 在任务(Maniphest)分配的时候选择成员的时候, 少了一个成员, 只能用(Edit Task)重新指派人. 后来无意间发现一个清除缓存的命令, 一执行就修复好了. ./bin/cache purge
当前本文的重点在于中文化, 参考了现在最新的wiki, 发现现在的中文化比以前方便许多, 不用再每次同步都要还原几个文件再辛苦执行arc liberate
- 第一步, 我们新建一个PhutilCNChineseLocale.php, 里面放一个PhutilCNChineseLocale继承一个类叫做PhutilLocale,
实现getLocaleCode和getLocaleName这两个方法
分别在这两个方法里面返回
zh_CN
和中文 (简体中文)
- 第二步, 新建PhabricatorCNChineseTranslation.php, 继承
PhutilTranslation
类, 实现getLocaleCode和getTranslations这两个方法 getLocaleCode中返回zh_CN
, getTranslations中返回一个数组, 这个数组还是用我们之前生成的数据 ./bin/i18n extract ./src/applications/ 执行完成之后会生成我们所需要的数组, 把这个数据放到getTranslations里面. (这个数据还是超大的, 我这里大概1.6M的样子, 因为Phabricator几十个应用都有了) 如果只用到某些应用的话, 也可以只生成部分 ./bin/i18n extract ./src/applications/maniphest/ - 第三步, 一点一点把getTranslations里面的数组翻译过来, 把值为null的都翻译成中文就可以.
- 第四步, 我们进入个人设置页面, 把Translation这一项, 选择下拉框里面的
中文(简体中文)
, 保存设置就能看到中文结果了.
最后完成的时候, 就是这样一个目录结构
├── phabricator-zh_CN
│ ├── PhabricatorCNChineseTranslation.php
│ ├── PhutilCNChineseLocale.php
这里给出我们项目中的一个结构, 直接将这个clone到本地phabricator/src/extensions
目录下面就可以了
https://github.com/wanthings/phabricator-zh_CN.git
本文都内容都是参考官方wiki写的, 以下都是参考文章 Adding New Classes Internationalization
评论