Cakephp的很强大的i18n功能就是用来实现本地化和国际化的。他通过使用语言配置文件使得程序能够很好的适应变化进行本地化。通过新建locale/chi/LC_MESSAGES/default.po文件,并指定语言选项为“chi”实现。本文中说的就是如何实现这个本地化过程,当然本文中的poedit并不是必须的,但是他可以使得工作效率更高。
一、关于i18n和L10n这2个东东其实头一次我看到的时候也是一头雾水,但是经过百度的一通搜索,得出的结论就是,不管是几个n,最终的目的就是实现程序本地化就好了,说白了,就是由很多的语言配置文件,反正我是这么理解的。大家也可以去看看,http://baike.baidu.com/view/372835.htm 这里有很详细的说明。
二、在Cakephp里面,实现本地化的方法目前为止,有2种配置方法。
2.1 方法一在config/core.php中使用configure::write来制定语言文件。
Configure::write(’Config.language’,"chi");
官方说明:http://book.cakephp.org/view/162/Localizing-Your-Application
貌似很复杂的说哦。
当然在上面做修改后,还需要修改对应的ctp文件等哦,
所有的直接输出字符串,没有返回值的地方像这样:
__("english");
间接输出字符串,有返回的地方:
__("english",true);
还有input要加个label来使他出现中文。
__("english");echo $form->input('name',array('label'=>__('name',true)));
2.4 最最重要的一步就是要编辑这个文件了,locale/chi/LC_MESSAGES/default.po。中间的chi就是语言文件的标志位了。这个文件的格式也很简单,
msgid "Chinese"
msgstr "中国话"
这个的简单重复就行了。
三、使用poedit使用poedit不是必须的,但是可以使工作变得简单的多。官方网站是:http://www.poedit.net/
他的主要功用就是使得编辑语言配置文件更加方便和快捷。下面是使用poedit的一些简单的截图和说明。
工程信息这里当然要选择好utf8格式了
路径这里的基本路径填写cakephp的目录,当然这里居然没有浏览功能,真是崩溃。
注意这里要通过下面的新建按钮新建一个名为“.”的路径,这样的话,以后就可以搜索基本路径下面的子目录了。
关键字选项卡里面要填上cakephp的标志性本地化函数“__”。
当然上面那些选项卡设置好之后,还可以通过菜单类目=》设置调出来,从新设置。
3.3 点击那个小地球图标或者类目=》自源更新,开始自动扫描该翻译的文字了 3.4 但是这个时候,你可能会发现扫描出来的字段远远少于你需要的东东,原来这个软件不认识ctp文件。这个步骤的设置是让他能识别ctp文件设置。文件=》首选=》解析器。本步骤参考了一个意大利程序员的博客文章,在此向他表示感谢先。
http://www.luizz.it/119/cakephp/poedit-e-i-file-ctp
选中php,选择编辑,然后在第2行内输入ctp文件后缀,如下图,但是注意下图的设置是错误的!虽然上面的提示,是用逗号分隔,但是实践证明,用分号才是正确的选择。这个很令人崩溃,大概是poedit的一个小bug吧。会出现错误提示。
但是如果用分号分隔的话,仍然会看到如下错误提示。
需要在下面的解析器命令下面增加个选项 –language=php,注意这里是两个中划线啊。所以这个步骤的要点就是下图所示了。
3.5 这里通过那个地球图标就可以找出所有需要翻译的字段了,当然这个操作的前提是你已经用__函数把所有的字段都标示好了。如果你按这个图标之前进行了部分翻译,这个操作如果发现了新字句,这个软件会根据以前的翻译自己翻译字句的,并用棕色突出显示它自动翻译的词语。当然,一般都是不准确的。所以还是需要进行修改保存操作的说。 3.6 如果这个时候你查看生成的po文件的时候,比自己手写的文件确实多些设置。
相关推荐
#### 二、Cakephp中的国际化和本地化 Cakephp是一款基于PHP的开源快速开发框架,它内置了强大的国际化与本地化功能。下面详细介绍如何在Cakephp中实现这些功能。 ##### 1. 在Cakephp中实现本地化的方法 目前主要...
### 使用CakePHP的Session和Request Handler组件 #### Session组件概览 在CakePHP框架中,Session组件被设计用于管理用户的会话数据,确保网站能够识别并处理特定用户的状态。这在用户登录、购物车功能、个性化...
在CakePHP中,推荐使用jQuery库,因此需要在用户界面文件(如user_normal.ctp)中引入jquery库的脚本文件。由于文档中提到的是jquery-1.4.4.min.js,这表明应使用压缩版的jQuery库来减少传输的数据量,提高页面加载...
《CakePHP 1.2 手册》是针对该版本框架的重要参考资料,旨在帮助开发者深入理解和有效使用 CakePHP 进行Web开发。 CakePHP 是一个基于Model-View-Controller(MVC)架构模式的开源PHP框架,它简化了Web应用程序的...
**国际化(I18n)与本地化(L10n)** CakePHP 1.2 提供了完善的i18n和l10n支持,允许开发者轻松创建多语言应用。 **错误处理与调试** 框架内建了错误处理和日志记录机制,方便开发者进行问题排查。`debug()` 函数...
### CakePHP 3.4 开发手册文档概览 #### CakePHP 一瞥 ...这份文档不仅涵盖了框架的基础知识,还深入探讨了高级主题和技术细节,对于任何希望深入了解和使用 CakePHP 的开发者来说都是宝贵的学习资源。
### CakePHP框架书籍知识点概述 #### 一、Getting Started(开始使用) ...这本书籍涵盖了从基础概念到高级主题的各个方面,对于希望学习和使用CakePHP框架的开发者来说,是一份非常全面且有价值的资源。
cakephp-jwt-auth, 使用JSON网络令牌进行身份验证的CakePHP插件 CakePHP认证插件 包含AuthComponent类认证的插件,用于使用 JSON网络令牌进行身份验证。 你可以在这里详细阅读关于JSON网络令牌规范的详细说明。要求...
6. 国际化和本地化:内置对多语言的支持,方便创建全球化网站。 7. 测试驱动开发:提供测试工具,如CakePHP Test Suite,便于编写单元测试,保证代码质量。 三、安装与配置 1. 安装:下载cakephp-1.3.21.zip并...
所使用的环境包括 Apache 2.2.21、MySQL 5.5.20 和 PHP 5.3.10,操作系统为 Windows 7 Ultimate 32位。 #### 二、环境准备 - **Apache 2.2.21 (OpenSSL 版本)** - 安装文件:`httpd-2.2.21-win32-x86-openssl-...
- **Cake中文手册.chm**:这是官方中文文档,包含了详尽的API参考和教程,帮助开发者快速掌握CakePHP的使用方法。 - **访问脚本之家.html**:可能是一个关于CakePHP或其他PHP技术的文章链接,提供更多的学习资源。 -...
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...
API文档详细列出了每个组件的使用方法,包括模型、视图和控制器的创建、实例化和操作。 1. 模型(Model):在CakePHP 1.2中,模型是数据库操作的主要接口。API中包含了各种数据操作的方法,如find()用于查询,save...
《CakePHP手册完整打印版》是一份专为开发者准备的详尽参考资料,旨在帮助用户深入理解和熟练使用CakePHP框架。 CakePHP是一款基于Model-View-Controller(MVC)设计模式的开源PHP框架,它简化了Web应用开发过程,...
11. 命令行界面(Console)和Shell:CakePHP也提供了命令行工具,用于执行后台任务、数据库迁移等操作,这使得自动化脚本的编写变得更加容易。 12. 开发、配置和调试:CakePHP提供了一系列工具和实践方法来帮助...
CakePHP是一个用PHP编写的开源Web应用框架,不过其模型是用Ruby ...在cakephp.org站点的Sites in the wild页面可以看到当前使用CakePHP框架的网站列表。 CakePHP 是一个运用了诸如ActiveRecord、Association Data Map
- **I18n**: 国际化。 - **L10n**: 地域化。 - **Testing**: 单元测试和功能测试。 - **Utility**: 实用工具类库。 #### 四、进阶教程与示例 - **Content Management Tutorial**: 继续讲解 CMS 系统的构建,...
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...
6. **ORM(对象关系映射)**:CakePHP的ActiveRecord实现了数据库操作的面向对象化,简化了数据操作。 7. **Validation**:内置的数据验证机制,确保输入数据的有效性和安全性。 ### 三、版本2.02的特点 蛋糕...