igorianru/laravel-language

laravel 5 的多语言路由和语言切换器

dev-master 2018-10-12 15:53 UTC

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模板。