conttas / laravel-language
Laravel项目语言切换包。
Requires
- php: >=5.6.4
- jenssegers/agent: 2.6.*
- laravel/framework: >=5.4.0
README
此包允许在Laravel项目中轻松切换地区。它使用起来非常简单,一旦安装,只需通过将路由传递到SetLanguage中间件,应用程序地区就会更改。
主要功能
- 自动根据用户浏览器配置更改应用程序地区
- 内置语言标志,易于实现
- 从代码“en”或“es”获取语言名称“英语”或“西班牙语”
- 可选择使用短(en)或长(en-GB)语言代码
- 在用户表中存储地区
- 限制用户设置没有翻译的语言
- 为清晰的、简单的、易于阅读的API提供辅助函数
- 支持Carbon和Date包
入门指南
1. 安装
运行以下命令
composer require conttas/laravel-language
2. 注册(适用于Laravel < 5.5)
在config/app.php
中注册服务提供者
Akaunting\Language\Provider::class,
如果您想使用外观,请添加别名。
'Language' => Akaunting\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
中间件下,以便在每个请求中设置应用程序地区。
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,则返回$name的语言代码,如果没有,则返回当前设置的语言。
变更日志
请参阅发布版本获取更多关于最近变更的信息。
贡献
欢迎提交拉取请求。您必须遵循PSR编码标准。
安全
如果您发现任何与安全相关的问题,请通过电子邮件发送至dev@codions.com,而不是使用问题跟踪器。
致谢
许可协议
MIT许可协议(MIT)。有关更多信息,请参阅LICENSE。