jsor / string-formatter
Localized formatting of personal names, addresses and telephone numbers.
Installs: 12 928
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 3
Forks: 1
Open Issues: 0
Requires
- php: ^8.0
- jsor/locale-data: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.12
- phpunit/phpunit: ^9.5
- vimeo/psalm: ^4.29
README
Localized formatting of personal names, addresses and telephone numbers.
Note: At the moment, only a NameFormatter is available. Address and telephone formatters will follow.
Installation
Install the latest version with Composer.
composer require jsor/string-formatter
Check the Packagist page for all available versions.
NameFormatter
The NameFormatter formats the appropriate representation of a person’s name for a locale by the given name parts.
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";
The above example will output:
Mr. John Doe
Herr John Doe
Doe John 先生
A custom pattern can be passed as the second argument to the constructor.
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.', ]);
The above example will output:
Mr. John Doe
Pattern
The pattern argument can contain any combination of characters and field descriptors.
The following field descriptor are supported.
%f
Family names.%F
Family names in uppercase.%g
First given name.%G
First given initial.%l
First given name with latin letters. In some cultures, eg on Taiwan it is customary to also have a first name written with Latin letters, although the rest of the name is written in another script.%o
Other shorter name, eg. "Bill".%m
Additional given names.%M
Initials for additional given names.%p
Profession.%d
Salutation, supporting the FDCC-sets conventions, with1
forname_gen
,2
forname_mr
,3
forname_mrs
,4
forname_miss
,5
forname_ms
.%s
Full Salutation, such as "Doctor".%S
Abbreviated salutation, such as "Mr." or "Dr."%t
If the preceding field descriptor resulted in an empty string, then the empty string, else a space.
Values
The array argument passed to format()
can define a value for each field
descriptor. The keys can be either the descriptor character or a named key.
The following keys are supported.
family_name
,family_names
orf
(for%f
)family_name_in_uppercase
,family_names_in_uppercase
orF
(for%F
)given_name
,given_names
org
(for%g
)given_initial
,given_initials
orG
(for%G
)given_name_with_latin_letters
,given_names_with_latin_letters
orl
(for%l
)other_shorter_name
,other_shorter_names
oro
(for%o
)additional_given_name
,additional_given_names
orm
(for%m
)initials_for_additional_given_name
,initials_for_additional_given_names
orM
(for%M
)profession
,professions
orp
(for%p
)salutation
,salutations
ord
(for%d
)full_salutation
,full_salutations
ors
(for%s
)abbreviated_salutation
,abbreviated_salutations
orS
(for%S
)
License
Copyright (c) 2015-2022 Jan Sorgalla. Released under the MIT license.