zymawy/localizer

laravel 5.4 中轻松更改默认语言环境的包

维护者

详细信息

github.com/zymawy/Localizer

源代码

安装: 10

依赖: 0

建议者: 0

安全: 0

星级: 0

关注者: 1

分支: 5

类型:翻译

2 2020-04-19 03:58 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: 设置碳翻译语言。
  • homeRoute: 使主页路由可用。
  • set_auto_lang: 根据用户的浏览器配置自动设置语言
  • default_lang: 如果 set_auto_lang 为 false 或用户尝试设置不允许的语言,则为默认语言
  • 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('/') 的 URL。

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

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

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

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

提示: 使用 App::getLocale() 获取当前语言环境