aayaresko/laravel-language

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

dev-master 2016-09-29 15:32 UTC

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