rohit / laravel-localization
Laravel 框架的本地化
Requires
- php: >=5.5.9
Requires (Dev)
- mockery/mockery: dev-master
- orchestra/testbench: ~3.3
- phpunit/phpunit: ^6.3@dev
This package is not auto-updated.
Last update: 2024-09-14 19:31:08 UTC
README
一个非常简单且轻量级的本地化包。基于可用的本地化进行路由,并易于从路由中去除默认语言前缀
安装
Composer
将 Laravel Localization 添加到您的 composer.json 文件中
"rohit/laravel-localization": "^1.0"
运行 composer install 以获取最新版本的包
或者您可以直接运行 composer require 命令
composer require rohit/laravel-localization
配置
包安装完成后,您需要配置 config/app.php 并添加 Providers 和 Aliases
'providers` => [ ....... ....... Rohit\LaravelLocalization\LaravelLocalizationServiceProvider::class ]
'aliases' => [ ...... ...... 'Localization' => Rohit\LaravelLocalization\Facades\LaravelLocalization::class ]
供应商发布
完成以上步骤后,您需要发布此包的供应商。它将在 config 文件夹下创建 laravel-localization.php 文件。此文件夹包含您的本地化配置。
php artisan vendor:publish --provider="Rohit\LaravelLocalization\LaravelLocalizationServiceProvider"
laravel-localization.php 文件将包含以下结构
return [ // Add any language you want to support and comes as prefix in the url 'all_locales' => [ 'en', 'th' ], 'default_locale' => 'th', // Default locale will not be shown in the url ];
在这里,您可以添加项目中可用的所有本地化,并将 default_locale 设置为您想要排除前缀的值
注意:如果您想保留所有 URL 中的前缀,则可以保留此字段为空
例如
如果您的项目有 en 和 th 作为可用的本地化,并且您将 th 设置为默认本地化。那么 URL 将如下所示:
英文: http://your_domain.com/en/your_page
泰语: http://your_domain.com/your_page
它将跳过默认本地化 th 的 URL
中间件
之后,您需要更新 app\Http\Kernel.php 文件,并在 routeMiddleware 下添加以下行
protected $routeMiddleware = [ ........ ........ 'localization' => \Rohit\LaravelLocalization\Middleware\LanguageHandler::class, ]
路由
最后,您可以使用此配置和中间件来管理所有路由,以确保流畅运行
更新 app\Http\routes.php 文件,并将所有路由添加到此组下
Route::group([ 'prefix' => Localization::setLocale(), 'middleware' => ['localization'] ], function() { // All your routes here });
辅助函数
有一个辅助函数用于获取当前页面上语言切换器的 URL。您只需调用一个带有 locale 的函数即可
Localization::getLocaleUrl('en')