js-localizer

0

Описание

Легковесный сервис локализации для JavaScript

Языки

  • JavaScript100%
README.md

@e22m4u/js-localizer

Легковесный сервис локализации для JavaScript.

Содержание

Установка

Модуль поддерживает ESM и CommonJS стандарты.

ESM

CommonJS

Использование

Создание экземпляра с указанием словарей и выполнение перевода.

i. Форматирование строк (

%s
,
%d
и др.) выполняется с помощью модуля @e22m4u/js-format.

Склонения

Для обработки форм множественного числа используется объект с ключами

one
,
few
,
many
.

Пример для русского языка (3 формы)

Пример для английского языка (2 формы)

Для языков с двумя формами множественного числа (например, английского) достаточно указать

one
и
many
(или
few
). Библиотека автоматически использует вторую форму для всех чисел, кроме
1
и
-1
.

Перевод по языковому объекту

Метод

o()
удобен, когда переводы хранятся не в глобальных словарях, а непосредственно в коде (например, в UI-компоненте).

Если перевод для текущей локали отсутствует, будет использована резервная локаль, а если и она недоступна, то будет возвращён перевод для первого найденного языка в объекте. Если подходящий перевод так и не будет найден (например, объект пуст), то метод вернёт пустую строку.

Дополнительные утилиты

Библиотека также экспортирует некоторые полезные функции.

numWords

Функция для выбора правильной формы слова в зависимости от числа. Она используется внутри

Localizer
, но может быть полезна и сама по себе.

Настройки конструктора

Параметры передаются в конструктор

new Localizer(options)
.

  • locale?: string

    Текущая локаль. Используется как основная локаль для поиска соответствующего словаря или перевода в языковом объекте.
    По умолчанию:
    undefined

  • fallbackLocale?: string

    Резервная локаль. Используется, если перевод для текущей локали не найден или текущая локаль не определена.
    По умолчанию:
    'en'

  • dictionaries?: LocalizerDictionaries

    Объект со словарями, где ключ - это локаль.
    По умолчанию:
    {}

Методы экземпляра

  • getLocale(): string

    Возвращает текущую локаль. Если текущая локаль не установлена, то возвращается резервная локаль.

  • setLocale(locale: string): this

    Устанавливает текущую локаль. Это значение будет иметь приоритет над резервной локалью.

  • getFallbackLocale(): string

    Возвращает резервную (альтернативную) локаль. По умолчанию
    "en"
    .

  • setFallbackLocale(locale: string): this

    Устанавливает резервную локаль. Локаль будет использоваться для поиска перевода, если текущая локаль не задана, либо если в словаре текущей локали отсутствует нужный ключ.

  • getAvailableLocales(): string[]

    Возвращает локали имеющихся справочников.

  • setDictionary(locale: string, dictionary: object): this

    Устанавливает или заменяет словарь для указанной локали.

  • t(key: string, ...args: unknown[]): string

    Возвращает переведённую и отформатированную строку по ключу из словаря.

  • o(obj: object, ...args: unknown[]): string

    Извлекает и форматирует перевод из переданного объекта для текущей локали.

Тесты

Лицензия

MIT