rohit/laravel-localization

Laravel 框架的本地化

1.1.0 2017-06-19 04:12 UTC

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 并添加 ProvidersAliases

    '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 中的前缀,则可以保留此字段为空

例如

如果您的项目有 enth 作为可用的本地化,并且您将 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')