国際化(i18n)
アプリに多言語サポートを追加しましょう。編集コンテンツのローカライズには Proyecta Content API を使い、UI の i18n フレームワーク連携は AI に依頼できます。
Proyecta では、構築するアプリを国際化するための、互いを補完する 2 つのアプローチをサポートしています。
- Proyecta Content API によるコンテンツローカライズ — ブログ記事、FAQ、マーケティングコピーなど、複数言語への翻訳が必要な編集コンテンツ向け
- 翻訳フレームワークによるコードレベルの i18n — UI 文字列、日付、通貨、実行時のロケール切り替え向け
どちらも現在利用可能です。どちらが必要かは、何を翻訳するかによって異なります。
builder としての Proyecta 自体は 24 のロケールに対応しており、プロダクトとして i18n に精通しています。その中で構築するアプリにも、同じパターンが適用できます。
オプション 1: コンテンツローカライズ(Proyecta Content API)
Section titled “オプション 1: コンテンツローカライズ(Proyecta Content API)”ブログ、ナレッジベース、マーケティングページ、商品カタログなど、コンテンツが中心のサイトを構築する場合は、Content API のビルトインロケールサポートを使いましょう。
// Create the locales you supportawait proyecta.content.locales.create({ /* code: 'en', name: 'English' */});await proyecta.content.locales.create({ /* code: 'es', name: 'Español' */});await proyecta.content.locales.create({ /* code: 'fr', name: 'Français' */});
// Then create entries that exist in multiple locales — fetch the right// translation per request based on the user's locale.このアプローチが適しているのは以下のケースです。
- コードを書かない編集者がコンテンツを翻訳する必要がある場合
- 翻訳をバージョン管理したい場合
- ロケールごとの公開設定が必要な場合(スケジュール公開は近日対応予定 — 現在のエントリは API 経由での手動公開が必要です)
Content API の詳細はコンテンツ管理をご覧ください。
オプション 2: コードレベルの i18n フレームワーク
Section titled “オプション 2: コードレベルの i18n フレームワーク”ラベル、ボタン、エラーメッセージ、日付、通貨などの UI 文字列については、AI にプロジェクトへの i18n フレームワーク組み込みを依頼できます。
Add internationalization to my app.Support English, Spanish, French, and Arabic.Add message catalogs in src/locales/.Add a language switcher in the header.Use locale-prefixed URLs like /en/about and /es/about.Make sure RTL layout works correctly for Arabic.AI は以下を実行します。
- フレームワークの選定 —
i18nextとreact-i18next(Proyecta の標準)を使用 - カタログファイルの作成 —
src/locales/に言語ごとの JSON を生成 - テキストのラップ — react-i18next の
useTranslationフックのt()呼び出しで文字列を包む - 言語切り替えコンポーネントの追加
- ロケールプレフィックス付き URL ルーティングの設定
- RTL レイアウト(アラビア語、ヘブライ語など向けの
dir="rtl")の対応 - ロケールに応じた数値・日付・通貨のフォーマット
AI による自動翻訳
Section titled “AI による自動翻訳”基本言語が揃ったら、AI を使って他のカタログファイルを効率よく作成できます。
"Translate every string in src/locales/en.json into Spanish, French, German, and Japanese. Use natural, idiomatic phrasing — don't translate brand names.""My app is fully built in English. Add Spanish translations for everything and an es/ route prefix."
法律文書、医療、金融など重要度の高いコンテンツは、リリース前に翻訳者による人力レビューを行いましょう。
両アプローチの組み合わせ
Section titled “両アプローチの組み合わせ”実際のアプリの多くは両方を使います。ボタン・エラー・ナビゲーションなどの UI まわりにはコードレベルの i18n を、記事・商品説明などの編集コンテンツには Content API を使う形です。2 つはクリーンに共存できます — i18n フレームワークはビルド時にカタログファイルを処理し、Content API は実行時にローカライズされたエントリを返します。
ベストプラクティス
Section titled “ベストプラクティス”- まずベース言語を決め、コピーを確定させる。 変わり続けるテキストを翻訳するのは非常に手間がかかります。
- 翻訳はまとめて行う。 都度翻訳せず、機能が安定してからまとめて翻訳しましょう。
- アラビア語やヘブライ語をサポートするなら RTL を早めにテストする。 RTL のバグは実際に確認するまで気づきにくいものです。
<html>にlangとdirを含める。 ブラウザやスクリーンリーダーはこれらに依存しています。- フォーマットには
Intlを使う。 日付や通貨のフォーマットを自前で実装せず、Intl.DateTimeFormatやIntl.NumberFormatを使いましょう。
近日公開予定
Section titled “近日公開予定”- builder 内のロケール管理 UI — Proyecta を離れずにロケールの選択、翻訳カバレッジの確認、カタログの編集が可能に
- 新規文字列の保存時自動翻訳
- フレームワーク設定済みの i18n 対応プロジェクトテンプレート