laravel的语言包设置

Laravel 本地化语言的功能

所谓本地化语言,就是说在不同的的国家可能使用不同的语言.现在Laravel提供了一个方便的功能,本地化语言支持。

好了,下面让我们来看看如何使用这个神奇的功能吧。

这里本地化语言使用的是Lang这个类。

例如,我们想要让程序支持中文和英文。

第一步:建立语言包文件

在app目录下有个lang的文件夹,里面默认有个en的文件夹,这个表示的是英文。

我们再在里面建立一个zh-CN的文件夹,表示中文。

所有对应的中英文语言文件都应该分别在各自的文件夹里。

我们现在做个简单的实例,想要的效果是在页面里:

中国的用户显示 : “你好!”

其他的用户显示:”Hello!”

我们在enzh-CN里面建立都一个叫做hello.php

en/hello.php 里这样写:

1
2
3
4
5
return array(
"welcome" =>"hello!"
);

zh/hello.php里这样写:

1
2
3
4
5
return array(
"welcome" =>"你好!"
);

好了,这就是我们第一步要建立的语言包文件。

第二步:修改语言配置

我们在我们的app/config/app.php中可以看到

修改里面的两个配置:

1
2
3
'locale'=>'zh-CN', //这个表示默认使用的是lang哪个文件夹中的内容
'fallback_locale' => 'en', //这个表示的是如果上面文件夹中的内容不存在时,使用哪个文件夹中的内容.

第三步:在页面调用语言包

现在我们新建了语言包文件,并且在配置文件里做好了配置,那么我们如何在页面里调用对应的内容呢?

在我们的模板页面中(我们采用laravel的Blade模板的方式来构建视图),我们可以这样写:

{{Lang::get(‘hello.welcome’)}}

从上面的代码我们可以看到,hello表示的就是hello.php,welcome表示的就是我们返回数组中的一个键名。

根据上一步app/config/app.php配置文件里locale的设置,会显示zh-CNhello.php里面welcome的值。

那么如果我们在zh-CN文件夹里没有找到相应的内容,那么就到en文件夹中进行查找。如果也没有的话。。。你可以试试看会显示什么。

OK,了解了语言包新建、调用的流程以后,我想我们可以尝试着去做更多的事,比如根据访问者的地域,来调用不同的语言配置,或者让用户自己选择不同的语言设置。具体的实现这里就不在讨论。

扩展包

这里有一个laravel的语言扩展包,里面包含了很多语言包,可以根据自己的需要下载或贡献自己制作的内容。

点击查看

Wow