jsor/string-formatter

个人姓名、地址和电话号码的本地化格式化。

v2.0.0 2022-10-17 06:33 UTC

This package is auto-updated.

Last update: 2024-09-17 10:38:48 UTC


README

个人姓名、地址和电话号码的本地化格式化。

Build Status Coverage Status

注意:目前,仅提供NameFormatter。地址和电话格式化器将在后续提供。

安装

使用Composer安装最新版本。

composer require jsor/string-formatter

查看Packagist页面获取所有可用版本。

NameFormatter

NameFormatter通过给定的姓名部分按地区格式化个人姓名的适当表示。

use Jsor\NameFormatter;

$nameParts = [
    'given_name' => 'John',
    'family_name' => 'Doe',
    'salutation' => 2 // name_mr
];

$enUsFormatter = new NameFormatter('en_US');
echo $enUsFormatter->format($nameParts)."\n";

$deDeFormatter = new NameFormatter('de_DE');
echo $deDeFormatter->format($nameParts)."\n";

$zhCnFormatter = new NameFormatter('zh_CN');
echo $zhCnFormatter->format($nameParts)."\n";

以上示例将输出

Mr. John Doe
Herr John Doe
Doe John 先生

可以将自定义模式作为构造函数的第二个参数传递。

use Jsor\NameFormatter;

$formatter = new NameFormatter('en_US', '%d%t%g%t%m%t%f');
echo $formatter->format([
    'given_name' => 'John',
    'family_name' => 'Doe',
    'salutation' => 'Mr.',
]);

以上示例将输出

Mr. John Doe

模式

模式参数可以包含任何字符和字段描述符的组合。

以下字段描述符被支持。

  • %f 姓氏。
  • %F 大写的姓氏。
  • %g 第一名给定的名字。
  • %G 第一名给定的首字母。
  • %l 用拉丁字母表示的第一名给定的名字。在某些文化中,例如在台湾,习惯上也用拉丁字母书写名字,尽管名字的其他部分用其他书写系统。
  • %o 其他较短的姓名,例如“Bill”。
  • %m 其他给定的名字。
  • %M 其他给定的名字的缩写。
  • %p 职业。
  • %d 问候语,支持FDCC-sets约定,1代表name_gen2代表name_mr3代表name_mrs4代表name_miss5代表name_ms
  • %s 全称问候语,例如“博士”。
  • %S 简称问候语,例如“先生”或“博士”。
  • %t 如果前面的字段描述符生成了空字符串,则为空字符串,否则为空格。

传递给format()的数组参数可以定义每个字段描述符的值。键可以是描述符字符或命名键。

以下键被支持。

  • family_namefamily_namesf(用于%f
  • family_name_in_uppercasefamily_names_in_uppercaseF(用于%F
  • given_namegiven_namesg(用于%g
  • given_initialgiven_initialsG(用于%G
  • given_name_with_latin_lettersgiven_names_with_latin_lettersl(用于%l
  • other_shorter_nameother_shorter_nameso(用于%o
  • additional_given_nameadditional_given_namesm(用于%m
  • initials_for_additional_given_nameinitials_for_additional_given_namesM(用于%M
  • professionprofessionsp(用于%p
  • salutationsalutationsd(用于%d
  • full_salutationfull_salutationss(用于%s
  • abbreviated_salutationabbreviated_salutationsS(用于%S

许可证

版权(c)2015-2022 Jan Sorgalla。在MIT许可证下发布。