Содержимое этой страницы было переведено с помощью ИИ.

    Смотреть последнюю версию оригинального контента на английском

    Начало работы с декларацией вашего контента

    Расширения файлов

    По умолчанию Intlayer отслеживает все файлы с следующими расширениями для деклараций контента:

    • .content.json
    • .content.ts
    • .content.tsx
    • .content.js
    • .content.jsx
    • .content.mjs
    • .content.mjx
    • .content.cjs
    • .content.cjx

    Приложение будет искать файлы, соответствующие шаблону ./src/**/*.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx} по умолчанию.

    Эти стандартные расширения подходят для большинства приложений. Однако, если у вас есть специфические требования, обратитесь к руководству по настройке расширений контента для инструкций по их управлению.

    Для полного списка опций конфигурации посетите документацию по конфигурации.

    Объявление вашего контента

    Создавайте и управляйте вашими словарями:

    src/example.content.tsx
    import { t, enu, cond, nest, md, type Dictionary } from "intlayer";interface Content {  imbricatedContent: {    imbricatedContent2: {      stringContent: string;      numberContent: number;      booleanContent: boolean;      javaScriptContent: string;    };  };  multilingualContent: string;  quantityContent: string;  conditionalContent: string;  externalContent: string;  insertionContent: string;  fileContent: string;  nestedContent: any;  markdownContent: any;  jsxContent: any;}export default {  key: "page",  content: {    imbricatedContent: {      imbricatedContent2: {        stringContent: "Привет, мир",        numberContent: 123,        booleanContent: true,        javaScriptContent: `${process.env.NODE_ENV}`,      },    },    multilingualContent: t({      en: "English content",      "en-GB": "English content (UK)",      fr: "French content",      es: "Spanish content",      ru: "Русский контент",    }),    quantityContent: enu({      "<-1": "Меньше минус одной машины",      "-1": "Минус одна машина",      "0": "Нет машин",      "1": "Одна машина",      ">5": "Несколько машин",      ">19": "Много машин",    }),    conditionalContent: cond({      true: "Валидация включена",      false: "Валидация отключена",    }),    nestedContent: nest(      "navbar", // Ключ словаря для вложения      "login.button" // [Необязательно] Путь к контенту для вложения    ),    externalContent: fetch("https://example.com").then((res) => res.json())    markdownContent: md("# Пример Markdown"),    /*     * Доступно только с использованием `react-intlayer` или `next-intlayer`     */    jsxContent: <h1>Мой заголовок</h1>,  },} satisfies Dictionary<Content>; // [необязательно] Dictionary является обобщением и позволяет усилить форматирование вашего словаря

    Вложение функций

    Вы можете без проблем вкладывать функции в другие.

    Пример:

    src/example.content.tsx
    import { t, enu, cond, nest, md, type Dictionary } from "intlayer";const getName = async () => "Иван Иванов";export default {  key: "page",  content: {    // `getIntlayer('page','ru').hiMessage` возвращает `['Привет', ' ', 'Иван Иванов']`    hiMessage: [      t({        en: "Hi",        fr: "Salut",        es: "Hola",        ru: "Привет",      }),      " ",      getName(),    ],    // Составной контент, включающий условие, перечисление и многоязычный контент    // `getIntlayer('page','ru').advancedContent(true)(10) возвращает 'Найдено несколько элементов'`    advancedContent: cond({      true: enu({        "0": t({          en: "No items found",          fr: "Aucun article trouvé",          es: "No se encontraron artículos",          ru: "Элементы не найдены",        }),        "1": t({          en: "One item found",          fr: "Un article trouvé",          es: "Se encontró un artículo",          ru: "Найден один элемент",        }),        ">1": t({          en: "Multiple items found",          fr: "Plusieurs articles trouvés",          es: "Se encontraron múltiples artículos",          ru: "Найдено несколько элементов",        }),      }),      false: t({        en: "No valid data available",        fr: "Aucune donnée valide disponible",        es: "No hay datos válidos disponibles",        ru: "Нет доступных данных",      }),    }),  },} satisfies Dictionary;

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

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