本地化

目录

基础介绍

本地化是把应用程序转换成不同的语言的过程. Lang类提供了一种简单的机制来帮助你组织和检索您的多语言应用程序的文本.

你的程序的所有语言文件都在application/language目录下. 在*application/language目录内, 你应该为应用程序用到的语言创建一个目录. 因此, 举例来说, 如果你的应用程序用到英语和西班牙语, 你可以创建ensp**目录.

每个语言目录可能包含许多不同的语言文件. 每种语言的文件仅仅是一个本地语言的字符串数组. 事实上, 语言文件的名称和配置文件中指定的相同. 例如, 在application/language/en目录内, 您可以创建一个*marketing.php**文件, 看起来像这样:

创建语言文件:

return array(

     'welcome' => 'Welcome to our website!',

);

接下来, 你应该在application/language/sp目录内, 您可以创建一个*marketing.php**文件. 该文件将看起来像这样:

return array(

     'welcome' => 'Bienvenido a nuestro sitio web!',

);

真好!现在你知道如何开始建立您的语言文件和目录了. 让我们保持本地化!

检索语言行

检索语言行

echo Lang::line('marketing.welcome')->get();

用简写的"__"方法检索语言行:

echo __('marketing.welcome');

请注意"点"语法是如何被用来分隔"marketing"和"welcome"的. 点前的文本对应的语言文件, 点之后的文本后对应于该文件内的特定字符串.

需要用指定语言来检索语言行吗?没问题, 用刚才提到的语言get的方法:

用指定语言来检索语言行:

echo Lang::line('marketing.welcome')->get('sp');

占位符和替换

现在, 让我们创建一条的欢迎消息: "Welcome to our website!", 它是一个非常通用的消息. 能够指定要欢迎的人是非常有用的. 但是, 我们为应用程序的每个用户创建一个语言行实在是费时和荒谬的. 值得庆幸的是, 你不必这么做. 你可以在语言行上定义一个以"冒号"开头的占位符:

创建一个带有占位符的语言行:

'welcome' => 'Welcome to our website, :name!'

检索一个带有占位符的语言行并自动替换:

echo Lang::line('marketing.welcome', array('name' => 'Taylor'))->get();

别忘了简写方法"__":

echo __('marketing.welcome', array('name' => 'Taylor'));