Zend Framework 入门(2)—多国语言支持
2013-07-25 17:18
357 查看
如果你的项目想要支持多语言版本,那么就需要用到 Zend_Translate。Zend_Translate 的详细文档在这里,不过如果想偷懒的话,也很简单,在View Helpers 文档中介绍了如何用 Translate Helper 轻松实现多语言支持。
1. 准备翻译文件
Zend_Translate 支持多种格式的翻译文件。选用何种格式可以参考这里。如果条目不是很多(5000条以下),那么可以考虑用最直观的数组格式,而且可以写到一个 php 文件里。假设,我们需要一个中文版支持,翻译文件命名为 zh_cn.php,放在与 application 平行的 languages 文件夹里。该文件内容如下:
2. 加载翻译文件
编辑 html/index.php 文件,在前端控制器运行之前,插入下面的代码:
上述代码的作用是载入 zh_cn.php,并把它保存成全局变量。Zend_Registry 可以看成是一个全局变量容器。
注意:在保存到 Zend_Registry 中时,键值必须是 Zend_Translate,否则,得不到应有的结果。
3. 在视图中使用翻译条目
编辑 application/views/scripts/index/index.phtml 文件,将原来的“<h1>Hello World!</h1>”替换成:
<h1><?php echo $this->translate('hello_world'); ?></h1>
4. 查看页面
这时,浏览器中看到的应是“你好!”。
1. 准备翻译文件
Zend_Translate 支持多种格式的翻译文件。选用何种格式可以参考这里。如果条目不是很多(5000条以下),那么可以考虑用最直观的数组格式,而且可以写到一个 php 文件里。假设,我们需要一个中文版支持,翻译文件命名为 zh_cn.php,放在与 application 平行的 languages 文件夹里。该文件内容如下:
<?php return array( 'hello_world' => '你好!', );
2. 加载翻译文件
编辑 html/index.php 文件,在前端控制器运行之前,插入下面的代码:
require_once 'Zend/Registry.php'; require_once 'Zend/Translate.php'; $adapter = new Zend_Translate('array', $rootPath . '/languages/zh_cn.php', 'zh'); Zend_Registry::set('Zend_Translate', $adapter);
上述代码的作用是载入 zh_cn.php,并把它保存成全局变量。Zend_Registry 可以看成是一个全局变量容器。
注意:在保存到 Zend_Registry 中时,键值必须是 Zend_Translate,否则,得不到应有的结果。
3. 在视图中使用翻译条目
编辑 application/views/scripts/index/index.phtml 文件,将原来的“<h1>Hello World!</h1>”替换成:
<h1><?php echo $this->translate('hello_world'); ?></h1>
4. 查看页面
这时,浏览器中看到的应是“你好!”。
相关文章推荐
- 对话框多国语言的支持
- [C] 跨平台使用TCHAR——让Linux等平台也支持tchar.h,解决跨平台时的格式控制字符问题,多国语言的同时显示(兼容vc/gcc/bcb,支持Windows/Linux/Mac)
- WP7多国语言支持 from:http://blog.csdn.net/lee353086/article/details/6260676
- WinCE设置多国语言支持
- 开源.NET IDE开发工具SharpDevelop,支持多国语言
- utf-8支持多国语言,GB2312支持简体中文的。
- WPF应用程序支持多国语言解决方案
- EasyJWeb中灵活的多国语言支持
- 一种灵活的WPF程序多国语言支持
- Android支持多国语言
- iOS中代码支持多国语言切换的实现(Xcode5+iOS7)
- 字符编码转换类(支持多国语言)
- 一种灵活的WPF程序多国语言支持
- EasyJWeb中灵活的多国语言支持
- WinCE中支持多国语言切换
- 支持多国语言
- Asterisk的多国语言支持(1.4的新特性)
- EasyJWeb中灵活的多国语言支持
- 多国语言支持36款杀毒引擎的在线病毒扫描网
- .NET多国语言支持_文献翻译