语言类

优质
小牛编辑
138浏览
2023-12-01

语言类提供方法去“解开(retrieve)”语言文件或者文本行(lines of text)以实现国际化(internationalization).

CodeIgniter的系统(system)目录下的language目录中有一系列的语言文件。 当你需要显示另外一种语言的错误信息或者其它的一些信息时,可以创建自己的语言文件。

语言文件一般存放在 system/language目录下。或者你可以在application目录下创建一个language目录,并把语言文件存放在这里。CodeIgniter会首先查找application/language目录。如果上述目录不存在,或者所要搜索的语言文件不存在,CodeIgniter会搜索全局的 system/language目录。

注意:  每一个语言都要有一个独立的目录,比如,英语的一系列文件都在以下目录中: system/language/english

创建语言文件

语言文件的后缀必须为_lang.php。比如,你想创建一个包含错误信息的文件,你可以这样命名: error_lang.php

在此文件中,你可以在每行把一个字符串赋值给名为$lang的数组,例如:

$lang['language_key'] = "The actual message to be shown";

注意: 为了不和其它文件中的变量重名,最好把一个文件的所有的键值前都加上相同的前缀。比如,可以把每个错误信息都加上error_

$lang['error_email_missing'] = "You must submit an email address";
$lang['error_url_missing'] = "You must submit a URL";
$lang['error_username_missing'] = "You must submit a username";

加载一个语言文件

使用语言文件前,先要加载它,加载方法如下:

$this->lang->load('filename', 'language');

filename是你要加载的语言文件名 (不要带扩展名), language 是那个文件中包含的语言 (比如,英语)。如果没有第二个参数,将会使用 application/config/config.php的缺省语言。

获取一行文本

一旦需要的语言文件被加载,你可以以下的方法取得其中任何一个值:

$this->lang->line('language_key');

language_key 你要显示的字符串所在的数组的键值。

注意:这个方法只是简单的返回值,它并不显示值。(It does not echo it for you)

使用语言行作为表单的Label

这一特性已经被语言类废弃,并转移到语言辅助函数中的 lang() 函数。

自动加载语言

如果需要在整个程序加载一个特定的语言文件,你可以让CodeIgniter在系统初始化的时候自动加载语言文件。可以在 application/config/autoload.php 文件中把语言放在自动加载数组中。