Getting Started internationalizing (i18n) with Intlayer and Express

    express-intlayerは、Expressアプリケーション用の強力な国際化(i18n)ミドルウェアであり、クライアントの好みに基づいたローカライズされたレスポンスを提供することで、バックエンドサービスをグローバルにアクセス可能にするよう設計されています。

    なぜバックエンドを国際化する必要があるのか?

    バックエンドを国際化することは、グローバルなオーディエンスに効果的にサービスを提供するために不可欠です。これにより、アプリケーションは各ユーザーの好みの言語でコンテンツやメッセージを配信できます。この機能はユーザーエクスペリエンスを向上させ、異なる言語的背景を持つ人々にとってよりアクセスしやすく、関連性のあるアプリケーションにすることができます。

    実用的なユースケース

    • ユーザーの言語でバックエンドエラーを表示: エラーが発生した際に、ユーザーの母国語でメッセージを表示することで、理解が向上し、フラストレーションを軽減できます。これは、トーストやモーダルのようなフロントエンドコンポーネントに表示される動的エラーメッセージに特に役立ちます。

    • 多言語コンテンツの取得: データベースからコンテンツを取得するアプリケーションでは、国際化により、複数の言語でこのコンテンツを提供できることが保証されます。これは、製品説明、記事、その他のコンテンツをユーザーの好む言語で表示する必要があるeコマースサイトやコンテンツ管理システムにとって重要です。

    • 多言語のメール送信: トランザクションメール、マーケティングキャンペーン、通知にかかわらず、受取人の言語でメールを送信することで、エンゲージメントと効果が大幅に向上する可能性があります。

    • 多言語のプッシュ通知: モバイルアプリケーションでは、ユーザーの好みの言語でプッシュ通知を送信することで、インタラクションとリテンションを高めることができます。このパーソナルな配慮は、通知をより関連性が高く、実行可能に感じさせることができます。

    • その他のコミュニケーション: 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)",    })  );});// サーバーを開始app.listen(3000, () => console.log(`Listening on port 3000`));

    互換性

    express-intlayerは完全に互換性があります:

    また、ブラウザやAPIリクエストを含むさまざまな環境で、あらゆる国際化ソリューションとシームレスに動作します。ミドルウェアをカスタマイズして、ヘッダーやクッキーを介してロケールを検出することもできます:

    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-intlayerAccept-Languageヘッダーを解釈して、クライアントの好みの言語を判断します。

    設定や高度なトピックに関する詳細については、ドキュメントを訪れてください。

    TypeScriptによって駆動されています

    express-intlayerは、国際化プロセスを向上させるためにTypeScriptの強力な機能を活用します。TypeScriptの静的型付けは、すべての翻訳キーが考慮されることを保証し、翻訳の欠落を減少させ、保守性を向上させます。

    生成された型(デフォルトで./types/intlayer.d.ts)は、tsconfig.jsonファイルに含めるようにしてください。

    このドキュメントを改善するアイデアがある場合は、GitHubでプルリクエストを送信することで自由に貢献してください。

    ドキュメントへのGitHubリンク