Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Ініціалізація історії"v5.5.1029.06.2025
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюЯкщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на GitHub.
Посилання на документацію на GitHubСкопіювати документацію у форматі Markdown в буфер обміну
Перелічення / Утворення множини
Як працює перелічення
В Intlayer перелічення реалізується за допомогою функції enu, яка зіставляє конкретні ключі з відповідним вмістом. Ці ключі можуть представляти числові значення, діапазони або власні ідентифікатори. При використанні з React Intlayer або Next Intlayer відповідний вміст автоматично вибирається на основі локалі застосунку та визначених правил.
Налаштування перерахувань
Щоб налаштувати перерахування у вашому проєкті Intlayer, потрібно створити модуль контенту, який містить визначення перерахувань. Ось приклад простого перерахування для кількості автомобілів:
Скопіюйте код у буфер обміну
import { enu, type Dictionary } from "intlayer";
const carEnumeration = {
key: "car_count",
content: {
numberOfCar: enu({
"<-1": "Менше ніж -1 автомобіля",
"-1": "Мінус один автомобіль",
"0": "Жодних автомобілів",
"1": "Один автомобіль",
">5": "Кілька автомобілів",
">19": "Багато автомобілів",
"fallback": "Значення за замовчуванням", // Необов'язково
}),
},
} satisfies Dictionary;
export default carEnumeration;
У цьому прикладі enu відображає різні умови на конкретний вміст. При використанні в React-компоненті Intlayer може автоматично вибирати відповідний вміст на основі заданої змінної.
Порядок оголошення має значення в перерахуваннях Intlayer. Перше допустиме оголошення, те, яке буде обрано. Якщо застосовуються кілька умов, упевніться, що вони розташовані в правильному порядку, щоб уникнути непередбачуваної поведінки.
Якщо не вказано fallback, функція поверне undefined, якщо жоден ключ не підходить.
Використання перерахувань з React Intlayer
Щоб використовувати перелічення у компоненті React, ви можете скористатися хуком useIntlayer із пакета react-intlayer. Цей хук отримує потрібний контент на основі вказаного ключа. Ось приклад використання:
Скопіюйте код у буфер обміну
import type { FC } from "react";
import { useIntlayer } from "react-intlayer";
const CarComponent: FC = () => {
const { numberOfCar } = useIntlayer("car_count");
return (
<div>
<p>
{
numberOfCar(0) // Output: No cars
}
</p>
<p>
{
numberOfCar(6) // Output: Some cars
}
</p>
<p>
{
numberOfCar(20) // Output: Many cars
}
</p>
<p>
{
numberOfCar(0.01) // Output: Fallback value
}
</p>
</div>
);
};
Щоб використовувати перелічення у клієнтських компонентах Next.js, отримайте його за допомогою хука useIntlayer. Ось приклад:
Скопіюйте код у буфер обміну
"use client";
import type { FC } from "react";
import { useIntlayer } from "next-intlayer";
const CarComponent: FC = () => {
const { numberOfCar } = useIntlayer("car_count");
return (
<div>
<p>{numberOfCar(6)}</p>
</div>
);
};
export default CarComponent;
Щоб використовувати перелічення у компонентах Vue, отримайте його за допомогою хука useIntlayer. Ось приклад:
Скопіюйте код у буфер обміну
Щоб використовувати перелічення у компонентах Svelte, отримайте його за допомогою хука useIntlayer. Доступ до сховища здійснюється через $. Ось приклад:
Скопіюйте код у буфер обміну
Щоб використовувати перелічення у компонентах Preact, отримайте його за допомогою хука useIntlayer. Ось приклад:
Скопіюйте код у буфер обміну
import type { FC } from "preact";
import { useIntlayer } from "preact-intlayer";
const CarComponent: FC = () => {
const { numberOfCar } = useIntlayer("car_count");
return (
<div>
<p>{numberOfCar(6)}</p>
</div>
);
};
export default CarComponent;
Щоб використовувати перелічення у компонентах SolidJS, отримайте його за допомогою хука useIntlayer. Ось приклад:
Скопіюйте код у буфер обміну
import type { Component } from "solid-js";
import { useIntlayer } from "solid-intlayer";
const CarComponent: Component = () => {
const { numberOfCar } = useIntlayer("car_count");
return (
<div>
<p>{numberOfCar(6)}</p>
</div>
);
};
export default CarComponent;
Щоб використовувати перелічення у компонентах Angular, отримайте його за допомогою хука useIntlayer. Ось приклад:
Скопіюйте код у буфер обміну
Щоб використовувати перелічення з vanilla-intlayer, отримайте його за допомогою хука useIntlayer. Ось приклад:
Скопіюйте код у буфер обміну
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
installIntlayer();
const content = useIntlayer("car_count").onChange((newContent) => {
document.getElementById("cars")!.textContent = newContent.numberOfCar(6);
});
// Initial render
document.getElementById("cars")!.textContent = content.numberOfCar(6);
Додаткові ресурси
Для детальнішої інформації про налаштування та використання зверніться до наступних ресурсів:
Ці ресурси надають додаткову інформацію про налаштування та використання Intlayer в різних середовищах і з різними фреймворками.
Використання порядкового перелічення
Щоб використовувати це в компоненті React, викличте перелічення з останньою цифрою числа для отримання правильного суфікса, а потім передайте повне число як значення вставки:
Скопіюйте код у буфер обміну
import type { FC } from "react";
import { useIntlayer } from "react-intlayer";
const RankingComponent: FC<{ count: number }> = ({ count }) => {
const { ordinal } = useIntlayer("ranking_component");
// Get the last digit to determine the correct suffix
const lastDigit = Math.abs(count) % 10;
return (
<div>
<p>
{
ordinal(lastDigit)({ count }) // e.g., "5th place" for count=5
}
</p>
</div>
);
};
Щоб використовувати це в клієнтських компонентах Next.js, викличте перелічення з останньою цифрою числа для отримання правильного суфікса, а потім передайте повне число як значення вставки:
Скопіюйте код у буфер обміну
"use client";
import type { FC } from "react";
import { useIntlayer } from "next-intlayer";
const RankingComponent: FC<{ count: number }> = ({ count }) => {
const { ordinal } = useIntlayer("ranking_component");
const lastDigit = Math.abs(count) % 10;
return (
<div>
<p>{ordinal(lastDigit)({ count })}</p>
</div>
);
};
export default RankingComponent;
Щоб використовувати це в компонентах Vue, викличте перелічення з останньою цифрою числа для отримання правильного суфікса, а потім передайте повне число як значення вставки:
Скопіюйте код у буфер обміну
Щоб використовувати це в компонентах Svelte, викличте перелічення з останньою цифрою числа для отримання правильного суфікса, а потім передайте повне число як значення вставки:
Скопіюйте код у буфер обміну
Щоб використовувати це в компонентах Preact, викличте перелічення з останньою цифрою числа для отримання правильного суфікса, а потім передайте повне число як значення вставки:
Скопіюйте код у буфер обміну
import type { FC } from "preact";
import { useIntlayer } from "preact-intlayer";
const RankingComponent: FC<{ count: number }> = ({ count }) => {
const { ordinal } = useIntlayer("ranking_component");
const lastDigit = Math.abs(count) % 10;
return (
<div>
<p>{ordinal(lastDigit)({ count })}</p>
</div>
);
};
export default RankingComponent;
Щоб використовувати це в компонентах SolidJS, викличте перелічення з останньою цифрою числа для отримання правильного суфікса, а потім передайте повне число як значення вставки:
Скопіюйте код у буфер обміну
import type { Component } from "solid-js";
import { useIntlayer } from "solid-intlayer";
const RankingComponent: Component<{ count: number }> = (props) => {
const { ordinal } = useIntlayer("ranking_component");
return (
<div>
<p>{ordinal(Math.abs(props.count) % 10)({ count: props.count })}</p>
</div>
);
};
export default RankingComponent;
Щоб використовувати це в компонентах Angular, викличте перелічення з останньою цифрою числа для отримання правильного суфікса, а потім передайте повне число як значення вставки:
Скопіюйте код у буфер обміну
Щоб використовувати це з vanilla-intlayer, викличте перелічення з останньою цифрою числа для отримання правильного суфікса, а потім передайте повне число як значення вставки:
Скопіюйте код у буфер обміну
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
installIntlayer();
const content = useIntlayer("ranking_component");
const lastDigit = Math.abs(5) % 10;
document.getElementById("ranking")!.textContent = content.ordinal(lastDigit)({
count: 5,
});
Additional Resources
Для отримання детальнішої інформації про налаштування та використання зверніться до наступних ресурсів:
Ці ресурси надають глибше розуміння налаштування та використання Intlayer у різних середовищах та фреймворках.
