adrianmerk/laravel-intl

为Laravel提供易于使用的国际化函数

1.0.0 2024-08-14 14:45 UTC

This package is auto-updated.

Last update: 2024-09-19 05:49:12 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

基于各种库的本地化值检索和数值本地化模式格式化,为Laravel 8和Lumen提供易于使用的国际化函数。

这是对已归档的Propaganistas/Laravel-Intl软件包的分支。感谢Propaganistas的出色工作!!!

概述

安装

运行以下命令以安装软件包的最新版本

composer require rivalex/laravel-intl

Laravel

如果您不使用自动发现,请打开应用程序配置并将在$providers数组中添加服务提供程序。

'providers' => [
   ...
   Rivalex\LaravelIntl\IntlServiceProvider::class,
],

添加别名

现在添加别名

添加别名

在您的config/app.php文件上注册外观。

'aliases' => [
   // ...
   'Country' => Rivalex\LaravelIntl\Facades\Country::class,
   'Currency' => Rivalex\LaravelIntl\Facades\Currency::class,
   'Language' => Rivalex\LaravelIntl\Facades\Language::class,
   'Number' => Rivalex\LaravelIntl\Facades\Number::class,
],
'aliases' => [
   // ...
   'Country' => Rivalex\LaravelIntl\Facades\Country::class,
   'Currency' => Rivalex\LaravelIntl\Facades\Currency::class,
   'Language' => Rivalex\LaravelIntl\Facades\Language::class,
   'Number' => Rivalex\LaravelIntl\Facades\Number::class,
],

Lumen

bootstrap/app.php中,注册服务提供程序。

$app->register(Rivalex\LaravelIntl\IntlServiceProvider::class);

使用方法

注意:始终使用辅助函数或外观,或使用依赖注入。

国家

输出本地化的国家名称。

use Rivalex\LaravelIntl\Facades\Country;

// Application locale: nl
Country::name('US'); // Verenigde Staten
Country::all(); // ['US' => 'Verenigde Staten', 'BE' => 'België', ...]
// Application locale: en
country('US'); // United States
country()->all(); // ['US' => 'United States', 'BE' => 'Belgium', ...]

货币

输出本地化的货币名称,并格式化货币金额到本地化模式。

use Rivalex\LaravelIntl\Facades\Currency;

// Application locale: nl
Currency::name('USD'); // Amerikaanse dollar
Currency::symbol('USD'); // $
Currency::format(1000, 'USD'); // $ 1.000,00
Currency::formatAccounting(-1234, 'USD'); // (US$ 1.234,00)
Currency::all(); // ['USD' => 'Amerikaanse dollar', 'EUR' => 'Euro', ...]
// Application locale: en
currency('USD'); // US Dollar
currency()->symbol('USD'); // $
currency(1000, 'USD'); // $1,000.00
currency()->all(); // ['USD' => 'US Dollar', 'EUR' => 'Euro', ...]

将本地化值解析为原生PHP数字。

use Rivalex\LaravelIntl\Facades\Currency;

// Application locale: nl
Currency::parse('€ 1.234,50'); // 1234.5
// Application locale: nl
currency()->parse('€ 1.234,50'); // 1234.5

日期

只需使用Illuminate\Support\Facades\Date

还有其他方法可以输出本地化的常用日期格式。例如,toShortDateString()

  • 地区"en": 1/31/2018
  • 地区"nl": 31-01-2018
use Illuminate\Support\Facades\Date;

$date = Date::now(); // or carbon()->now()

$date->toShortDateString();
$date->toMediumDateString();
$date->toLongDateString();
$date->toFullDateString();

$date->toShortTimeString();
$date->toMediumTimeString();
$date->toLongTimeString();
$date->toFullTimeString();

$date->toShortDatetimeString();
$date->toMediumDatetimeString();
$date->toLongDatetimeString();
$date->toFullDatetimeString();

语言

输出本地化的语言名称。

use Rivalex\LaravelIntl\Facades\Language;

// Application locale: nl
Language::name('en'); // Engels
Language::all(); // ['en' => 'Engels', 'nl' => 'Nederlands', ...]
// Application locale: en
language('en'); // English
language()->all(); // ['en' => 'English', 'nl' => 'Dutch', ...]

数字

输出本地化数值到本地化模式。

use Rivalex\LaravelIntl\Facades\Number;

// Application locale: en
Number::format(1000); // '1,000'
Number::percent('0.75'); // '75%'
// Application locale: fr
number(1000); // '1 000'
number()->percent('0.75'); // '75 %'

将本地化值解析为原生PHP数字。

use Rivalex\LaravelIntl\Facades\Number;

// Application locale: fr
Number::parse('1 000'); // 1000
number()->parse('1,5'); // 1.5

更改地区

是否需要使用除当前应用程序地区之外的地区?您可以通过使用usingLocale()方法临时使用另一个地区。

country()->name('US'); // United States

country()->usingLocale('nl', function($country) {
    return $country->name('US');
}); // Verenigde Staten

country()->name('US'); // United States

或者,您可以通过在辅助函数或外观上调用setLocale()来强制每个组件在应用程序剩余部分使用首选地区。通常您会在ServiceProviderboot()方法中设置此值。