语言类 | Language Class
Language Class
Language Class提供了用于检索国际化目的的语言文件和文本行的功能。
在您的CodeIgniter 系统
文件夹中,您将找到一个语言
子目录,其中包含一组英语
成语的语言
文件。该目录中的文件(system / language / english /
)定义了CodeIgniter框架不同部分的常规消息,错误消息和其他一般输出项或表达式。
您可以根据需要创建或合并自己的语言文件,以提供特定于应用程序的错误和其他消息,或者将核心消息翻译成其他语言。这些翻译或附加消息将进入您的应用程序/语言/
目录,并为每个成语(例如“法语”或“德语”)分别设有子目录。
CodeIgniter框架附带一组“英语”习语的语言文件。可以在CodeIgniter 3翻译库中找到针对不同习语的额外批准翻译。每个存储库处理一个单一的习惯用法。
当CodeIgniter加载语言文件时,它将以system / language /
first 加载它,然后在你的应用程序/语言/
目录中寻找覆盖。
注意
每种语言都应该存储在自己的文件夹中。例如,英文文件位于:system / language / english
- 处理多种语言
- [Auto-loading Languages](about:blank#auto-loading-languages)
- 类参考
处理多种语言
如果你想在应用程序中支持多种语言,你可以在你的应用程序/语言/
目录中为它们提供文件夹,你可以在你的application / config / config.php中
指定默认语言。
该应用程序/语言/英文/
目录将包含您的应用程序所需的任何额外的语言文件,例如用于错误消息。
每个其他成语专用目录都将包含您从翻译库获得的核心语言文件,或者您自己翻译的核心语言文件以及您的应用程序需要的其他任何附加文件。
您可以将当前正在使用的语言存储在会话变量中。
示例语言文件
system/
language/
english/
...
email_lang.php
form_validation_lang.php
...
application/
language/
english/
error_messages_lang.php
french/
...
email_lang.php
error_messages_lang.php
form_validation_lang.php
...
切换语言的示例
$idiom = $this->session->get_userdata('language'
$this->lang->load('error_messages', $idiom
$oops = $this->lang->line('message_key'
国际化
CodeIgniter中的Language类旨在提供一种轻松简便的方式来支持应用程序中的多语言。这并不意味着完全实施所谓的国际化和本地化。
我们使用术语“成语”来指代使用其通用名称的语言,而不是使用任何国际标准,例如英语“en”,“en-US”或“en-CA-x-ca”和它的一些变体。
注意
没有什么可以阻止您在您的应用程序中使用这些缩写!
使用语言课程
创建语言文件
语言文件必须以_lang.php
作为文件扩展名来命名。例如,假设您想创建一个包含错误消息的文件。您可以将其命名为:error_lang.php
在这个文件中,你将把每一行文本分配给一个$lang
用这个原型调用的数组:
$lang['language_key'] = 'The actual message to be shown';
注意
对给定文件中的所有消息使用通用前缀以避免与其他文件中具有相似命名项目的冲突是一种很好的做法。例如,如果您正在创建错误消息,则可能会在错误消息前添加错误_
$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->load(array('filename1', 'filename2')
注意
该语言的
参数只能由字母。
获取一行文本
一旦你想要的语言文件被加载,你可以使用这个函数访问任何文本行:
$this->lang->line('language_key'
其中language_key
是与您希望显示的行对应的数组键。
您可以选择传递FALSE作为该方法的第二个参数来禁用错误日志记录,以防您不确定该行是否存在:
$this->lang->line('misc_key', FALSE
注意
该方法只是返回该行。它不会回应它。
使用语言行作为表单标签
此功能已从语言库中弃用,并已移至lang()
语言助手的功能。
自动加载语言
如果您发现在整个应用程序中需要全局特定的语言,您可以告诉CodeIgniter在系统初始化时自动加载它。这是通过打开application / config / autoload.php
文件并将语言添加到自动装载数组来完成的。
类参考
class CI_Langload($langfile[, $idiom = ''[, $return = FALSE[, $add_suffix = TRUE[, $alt_path = '']]]])
参数: | $ langfile(mixed) - 要加载的语言文件或带有多个文件的数组$ idiom(string) - 语言名称(即'english')$ return(bool) - 是否返回加载的转换数组$ add_suffix(bool) - 是否将'_lang'后缀添加到语言文件名称$ alt_path(string) - 查找语言文件的替代路径 |
---|---|
返回: | 如果$ return设置为TRUE,则为语言行数组,否则为void |
返回类型: | 杂 |
$ langfile
(混合
) - 要加载的语言文件或包含多个文件的数组
Returns: Array of language lines if $return is set to TRUE, otherwise void
Return type: mixed
Loads a language file.
line($line[, $log_errors = TRUE])
参数: | $ line(string) - 语言行键名$ log_errors(bool) - 如果未找到该行,是否记录错误 |
---|---|
返回: | 语言行字符串或FALSE失败 |
返回类型: | 串 |
$ line
(string
) - 语言行键名
Returns: Language line string or FALSE on failure
Return type: string
根据线路名称,从已经加载的语言文件中获取一条翻译线。