spinzar/language

Laravel项目的语言切换包。

此包的官方仓库似乎已消失,因此该包已被冻结。

1.0.0 2020-11-03 10:12 UTC

This package is auto-updated.

Last update: 2024-06-03 08:51:07 UTC


README

Version Downloads StyleCI License

此包允许在Laravel项目中轻松切换区域设置。使用起来非常简单,安装后,只需通过将路由传递到SetLanguage中间件,您的App区域设置就会更改。

主要功能

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

入门指南

1. 安装

运行以下命令

composer require spinzar/laravel-language

2. 注册(对于Laravel < 5.5)

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

Spinzar\LaravelLanguage\Provider::class,

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

'Language'   => Spinzar\LaravelLanguage\Facade::class,

3. 发布

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

php artisan vendor:publish --tag=laravel-language

4. 迁移

向用户表添加区域设置列

php artisan migrate

5. 配置

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

  • route: 使路由可用
  • carbon: 设置briannesbitt/carbon翻译器的语言
  • date: 设置spinzar/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 的语言名称,否则返回当前设置的语言。

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

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

如果指定,则返回 $name 的语言代码,否则返回当前设置的语言。

更新日志

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

贡献

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

安全

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

鸣谢

许可协议

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