|
ドキュメント
デモを予約プラットフォーム
プラットフォームMCPCLIAPIワークフロー
ガイド
変更履歴

ローカライゼーション

  • 概要
  • 翻訳API
  • Webアプリのローカライゼーション
  • モバイルアプリのローカライズ
  • Android with strings.xml
  • メールのローカライズ
  • 静的コンテンツ(例: .md、.json)
  • Next.js with Markdoc
  • Rails with i18n

ローカライズ

  • String Catalogを使ったiOS

ワークフロー

  • MCP でエンジンを設定
  • Jiraトリアージ
  • CI/CD

メールのローカライズ

Lingo.dev の CLI と localization API は、メールのローカライズに 2 つのパターンをサポートしています。1 つはビルド時にテンプレートファイルを翻訳してロケールごとのテンプレートを配信する方法、もう 1 つは送信前に実行時でコンテンツを翻訳する方法です。どちらも、用語集ルール、ブランドボイス、モデル選択が自動で適用される設定済みの ローカライゼーションエンジン を通して実行されます。

アプローチを選ぶ#

アプローチ最適な用途仕組み
ビルド時(CLI)テンプレートファイル - react-email、MJML、HTMLリポジトリ内のファイルを翻訳し、ロケールごとのテンプレートをデプロイ
実行時(API)動的コンテンツ、ESP 側でレンダリングされるテンプレート送信前に ローカライゼーション API を呼び出し、翻訳済みコンテンツをメールプロバイダーに渡します

どのアプローチを選ぶ?

メールテンプレートがファイル(HTML、MJML、または React コンポーネント)としてリポジトリ内にあるなら、ビルド時のアプローチを使います。メールコンテンツが動的に生成される場合や、メールサービスプロバイダーに保存されている場合は、実行時のアプローチを使います。

前提条件#

すべての翻訳は ローカライゼーションエンジン を通して実行されます。これは、どの LLM モデル、用語集、ブランドボイス、指示を適用するかを決める設定です。Lingo.dev ダッシュボードで作成し、API key を生成してください。

ビルド時のローカライズ#

CLI はメールテンプレートファイルを直接翻訳します。テンプレート形式に合ったバケットを設定し、CLI を実行すると、ソーステンプレートと並んでロケールごとのテンプレートファイルが生成されます。

react-email テンプレートは、HTML をレンダリングする React コンポーネントです。翻訳対象の文字列を react-i18next のような i18n ライブラリで JSON リソースファイルに切り出し、その JSON ファイルを CLI で翻訳します。

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "json": {
      "include": ["emails/locales/[locale].json"]
    }
  }
}

レンダリング時にロケールをメールコンポーネントに渡し、対応する JSON ファイルを読み込みます。react-email の render() 関数は、送信可能なロケール別の HTML を生成します。

翻訳の実行には次のコマンドを使います。

bash
npx lingo.dev@latest run

実行時のローカライズ#

メールコンテンツが動的な場合、たとえばパーソナライズされた通知、ユーザー生成コンテンツの要約、CMS に保存されたマーケティングコピーなどは、送信前に実行時で翻訳します。これは Translation API guide で説明しているパターンに基づいています。

javascript
async function sendLocalizedEmail(userId, templateId, content) {
  const user = await db.users.findById(userId);

  const response = await fetch("https://api.lingo.dev/process/localize", {
    method: "POST",
    headers: {
      "X-API-Key": process.env.LINGODOTDEV_API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      engineId: "eng_abc123",
      sourceLocale: "en",
      targetLocale: user.locale,
      data: {
        subject: content.subject,
        preheader: content.preheader,
        body: content.body,
      },
    }),
  });

  const { data } = await response.json();

  await emailProvider.send({
    to: user.email,
    subject: data.subject,
    html: renderTemplate(templateId, data),
  });
}

ベストプラクティス#

項目推奨事項
件名50 文字以内に収めてください。ブランド名を翻訳対象外に固定するには glossary を使います。
プレビューテキスト本文とは分けて翻訳してください。メールクライアントでは独立して表示されます。
ブランドボイスローカライゼーションエンジンで ロケールごとのトーン を設定してください。日本語のマーケティングメールには、ドイツ語とは異なる文体が必要です。
RTL 言語アラビア語、ヘブライ語、ペルシャ語では、メールクライアント上でレンダリング結果をテストしてください。HTML dir="rtl" の扱いはクライアントごとに異なります。
キーの固定翻訳してはいけない URL、製品名、法的識別子には locked keys を使ってください。

次のステップ#

Translation API
API 経由で実行時ローカライズを行うための完全ガイド
ブランドボイス
対象ロケールごとにトーンと丁寧さを設定
用語集
どの用語を翻訳し、どの用語をそのまま残すかを制御
CI/CD ワークフロー
プッシュのたびにメールテンプレート翻訳を自動化

このページは役に立ちましたか?

Max PrilutskiyMax Prilutskiy·更新済み 10日前·2分で読めます