aitor24/localizer

laravel 5.4 中轻松更改默认语言区域的包

安装次数: 3,316

依赖项: 3

建议者: 0

安全性: 0

星标: 22

关注者: 2

分支: 5

公开问题: 0

类型:翻译

1.4.6 2017-12-14 17:09 UTC

README

Localizer

StyleCI Version Scrutinizer Downloads License

什么是 Localizer?

Localizer 是一个 laravel 包,可以轻松在 laravel 项目中更改语言区域。

使用非常简单,安装后,您的应用程序语言区域将仅通过将路由传递到 localizer 中间件来更改。

主要功能

  • 根据用户浏览器配置自动更改应用程序语言区域
  • 从代码如 'es' 或 'en' 获取语言如 '西班牙语' 或 '英语'。
  • 在用户数据库表中存储用户语言偏好
  • 限制用户设置您没有翻译的语言

入门指南

1. 使用 composer 安装

运行以下命令

composer require aitor24/localizer

2. 注册服务提供者

config/app.php 中注册 localizer 服务提供者。

Aitor24\Localizer\LocalizerServiceProvider::class,

请记得添加别名以舒适地使用 Localizer 函数。

'Localizer'   => Aitor24\Localizer\Facades\LocalizerFacade::class,

3. 发布配置

将发布配置文件。

运行以下命令

php artisan vendor:publish --tag=localizer_config

3.1 发布语言

您还可以发布您的语言以进行修改或添加。

php artisan vendor:publish --tag=localizer_languages

4. 迁移

发布迁移

php artisan vendor:publish --tag=localizer_migrations

运行以下命令

php artisan migrate

5. 配置默认值

默认值也可以在 config/localizer.php 中修改。

  • routes: 使路由可用。
  • carbon: 设置 carbon 翻译器语言。
  • homeRoute: 使主页路由可用。
  • set_auto_lang: 根据用户浏览器配置自动设置语言
  • default_lang: 如果 set_auto_lang 为假或用户试图设置不允许的语言,则为默认语言
  • prefix: 设置语言区域的路由 URI 前缀
  • allowed_langs: 所有允许的语言
  • middleware: 设置语言区域默认中间件

使用 Localizer

中间件

您想设置语言的全部路由都应该位于 localizer 中间件下,以便在每次请求时设置应用程序语言区域。

Route::group(['middleware' => 'localizer'], function () {

    // Here your routes

});

更改语言

  • 通过带返回主页的 URL:/lang/set/{locale}/home
  • 通过带返回的 URL:/lang/set/{locale}

提示: /lang 前缀将在配置中更改

示例语言视图

以下是一些选择和设置语言的视图代码片段

@foreach (Localizer::allowedLanguages() as $code => $value)
    <a href="{{ Localizer::setRouteHome($code) }}">{{ $value }}</a>
@endforeach

API

Localizer::allowedLanguages()

返回包含 [$code => $language] 的数组,对于配置中所有允许的语言。

Localizer::addNames($codes)

从只包含 $codes 的数组中获取一个类似 [$code => $language] 的数组。

Localizer::addCodes($lang)

从只包含 $langs 的数组中获取一个类似 [$language => $code] 的数组。

Localizer::setRoute($code)

用于模态或下拉菜单

返回设置语言并返回的 URL。

如果您更喜欢直接使用 route() 函数,您可以使用以下代码

{{ route('localizer::setLocale', ['locale' => $code]) }}

Localizer::setRouteHome($code)

用于语言选择视图

返回设置语言并返回 '/' 的 URL。

如果您更喜欢直接使用 route() 函数,您可以使用以下代码

{{ route('localizer::setLocaleHome', ['locale' => $code]) }}

Localizer::getLanguage($code = App::getLocale())

如果指定了 $code,则返回 $code 的语言名称,如果没有指定,则返回当前设置的语言。

提示: 使用 App::getLocale() 获取当前区域