在CakePHP 1.2 中实现多语言支持——i18n 和 L10n 的使用简述

cakephp-i18n:一个带有I18n相关工具的CakePHP插件 用于I18n相关工具的CakePHP插件。 介绍 该插件提供: 路由类,用于生成和匹配具有语言前缀的URL。 中间件,它根据URL中的语言前缀使用I18n::setLocale()设置语言环境,并在访问站点根目录时提供重定向到具有语言前缀的适当URL。 用于检索存储在数据库而不是po / mo文件中的翻译消息的类。 用于自动翻译验证消息的验证类。 生成带有时区标识符列表的选择框的小部件。 安装 composer require admad/cakephp-i18n 用法 通过运行命令来加载插件: bin/cake plugin load ADmad/I18n 该插件包含多个有助于国际化的类。 您可以选择所需的选项。 I18nRoute I18nRoutes有助于生成样式为/:lang/:controller/:action语言前缀路由。 例如,您可以将路由添加到您的ro 立即下载

本文转自: http://www.phpframework.cn/archives/8/%e5%9c%a8cakephp-12-%e4%b8%ad%e5%ae%9e%e7%8e%b0%e5%a4%9a%e8%af%ad%e8%a8%80%e6%94%af%e6%8c%81%e2%80%94%e2%80%94i18n-%e5%92%8c-l10n-%e7%9a%84%e4%bd%bf%e7%94%a8%e7%ae%80%e8%bf%b0/

转载时请注明

CakePHP 1.2 中新增了对 i18n 和 L10n 的支持。实现的方式是采用了php的 gettext。目前还没有文档说明如何来使用 i18n 和 L10n,恰好我最新的一个项目要用到,所以就说一下最基本的用法。

用户定义的本地化语言文件位于 app/locale 目录下。默认只有一个 eng 目录,也就是英语。

1). 新建语言文件。在 app/locale 下依次新建 /zh_cn/LC_MESSAGES/ 目录,在其下新建 default.po 文件。最终的路径为:app/locale/zh_cn/LC_MESSAGES/default.po 。再在 /eng/LC_MESSAGES 目录下也新建一个 default.po 文件。特别注意,这2个 .po 文件都应该是 utf-8 编码。

2). 打开 app/locale/eng/LC_MESSAGES/default.po ,写入以下代码:

msgid "Hello China"
msgstr "Hello China"

打开 app/locale/zh_cn/LC_MESSAGES/default.po ,写入以下代码:

msgid "Hello China"
msgstr "你好,中国"

3). 打开任意一个 view 文件,加入以下PHP代码:

__('Hello China');// 如果系统语言为中文,则输出“你好中国”;系统语言为英文或其他语言,则默认输出“Hello China”

"__()"函数是 L10n 输出函数(具体可以查看 cakep/basics.php)。如果写作

__('Hello China',true)

则函数只返回翻译后的字符,不会有任何输出。

 4). 完成。现在打开页面,即可看见页面输出“你好中国”。如果系统在eng和zh_cn的语言包里都找不到名为 “Hello China” 的msgid,则会将 __(’string’) 函数中的 string 直接输出。

其他提示:

1. 系统是根据 HTTP_ACCEPT_LANGUAGE 自动判别该翻译为何种语言。如果要手动指定语言,比如要指定翻译为德语,可以在 controller 中加入如下代码:

$language = 'deu'; // 要翻译为何种语言
Configure::write('Config.language', $language );
// $this->Session->write('Config.language', $language); // 或者是这句

2. cake/basics.php 中包含了多个L10n输出函数,可以详细查阅按需运用。

CakePHP的blog例子(增加了后台功能,嵌入了TinyMCE编辑器) CakePHP的blog例子(增加了后台功能,嵌入了TinyMCE编辑器) 我的新博客http://www.cakesns.cn 立即下载

相关推荐

php两个非常好用的mail 类

内涵连个mail类 一个使用的是php的内置的mail函数。。一个使用的是自写的smtp函数。。比php内置mail函数更加具有可移植性

Cakephp本地化和国际化详解

看过CakePHP的程序例子的程序员都会发现,在Controller或者View中,大多数输出都是用一个函数 __(”xxxx”) 来执的,这个函数就相当与其他框架中的getText()函数,是根据key值和locale来动态获取相应的语言内容。  1)什 么是 i18n,l10n       首 先要先明白Localization & Internationalization两个单词,分

hb01846的专栏 579

C#实战:如何从零构建一个轻量级软PLC梯形图编辑器(附完整源码)

本文详细介绍了如何使用C#从零开始构建一个轻量级软PLC梯形图编辑器。内容涵盖项目架构设计、GDI+图形渲染、编辑交互实现以及核心的扫描执行引擎开发,并提供了定时器、计数器等高级功能的实现思路与完整源码,为开发者深入工业自动化领域提供了实战指南。

4k5l6j7h8的博客 257

CakePHP: 基于url的多语言版本网站的实现方案

有几种方案来实现网站的多语言版本: *) 基于url的方案( 比如{locale}.yeenav.com 或者 www.yeenav.com/{locale} ) *) 基于session/cookie的方案( 通过记录用户语言选项在session中来实现切换) *) 基于theme的方案( 通过切换不同语言版本的theme来实现) 其中基于url的方案更为SEO友好。 下面简单介绍Ca...

hulunberbus 286

2017阿里内推笔试题--算法工程师(运筹优化)

2017阿里内推笔试题–算法工程师(运筹优化)题目沐哲是一个菜鸟仓库的一个拣货员,但他有非常个怪异的习惯。每次拣货的重量都要比之前拣的一个轻,每次拣到货后都可以得到1块钱,沐哲想知道这样最多能赚多少钱 32 34 7 33 21 2 13 12 3 11 26 36 16 30 22 1 24 14 20 23 25 5 19 29 27 15 9 17 31 4 6 18 8 10 3

shawpan的专栏 1万+

RAG——RAG 索引(文档解析技术)

本文介绍了RAG系统中文档解析的关键技术,重点分析了如何通过LangChain的Document Loaders处理多种格式文档。文章指出高质量文档解析对RAG系统效果的决定性作用,并详细讲解了PDF、TXT、Word等常见格式的解析方法。作者提供了代码示例和Gitee开源项目链接,特别强调了PDF解析的深入方案,同时介绍了相关依赖库的安装配置。文章还展示了如何定义通用文档加载方法,为开发者提供了实用的技术参考。

小志的博客 751

cakephp 多语言

cakephp在多语言的开发下,比较痛苦的是如何找出这么多msgid,那么下面的命令可以给出一份解析 ./Console/cake i18n extract

ShiningStarPxx的专栏 623

ss524v100 调试cvbs输出

启用视频层3 dev2 对应 layer3在vdec与vo绑定的时候(不需要经过vpss),不能绑定错误,以下是绑定的程序。

2116

CakePHP CookBook国际化与本地化:构建多语言Web应用的完整指南

在全球化时代,构建支持多语言的Web应用已成为开发者的必备技能。CakePHP CookBook提供了强大的国际化(i18n)与本地化(l10n)功能,帮助开发者轻松创建面向全球用户的应用。本文将详细介绍如何利用CakePHP的国际化特性,从基础设置到高级应用,让你的应用无缝支持多语言环境。 ## 国际化与本地化基础:核心概念解析 国际化(i18n)是指使应用具备支持多种语言的能力,而本地化(

gitblog_00646的博客 241

WorkBuddy结合DeepSeek与Skill:文献检索自动化与Token成本控制实战

Agent工具与大模型API的结合正重塑知识工作者的日常流程。在实际工程中,调用大模型处理批量任务常面临Token消耗过快、成本不可控的痛点,而国产大模型DeepSeek以极低的API定价和兼容OpenAI接口的特性,为规模化文本处理提供了“Token自由”的可能。同时,可复用的Skill机制能够将特定领域的工作流固化为标准化步骤,让Agent自动执行检索式生成、文献筛选与摘要归纳等复杂操作。本文从这一技术背景出发,以科研文献检索为应用场景,演示如何利用WorkBuddy、DeepSeek API与自建文献

weixin_29061509的博客 485

医疗AI新思路:为什么Graph Neural Network能改善气道分割的漏检问题?

本文探讨了Graph Neural Network(GNN)在医疗AI领域改善气道分割漏检问题的创新应用。通过分析3D UNet等传统方法的局限性,揭示了GNN在图结构建模中的独特优势,特别是在捕捉细小末梢支气管方面的突破性表现。文章详细介绍了UNet-GNN混合架构的设计原理、实验性能对比及优化方向,为CT影像分析提供了新思路。

weixin_30379531的博客 224

10个CakePHP CookBook开发技巧:提升PHP应用开发效率的秘诀

CakePHP CookBook是一款强大的PHP开发框架指南,它提供了丰富的功能和工具,帮助开发者快速构建高效、可靠的Web应用。本文将分享10个实用的CakePHP CookBook开发技巧,让你的PHP应用开发效率飙升! ## 1. 利用Bake命令自动生成代码 CakePHP的Bake命令是提高开发效率的利器。通过简单的命令行操作,你可以自动生成模型、控制器、视图等代码文件,减少重复劳

gitblog_00259的博客 352

200Gb/s以上速率的通道信号完整性设计和优化经验(二)

为满足200Gb/s信号完整性需求,需综合优化PCB、连接器、封装及SERDES架构。关键措施包括:采用低粗糙度铜箔与低损耗材料降低传输线损耗(200G目标0.55–0.6dB/cm);通过背钻工艺控制残桩长度至4±2mil;缩减连接器焊盘残桩至600μm以内以消除谐振;封装层面推进跳层走线、低Dk/Df材料与可控SMT工艺;采用PAM4调制与基于ADC/DSP的混合信号架构实现高效均衡。先进CMOS工艺(如纳米片器件)支撑复杂数字处理,协同设计是突破速率瓶颈的核心。

小孟同学的博客 147

我对Laravel ThinkPHP Yii symfony2 CI cakephp 的看法

这是我的真心体会,在尝试使用Laravel、ThinkPHP、Yii、symfony2、CI、cakephp、Yii2 之后的真实想法(default7#zbphp.com)。 1)ThinkPHP (版本3.1.3) 我一开始用到的是ThinkPHP 3.1.3,入门门槛就是网址与方法对应这一点。当初我接触ThinkPHP3.1.3的时候其实3.2版本刚出不久,3.2

This My Life - chisj 7679

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

CakePHP开发之controller设置之国际化

CakePHP中对国际化(internationalization通常将它简写为i18n)和本地化(localization被简写为l10n)的支持遵循国际组织(Openi18n)的相关标准. [b]通常相关的文件包括了PO和MO文件[/b],资源包的位置一般在/app/locale/资源名称/LC_MESSAGES/,命名是default.mo AND default.po. PO是...

姜居士的居室 195

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

php一个网站怎么做多国语言,PHP – 如何将网站翻译成多种语言?

我有一个目前用英语的网站;我希望能够在用户点击其他语言时切换到其他语言(网站上有很少的国家/地区标志图标).我目前正在尝试的方式是数组,例如:$english = array('index',array('h1' => 'this is some h1 text','h2' => 'this is some h2 text'));$japanese = array('index',ar...

weixin_42515045的博客 740

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

国外十大最流行PHP框架排名

以下为十个目前最流行的基于MVC设计模式的PHP框架。 1. Yii Yii是一个基于组件的高性能的PHP的框架,用于开发大规模Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主体化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎一...

dengbi2820的博客 1858

优秀的php框架,2018年给开发者推荐的10个优秀的PHP框架

1.LaravelLaravel是一款免费并且开源的PHP应用框架,它是为开发基于MVC的WEB应用而设计的。Laravel框架是一个为Web工匠准备的PHP框架,让你从杂乱的代码中解放出来,从而快速构建简洁、优雅、功能强大的web应用。2.Symfony简单的模板功能symfony是一个开源的PHP Web框架。基于最佳Web开发实践,已经有多个网站完全采用此框架开发,symfony的目的是加速...

weixin_42364551的博客 445

Yii和ThinkPHP对比心得

本人小菜鸟一只,为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,服务器)等一系列的知识,小菜鸟创建了一个群。希望光临本博客的人可以进来交流。寻求共同发展。搭建平台。 本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加)。 QQ群: 281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&a...

weixin_30344795的博客 323

php热门开发框架,2019年给开发者推荐的10个优秀的PHP框架

1.LaravelLaravel是一款免费并且开源的PHP应用框架,它是为开发基于MVC的WEB应用而设计的。Laravel框架是一个为Web工匠准备的PHP框架,让你从杂乱的代码中解放出来,从而快速构建简洁、优雅、功能强大的web应用。官网:https://laravel.com/中文社区:https://laravel-china.org/Laravel学院:http://laravelaca...

weixin_30045751的博客 467
上一篇: 用Bake创建新应用程序
下一篇: What's new in CakePHP 1.2?
httpnet
博客等级 码龄23年 7粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值