hanoivip / language
Laravel 的语言切换包。
Requires
- php: >=5.6.4
- consoletvs/identify: 1.*
- laravel/framework: >=5.4.0
This package is auto-updated.
Last update: 2024-09-30 04:05:20 UTC
README
此包允许在 Laravel 项目中轻松切换区域。使用起来非常简单,一旦安装,只需通过 SetLanguage 中间件传递路由,应用程序的区域就会改变。
主要特性
- 根据用户的浏览器配置自动更改应用程序区域
- 内置语言标志,便于实现
- 从代码“en”或“es”等获取语言名称,如“English”或“Español”
- 可以选择短(en)或长(en-GB)语言代码
- 在用户表中存储区域
- 限制用户设置未翻译的语言
- 提供用于干净、简单且易于阅读的 API 的辅助函数
- 支持 Carbon 和 Date 包
入门
1. 安装
运行以下命令
composer require akaunting/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
中间件下,以便在每次请求时设置 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
,则返回该语言的代码,如果没有指定,则返回当前设置的语言代码。
更新日志
请参阅发行版获取更多最近更改的信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全
如果您发现任何与安全相关的问题,请发送电子邮件至security@akaunting.com,而不是使用问题跟踪器。
致谢
许可
MIT 许可证 (MIT)。请参阅LICENSE获取更多信息。