PHP多国语言开发:CodeIgniter 2PHP框架中的多国语言语言包(i18n)多国语言库

引言

我们在CodeIgniter开发中经常会碰到多国语言网站,这里我们就来介绍一种简单有效的多国语言的操作方法。

做什么

语言在地址中是这样的:

cit.cn/en/about

cit.cn/zh/about

保持使用库:Language Class

例子

视图中

<p><?=lang('about.gender')?></p>

英文语言文件

$lang['about.gender'] = "I'm a man";

英文语言文件

$lang['about.gender'] = "I'm a man";

中文语言文件

$lang['about.gender'] = "我是男人";

cit.cn/en/about显示的结果

<p>I'm a man</p>

cit.cn/zh/about显示的结果

<p>我是男人</p>

安装

下载ci_i18n_library.zip

将MY_Lang.php 和 MY_Config.php 放到 application/core

配置

在 application/config/routes.php 增加

// example: '/en/about' -> use controller 'about'
$route['^fr/(.+)$'] = "$1";
$route['^zh/(.+)$'] = "$1";
// '/en' and '/zh' -> use default controller
$route['^fr$'] = $route['default_controller'];
$route['^zh$'] = $route['default_controller'];

使用

让我们创建一个中英双语的页面

语言文件

application/language/english/about_lang.php

<?php
$lang['about.gender'] = "I'm a man";
/* End of file */

application/language/chinese/about_lang.php

<?php
$lang['about.gender'] = "我是男人";
/* End of file */

控制器

application/controllers/about.php

<?php
class About extends CI_Controller {function index(){// you might want to just autoload these two helpers$this->load->helper('language');$this->load->helper('url');// load language file$this->lang->load('about');$this->load->view('about');}
}/* End of file */

视图

application/views/about.php

<p><?=lang('about.gender')?></p>
<p><?=anchor('music','Shania Twain')?></p>

测试

http://your_base_url/en/about

<p>I'm a man</p>
<p><a href="http://mywebsite.com/en/music">Shania Twain</a></p>

http://your_base_url/en/about

<p>我是男人 </p>
<p><a href="http://mywebsite.com/fr/music">Shania Twain</a></p>

技巧贴示:

你需要去翻译CodeIgniter里面system/language语言文件,例子:如果你需要使用“Form Validation”库,你就需要翻译:

system/language/form_validation_lang.php 到

application/language/chinese/form_validation_lang.php.

页面链接将会添加上当前语言的目录,但是文件链接不会。可以参考:www.cnmeizhuang.com

site_url('about/my_work');
// http://mywebsite.com/en/about/my_work
site_url('css/styles.css');
// http://mywebsite.com/css/styles.css

获取当前语言

$this->lang->lang();
// en

切换到另一个语言

anchor($this->lang->switch_uri('zh'),'Display current page in chinese');//the root page (/) is supposed to be some kind of splash page, without any specific //language. This can be changed: see “No splash page” below.

如何工作的

PHP多国语言开发

MY_Config.php保函一个重写的site_url():当生成语言地址目录的时候增加语言段,同样适用于anchor(), form_open()...

选项:

特殊地址

一个特殊地址不需要保函语言文件,默认的根目录地址(/)就是一特殊的URI.例如:www.nongyejingc.com   /

你需要其他的特殊URIs,例如管理后台目录admin只需要一个语言文件。

在application/core/MY_Lang.php增加admin到数组$special中,现在链接到admin的链接就不会加入当前语言包路径了。

site_url('admin');

// http://mywebsite.com/admin

No splash page

在application/core/MY_Lang.php

1. 删除从$special数组删除“”;

2. 设置$default_uri,例如home

3. 如果你的默认语言是english的话,现在连接到/的请求,被重定向到en/home

4. 默认语言是$languages数组的第一个项目;

增加一个语言

1. 在application/core/MY_Lang.php文件中的$languages数组增加新的语言:

// example: German (de)
'de' => 'german',

2. application/config/routes.php:增加新的路由

// example: German (de)
$route['^de/(.+)$'] = "$1";
$route['^de$'] = $route['default_controller'];

3. 在application/language目录中增加语言文件夹,这里的例子是“German”,需要命名为german。

以上就是CI框架 利用语言包(i18n)库,php多国语言实现的一些思路。

PHP多国语言开发:CodeIgniter 2PHP框架中的多国语言,语言包(i18n)库相关推荐

  1. gui窗口遮挡算法_基于 C 语言开发的 GUI 框架

    一.介绍 AWTK全称Toolkit AnyWhere,是ZLG开发的开源GUI引擎,旨在为嵌入式系统.WEB.各种小程序.手机和PC打造的通用GUI引擎,为用户提供一个功能强大.高效可靠.简单易用. ...

  2. c语言.jpg图片转成数组_基于 C 语言开发的 GUI 框架

    一.介绍 AWTK全称Toolkit AnyWhere,是ZLG开发的开源GUI引擎,旨在为嵌入式系统.WEB.各种小程序.手机和PC打造的通用GUI引擎,为用户提供一个功能强大.高效可靠.简单易用. ...

  3. c语言.jpg图片转成数组_AWTK——基于C语言开发的GUI框架,功能强大,支持跨平台同步开发...

    简介 AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统.WEB.各种小程序.手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大.高效 ...

  4. devc 如何编写java,Android For JNI(1)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序...

    Android For JNI(一)--JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序 当你的Android之旅一步步的深入的时候,你其实会发现,很多东西都必须去和framew ...

  5. ci mysql 转义,CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析

    本文实例分析了CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患.分享给大家供大家参考,具体如下: php CI框架中URL特殊字符有很多是不支持的,导致像c++,括号这些常用的分 ...

  6. nodemcu c语言开发,nodemcu连接到中移onenet平台

    手上有一块nodemcu,这货可以用lua编译脚本语言编程,也可以用arduinoIDE来编辑,用C语言来开发,甚至可以刷入micropython系统,用python语言开发.功能多而且就价格便宜,是 ...

  7. c语言程序的模板,C++中模板与用C语言中实现模板

    1.模板的概念 我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同.正确的调用重载函数.例如,为求两个数的最大值,我们定义MAX()函数需要 ...

  8. c语言开发工具程序代码是什么文件,【C语言】开发工具--GCC使用入门

    来自: 51CTO  GCC使用入门 通常所说的GCC是GUN Compiler Collection的简称,除了编译程序之外,它还含其他相关工具,所以它能把易于人类使用的高级语言编写的源代码构建成计 ...

  9. c语言开发五轴后处理,基于UGCLS文件使用C语言制作智能后处理工具.doc

    基于UGCLS文件使用C语言制作智能后处理工具 基于UG CLS文件使用C语言制作智能后处理工具 发表时间:2008-9-10 张伟 基于UGCLS文件特性,利用C语言制作附带业务规则的后处理工具的一 ...

  10. 哪些公司用c语言开发工具,哪些IDE和工具可用于C语言开发?

    看看学习一些C,因为我在another SO question看到了很好的学习语言和历史经验. 想知道在C语言编程时IDE的专业人员使用了什么以及其他什么工具有用? 答案 我一直喜欢Code::Blo ...

最新文章

  1. 深入理解Netty-从偶现宕机看Netty流量控制
  2. GRE作文用AI打分,已经20周年了:AI给中国考生的分数,远高于人类打分
  3. php 匹配一次,PHP Regex匹配最后一次出现的字符串
  4. MSSql-SP_who分析数据库性能
  5. mysql ab复制_实现mysql的ab复制(a-b-b,a-b-c)
  6. [html] 制作一个不规则形状有哪些方法可以实现?
  7. spring boot----简单入门
  8. php serialize和json_encode哪个更快_世界 10 大编程语言,Java 不是第一,PHP 才第五...
  9. 面试题:InnoDB 中一棵 B+ 树能存多少行数据?【面试不翻车,翻车就跑路】
  10. 云图说|初识云数据库GaussDB(for Redis)
  11. java源码依赖分析_Spring项目运行依赖spring-contex解析
  12. DenseNet:比ResNet更优的CNN模型
  13. 最常用的9款免费开源游戏引擎
  14. bp神经网络模型拓扑结构,bp神经网络模型结构图
  15. Dicom修改图像内容重新生成dcm文件
  16. 前期交互流程(PTES的第一步)
  17. 数字记忆好方法:数字编码
  18. 无法通过windows功能控制面板自动安装或卸载windows server角色和功能
  19. UVA10859 placin glampposts(放置街灯)
  20. 工商银行考试计算机知识,【必读】工商银行考试内容及复习方法

热门文章

  1. python的pyc反编译
  2. AD20.0.13初学
  3. 微信小程序怎么做店铺?
  4. 2021中青杯数学建模A题 (论文+代码) 超详细
  5. Rwordseg包如何加载本地词典
  6. APMS系列多通道相参微波信号发生器--四通道相参输出高达40GHz
  7. icem合并面网格_ICEM CFD混合网格
  8. 如何用python计算年龄_python 实现年龄计算程序
  9. Android 分贝测试仪功能,Android最新大厂面试真题总结
  10. 基于图书管理系统的需求分析之数据流图