luizjr/language

Laravel 的语言切换包。

v1.0.6 2019-11-02 22:27 UTC

This package is auto-updated.

Last update: 2024-09-29 05:28:25 UTC


README

Version Downloads StyleCI License

此包允许在 Laravel 项目中轻松切换地区。使用非常简单,安装后,只需通过传递路由到 SetLanguage 中间件,应用程序的地区就会改变。

主要功能

  • 根据用户浏览器配置自动更改应用程序地区
  • 内置语言标志,易于实现
  • 从代码“en”或“es”等获取语言名称,例如“English”或“Español”
  • 可选择短(en)或长(en-GB)语言代码
  • 在用户表中存储地区
  • 限制用户设置您没有翻译的语言
  • 提供干净、简单、易于阅读的 API 的辅助函数
  • 支持 Carbon 和 Date 包

入门指南

1. 安装

运行以下命令

composer require luizjr/language

2. 注册(对于 Laravel < 5.5)

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

LuizJr\Language\Provider::class,

如果您想使用外观,请添加别名。

'Language'   => LuizJr\Language\Facade::class,

3. 发布

发布配置、迁移和 blade 文件。

php artisan vendor:publish --tag=language

4. 迁移

向用户表添加地区列

php artisan migrate

5. 配置

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

  • route: 使路由可用
  • carbon: 设置 briannesbitt/carbon 传输器的语言
  • date: 设置 jenssegers/date 传输器的语言
  • home: 使主页路由可用
  • auto: 根据用户浏览器配置自动设置语言
  • prefix: 设置地区 URI 的前缀
  • middleware: 默认用于设置地区的中间件
  • controller: 处理地区请求的默认控制器
  • flags: 标志的设置,如宽度、类等
  • mode: 语言代码和名称模式
  • allowed: 允许的语言代码
  • all: 可用语言名称和代码

使用方法

中间件

您想设置语言的全部路由都应该放在 language 中间件下,以在每个请求中设置 App 地区。

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

    // Here your routes

});

URL

  • 通过带有返回主页的 URL:/languages/{locale}/home
  • 通过带有返回上一页的 URL:/languages/{locale}/back

提示: /languages 前缀可以从 config/language.php 中更改

方法

language()->allowed()

返回一个数组,包含配置中所有允许语言的 [$code => $name]。例如,在 blade 中的用法

@foreach (language()->allowed() as $code => $name)
    <a href="{{ language()->back($code) }}">{{ $name }}</a>
@endforeach

language()->flags()

返回一个包含配置中所有允许语言的标志的输出。输出可以从 resources/views/vendor/language 文件夹中更改

language()->flag()

返回当前地区的标志。输出可以从 resources/views/vendor/language 文件夹中更改

language()->names($codes = null)

从 $codes 的数组中获取一个如 [$code => $name] 的数组。

language()->codes($langs = null)

从 $langs 的数组中获取一个如 [$name => $code] 的数组。

language()->back($code)

返回设置语言并返回的 URL:back()

如果您想直接使用 route() 函数,可以像以下代码那样使用它

{{ route('language::back', ['locale' => $code]) }}

language()->home($code)

返回设置语言并返回主页的 URL:url('/')

如果您想直接使用 route() 函数,可以像以下代码那样使用它

{{ route('language::home', ['locale' => $code]) }}

language()->getName($code = 'default')

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

提示: 使用 app()->getLocale() 获取当前地区

language()->getCode($name = 'default')

如果指定了 $name,则返回其语言代码;如果没有指定,则返回当前设置的语言。

language()->getShortCode($long = 'default')

如果指定了 $long,则返回其语言简码;如果没有指定,则返回当前设置的语言简码。

变更日志

有关最近更改的更多信息,请参阅发行版

贡献

有关详细信息,请参阅贡献指南

安全

如果您发现任何与安全相关的问题,请通过lj@luizjr.dev发送电子邮件,而不是使用问题跟踪器。

鸣谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅LICENSE