adrianmerk / laravel-intl
为Laravel提供易于使用的国际化函数
1.0.0
2024-08-14 14:45 UTC
Requires
- php: >=8.0
- commerceguys/intl: ^1.1.1
- illuminate/events: ^9.0|^10.0|^11.0
- illuminate/support: ^9.0|^10.0|^11.0
- nesbot/carbon: ^2.57.0
- punic/punic: ^3.7
- umpirsky/country-list: ^2.0.6
- umpirsky/locale-list: ^1.0
Requires (Dev)
- orchestra/testbench: ^7.1.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-19 05:49:12 UTC
README
基于各种库的本地化值检索和数值本地化模式格式化,为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()
来强制每个组件在应用程序剩余部分使用首选地区。通常您会在ServiceProvider的boot()
方法中设置此值。