Перевод
Определение переводов
Функция t в intlayer позволяет объявлять контент на нескольких языках. Эта функция обеспечивает типобезопасность, выдавая ошибку, если какой-либо перевод отсутствует, что особенно полезно в среде TypeScript.
Использование TypeScript
Пример объявления контента с переводами.
import { t, type Dictionary } from "intlayer";interface Content { welcomeMessage: string;}export default { key: "multi_lang", content: { welcomeMessage: t({ en: "Welcome to our application", fr: "Bienvenue dans notre application", es: "Bienvenido a nuestra aplicación", ru: "Добро пожаловать в наше приложение", }), },} satisfies Dictionary<Content>;
Конфигурация локалей
Для обеспечения правильной обработки переводов вы можете настроить поддерживаемые локали в intlayer.config.ts. Эта конфигурация позволяет определить языки, которые поддерживает ваше приложение:
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, Locales.RUSSIAN, ], },};export default config;
Использование переводов в React-компонентах
С помощью react-intlayer вы можете использовать переводы в React-компонентах. Пример:
import type { FC } from "react";import { useIntlayer } from "react-intlayer";const MyComponent: FC = () => { const content = useIntlayer("multi_lang"); return ( <div> <p>{content.welcomeMessage}</p> </div> );};export default MyComponent;
Этот компонент получает соответствующий перевод на основе текущей локали, установленной в вашем приложении.
Пользовательские объекты контента
intlayer поддерживает пользовательские объекты контента для перевода, позволяя определять более сложные структуры при обеспечении типобезопасности. Пример с пользовательским объектом:
import { t, type Dictionary } from "intlayer";interface ICustomContent { title: string; content: string;}const customContent = { key: "custom_content", content: { profileText: t<ICustomContent>({ en: { title: "Page Title", content: "Page Content", }, fr: { title: "Titre de la Page", content: "Contenu de la Page", }, es: { title: "Título de la Página", content: "Contenido de la Página", }, ru: { title: "Заголовок страницы", content: "Содержимое страницы", }, }), },} satisfies Dictionary;export default customContent;
Если у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHub