使用界面多语言支持,要做如下工作:
1、 修改
应用程序设置
multiLangaugeSupport 指定为 true,启用多语言支持
languageFilesDir 指定一个目录,表示语言
文件所在根目录
defaultLanguage 指定默认语言名,例如 chinese-utf8、chinese-gb2312 等
2、 准备语言目录和字典文件
假设 languageFilesDir 指向 d:\www\myapp\APP\Languages,
那么就要在 d:\www\myapp\APP\Languages 下建立不同语言的子目录,例如 chinese-utf8、chinese-gb2312。
因此应用程序如果是要载入 chinese-utf8 的字典文件,那么实际的字典文件就存放在
d:\www\myapp\APP\Languages\chinese-utf8\ 目录。
字典文件的名字可以随意定,但最好有一定意义。
例如用于用户界面的字典文件可以是 ui.php 或者 UserInterface.php。
字典文件的内容很简单,就是用 return 返回一个数组,例如:
复制内容到剪贴板
代码:
<?php
// d:\www\myapp\APP\Languages\chinese-utf8\UserInterface.php
// 用于 chinese-utf8 语言的用户界面字典文件
return array(
'applicationTitle' => '应用程序的标题',
'authorName' => '作者名',
'copyright' => '版权所有',
);
?>3、 在应用程序中使用字典文件
应用程序用 load_language() 载入指定的语言文件。
load_language($dictname, $language = null) 有两个参数,$dictname 指定字典名,$language 指定语言名。
假如没有指定 $language 参数,则使用应用程序设置 defaultLanguage 的值作为 $language 参数的值。
复制内容到剪贴板
代码:
// 载入 chinese-utf8 的指定字典文件
load_language('UserInterface', 'chinese-utf8');4、 获取字典中对应的文本
载入字典文件后,就可以通过字典文件查询原文和翻译后的文本了。
使用 _T($key, $language = null) 获取指定字符串的翻译文本,例如:
复制内容到剪贴板
代码:
echo _T('applicationTitle', 'chinese-utf8');显示结果将是前面字典文件中
定义的'应用程序的标题'。
5、 简化操作
每次都给 _T() 指定第二个参数显然不方便,所以我们可以在应用程序开始执行时,
先获取用户选择的界面语言,然后用 set_app_inf('defaultLanguage', $language) 设置默认语言。
这样后续的 _T() 就不用指定第二个参数了。