← コンセプト

Langsysの仕組み

Langsys は、UI にすでにある文章をそのまま翻訳システムに変えます。管理すべきキーファイルも、ビルド時の抽出手順もありません。コード内のフレーズが、検索キーであると同時にベース言語のデフォルトにもなります。

視聴 · 0:30 ワークフロー

フレーズがそのままキーになる

従来の i18n では、文字列ごとに識別子を考え、実際のテキストをロケールファイルに保存し、その 2 つを常に同期させ続ける必要があります。Langsys はこの間接的な仕組みをなくします。実際の文を書くだけで、その文自体がキーになります。

従来型
// Traditional i18n — indirection + a keys file to maintain
t('greetings.hello');            // what does this say? open en.json to find out

// en.json
{ "greetings": { "hello": "Hello, {name}!" } }
Langsys
// Langsys — the phrase IS the key and the base-language default
t('Hello, {name}!', 'Greetings', { name });

原文そのものがキーであるため、アプリ内のどこに書かれていても同じフレーズは1つの翻訳エントリーとして扱われ(重複排除は自動です)、まだ翻訳されていないロケールでは単に原文にフォールバックします。キーが見つからないことを示すプレースホルダーは存在しません。

リアルタイムと継続的な運用

抽出コマンドを実行する必要はありません。アプリが表示される際に、SDK が使用されているフレーズを検出します。新しいフレーズはバックグラウンドで機械翻訳され、プロジェクトのターゲットロケールに追加されます。アプリは完成したカタログを取得します。新しい文を今日リリースしても、その後すぐに翻訳されるため、ロケールバンドルの再デプロイは不要です。

ライフサイクル

  1. UI は t()、<Translate> などでフレーズを表示します。
  2. 開発環境では、書き込みキーを使うと、SDKが新しいフレーズを検出して登録できます。
  3. Langsysが、プロジェクトのすべてのターゲットロケールに機械翻訳します。
  4. 本番環境では、読み取り専用キーを使って、ユーザーのロケール向けの完成したカタログを取得します。
  5. ロケールを変更すると、UI 全体が翻訳された状態で再レンダリングされます。リロードは不要で、即座に切り替わります。

従来の i18n との違い。手作業で編集する en.json も、t('some.nested.key') のような間接参照も、ビルド時の抽出ステップも不要で、キー欠落時のフォールバックもありません。原文がそのままフォールバックになります。

ドキュメントとラーニングセンターを検索