UNPKG

@wordpress/i18n

Version:
226 lines (124 loc) 6.33 kB
# Internationalization (i18n) Internationalization utilities for client-side localization. See [How to Internationalize Your Plugin](https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/) for server-side documentation. ## Installation Install the module: ```bash npm install @wordpress/i18n --save ``` _This package assumes that your code will run in an **ES2015+** environment. If you're using an environment that has limited or no support for such language features and APIs, you should include [the polyfill shipped in `@wordpress/babel-preset-default`](https://github.com/WordPress/gutenberg/tree/HEAD/packages/babel-preset-default#polyfill) in your code._ ## Usage ```js import { sprintf, _n } from '@wordpress/i18n'; sprintf( _n( '%d hat', '%d hats', 4, 'text-domain' ), 4 ); // 4 hats ``` For a complete example, see the [Internationalization section of the Block Editor Handbook](https://developer.wordpress.org/block-editor/developers/internationalization/). ## API <!-- START TOKEN(Autogenerated API docs) --> ### createI18n Create an i18n instance _Parameters_ - _initialData_ `[LocaleData]`: Locale data configuration. - _initialDomain_ `[string]`: Domain for which configuration applies. - _hooks_ `[Hooks]`: Hooks implementation. _Returns_ - `I18n`: I18n instance. ### defaultI18n Default, singleton instance of `I18n`. ### getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape. _Related_ - <http://messageformat.github.io/Jed/> _Parameters_ - _domain_ `[string]`: Domain for which to get the data. _Returns_ - `LocaleData`: Locale data. ### hasTranslation Check if there is a translation for a given string (in singular form). _Parameters_ - _single_ `string`: Singular form of the string to look up. - _context_ `[string]`: Context information for the translators. - _domain_ `[string]`: Domain to retrieve the translated text. _Returns_ - `boolean`: Whether the translation exists or not. ### isRTL Check if current locale is RTL. **RTL (Right To Left)** is a locale property indicating that text is written from right to left. For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages, including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`). _Returns_ - `boolean`: Whether locale is RTL. ### resetLocaleData Resets all current Tannin instance locale data and sets the specified locale data for the domain. Accepts data in a Jed-formatted JSON object shape. _Related_ - <http://messageformat.github.io/Jed/> _Parameters_ - _data_ `[LocaleData]`: Locale data configuration. - _domain_ `[string]`: Domain for which configuration applies. ### setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a Jed-formatted JSON object shape. _Related_ - <http://messageformat.github.io/Jed/> _Parameters_ - _data_ `[LocaleData]`: Locale data configuration. - _domain_ `[string]`: Domain for which configuration applies. ### sprintf Returns a formatted string. If an error occurs in applying the format, the original format string is returned. _Related_ - <https://www.npmjs.com/package/sprintf-js> _Parameters_ - _format_ `string`: The format of the string to generate. - _args_ `...*`: Arguments to apply to the format. _Returns_ - `string`: The formatted string. ### subscribe Subscribes to changes of locale data _Parameters_ - _callback_ `SubscribeCallback`: Subscription callback _Returns_ - `UnsubscribeCallback`: Unsubscribe callback ### \_n Translates and retrieves the singular or plural form based on the supplied number. _Related_ - <https://developer.wordpress.org/reference/functions/_n/> _Parameters_ - _single_ `string`: The text to be used if the number is singular. - _plural_ `string`: The text to be used if the number is plural. - _number_ `number`: The number to compare against to use either the singular or plural form. - _domain_ `[string]`: Domain to retrieve the translated text. _Returns_ - `string`: The translated singular or plural form. ### \_nx Translates and retrieves the singular or plural form based on the supplied number, with gettext context. _Related_ - <https://developer.wordpress.org/reference/functions/_nx/> _Parameters_ - _single_ `string`: The text to be used if the number is singular. - _plural_ `string`: The text to be used if the number is plural. - _number_ `number`: The number to compare against to use either the singular or plural form. - _context_ `string`: Context information for the translators. - _domain_ `[string]`: Domain to retrieve the translated text. _Returns_ - `string`: The translated singular or plural form. ### \_x Retrieve translated string with gettext context. _Related_ - <https://developer.wordpress.org/reference/functions/_x/> _Parameters_ - _text_ `string`: Text to translate. - _context_ `string`: Context information for the translators. - _domain_ `[string]`: Domain to retrieve the translated text. _Returns_ - `string`: Translated context string without pipe. ### \_\_ Retrieve the translation of text. _Related_ - <https://developer.wordpress.org/reference/functions/__/> _Parameters_ - _text_ `string`: Text to translate. - _domain_ `[string]`: Domain to retrieve the translated text. _Returns_ - `string`: Translated text. <!-- END TOKEN(Autogenerated API docs) --> ## Contributing to this package This is an individual package that's part of the Gutenberg project. The project is organized as a monorepo. It's made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to [npm](https://www.npmjs.com/) and used by [WordPress](https://make.wordpress.org/core/) as well as other software projects. To find out more about contributing to this package or Gutenberg as a whole, please read the project's main [contributor guide](https://github.com/WordPress/gutenberg/tree/HEAD/CONTRIBUTING.md). <br /><br /><p align="center"><img src="https://s.w.org/style/images/codeispoetry.png?1" alt="Code is Poetry." /></p>