通力/本地化

一个用于本地化基于位置的属性并将值强制转换为基于正则表达式的期望格式的库。

v1.0 2014-12-11 21:18 UTC

This package is not auto-updated.

Last update: 2024-09-24 03:28:38 UTC


README

Build Status Coverage Status Scrutinizer Code Quality

Total Downloads Latest Stable Version Latest Unstable Version License

SensioLabsInsight

一个用于本地化基于位置的属性并将值强制转换为基于正则表达式的期望格式的库。

注意: 这并不是一个翻译或国际化库。

即将推出更多本地化 - 如果您想帮助填补缺失的部分,请随时提交PR!

内容

安装

推荐的安装方法是使用 Composer

更新您的项目 composer.json 文件以包含 Localize

{
    "require": {
        "tonglil/localize": "1.*"
    }
}

然后更新项目依赖项以包含此库

composer update tonglil/localize

安装后,您需要引入 Composer 的自动加载器

require 'vendor/autoload.php';

本地化

国家代码基于 ISO 3166-1。电话号码可以格式化为 E.164 格式

当前支持的本地化

  • CA

计划中的本地化

  • US
  • FR
  • GB
  • AU
  • CN

本地化存储在 src/locales 目录。

格式

当前支持的默认格式

  • 地区(省/州)
  • 邮政编码(邮政/邮编)
  • 国家名称
  • 电话号码(区域“事实上的”格式化或 E.164 格式化)

示例

use Localize\Localize;

// Create a new localize instance.
$localize = new Localize();
// Set the locale using a two digit ISO country code.
$localize->setLocale('CA');

$address = [
    'address'       => '525 Seymour Street',
    'city'          => 'Vancouver',
    'region'        => $localize->region('british columbia', true),
    'postal_code'   => $localize->postalCode('v6b3h7'),
    'country'       => $localize->country('CANADA', false),
    'phone'         => $localize->phone('5555555555'),
];

echo $address['region'];        // BC
echo $address['postal_code'];   // V6B 3H7
echo $address['country'];       // Canada
echo $address['phone'];         // 555-555-5555

// Region and country both accept a second parameter that formats the value to
// its short version when true, otherwise uses the long version by default.
echo $localize->region('ontario', true);    // ON
echo $localize->region('ontario', false);   // Ontario

// Postal code and phone number will attempt to massage a limit amount of
// formatting into the standard output.
echo $localize->phone('555 555-5555');                  // 555-555-5555 regional "de-facto" formatting
echo $localize->phoneE164('+1 555 555-5555');           // 011-1-555-555-5555 full E.164 formatting
echo $localize->phoneE164('+1 555 555-5555', false);    // +1-555-555-5555 common E.164 formatting
echo $localize->postalCode('V6b 3h7');                  // V6B 3H7

// Basic validation is performed; if a match is not found and can not be
// massaged to a format, null is returned.
var_dump($localize->phone('abc-def-gehi')); // null