aayaresko / laravel-language
laravel 5 的多语言路由和语言切换器
Requires
- php: >=5.6.4
- laravel/framework: 5.3.*
This package is not auto-updated.
Last update: 2024-09-14 19:58:29 UTC
README
laravel 5 的多语言路由和语言切换器
安装
安装扩展的首选方式是通过 composer。检查 composer.json 文件以了解此扩展的需求和依赖项。
要安装,可以运行
$ php composer.phar require aayaresko/laravel-language "*"
或向你的 composer.json 中的 require 部分添加
"aayaresko/laravel-language": "*"
。
配置
安装 Socialite 库后,在您的 config/app.php
配置文件中注册 aayaresko\language\ServiceProvider
'providers' => [ // Other service providers... aayaresko\language\ServiceProvider::class, ],
此外,将 Language facade 添加到您的应用程序配置文件中的别名数组
'Language' => aayaresko\language\LanguageFacade::class,
用法
使用 Language::getLocale()
方法为您的路由添加语言前缀
Route::group(['prefix' => Language::getLocale()], function () { Route::get('/home', function () { return view('frontend.index'); })->name('home'); });
在您的视图文件中使用 Language::renderDropdownList()
生成语言下拉列表(注意感叹号)
{!! Language::renderDropdownList() !!}
此方法接受在您的 app.config
文件中指定的 'locales' 数组。它假定每个 'locale' 项的键是语言 'code',值是 'visible_name'。您可以通过 Language::renderDropdownList()
的 $label_template 值来控制语言项标签内容
{!! Language::renderDropdownList('{visible_name} ({code})') !!}
标签将如下所示: 'English (en)'
您可以向任何 'locale' 项的值中添加附加项目,并在 Language::renderDropdownList()
中渲染该值。例如,如果您添加了 'description',并且您的 app.config
看起来像这样
'locales' => [ 'en' => [ 'visible_name' => 'English', 'description' => 'Some simple text' ], 'ru' => 'Русский', ]
您可以渲染 'description' 项
{!! Language::renderDropdownList('{visible_name} ({code}) {description}') !!}
标签将如下所示: 'English (en) Some simple text'
自定义
您可以通过运行 php ./artisan vendor:publish --tag=language
来自定义语言下拉列表的 HTML。然后编辑您的 resources/views/vendor/language
目录中的 dropdown.blade.php
模板。