rafahernandez / laravel-intl
为 Laravel 提供易于使用的国际化函数
3.3
2021-03-23 20:09 UTC
Requires
- php: >=7.1.3
- commerceguys/intl: ^1.0.1
- illuminate/events: ^5.8|^6.0|^7.0|^8.0
- illuminate/support: ^5.8|^6.0|^7.0|^8.0
- nesbot/carbon: ^2.0
- punic/punic: ^3.1
- umpirsky/country-list: ^2.0
- umpirsky/locale-list: ^1.0
Requires (Dev)
README
这是 Propaganistas 存档包的分支
基于各种库,为 Laravel 5 和 Lumen 提供易于使用的国际化函数,以轻松检索本地化值并将数值格式化为本地化模式。
概览
安装
运行以下命令安装该软件包的最新版本
composer require rafahernandez/laravel-intl
Laravel
如果您不使用自动发现,请打开您的应用程序配置文件,并将服务提供者添加到 $providers 数组中
'providers' => [ ... rafahernandez\LaravelIntl\IntlServiceProvider::class, ],
Lumen
在 bootstrap/app.php 中,注册服务提供者
$app->register(RafaHernandez\LaravelIntl\IntlServiceProvider::class);
使用
注意:始终使用辅助函数或外观,或使用依赖注入。
国家
输出本地化国家名称。
use RafaHernandez\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 RafaHernandez\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 RafaHernandez\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": 2/18/20
- 区域 "es": 18/2/20
$date = Carbon\Carbon::parse("2020-02-18T19:13:24+00:00"); $date->toShortDateString(); // es: "18/2/20" - en: "2/18/20" $date->toMediumDateString(); // es: "18 feb. 2020" - en: "Feb 18, 2020" $date->toLongDateString(); // es: "18 de febrero de 2020" - en: "February 18, 2020" $date->toFullDateString(); // es: "martes, 18 de febrero de 2020" - en: "Tuesday, February 18, 2020" $date->toShortTimeString(); // es: "19:13" - en: "7:13 PM" $date->toMediumTimeString(); // es: "19:13:24" - en: "7:13:24 PM" $date->toLongTimeString(); // es: "19:13:24 GMT+0" - en: "7:13:24 PM GMT+0" $date->toFullTimeString(); // es: "19:13:24 (GMT+00:00)" - en: "7:13:24 PM GMT+00:00" $date->toShortDatetimeString(); // es: "18/2/20 19:13" - en: "2/18/20, 7:13 PM" $date->toMediumDatetimeString(); // es: "18 feb. 2020 19:13:24" - en: "Feb 18, 2020, 7:13:24 PM" $date->toLongDatetimeString(); // es: "18 de febrero de 2020, 19:13:24 GMT+0" - en: "February 18, 2020 at 7:13:24 PM GMT+0" $date->toFullDatetimeString(); // es: "martes, 18 de febrero de 2020, 19:13:24 (GMT+00:00)" - en: "Tuesday, February 18, 2020 at 7:13:24 PM GMT+00:00"
语言
输出本地化语言名称。
use RafaHernandez\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 RafaHernandez\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 RafaHernandez\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() 方法中设置此值。