igorianru / laravel-language
laravel 5 的多语言路由和语言切换器
Requires
- php: >=7.0
- laravel/framework: 5.5.*
This package is auto-updated.
Last update: 2024-09-16 07:52:46 UTC
README
laravel 5 的多语言路由和语言切换器
安装
安装扩展的首选方法是使用composer。检查composer.json以获取此扩展的需求和依赖项。
要安装,请运行
$ php composer.phar require igorianru/laravel-language "*"
或添加
"igorianru/laravel-language": "*"
到您的composer.json文件的要求部分。
配置
安装Socialite库后,请在您的config/app.php
配置文件中注册igorianru\language\LanguageServiceProvider
'providers' => [ // Other service providers... igorianru\language\LanguageServiceProvider::class, ],
另外,将Language门面添加到您的应用配置文件中的别名数组中
'Language' => igorianru\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
模板。