承接 webnuvola/laravel-i18n 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

webnuvola/laravel-i18n

最新稳定版本:v2.2.0

Composer 安装命令:

composer require webnuvola/laravel-i18n

包简介

Laravel internationalization package

README 文档

README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

This package allows you to register i18n routes for your Laravel app.

Installation

Install via composer:

composer require webnuvola/laravel-i18n

After the installation, you must publish the config file and set it up to your needs.

php artisan vendor:publish --provider="Webnuvola\Laravel\I18n\I18nServiceProvider" --tag="config"

Configuration

After publishing, the configuration will be located in config/i18n.php.

You must configure at least one region to use this package.

Example configuration:

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Available regions
    |--------------------------------------------------------------------------
    |
    | List of languages and countries to view your site in the format {language}-{country}.
    | Available languages: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
    | Available countries: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
    | Examples: en-us, en-gb, it-it, ...
    |
    */

    'regions' => [
        'en-us',
        'en-gb',
    ],

    /*
    |--------------------------------------------------------------------------
    | Default region
    |--------------------------------------------------------------------------
    |
    | The default region that will be assigned if running from console or current
    | route is not i18n. If null, the first element of regions will be used
    | as default.
    |
    */

    'default' => null,

];

Usage

Define i18n routes in routes/web.php:

use Illuminate\Routing\Router;
use Webnuvola\Laravel\I18n\Facades\I18nRoutes;

I18nRoutes::group(static function (Router $router): void {
    Route::get('/', [HomeController::class, 'show'])->name('home');
    Route::get('/profile', [ProfileController::class, 'show'])->name('profile.show');
});

This will register the following routes (with the config file of previous step):

Name Url
en-us.home /en-us
en-us.profile.show /en-us/profile
en-gb.home /en-gb
en-gb.profile.show /en-gb/profile

I18n functions

To set or get the current region, you can use the following methods:

use Webnuvola\Laravel\I18n\Facades\I18n;

I18n::setRegion('en-us');

I18n::getRegion(); // en-us
I18n::getCountry(); // us
I18n::getLanguage(); // en

Helper functions

This package will extend this default Laravel helper functions by adding i18n support:

url() -> i18n_url()

I18n::setRegion('en-us');

url('page'); // /page
i18n_url('page'); // /en-us/page

route() -> i18n_route()

I18n::setRegion('en-us');

route('profile.show'); // /profile
i18n_route('profile.show'); // /en-us/profile

// If you want a fixed region i18n url
route('en-gb.profile.show'); // /en-gb/profile

redirect() -> i18n_redirect()

I18n::setRegion('en-us');

redirect('redirect-page'); // /redirect-page
i18n_redirect('redirect-page'); // /en-us/redirect-page

Security

If you discover any security-related issues, please email fabio@webnuvola.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

统计信息

  • 总下载量: 7.07k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-01-24