mantis的多语言支持特性分析

16 篇文章 0 订阅
4 篇文章 0 订阅

 

mantis的多语言支持特性分析

 

mantis是一个支持多种语言的bug管理系统。本文分析mantis是如何支持多语言的。

 

分析mantis的源码,会发现mantis的每个页面的任何一个字符串输出都是通过lang_get这个函数来实现的。

lang_get函数接受一个字符串id,返回该id对应的文本在当前语言设置下的字符串

例如:

lang_get('all_projects')

在系统设置为英文时,返回的内容是:'All Projects'

在系统设置为中文时,返回的内容是:'所有的项目'

 

mantis的lang目录下包含了很多txt文件,它们实际上是php文件。每个文件对应一种语言的字典表。字典表的key是变量名,value就是变量的值。

变量名对应的是lang_get的参数。例如上面的例子:

lang_get('all_projects')获取的是lang目录下某一个文件中定义的$s_all_projects这个变量的值。

我们可以在strings_english.txt中看到$s_all_projects = 'All Projects';

而在strings_chinese_simplified.txt中看到$s_all_projects = '所有的项目';

 

简单的说,就是通过设置(在config_inc.php中设置$g_default_language = {lang})使得mantis系统自动加载lang目录下的

strings_{lang}.txt文件,将很多$s_{word_id}类型的变量载入。然后,在显示的时候通过lang_get({word_id})获取。从而达到支持多语言的目的。

 

需要添加语言支持时,只需要在lang目录下添加相应的文件定义字典表并修改语言配置即可。

编写插件,添加了新的词语时,比如svn版本,可以这样做:在lang目录下每个文件中添加变量$s_svn_version

例如在strings_english.txt里面定义$s_svn_version = 'SVN Version';

在strings_chinese_simplified.txt里面定义$s_svn_version = 'SVN 版本';

在页面中输出lang_get('svn_version')

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值