# General Translation Knowledge Base: React Native アプリを翻訳するにはどうすればよいですか？
URL: https://generaltranslation.com/ja/kb/translate-react-native-app.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: コンポーネント内のテキストをマークし、言語ごとに翻訳ファイルを生成して Intl ポリフィルを追加し、デバイスの言語に対応するファイルを読み込みます。General Translation の実験的な gt-react-native では、テキストを `<T>` でラップするだけで、Babel プラグインがポリフィルを追加し、npx gt translate がファイルを書き出します。
Category: 国際化
Last updated: 2026-10-21
Authors: Kevin Liu, Kevin Wu
Published: 2026-10-21

React Native アプリを翻訳するには、コンポーネント内のテキストをマークし、言語ごとに翻訳を用意して、デバイスの言語に合ったものを読み込みます。React Native の JavaScript ランタイムには、数値・日付・複数形の書式設定を行う `Intl` API が一部しか搭載されていないため、ポリフィルが必要です。また、Metro バンドラーは動的に組み立てたインポートパスを解決できないため、翻訳ファイルはそれぞれ静的な `require` 呼び出しで読み込む必要があります。さらに、リリースのたびに新しい文字列が増えるため、リリース前にそれらを各言語に翻訳しておかなければなりません。

## Video

The video is narrated in English, with English captions.

[How do I translate a React Native app?](https://caxecubb9c64cezv.public.blob.vercel-storage.com/films/kb-translate-react-native-app.mp4) (47 秒)

General Translation lets you translate a React Native app with `gt-react-native` and `T`. Add its Babel plugin, call `initializeGT` with `loadTranslations`, mark the welcome with `<T>`, run `npx gt translate`, and run it as a development build.

## React Native アプリを翻訳する方法

| アプローチ                                                                                                                   | 得意なこと                                                                                                                                                                                                     | 自分で対応する必要があること                                                                      |
| ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| 国際化(i18n)ライブラリ単体([`i18next`](/kb/general-translation-vs-i18next)、[`react-intl`](/kb/general-translation-vs-react-intl)) | 翻訳のレンダリングと値のフォーマットを担う成熟したランタイム                                                                                                                                                                            | すべての文字列をキーファイルに移し、各 `<Text>` 内のテキストをキー参照に置き換え、`Intl` ポリフィルを追加したうえで、すべての翻訳を作成・保守すること |
| `expo-localization` または `react-native-localize`                                                                         | デバイスの優先言語と地域設定を読み取り、アプリが初期ロケールを選べるようにする                                                                                                                                                                   | それ以降のすべて:文字列を参照するライブラリ、翻訳ファイル、複数形、そしてすべての翻訳                                         |
| 翻訳管理システム([Crowdin](/kb/general-translation-vs-crowdin)、[Lokalise](/kb/general-translation-vs-lokalise))                 | 翻訳者がスクリーンショット、用語集、翻訳メモリを活用して作業できる Web エディターを備え、リポジトリと同期できる                                                                                                                                                | アプリ側の i18nライブラリとキーファイル、同期のセットアップ、そしてリリースのたびに翻訳者の作業完了を待つこと                           |
| General Translation(`gt-react-native` と `gt` CLI)                                                                       | [`<T>`](/docs/react/reference/components/t) がキーを使わずに `<Text>` をインプレースで翻訳し、Babel プラグインが `Intl` ポリフィルを追加し、[`npx gt translate`](/docs/cli/reference/commands/translate) が用語集とカスタムプロンプトを適用して言語ごとに1つのファイルを書き出す | パッケージはまだ実験段階であり、Expo Go ではパッケージのネイティブモジュールを読み込めないため、Expo アプリでは開発ビルドが必要              |

画面数が少なく対象言語が1〜2つのアプリや、チームが引き続き Expo Go でテストする必要がある場合は、i18nライブラリ単体で翻訳を手作業で用意し、初期言語の選択には `expo-localization` または `react-native-localize` を組み合わせてください。ローカライゼーションチームがリリースごとに手作業で翻訳する場合は、翻訳管理システムが適しています。リリースのたびに文言が変わり、すべての言語をそれに追従させる必要がある場合は、General Translation を使ってください。すでに `i18next` を使っている場合も、`gt` CLI でその JSON ファイルを翻訳できます。

## General Translation で React Native アプリを翻訳する

General Translation の `gt-react-native` パッケージは実験的な機能で、Expo と標準の React Native CLI の両方で動作します。

1. `gt-react-native` と `gt` CLI をインストールし、`gt.config.json` に対象言語を記載します。

2. パッケージの Babel プラグインを追加します。このプラグインにより、`Intl` のポリフィルがエントリファイルに注入されます。

3. [`loadTranslations`](/docs/react/reference/functions/load-translations) 関数を渡して [`initializeGT`](/docs/react/reference/config#initialize) を一度だけ呼び出し、アプリを [`<GTProvider>`](/docs/react/reference/components/gt-provider) でラップします。`<GTProvider>` はデバイスからロケールを検出します。

4. テキストを [`<T>`](/docs/react/reference/components/t) でラップします。キーは不要です。

   ```tsx
   import { T } from 'gt-react-native';

   <T>
     <Text>Welcome back</Text>
     <Text>Your order is on its way.</Text>
   </T>;
   ```

5. [`npx gt login`](/docs/cli/reference/commands/login) でサインインし、プロジェクトIDを設定します。

6. [`npx gt translate`](/docs/cli/reference/commands/translate) を実行すると、言語ごとに翻訳ファイルが 1 つずつ書き出されます。このコマンドをビルドスクリプトに追加しておけば、常に最新の翻訳を含めてリリースできます。

モバイルとウェブの両プロジェクトに同じコンテキストグループ(用語集とカスタムプロンプト)を割り当てれば、用語とトーンを両者で統一できます。詳しい手順は [React Native クイックスタート](/docs/react/react-native-quickstart)を参照してください。

## Related questions

- [React アプリを翻訳するには？](https://generaltranslation.com/ja/kb/translate-react-app.mdx): React アプリを翻訳するには、まずコンポーネントを国際化してユーザーの言語でレンダリングできるようにし、次にすべての文字列をサポート対象の各言語に翻訳します。General Translation の gt-react は `<T>` コンポーネント内の JSX をインプレースで翻訳し、npx gt translate は言語ごとに 1 つのファイルを書き出します。
- [Next.js App Router アプリに i18n を追加するには？](https://generaltranslation.com/ja/kb/add-i18n-to-nextjs.mdx): まず gt init を実行して、対応する App Router プロジェクトに General Translation を設定します。次にソースコンテンツをマークし、翻訳を生成して、言語の切り替えが機能することを確認します。gt-next はテキストを翻訳の文脈とともに JSX 内に保持し、生成、レビュー、継続的な更新は CLI、ダッシュボード エディター、Locadex が担います。このガイドでは、ローカルファイルを明示的に使うセットアップ方法も紹介します。
- [翻訳ファイルなしでi18nは実現できますか？](https://generaltranslation.com/ja/kb/i18n-without-translation-files.mdx): はい。General Translationの gt-react と gt-next ライブラリを使えば、翻訳キーも、言語ごとに管理するJSONファイルもなしで、ReactとNext.jsのi18nを実現できます。文言は `<T>` コンポーネント内のJSXにインラインで記述したままで、gt translate コマンドがコードから得た文脈をもとに、ビルド時に各言語の翻訳を生成します。さらにLocadexを使えば、プルリクエストを通じて翻訳を常に最新の状態に保てます。
- [React で複数形を扱うにはどうすればよいですか？](https://generaltranslation.com/ja/kb/how-to-handle-plurals-in-react.mdx): React で複数形を扱うには、各言語の複数形ごとに文を 1 つずつ用意し、その言語の複数形規則に従って選択します。英語の複数形は 2 種類ですが、ロシア語は 4 種類、アラビア語は 6 種類あるためです。gt-react と gt-next に含まれる General Translation の `<Plural>` コンポーネントに翻訳元の形を渡せば、各対象言語に必要な形は General Translation が生成します。

## Previous and next questions

- Previous question: [Node.js アプリを翻訳するには？](https://generaltranslation.com/ja/kb/translate-node-app.mdx)
- Next question: [React アプリを翻訳するには？](https://generaltranslation.com/ja/kb/translate-react-app.mdx)

## Sitemap

See the [Knowledge Base sitemap](https://generaltranslation.com/ja/kb/sitemap.md) for every article.
