Skip to content
This repository has been archived by the owner on Oct 1, 2024. It is now read-only.

Latest commit

 

History

History

name

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

@shopify/name

Caution

@shopify/name is deprecated.

Shopifolk, see Shopify/quilt-internal for information on the latest packages available for use internally.

Build Status Build Status License: MIT npm version npm bundle size (minified + gzip)

Utilities for formatting localized names.

Installation

yarn add @shopify/name

formatName

Formats a name (given name and/or family name) according to the locale. For example:

  • formatName({name: {givenName: 'John', familyName: 'Smith'}, locale: 'en'}) will return John in English and Smith様 in Japanese
  • formatName({name: {givenName: 'John', familyName: 'Smith'}, locale: 'en', options: {full: true}}) will return John Smith in English and SmithJohn in Japanese

hasFamilyNameGivenNameOrdering

Returns true when the provided locale formats family name before given name. For example:

  • hasFamilyNameGivenNameOrdering('ja') will return true
  • hasFamilyNameGivenNameOrdering('en') will return false

abbreviateName

Takes a name (given and family name) and returns a language appropriate abbreviated name, or will return formatName if it is unable to find a suitable abbreviation.

For example:

  • abbreviateName({name: {givenName: 'John', familyName: 'Smith'}, locale: 'en'}) will return JS
  • abbreviateName({name: {givenName: '健', familyName: '田中'}, locale: 'en'}) will return 田中

You may also pass an optional idealMaxLength parameter, which gives the maximum allowable abbreviation length when trying to abbreviate a name in the Korean language (default 3 characters). In Korean, if the given name is longer than this length, the method will instead return the first character of the given name.

abbreviateBusinessName

Takes a business name and returns a language appropriate abbreviated name, or will return the input name if it is unable to find a suitable abbreviation.

For example:

  • abbreviateBusinessName({name: 'Shopify'}) will return Sho
  • abbreviateBusinessName({name: 'My Store'}) will return MS
  • abbreviateBusinessName({name: '任天堂'}) will return 任天堂

You may also pass an optional idealMaxLength parameter, which gives the maximum allowable abbreviation length when trying to abbreviate a name.