处理多语言的新方法

dev-master 2014-10-12 18:15 UTC

This package is not auto-updated.

Last update: 2024-09-23 15:25:27 UTC


README

Build Status

Locale - 处理多语言的新方法。

该包的目标是提供一个简单的方法来为Laravel 4/5创建多语言。

安装

编辑 composer.json 文件以要求此包。

"require": {
	...
	"diego1araujo/locale": "dev-master"
}

接下来,运行composer update命令

composer update

打开 app/config/app.php

找到 providers 键并向数组中添加新项

'Diego1araujo\Locale\ServiceProvider',

找到 aliases 键并向数组中添加新项

'Locale' => 'Diego1araujo\Locale\Facade',

最后,发布配置文件

php artisan config:publish diego1araujo/locale

配置

要查看可用的语言,打开 app/config/packages/diego1araujo/locale/config.php

默认情况下,主要语言是 en(英语),而 available 项包含语言列表。

当然,您可以根据需要更改它们。

注意:主要语言不会附加到URL中,只有其他(来自 available 项)语言。

数据

转到 app/lang/[language] 并为每种语言创建一个新的文件(文件必须对所有语言具有相同的名称)

如下所示

英语 app/lang/en/message.php

return array(

	'welcome' => 'Welcome to my page',

);

葡萄牙语 app/lang/pt/message.php

return array(

	'welcome' => 'Bem-vindo à minha página',

);

用法

在路由组中将设置方法定义为前缀值

Route::group(array('prefix' => Locale::set()), function()
{
	Route::get('/', function()
	{
		return View::make('home');
	});

	Route::get('example', function()
	{
		return View::make('example');
	});
});

打印消息

Lang::get('message.welcome')

检索当前语言

Locale::get();

构建带有当前语言的URL

Locale::url('about'); // [site-domain]/[current-language]/about

多语言的单个路由

您可以使用单个路由为多语言页面。我建议您将所有页面放在您的文件翻译中。

英语 app/lang/en/message.php

return array(

	'menu-page' => 'Page',
	'slug-page' => 'page',

);

葡萄牙语 app/lang/pt/message.php

return array(

	'menu-page' => 'Página',
	'slug-page' => 'pagina',

);
Route::group(array('prefix' => Locale::set()), function()
{
	Route::get(Lang::get('message.slug-page'), ['as' => 'page', 'uses' => 'HomeController@page']);
}