# General Translation Knowledge Base: Google 翻訳の代替：General Translation と Google 翻訳の比較
URL: https://generaltranslation.com/ja/kb/general-translation-vs-google-translate.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Google 翻訳は、単発のテキストをすばやく翻訳するのに便利ですが、製品を別の言語でリリースするには、各文字列を文脈に沿って翻訳し、用語を統一し、変数や複数形を正しく扱い、レビューを行い、リリースプロセスを整える必要があります。General Translation はコード内の各文字列の文脈を理解し、コードからレビュー、そして毎回のリリースまで、ローカライゼーションのワークフロー全体を自動化します。
Category: 翻訳
Last updated: 2026-10-16
Authors: General Translation Team
Published: 2026-10-16

Google 翻訳は、別の言語で書かれたページを読んだり、段落を一度だけ翻訳したりするには手軽な方法です。しかし、製品のローカライゼーションで難しいのは、すべての文字列を UI 上での意味に合わせて翻訳すること、リリースをまたいで用語を統一すること、そしてアプリが読み込める場所に翻訳を届けることです。アプリで Google 翻訳をどのように使っても、これらの一部は自分で対応する必要があります。

## Video

The video is narrated in English, with English captions.

[Google Translate alternatives: General Translation vs. Google Translate](https://caxecubb9c64cezv.public.blob.vercel-storage.com/films/kb-general-translation-vs-google-translate.mp4) (44 秒)

Google Translate is a quick way to translate one-off text, but shipping a product also needs each string translated in context, consistent terms, correct variables and plurals, review, and a release process. General Translation understands each string's context in your code and automates the whole workflow: wrap copy in `<T>` with a context note, keep values in `<Var>`, and run `npx gt translate` in your build while reviewers edit in the Dashboard.

## アプリで Google 翻訳を使う 3 つの方法

### 訪問者のブラウザにページを翻訳させる

Chrome は、ユーザーが読めない言語のページを表示すると翻訳を提案します。翻訳はページの読み込み後に訪問者のブラウザ内で行われ、Google の翻訳スクリプトがページのテキストを、`<font>` 要素でラップされた翻訳済みテキストに置き換えます。開発者は翻訳結果を目にすることもレビューすることもできず、検索エンジンがクロールできる翻訳済み URL も存在しません。一方で、多言語サイトに関する Google のガイダンスでは、言語ごとに個別の URL で公開することが推奨されています ([Managing multilingual sites](https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites)) 。

この書き換えによって React アプリが壊れることもあります。React は自身がレンダリングしたテキストノードへの参照を保持しているため、翻訳でそれらが置き換えられると、次の更新時に `NotFoundError: Failed to execute 'removeChild' on 'Node'` が発生して失敗する場合があります。React のメンテナーは 2018 年にこの問題の issue ([react#11538](https://github.com/react/react/issues/11538)) をクローズしました。その理由として、他のバグを隠蔽したり一般的なケースのパフォーマンスを低下させたりせずに、React 側でこれを回避することはできないと説明しています。なお、`translate="no"` が指定された要素は書き換えの対象外です。

### Website Translator ウィジェットを追加する

Google の埋め込み型 Website Translator は、学術機関、政府機関、非営利団体のサイトや非商用サイトでのみ利用が認められているため、企業が自社製品に組み込むことはできません ([Google Translate Help](https://support.google.com/translate/answer/2534559?co=GENIE.Platform%3DDesktop)) 。

### Cloud Translation API を呼び出す

Cloud Translation API は、開発者向けに作られた選択肢です。HTML タグはそのまま保持されます。Advanced エディションでは、HTML 入力に含まれる `translate="no"` または `class="notranslate"` が指定されたテキストを翻訳対象から除外できるほか、用語集、例文ペアを使った適応型翻訳、Gemini をベースにした Translation LLM も利用できます。リクエストには、テキストと言語に加えて、必要に応じてモデルと用語集を指定します：

```json title="translateText request body"
{
  "contents": ["Save"],
  "mimeType": "text/plain",
  "sourceLanguageCode": "en",
  "targetLanguageCode": "de"
}
```

文字列がどこに表示されるかを指定するフィールドはありません。ドイツ語では「Save」は *speichern* (ファイルを保存する) にも *sparen* (節約する) にもなりますが、単語ひとつだけのリクエストでは、モデルにはどちらを選ぶべきかの手がかりがありません。パイプラインの残りの部分は自分で構築する必要があります。i18n ファイルからの文字列の抽出、`{{count}}` などのプレースホルダーの保護、各言語の複数形の生成、結果の書き戻し、変更のたびの再実行、そして次回の実行で上書きされないかたちでレビュー担当者が出力を修正できる仕組みの用意です。さらに、出力をユーザーに表示する場合は、Google が定める帰属表示も必要です。結果の横への「powered by Google Translate」バッジの表示、未修正の出力への免責事項の記載、検索エンジンにインデックスされるページへの機械翻訳マークアップの付与が求められます ([帰属表示の要件](https://docs.cloud.google.com/translate/attribution)) 。

## 各選択肢の比較

| アプローチ                 | 各文字列の文脈                    | 変数と複数形                                                                                                                              | 検索エンジン                                              | レビューと更新                                                  |
| --------------------- | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | -------------------------------------------------------- |
| ブラウザ翻訳                | ページ上に表示されているテキスト           | プレーンテキストとして翻訳される                                                                                                                    | 新たにインデックスされるものはない                                   | レビューなし。訪問者のブラウザごとに毎回翻訳し直される                              |
| Cloud Translation API | テキストのほか、任意で用語集や例文ペア        | プレースホルダーの保護や各言語の複数形の構築は自分で行う                                                                                                        | 各言語を個別の URL で公開すればインデックスされる                         | スクリプトを自分で再実行し、レビューの仕組みも自前で構築する                           |
| General Translation   | 周囲の JSX、文脈メモ、用語集、カスタムプロンプト | [`<Var>`](/docs/react/reference/components/var) の値は翻訳対象から除外され、[`<Plural>`](/docs/react/reference/components/plural) の分岐は文全体として翻訳される | `gt-next` のロケールルーティング (`/es/about` など) によりインデックスされる | ビルドや Locadex のプルリクエストのたびに変更箇所が翻訳され、レビュー担当者はダッシュボードで編集できる |

外国語のコンテンツを読む場合や、社内向けのテキストを一度だけ翻訳する場合は Google 翻訳 を使いましょう。機械翻訳の結果だけが必要で、文脈、プレースホルダー、複数形、レビュー、帰属表示は自分で構築するという場合は Cloud Translation API が適しています。アプリの UI、ドキュメント、マーケティングサイトなど、製品に組み込んで提供する翻訳で、どの言語でも自然に読め、リリースのたびに最新の状態を保つ必要がある場合は General Translation を使いましょう。

## General Translation の違い

General Translation は、Google 翻訳 では利用者任せになっているローカライゼーションの領域をカバーするために作られています。主な違いは2つあります。

* **文脈全体を理解します。** Cloud Translation のリクエストに含まれるのは、テキストと言語、そして任意の用語集だけです。General Translation は、各文字列をプロダクト内での位置づけを踏まえて翻訳します。周囲のコンポーネントや要素、文中の変数や複数形、追加した文脈メモ、さらに用語集とカスタムプロンプトまで考慮します。コンテキストグループを使えば、割り当てたすべてのプロジェクトに同じ用語とトーンが適用されるため、アプリ、ドキュメント、マーケティングサイトの言葉づかいを統一できます。
* **ローカライゼーションのワークフロー全体を自動化します。** オープンソースのライブラリで React、Next.js、Vue、Node.js のコードを国際化できます。さらに Next.js と React のアプリでは、General Translation の AIエージェントである [Locadex](/docs/platform/locadex/quickstart) がそのコードを代わりに書いてくれます。[`npx gt translate`](/docs/cli/reference/commands/translate) はビルドや CI の中で実行され、翻訳をリポジトリまたは General Translation の CDN に書き出します。レビュアーはダッシュボードの **Translations** ページで翻訳を編集でき、すべてのリリースが全言語で提供されます。

文脈がコード上でどう表れるかを見てみましょう。この請求プラン切り替えのバッジには「Save 20%」と表示されています。

```tsx title="BillingToggle.tsx"
import { T, Var } from 'gt-react';

export function BillingToggle({ discount }: { discount: string }) {
  return (
    <T context="Pricing page billing toggle. Save means pay less, not store data.">
      <button>Yearly</button>
      <span className="badge">Save <Var>{discount}</Var></span>
    </T>
  );
}
```

[`<T>`](/docs/react/reference/components/t) は、ブロックを 1 つの単位として、その要素 (ボタンとバッジ) や [`context`](/docs/react/reference/components/t#context) のメモと一緒に送信します。そのため、翻訳時に「Save」の意味を正しく解決し、割引の表記を各言語にとって自然な位置に配置できます。[`<Var>`](/docs/react/reference/components/var) は割引額のプレースホルダーを保持し、その値が General Translation API に送信されることはありません。用語集を使えば製品名などの用語をすべての言語で統一でき、カスタムプロンプトではドイツ語で敬称の「Sie」を使うといったルールを設定できます ([翻訳の文脈を定義する](/docs/platform/dashboard/guides/defining-context-for-translations)および[翻訳のレビューと編集](/docs/platform/dashboard/guides/reviewing-translations)を参照) 。ユーザー生成コンテンツや CMS のテキストなど、実行時にしか存在しないコンテンツは、`gt-node` の [`tx`](/docs/node/reference/functions/tx) がリクエストに応じて翻訳します。

General Translation は 120 以上のロケールに対応しています。まずは [Next.js クイックスタート](/docs/react/nextjs-quickstart)または [Reactクイックスタート](/docs/react/react-quickstart)から始めましょう。

## 重要なポイント

* Google 翻訳はテキストを十分な品質で翻訳します。しかし、ブラウザ翻訳ではレビューができず、検索エンジンにインデックスされるページも生成されないうえ、React アプリが壊れることもあります。また、Website Translator ウィジェットは非営利サイトでしか利用できません。
* Cloud Translation API のリクエストには、文字列がどこに表示されるかを指定するフィールドがありません。さらに、プレースホルダー、複数形、レビュー、配信、帰属表示はすべて自前で構築する必要があります。
* General Translation は、コード内の各文字列の文脈を理解したうえで、コードの国際化からレビュー、そしてすべてのリリースを全言語で出荷するまで、翻訳にまつわるワークフローを自動化します。

## Related questions

- [General Translation vs. i18next、react-intl、next-intl：どのi18nライブラリを使うべきか？](https://generaltranslation.com/ja/kb/general-translation-vs-i18n-libraries.mdx): i18next、react-intl、next-intlなどのオープンソースライブラリ自体は、翻訳を一切行いません。これらが行うのは、あなた自身や翻訳者、あるいは別のサービスが作成し、言語ごとのカタログファイルに用意した翻訳を表示することだけです。General Translationのライブラリも同じくオープンソースで同じ役割を果たしますが、General Translationはさらに、コードを文脈として活用しながら翻訳そのものも行います。
- [General Translation と TMS（Crowdin、Lokalise、Phrase）の比較](https://generaltranslation.com/ja/kb/general-translation-vs-tms.mdx): 翻訳の生成、コードから導出した文脈、レビューをプロダクトのリリースと連動させたい開発チームには General Translation が適しています。既存のカタログとレンダリングライブラリをそのまま使うことも、翻訳キーを使わずにインライン JSX を記述することもできます。TMS は、言語ベンダー、CAT エディター、XLIFF でのやり取りを中心とした翻訳プログラムに適しており、そのインテグレーションを使えばファイル転送を自動化できます。
- [JSX の条件付きテキストはどのように翻訳すればよいですか？](https://generaltranslation.com/ja/kb/translate-conditional-jsx.mdx): 文を分割せずに、すべてのバージョンを翻訳します。三項演算子を使うと文が断片に分かれ、断片は意味を失ううえ、各言語の語順に沿った位置にも置けなくなります。General Translation では `<T>` の中で `<Branch>` を使い、文をひとつの単位として翻訳します。
- [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 が生成します。
- [多言語対応の Next.js アプリで SEO を設定するには？](https://generaltranslation.com/ja/kb/multilingual-nextjs-seo.mdx): 各言語に /en/about や /es/about のようなプレフィックス付きの URL を割り当て、公開している言語ごとに html lang、自己参照のカノニカル、x-default を含む hreflang の代替リンク、翻訳済みのタイトルと説明文、サイトマップのエントリを出力します。未公開のバージョンには noindex を指定します。General Translation の gt-next は各言語を専用の URL にルーティングし、getGT でタイトルを翻訳します。

## Previous and next questions

- Previous question: [General Translation と Weblate の比較：どちらを使うべきか](https://generaltranslation.com/ja/kb/general-translation-vs-weblate.mdx)
- Next question: [i18next の代替：General Translation と i18next の比較](https://generaltranslation.com/ja/kb/general-translation-vs-i18next.mdx)

## Sitemap

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