Начало работы с интернационализацией (i18n) с Intlayer и Express

    express-intlayer — это мощное промежуточное программное обеспечение для интернационализации (i18n) приложений Express, разработанное для того, чтобы сделать ваши серверные службы доступными по всему миру, предоставляя локализованные ответы на основе предпочтений клиента.

    Зачем интернационализировать ваш сервер?

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

    Практические случаи использования

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

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

    • Отправка многоязычных писем: Будь то транзакционные письма, маркетинговые кампании или уведомления, отправка писем на языке получателя может значительно повысить вовлеченность и эффективность.

    • Многоязычные push-уведомления: Для мобильных приложений отправка push-уведомлений на предпочтительном языке пользователя может улучшить взаимодействие и удержание. Этот персонализированный подход делает уведомления более актуальными и действенными.

    • Другие виды коммуникации: Любая форма коммуникации с сервера, такая как SMS-сообщения, системные оповещения или обновления интерфейса пользователя, выигрывает от использования языка пользователя, обеспечивая ясность и улучшая общий пользовательский опыт.

    Интернационализируя сервер, ваше приложение не только уважает культурные различия, но и лучше соответствует потребностям глобального рынка, что делает это ключевым шагом в масштабировании ваших услуг по всему миру.

    Начало работы

    Установка

    Чтобы начать использовать express-intlayer, установите пакет с помощью npm:

    bash
    npm install intlayer express-intlayer

    Настройка

    Настройте параметры интернационализации, создав файл intlayer.config.ts в корневом каталоге вашего проекта:

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [      Locales.ENGLISH,      Locales.FRENCH,      Locales.SPANISH_MEXICO,      Locales.SPANISH_SPAIN,    ],    defaultLocale: Locales.ENGLISH,  },};export default config;

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

    Настройте ваше приложение Express для использования express-intlayer:

    src/index.ts
    // Импортируем необходимые модулиimport express, { type Express } from "express";import { intlayer, t } from "express-intlayer";const app: Express = express();// Загружаем обработчик запросов интернационализацииapp.use(intlayer());// Маршрутыapp.get("/", (_req, res) => {  res.send(    t({      en: "Example of returned content in English",      fr: "Exemple de contenu renvoyé en français",      "es-ES": "Ejemplo de contenido devuelto en español (España)",      "es-MX": "Ejemplo de contenido devuelto en español (México)",      ru: "Пример возвращаемого контента на русском",    })  );});// Запуск сервераapp.listen(3000, () => console.log(`Listening on port 3000`));

    Совместимость

    express-intlayer полностью совместим с:

    Он также беспрепятственно работает с любым решением для интернационализации в различных средах, включая браузеры и API-запросы. Вы можете настроить промежуточное ПО для определения локали через заголовки или cookies:

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  // ... Другие параметры конфигурации  middleware: {    headerName: "my-locale-header",    cookieName: "my-locale-cookie",  },};export default config;

    По умолчанию express-intlayer будет интерпретировать заголовок Accept-Language, чтобы определить предпочтительный язык клиента.

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

    Настройка TypeScript

    express-intlayer использует мощные возможности TypeScript для улучшения процесса интернационализации. Статическая типизация TypeScript гарантирует, что каждый ключ перевода учтен, снижая риск отсутствия переводов и улучшая поддерживаемость.

    alt text

    alt text

    Убедитесь, что автоматически сгенерированные типы (по умолчанию в ./types/intlayer.d.ts) включены в ваш файл tsconfig.json.

    tsconfig.json
    {  // ... Ваши существующие настройки TypeScript  "include": [    // ... Ваши существующие настройки TypeScript    ".intlayer/**/*.ts", // Включите автоматически сгенерированные типы  ],}

    Конфигурация Git

    Рекомендуется игнорировать файлы, сгенерированные Intlayer. Это позволит избежать их добавления в ваш репозиторий Git.

    Для этого вы можете добавить следующие инструкции в ваш файл .gitignore:

    .gitignore
    # Игнорировать файлы, сгенерированные Intlayer.intlayer

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

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