Перечисление / Плюрализация

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

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

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

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

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

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

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

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

    javascript
    import { useIntlayer } from "react-intlayer";
    
    const CarComponent = () => {
      const content = useIntlayer("car_count");
    
      return (
        <div>
          <p>{content.numberOfCar(0)}</p> {/* Вывод: Нет автомобилей */}
          <p>{content.numberOfCar(6)}</p>{" "}
          {/* Вывод: Некоторое количество автомобилей */}
          <p>{content.numberOfCar(20)}</p>{" "}
          {/* Вывод: Некоторое количество автомобилей */}
        </div>
      );
    };
    
    export default CarComponent;
    

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

    Важные примечания

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

    Лучшие практики для перечисления

    Чтобы убедиться, что ваши перечисления работают как ожидается, следуйте этим лучшим практикам:

    • Последовательное именование: Используйте чёткие и последовательные идентификаторы для модулей перечислений, чтобы избежать путаницы.
    • Документация: Документируйте свои ключи перечислений и их ожидаемые выходные данные для обеспечения будущей поддерживаемости.
    • Обработка ошибок: Реализуйте обработку ошибок для управления случаями, когда не найдено действительное перечисление.
    • Оптимизация производительности: Для крупных приложений уменьшите количество отслеживаемых расширений файлов, чтобы улучшить производительность.

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

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

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

    Если у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.

    Ссылка на документацию GitHub