Начало работы с интернационализацией (i18n) с Intlayer и Express
express-intlayer — мощное промежуточное программное обеспечение для интернационализации (i18n) для приложений Express, предназначенное для того, чтобы сделать ваши серверные службы доступными для глобальной аудитории, предоставляя адаптированные ответы на основе предпочтений клиента.
Зачем интернационализировать ваш серверный уровень?
Интернационализация вашего серверного уровня имеет решающее значение для эффективного обслуживания глобальной аудитории. Это позволяет вашему приложению доставлять контент и сообщения на предпочтительном языке каждого пользователя. Эта функция повышает качество обслуживания пользователей и расширяет охват вашего приложения, делая его более доступным и актуальным для людей из разных языковых слоев.
Практические примеры использования
Отображение ошибок сервера на языке пользователя: Когда возникает ошибка, отображение сообщений на родном языке пользователя улучшает понимание и снижает уровень разочарования. Это особенно полезно для динамических сообщений об ошибках, которые могут отображаться в компонентах клиента, таких как уведомления или модальные окна.
Получение многоязычного контента: Для приложений, получающих контент из базы данных, интернационализация гарантирует, что вы можете предоставить этот контент на нескольких языках. Это имеет решающее значение для платформ, таких как сайты электронной коммерции или системы управления контентом, которые должны отображать описания продуктов, статьи и другой контент на языке, предпочитаемом пользователем.
Отправка многоязычных электронных писем: Будь то транзакционные электронные письма, маркетинговые кампании или уведомления, отправка писем на языке получателя может значительно повысить вовлеченность и эффективность.
Многоязычные push-уведомления: Для мобильных приложений отправка push-уведомлений на предпочитаемом пользователем языке может увеличить взаимодействие и удержание. Этот личный подход может сделать уведомления более актуальными и вводящими в действие.
Другая коммуникация: Любая форма общения от серверного уровня, такая как SMS-сообщения, системные оповещения или обновления пользовательского интерфейса, выигрывает от использования языка пользователя, обеспечивая ясность и повышая общее качество обслуживания пользователей.
Интернационализируя серверный уровень, ваше приложение не только уважает культурные различия, но и лучше соответствует потребностям мирового рынка, что делает это ключевым шагом в масштабировании ваших услуг в мировом масштабе.
Начало работы
Установка
Чтобы начать использовать express-intlayer, установите пакет с помощью npm:
npm install intlayer express-intlayer
pnpm add intlayer express-intlayer
yarn add intlayer express-intlayer
Настройка
Настройте параметры интернационализации, создав intlayer.config.ts в корне вашего проекта:
// intlayer.config.ts
import { Locales, type IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
международная_интернационализация: {
локали: [
Locales.ENGLISH,
Locales.FRENCH,
Locales.SPANISH_MEXICO,
Locales.SPANISH_SPAIN,
],
локаль_по_умолчанию: 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: "Пример возвращаемого контента на английском",
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)",
})
);
});
app.get("/error", (_req, res) => {
res.status(500).send(
t({
en: "Пример возвращаемого контента об ошибке на английском",
fr: "Exemple de contenu d'erreur renvoyé en français",
"es-ES": "Ejemplo de contenido de error devuelto en español (España)",
"es-MX": "Ejemplo de contenido de error devuelto en español (México)",
})
);
});
// Запуск сервера
app.listen(3000, () => {
console.info(`Слушаем на порту 3000`);
});
Совместимость
express-intlayer полностью совместим с:
- react-intlayer для приложений React
- next-intlayer для приложений Next.js
Он также бесшовно работает с любой системой интернационализации в различных средах, включая браузеры и API-запросы. Вы можете настроить промежуточное программное обеспечение для обнаружения локали через заголовки или cookie:
import { Locales, type IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
// Другие параметры конфигурации
middleware: {
headerName: "my-locale-header",
cookieName: "my-locale-cookie",
},
};
По умолчанию express-intlayer будет интерпретировать заголовок Accept-Language, чтобы определить предпочитаемый язык клиента.
Для получения дополнительной информации о конфигурации и продвинутых темах, посетите нашу документацию.
Работает на TypeScript
express-intlayer использует мощные возможности TypeScript для улучшения процесса интернационализации. Статическая типизация TypeScript гарантирует, что каждый ключ перевода учтен, что снижает риск отсутствия переводов и улучшает поддерживаемость.
Убедитесь, что сгенерированные типы (по умолчанию в ./types/intlayer.d.ts) включены в ваш tsconfig.json файл.
Если у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHub