Name Formatting
Format Source
Name formats can be found in name_format.yml. Name formats are grouped by locale.
An example of format configuration for en_US:
en_US: "%prefix% %first_name% %middle_name% %last_name% %suffix%"
Possible format placeholders:
prefix - name prefix
first_name - first name
middle_name - middle name
last_name - last name
suffix - name suffix
When format placeholder is in upper case, the corresponding value will be also be uppercased.
PHP Name Formatter
Class: Oro\Bundle\LocaleBundle\Formatter\NameFormatter
Service id: oro_locale.formatter.name
Formats name based on given locale.
Methods and Usage Examples
format
string *public* *format*(*person*[, string *locale*])
This method can be used to format objects that implement one of the following interfaces:
FirstNameInterface - defines getter for first name
MiddleNameInterface - defines getter for middle name
LastNameInterface - defines getter for last name
NamePrefixInterface - defines getter for name prefix
NameSuffixInterface - defines getter for name suffix
FullNameInterface - extends FirstNameInterface, MiddleNameInterface, LastNameInterface, NamePrefixInterface and NameSuffixInterface
To format a name using a specific locale format, pass locale parameters.
Format:
en_US: "%prefix% %first_name% %middle_name% %LAST_NAME% %suffix%"
Code:
$formatter = $container->get('oro_locale.formatter.name');
// Person implements FullNameInterface
$person->setNamePrefix('Mr.');
$person->setFirstName('First');
$person->setMiddleName('Middle');
$person->setLastName('Last');
$person->setNameSuffix('Sn.');
echo $formatter->format($person, 'en_US');
Outputs:
Mr. First Middle LAST Sn.
getNameFormat
string *public* *getNameFormat*([string *locale*])
Get the name format based on the locale; if the argument is not passed, locale from the system configuration is used.
Twig
Filters
oro_format_name
This filter uses the format method from the name formatter, and has the same logic.
{{ user|oro_format_name }}
JS
Methods and Usage Examples
format
string *public* *format*(Object *person*[, String *locale*])
This method can be used to format names. To format a name using a specific locale, pass format locale parameters.
Possible name object parameters are the same as format placeholder keys.
Usage example:
import nameFormatter from 'orolocale/js/formatter/name';
const formattedName = nameFormatter.format({
prefix: 'Mr.',
first_name: 'First',
middle_name: 'Middle',
last_name: 'Last',
suffix: 'Sn.'
});
getNameFormat
string *public* *getNameFormat*([string *locale*])
Gets the name format based on the locale; if the argument is not passed, the locale from the system configuration is used.