Skip to main content
The @wordpress/i18n package provides internationalization utilities for client-side JavaScript localization, enabling multilingual WordPress applications.

Installation

Basic Usage

Translation Functions

__()

Translates a string.
Parameters:
  • text (string) - Text to translate
  • domain (string) - Text domain (optional)
Returns: Translated string

_x()

Translates a string with context.
Context helps translators understand the meaning when the same English word has different translations. Parameters:
  • text (string) - Text to translate
  • context (string) - Context information
  • domain (string) - Text domain (optional)

_n()

Translates singular or plural form based on a number.
Parameters:
  • single (string) - Singular form
  • plural (string) - Plural form
  • number (number) - Number to compare
  • domain (string) - Text domain (optional)

_nx()

Translates singular/plural form with context.
Parameters:
  • single (string) - Singular form
  • plural (string) - Plural form
  • number (number) - Number to compare
  • context (string) - Context information
  • domain (string) - Text domain (optional)

String Formatting

sprintf()

Formats strings with placeholders.

Common Format Specifiers

Practical Examples

Simple Translation

With Context

Plural Forms

Formatted Messages

Complex Example

Locale Data Management

setLocaleData()

Sets translation data for a text domain.

getLocaleData()

Retrieves locale data for a domain.

resetLocaleData()

Resets all locale data for a domain.

Text Direction

isRTL()

Checks if the current locale uses right-to-left text direction.
RTL languages include:
  • Arabic (ar)
  • Hebrew (he)
  • Persian (fa)
  • Urdu (ur)

RTL Layout Example

Translation Checking

hasTranslation()

Checks if a translation exists.
Parameters:
  • single (string) - Text to check
  • context (string) - Context (optional)
  • domain (string) - Text domain (optional)

Custom i18n Instance

createI18n()

Creates an isolated i18n instance.

WordPress Integration

Loading Translations

In WordPress, load translations in PHP:

Translation Files

WordPress expects translation files in JSON format:

Best Practices

1. Always Use Text Domain

2. Use Context for Ambiguous Terms

3. Don’t Concatenate Translations

4. Handle Plural Forms Correctly

5. Make Strings Descriptive

6. Avoid Variables in Translations

Generating Translation Files

Use WP-CLI to extract translatable strings:

Testing Translations

Test with placeholder translations:

TypeScript Support

Learn More