Creation:2024-08-11Last update:2025-06-29

    Перечисление / Множественное число

    Как работает перечисление

    В Intlayer перечисление реализуется с помощью функции enu, которая сопоставляет определённые ключи с соответствующим содержимым. Эти ключи могут представлять числовые значения, диапазоны или пользовательские идентификаторы. При использовании с React Intlayer или Next Intlayer соответствующее содержимое автоматически выбирается на основе локали приложения и заданных правил.

    Настройка перечисления

    Чтобы настроить перечисление в вашем проекте Intlayer, необходимо создать модуль содержимого, включающий определения перечислений. Вот пример простого перечисления для количества автомобилей:

    **/*.content.ts
    import { enu, type Dictionary } from "intlayer";
    
    const carEnumeration = {
      key: "car_count",
      content: {
        numberOfCar: enu({
          "<-1": "Меньше чем минус один автомобиль",
          "-1": "Минус один автомобиль",
          "0": "Нет автомобилей",
          "1": "Один автомобиль",
          ">5": "Несколько автомобилей",
          ">19": "Много автомобилей",
          "fallback": "Запасное значение", // Необязательно
        }),
      },
    } satisfies Dictionary;
    
    export default carEnumeration;

    В этом примере enu сопоставляет различные условия с конкретным содержимым. При использовании в React-компоненте Intlayer может автоматически выбирать соответствующее содержимое на основе переданной переменной.

    Порядок объявления важен в перечислениях Intlayer. Первое подходящее объявление будет выбрано. Если применяются несколько условий, убедитесь, что они расположены в правильном порядке, чтобы избежать непредвиденного поведения.
    Если запасное значение не объявлено, функция вернёт undefined, если ни один ключ не совпадает.

    Использование перечислений с React Intlayer

    Для использования перечислений в React-компоненте вы можете воспользоваться хуком useIntlayer из пакета react-intlayer. Этот хук получает правильное содержимое на основе указанного идентификатора. Вот пример того, как его использовать:

    **/*.tsx
    import type { FC } from "react";
    import { useIntlayer } from "react-intlayer";
    
    const CarComponent: FC = () => {
      const { numberOfCar } = useIntlayer("car_count");
    
      return (
        <div>
          <p>
            {
              numberOfCar(0) // Вывод: Нет автомобилей
            }
          </p>
          <p>
            {
              numberOfCar(6) // Вывод: Несколько автомобилей
            }
          </p>
          <p>
            {
              numberOfCar(20) // Вывод: Много автомобилей
            }
          </p>
          <p>
            {
              numberOfCar(0.01) // Вывод: Запасное значение
            }
          </p>
        </div>
      );
    };

    В этом примере компонент динамически изменяет свой вывод в зависимости от количества машин. Правильный контент выбирается автоматически в зависимости от указанного диапазона.

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

    Для получения более подробной информации о настройке и использовании обратитесь к следующим ресурсам:

    Эти ресурсы предоставляют дополнительную информацию о настройке и использовании Intlayer в различных средах и с разными фреймворками.