您的位置:BugFree > 论坛 > 技术支持 > Learn BugFree[阅读BugFree代码] > BugFree的多语言支持--撰写于2005/09/22
2005-05-26 13:47:24 BugFree的多语言支持--撰写于2005/09/22
#1
wwccss
访问次数 : 593
注册日期 : 05-05-01 10:08
上次访问 : 10-07-19 11:44
BugFree从一开始的定位就是全球性的,而不仅仅是国内应用,所以多语言支持是一个非常重要的问题,其中涉及到的有以下几个方面的问题:
1. 如何支持多语言。
2. 不同语言的外观的问题。
3. 编码的问题。

1. 对于第一个问题,我们是这样解决的:

在程序里面凡涉及到界面性的信息,全部做成变量,一种语言一个语言变量文件,比如我们现在有Chinese.php,English.php。在这些语言变量文件中,存储的是BugFree的页面上需要展示的信息,比如:

Chinese.php中对于登录界面的定义如下:
[quote]/* Setting of Login.php */
$TplConfig["Login"]["LoginTitle"] = "欢迎使用 BugFree";
$TplConfig["Login"]["BugUserName"] = "用户名:";
$TplConfig["Login"]["BugUserPWD"] = "密码:";
$TplConfig["Login"]["ButtonLogin"] = "登录 BugFree [L]";
$TplConfig["Login"]["SelectLang"] = "语言:";
$TplConfig["Login"]["SelectStyle"] = "样式:";[/quote]
而在english.php里面则对应如下:
[quote]/* Setting of Login.php */
$TplConfig["Login"]["LoginTitle"] = "Welcome to BugFree";
$TplConfig["Login"]["BugUserName"] = "Username:";
$TplConfig["Login"]["BugUserPWD"] = "Password:";
$TplConfig["Login"]["ButtonLogin"] = "Login BugFree [L]";
$TplConfig["Login"]["SelectLang"] = "Language:";
$TplConfig["Login"]["SelectStyle"] = "Style:";[/quote]
2. 对于第二个问题,不同的语言可以有自己不同的样式表文件,这样可以解决很多的开源软件英文界面非常漂亮,而中文界面则非常的难看的问题。其实他们的原因就是使用一个样式表文件,而中英文的字体显示的时候千差万别,很难一致。

3. 对于第三个问题,我们提供utf8编码的支持,这样在多语言平台切换的时候,可以保证数据内容不会发生变化。
回帖
2005-09-18 17:25:43
#2
quickpoint
访问次数 : 1
注册日期 : 05-07-29 11:52
上次访问 : 09-10-29 21:05
国际化中这几个问题是我一直在考虑的问题。学习。
回帖
2005-09-18 17:41:29
#3
quickpoint
访问次数 : 1
注册日期 : 05-07-29 11:52
上次访问 : 09-10-29 21:05
我想问一下:你们是在一开始就注意到要国际化吗?还是在后面的版本中加入了这个想法?
回帖
2005-09-19 09:04:11
#4
bugfree
访问次数 : 2
注册日期 : 05-06-26 00:03
上次访问 : 09-10-29 21:05
Ver 0.2时即支持多语言。
回帖
2005-12-02 15:13:19
#5
fhiesc
访问次数 : 1
注册日期 : 05-12-02 14:38
上次访问 : 09-10-29 21:05
您好!

我下载了 Bugfree ,并安装可以正常运行.想问一下多语言是如何实现的呢?
在 login.php 页面中

$TPL->assign("LangList",""); // Assign Language list.
$TPL->assign("SelectLang",""); // Assign the javascript to select the language user are using now.
$TPL->assign("StyleList","")); // Assign CSS Style list.
$TPL->assign("SelectStyle",""); // Assign the javascript to select the CSS style user are using now.
$TPL->assign("ServerInfo","");

但是在什么地方替换了"用户名","密码"呢?在代码中我没有找到,望指教.
回帖
2005-12-02 15:21:24
#6
wwccss
访问次数 : 593
注册日期 : 05-05-01 10:08
上次访问 : 10-07-19 11:44
Include/SetupBug.inc.php 会根据当前的编码包含对应的语言文件。
回帖
2005-12-05 11:11:30
#7
fhiesc
访问次数 : 1
注册日期 : 05-12-02 14:38
上次访问 : 09-10-29 21:05
在 chinese.php 中,配置信息如下:
$TplConfig["Login"]["BugUserName"]= "用户名:";

在 login.tpl 中的模板如下:
{$TplConfig.Login.BugUserName}

请问一下,模板中的信息是怎么被替换的呢?原理是什么呢?我没有找到替换的代码?是不是只要写成 "xxx.xxx.xxx"这种格式就可以自动替换呢?麻烦给我讲一下.
回帖