メインコンテンツへスキップ

グローバル対応アプリのための国際化ガイド

アプリの国際化を、基本パターンからCI/CDワークフロー、テスト、ライブアップデートまで学び、グローバルアプリをより速くリリースしましょう。

グローバル対応アプリのための国際化ガイド

アプリは次の市場に投入する準備が整いました。プロダクトチームは翻訳済みのコピーを承認し、マーケティングはローンチ準備を終え、カスタマーサポートもスクリプトを更新済みです。しかしテストで、決済ボタンが英語でハードコードされている、日付の順序が違う、通貨の区切り文字が馴染みのないものになっている、さらに翻訳が長くなって主要アクションが画面外に押し出される、といった問題が見つかります。ローンチを妨げているのは翻訳の質だけではありません。数か月前にコードベースで下された判断が妨げているのです。

その状況は、 アプリの国際化の実践的な出発点です。国際化(通常i18nと略されます)とは、ビジネスロジックを書き換えずに、言語、地域、文字体系、文化的慣習を追加できるよう製品を準備することです。次にローカライズで、準備済みの製品を特定の市場向けに適応させます。

その商業的意義はアプリ経済において明確です。iOS App Storeの730,024件のアプリを対象とした2026年の調査では、中央値のアプリはちょうど 1つの言語。一方、 68.6% だけでリリースされています。推定 月額10,000ドル以上 を稼ぐアプリは中央値で 5つの言語や 50.7% に対応しています。その上位収益層のアプリは、5言語以上でリリースされています。これらの数値は、ローカライズだけで収益が生まれることを証明するものではありませんが、より大きな商業的な野心を持つアプリでは多言語対応がはるかに一般的であることを示しています。

このガイドでは、メンタルモデルからエンジニアリングパターン、プラットフォームごとの違い、ワークフローの自動化、テスト、移行までを扱います。ネイティブモバイル製品、Webアプリケーション、Capacitorハイブリッドアプリ、Electronデスクトップソフトウェアに適用できます。プライバシーと地域ごとのコンプライアンスもローンチ計画の一部なので、規制要件に取り組むチームは、このガイドと GDPRコンプライアンス・チェックリスト.

目次

アプリの国際化(i18n)入門:今、なぜ重要なのか

市場へのリリース直前になって、国際化の必要性に気づくチームは少なくありません。プロダクト側は言語セレクターを求め、デザインは複数の画面を調整し、エンジニアリング側では、ユーザーに表示されるテキストがコンポーネント、バリデーションルール、通知、分析ラベル、さらにはネイティブ設定ファイルにまで分散していることに気づきます。日付や数値も同じ問題を引き起こします。表示用テキストとして保存された日付は安全に再フォーマットできず、複数の文字列を組み合わせて作った価格は、他のロケールでは順序を変える必要があるかもしれません。

こうした遅まきの気づきは、「リリースを遅らせる」「目に見える不具合を許容する」「ロケールごとの変更を想定していない code を修正する」という、高くつく3つの選択を迫ります。i18nをアーキテクチャ上の能力として捉えると、ワークフローが変わります。市場拡大は、書き直しではなく、リソース、表示、テスト、リリース設定を伴う管理されたオペレーションになります。

実践的なルール: ビジネスルールではなく、リソースと表示の変更だけで新しいロケールに対応できるアプリを構築しましょう。

翻訳は、グローバル展開の準備の一部に過ぎません。 翻訳した文が長くて収まらないレイアウトは、依然として崩れる可能性があります。通貨の翻訳が正しくても、元の値がフォーマット済みテキストとして保存されていると、ユーザーを誤解させる可能性があります。Webレイヤーとネイティブレイヤーが検出するロケールが異なると、言語セレクターの挙動が一貫しなくなることもあります。

i18n 対応の検討が遅れると、運用コストが増大します。エンジニアは古いコンポーネントをまたいで文字列を追跡し、翻訳者は不完全なコンテキストを受け取り、レビュアーは急ぎの変更をテストし、リリースチームは複数のプラットフォームパッケージにまたがる修正を調整する必要があります。Capacitor や Electron のチームでは、プラットフォームとリリースポリシーが許す場合、ライブアップデートのワークフローにより、ストア審査を待たずに承認済みのローカライズリソースや表示の修正を配信して、このループを短縮できます。重要なのは、ローカライズの変更を最終的な翻訳の受け渡しではなく、管理されたリリース成果物として扱うことです。

今後の進め方は明確です:

  • 基盤を整える: ユーザー向けリソースをアプリケーションロジックから分離し、ロケールに依存する値を正しくモデル化します。
  • 言語の挙動を扱う: 複数形のルール、テキストの拡張、記述方向、フォーマット、アクセシビリティに配慮した言語変更をサポートします。
  • 各プラットフォームに適応させる: iOS、Android、ブラウザ、Capacitor WebView、Electron のパッケージングを考慮します。
  • リリースを止めない: 抽出、翻訳、レビュー、テスト、デプロイを連携させ、新しい文字列がプロジェクト終盤まで待たされないようにします。
  • インターフェースを検証する: 長いテキスト、RTLレイアウト、ロケールの組み合わせ、フォールバック動作、パフォーマンス、アップデートの安全性をテストします。

アプリの国際化はリリースエンジニアリングの一分野です。後から入る製品変更をローカライズ可能なまま保ち、チームが適切な配信経路で言語の問題を修正できるようにし、次のような地域ごとのプライバシー対応も含みます。 GDPRコンプライアンス・チェックリスト.

アプリの国際化が本当に意味するもの

家造りに例えて考えてみましょう。 国際化とは、部屋の装飾を始める前に施しておく、柔軟性の高い配線や配管のことです。 ローカライズとは、その家を特定の地域に合わせて装飾し、家具を配置することです。翻訳とは、ラベルや説明書、標識の言語を変更することです。

この順序が重要です。配線が特定の家電向けに設計された壁の中に埋め込まれていると、新しい家電の追加は高くつきます。ソフトウェアでも、ハードコードされた文字列、固定幅のコントロール、文の連結、ロケール固有のビジネスロジックが同じような制約を生みます。

3つの用語、3つの責務

国際化(i18n)とは、 アプリのコアな挙動を変えることなく、異なる言語や地域をサポートできるようにするための設計・開発作業のことです。これには、リソースの読み込み、ロケールの選択、フォーマット、テキストの方向、フォント対応、柔軟なレイアウトなどが含まれます。

ローカライズ(l10n)とは、 準備されたアプリを特定のロケールに適応させます。これには、翻訳済みのUIコピー、地域固有のフォーマット、現地の用語、文化に合った画像、市場固有のデフォルト設定が含まれます。

翻訳 コンテンツをある言語から別の言語に変換します。主に意味と言い回しを扱いますが、優れた翻訳ワークフローには、コンテキスト、スクリーンショット、文字数制限、各文字列が表示される場所の情報も必要です。

アプリの国際化(i18n)、ローカライズ(l10n)、翻訳の概念を、家のメタファーで図解したもの。

実装上の有用な境界は、ロケールリソースです。直接 Payment failed コンポーネント内に配置するのではなく、コンポーネントは次のようなセマンティックキーを要求します。 payment.error英語のリソースはそのキーを英語テキストにマッピングし、別のリソースは同じキーを別の翻訳にマッピングします。コンポーネントは決済エラーが必要だということは分かっていますが、そのエラーがどう表現されるかを知る必要はありません。

この分離は文字列以外にも適用されます。金額は記号付きの文字列ではなく、値として保存してください。タイムスタンプは、整形済みの日付ではなく、タイムスタンプとして保存してください。区切り文字や月名をビジネス code に埋め込むのではなく、フォーマッターにロケール情報を渡すようにします。

基盤がリスクを減らす理由

リソースやフォーマット規則をビジネスロジックから分離しておけば、新しい言語を追加する際に、購入額の計算や認証フロー、データモデルを変更する必要はありません。エンジニアはリソースバンドルを更新し、翻訳者は翻訳管理システム(TMS)で作業し、QAはほかの動作に影響を与えずに、出来上がったUIをテストできます。

この分離は責任範囲の明確化にもつながります。デザイナーはテキストの拡張を考慮したコンポーネントを定義でき、翻訳者は文脈を確認でき、プロダクトマネージャーは対象市場を決定でき、エンジニアはキーの欠落やフォールバックのルールを適用できます。各職種がワークフローの中で明確な役割を持てるようになります。

i18nを後回しにするチームは、新しいロケールを毎回特別扱いしがちです。i18nを前提に設計するチームは、ロケールを入力として扱います。この発想の転換だけで、グローバル対応はずっと考えやすくなります。

i18n対応アプリに不可欠なコアパターン

優れたi18nは、一連の再現可能なパターンによって具体化されます。単一ロケールのコードベースの上に言語スイッチャーを載せるのではなく、コンポーネント、データ、リリースの各レイヤーでこれらのパターンを適用しましょう。

アプリの国際化における4つのコアパターン(文字列の抽出、ICU Message Format、フォーマット、レイアウト対応)を示すピラミッド図。

文字列をリソースとして抽出する

最初の実践的なステップは、この変換です:

変更前:

showToast("Your profile was saved");

変更後:

showToast(t("profile.saved"));

リソースファイル:

{
  "profile": {
    "saved": "Your profile was saved"
  }
}

英語の文章そのものではなく、意味を表すキーを使用してください。 profile.saved 英語の文言が変わっても有効ですが、原文に基づくキーは誤解を招く可能性があります。同じ単語が異なる意味になり得る場合は、翻訳者に文脈を伝えてください。たとえば「Present」がボタンのアクションなのかステータスなのかなどです。

適切に国際化されたアプリでは、ユーザーに表示されるすべての文字列を、日付、数値、通貨、記号とともにロケールリソースやフォーマッタに外部化します。この モバイルi18nのエンジニアリング設計図 は、その分離によりチームがビジネスロジックを変更せずに言語を追加できる理由を説明します。

文法にはメッセージフォーマットを使用する

これは安全ではありません:

`${count} items`

ハードコードされたパターンは、すべてのロケールで同じ複数形の振る舞いと語順が使われることを前提としています。Unicode CLDRは、日付、時刻、タイムゾーン、数値、通貨、複数形カテゴリの共通のローカライズデータ層を提供します。CLDRのローカライズベストプラクティスガイドで説明されているとおり、複数形のルールはロケールごとに異なるため、アプリには固定パターンではなくロケール対応の選択が必要です。

ICU形式のメッセージは次のようになります:

{count, plural,
  =0 {No items}
  one {# item}
  other {# items}
}

フォーマッタが正しい分岐を選択します。文法上必要な場合に翻訳者が数値と名詞の順序を入れ替えられるよう、メッセージ全体をひとまとめにしておきましょう。

ロケール対応APIで値をフォーマットする

日付を手動で組み立てないでください:

`${day}/${month}/${year}`

フォーマッタを使用してください:

new Intl.DateTimeFormat(locale, {
  dateStyle: "medium"
}).format(date)

数値や通貨にも同じ原則が当てはまります:

new Intl.NumberFormat(locale, {
  style: "currency",
  currency: currencyCode
}).format(amount)

Intl、ICU、CLDRベースのライブラリは、地域ごとに異なる慣習を処理します。また、表示ロジックを本来あるべきプレゼンテーション層の近くに保ちます。

方向性と拡張性を考慮した設計

言語が変わってもテキストが予測どおりに伸びるわけではありません。ボタンには可変幅、カードには可変高さが必要で、ラベルは1行に収まる前提にすべきではありません。コンテンツが伸びることを許容するレイアウトシステムを使い、翻訳者が最終レビューを始める前に、長い疑似翻訳でコントロールをテストしてください。

右から左への対応には、テキストの配置を反転するだけでは不十分です。アイコン、ナビゲーションの順序、パディング、アニメーション、方向性のあるジェスチャーはミラーリングが必要になる場合があります。次のような論理プロパティを使用してください margin-inline-start プラットフォームがサポートしている場合は、left専用のルールではなく。画像、フォント、埋め込みテキストもレビューが必要です。あるスクリプトをうまく表示できるフォントが別のスクリプトをカバーできるとは限らず、英語の単語を含む画像は、翻訳したオーバーレイではなくローカライズしたアセットが必要になる場合があります。

インターフェース固有のガイダンスについては、Capacitor を使用しているチームは、次のものも参照できます: クロスプラットフォームのUI/UXプラクティス.

モバイルWeb Capacitor と Electron におけるプラットフォーム固有の考慮事項

基本ルールは共通ですが、ランタイムごとにロケールの判断材料やパッケージング制約が異なります。ネイティブアプリはプラットフォームAPIを通じてデバイスの言語設定を読み取れます。ブラウザはブラウザ設定とJavaScript APIを通じて言語設定を公開します。ハイブリッドアプリはWebViewとネイティブシェルの両方を持つため、ロケールの正となる情報をどこに置くかを決める必要があります。

プラットフォーム ロケールの検出 フォーマットのアプローチ 注意すべき落とし穴
iOSと デバイスまたはアプリの言語設定(サポートされている場合はアプリ固有の動作を含む) FoundationのフォーマッタとJavaScript Intl Webコンテンツ用 ネイティブ画面とWebView画面は、ロケール状態が別々だとずれる可能性があります
Androidでは 実装に応じて、デバイスとアプリの言語設定を使用 Android のロケール API と JavaScript Intl Web コンテンツ内での リソース修飾子と WebView リソースには、意図的なフォールバック戦略が必要です
Web ブラウザの言語設定、ユーザーの選択、またはURLとアカウント設定 JavaScript Intl、ICUベースのライブラリ、およびサーバーサイドのロケール処理 サーバーとクライアントのロケール決定が一致していないと、レンダリングが不整合になるため注意が必要です
Capacitor ネイティブの言語設定とWebViewの状態 ネイティブフォーマッター、JavaScript Intl、および共有リソースバンドル JavaScriptのLive Updateを使えば、ネイティブリソースを変更せずにローカライズされたコンテンツを更新できます
Electron OSのロケール、アプリの設定、またはアカウント設定 JavaScript Intl, Node側のロジック、およびレンダラーリソース 本番ビルドでは、パッケージ化されたロケールアセットを正しく含めて読み込む必要があります

ネイティブモバイルアプリ

iOSとAndroidにはそれぞれネイティブのローカライズシステムがありますが、多くのチームはJavaScriptでもUIの大部分を描画しています。ネイティブ層とWeb層でロケールコード、翻訳キー、フォールバックルールを共有するか決めてください。ユーザーが選んだ言語が次回起動時にデバイスの言語設定で置き換わらないよう、ロケール選択は明示的に扱いましょう。

ストアのメタデータには別途注意が必要です。ローカライズされたアプリでも、タイトル、サブタイトル、説明文が単一言語のままだと、見つけてもらいにくくなります。 海外市場に進出した主要な米国アプリに関する2023年の分析 によると、 60% iOSのタイトルをローカライズしていたアプリは、ほぼ 90% 製品説明をローカライズし、 10社中6社 字幕をローカライズしました。Androidでは、 70% タイトルをローカライズし、 89% 説明をローカライズしました。これらはストアフロントの判断であり、ランタイムUIの判断ではないため、エンジニアリングのbundleに任せるのではなく、ローンチチェックリストに割り当てましょう。

Webアプリケーション

Webでは、URL、サーバーレンダリング、ブラウザ設定、アカウント設定の間に安定した関係が必要です。サーバーが英語でレンダリングしている間にブラウザがすぐにドイツ語に切り替わると、ユーザーはフラッシュやハイドレーションミスマッチを目にすることになります。優先順位を決め、ユーザーの選択を永続化し、フォールバックロケールを決定論的に設定してください。

アプリに大量の翻訳コンテンツがある場合は、ロケールbundleを遅延読み込み(lazy-load)してください。デフォルトの体験を速く保ちつつ、オフラインやフェッチ失敗時に安全なフォールバックをレンダリングできることを確認してください。

Capacitor と Electron

Capacitor アプリは、iOS、Android、ブラウザ間でWebコードベースを共有することがよくあります。これにより共有リソースが効率的になりますが、ネイティブプラグインはプラットフォーム固有のロケール動作を公開する可能性があります。WebViewは、ブラウザやデバイスの設定から独立して推測するのではなく、単一の権威あるソースから正規化されたロケールを受け取るべきです。これらの境界を評価するチームは、以下を確認できます。 Capacitorがプラットフォーム間の違いをどう処理するか.

Electronではパッケージングの考慮事項が増えます。レンダラーは開発時とパッケージ済みアプリでロケールファイルの読み込み方法が異なる場合があるため、本番ビルドではリソースが存在し、アクセス可能で、まとめて更新されていることを確認する必要があります。JavaScriptバンドルにライブアップデートを適用できる場合は、ロケールファイルが同じ署名付きバンドルに含まれるかどうか、更新が失敗した際のロールバック方法を定義してください。

スケールするツールライブラリと翻訳ワークフロー

翻訳ライブラリだけではローカライズのワークフローは生まれません。チームはi18next、FormatJS、ネイティブ Intl APIを使っていても、キーの所有権、コンテキスト、レビュー、配信、ロールバックが不明確ならリリースを逃すことがあります。新しい文字列はすべて、codeと同じ管理フローを通るソフトウェア成果物として扱ってください。

スケーラブルなワークフローは明確な流れに従います:

  1. 開発者がセマンティックキーを追加し 必要に応じてコンテキスト、スクリーンショット、変数、文字数制限を付けます。
  2. 自動化がキーを抽出または検証して 翻訳管理システムに送信します。
  3. 翻訳者とレビュアーは同じソースを使い ビルドがプレースホルダーと必須ロケールをチェックします。
  4. CIが承認済みリソースを取得します アプリに同梱するか、承認済みのアップデートチャネル経由で配信します。
  5. QAが変更されたロケールを確認 すべての言語レビューを最初からやり直す必要がなくなります。
  6. リリース制御で公開範囲を管理より広範なロールアウトの前に、社内ユーザー、ベータユーザー、または対象ユーザーから開始します。

ソフトウェアの国際化、翻訳管理、継続的ローカライゼーションのワークフローにおける4ステップのスケーラブルなプロセスを示す図。

パイプラインが重要な理由

ボトルネックは多くの場合、code を書くことではなく、承認済みコンテンツを待つことにあります。A i18nワークフローに関する2026年開発者調査 によると、 64% 回答者のうち、翻訳ワークフローの効率性を最大の課題として挙げたのは、 78% 翻訳待ちでリリースが遅れると回答しており、 52% 手動のスポットチェック以外に体系的な翻訳QAがなく、同じ報告書によると 41% OTA(over-the-air)システムを導入しており、 28% 2026年には導入を予定しています。これらの知見は、ローカライズを独立したコンテンツサイクルとして扱うのではなく、リリース配信と結びつけるものです。

CIでは、パッケージング前に予測可能なエラーを検知すべきです:

  • キーの欠落: ソースキーに対応するフォールバックがない場合に、エラーまたは警告を出します。
  • プレースホルダーの不一致: 以下のような変数が、 {count} すべての翻訳メッセージ内に存在することを確認します。
  • 未使用のキー: アプリケーション内で使われなくなったリソースにフラグを立てます。
  • 構文エラー: 不正なJSON、ICUメッセージ、またはリソースファイルを拒否します。
  • ロケール対応状況: サポート対象のロケールのうち、変更されたものとレビューが必要なものをレポートします。

CI統合パターンについては、以下を参照してください: デベロッパーエクスペリエンスツールの概要.

リリースエンジニアリングとしてのLive Updates

Capacitor や Electron のチームなら、ローカライズの修正を署名済みの JavaScript、CSS、コピー、設定、アセットのバンドルに含めて配信できます。たとえば次のような Live Update プラットフォームは、 Capgo チャネルを対象にでき、変更されたファイルのみを含む差分アップデートの配信、導入率と失敗のメトリクス公開、自動ロールバック保護を提供できます。チームがアップデートポリシー、レビュープロセス、署名ルール、ネイティブ互換性の境界を定義していれば、ストアへのフル提出を待たずに、誤訳されたラベルやレイアウトルールを修正するリリースエンジニアリングの道筋を築けます。

Live Updates はストアリリースに代わるものではありません。ネイティブ文字列、権限、プラットフォーム API、およびインストール済みのネイティブランタイムを超える変更には、引き続き適切な配信経路が必要です。Live Updates は、互換性のあるローカライズ変更に対してより速い経路を提供し、通常なら次のアプリリリースまで待つしかない小さなコンテンツ修正を迅速に行えます。

グローバルアプリにおける QA、パフォーマンス、セキュリティのテスト

国際化テストは、ユーザーより先に前提を明らかにするべきです。単一の翻訳済みスクリーンショットだけでは不十分です。なぜなら、不具合はロケール、データ長、画面サイズ、記述方向、およびプラットフォームの特定の組み合わせに依存することが多いためです。

グローバル展開するソフトウェアのQAパフォーマンスとセキュリティを検証するための4ステップ・チェックリスト。

まずは厄介なコンテンツから始める

擬似ローカライゼーション(Pseudolocalization)では、通常の文字列を、意図的に長くしたり、アクセント記号を付けたり、マーカーで囲んだりしたテスト用テキストに置き換えます。これにより、ハードコードされた文字列、見切れたラベル、高さが固定されたカード、英語でしか動作しないコントロールなどを洗い出せます。複数形のメッセージやバリデーションエラーはレイアウトの経路が異なることが多いため、空の状態とデータが入った状態の両方をテストしてください。

RTL(右から左へ読む言語)のテストでは、ナビゲーション全体を確認する必要があります。テキストの配置、戻るボタン、アイコン、チャート、スワイプジェスチャー、フォームフィールド、そして製品名 code を含むアラビア語の文章のような、方向が混在するコンテンツをチェックしてください。すべてのアイコンを自動的に反転させないよう注意しましょう。方向を示すアイコンは反転が必要な場合がありますが、ブランドロゴや特定のオブジェクトアイコンはそのままにする必要があります。

ロケール・マトリックスの自動化

言語名だけでなく、サポートする「言語と地域の組み合わせ」に基づいてテストマトリックスを作成してください。言語が同じでも、日付、数値、通貨、カレンダー、タイムゾーンなどの慣習は地域によって異なる場合があります。

  • 機能チェック: ロケールの選択、永続化、フォールバック、複数形の分岐、およびエラーメッセージを確認します。
  • ビジュアルチェック: 長い文字列、RTL有効時、狭い画面幅で主要な画面をキャプチャします。
  • 言語チェック: レビュアーにはコンテキスト、スクリーンショット、変数、そして想定されるアクションを伝えてください。
  • リグレッションチェック: 更新のインストール、中断されたダウンロード、オフラインでの起動、ロールバックの動作をテストします。

ロケールリソースが増えるにつれ、パフォーマンスには規律が必要です。適切な場合は、大きなバンドルをロケールや機能ごとに分割し、必須でない言語は遅延読み込みし、検証済みのリソースをキャッシュしてください。アプリケーションに信頼できるフォールバックがない限り、最初の画面が遅い翻訳リクエストに依存する設計は避けてください。

セキュリティも同じレビューに含まれるべきです。ロケール識別子やユーザーが提供する翻訳コンテンツを入力として扱い、リソースの構造を検証し、翻訳管理の認証情報を保護し、リモートで配信されるバンドルの完全性を確認してください。Live Update ワークフローでは、署名付きアーティファクト、管理されたチャネル、バージョン互換性チェック、観測可能な失敗、テスト済みのロールバックパスを使用する必要があります。デプロイ制御を設計するチームは、このガイドも参照できます。 マルチリージョンデプロイ.

Code の例と移行チェックリストで総まとめ

チェックアウト画面は、移行順序がなぜ重要かを示しています。まず code が最も多く触れる部分から始め、各前提をロケール対応の境界に置き換えてください。ハードコードされたラベル、日付、通貨、複数形メッセージ、固定幅レイアウトは個別の移行タスクとし、リソースの欠落が空のコントロールを残さないようフォールバックロケールを設定してください。

例えば、既存のコンポーネント内の通貨連結を置き換えます。

変更前:

price.textContent = currencySymbol + amount;

変更後:

price.textContent = new Intl.NumberFormat(locale, {
  style: "currency",
  currency: currencyCode
}).format(amount);

保持 amount 生の数値として渡します。記号の位置、区切り文字、小数点の慣習などの地域固有の詳細はフォーマッタが決定します。これにより、チェックアウトロジックにロケールルールが散らばるのを防げます。

実用的な移行チェックリスト:

  • インベントリ: ユーザーに見える文字列、フォーマットされた値、テキストを含む画像、ロケール前提を特定します。
  • 外部化: 意味のあるキーと翻訳コンテキストを付けて、コピーをリソースファイルに移動します。
  • ロケール状態の正規化: 検出、ユーザーによる上書き、永続化、フォールバックの挙動を定義します。
  • 手動フォーマットの置き換え: プラットフォームまたはJavaScriptのロケール対応フォーマッタを使用します。
  • レイアウトの強化: 文字列の伸長、切り詰め、双方向テキスト、フォント、RTLミラーリングをテストします。
  • バリデーションの自動化: CIでキーの欠落、プレースホルダー、リソースの構文、変更されたロケールをチェックします。
  • 安全なリリース: 署名、段階的な公開、モニタリング、ロールバックを活用し、ストアのプロセスまたは制御されたLive Updateチャネルを通じて、互換性のあるローカライズ変更をリリースします。

まずはオンボーディングやチェックアウトなど、トラフィックの多いフローを1つ選びます。そのリソース境界とバリデーションパイプラインが機能したら、無秩序な書き換えを試みるのではなく、同じ規約をアプリ全体に適用してください。

CapacitorJSやElectronのチーム向けに、Capgoは、互換性のあるJavaScript、CSS、文言、設定、アセットの変更に対して、署名付きのLive Update bundleをサポートしています。チャネル、差分配信、オブザーバビリティ、ロールバック保護を利用することで、ローカライズの修正を既存のCI/CDワークフローに組み込めます。これにより、互換性のある修正のたびにストア審査に依存する度合いを減らせます。他のロケールに展開する前に、そのリリースパスが自社のデプロイ制御に適合するか評価してください。

Capacitor アプリ向けの Live Updates

Web レイヤーのバグが本番で発生したら、App Store の審査を何日も待たずに Capgo で修正を配信しましょう。ネイティブの変更は通常の審査フローに残したまま、ユーザーはバックグラウンドでアップデートを受け取れます。

最新のブログ記事

Capgoは、真にプロフェッショナルなモバイルアプリを作るために必要な最高のインサイトを提供します。