# General Translation Knowledge Base: Google Translate 替代方案：General Translation 与 Google Translate 对比
URL: https://generaltranslation.com/zh/kb/general-translation-vs-google-translate.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Google Translate 适合快速翻译一次性文本，但要以另一种语言发布产品，还需要结合上下文翻译每个字符串、保持术语一致、正确处理变量和复数形式、进行审校，并建立发布流程。General Translation 能理解代码中每个字符串的上下文，将从代码、审校到每一次发布的整个本地化工作流全面自动化。
Category: 翻译
Last updated: 2026-10-16
Authors: General Translation Team
Published: 2026-10-16

用 Google Translate 快速阅读外语网页或临时翻译一段文字非常方便。但产品本地化真正的难点在于：按照每个字符串在 UI 中的实际含义进行翻译，在多次发布之间保持术语一致，并把译文交付到应用加载它们的位置。无论以哪种方式在应用中使用 Google Translate，总有一部分工作得靠你自己完成。

## 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 Translate 的三种方式

### 让访问者的浏览器翻译页面

当页面语言不是用户能读懂的语言时，Chrome 会主动提示翻译。翻译在页面加载后于访问者的浏览器中进行：Google 的翻译脚本会将页面文本替换为包裹在 `<font>` 元素中的译文。你既看不到也无法审核翻译结果，也没有可供搜索引擎抓取的翻译版 URL；而 Google 对多语言网站的建议是将每种语言发布在各自独立的 URL 上 ([管理多语言网站](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 自身无法在不掩盖其他 bug 或拖慢常见场景的前提下规避该问题。标记了 `translate="no"` 的元素则不会被改动。

### 添加 Website Translator 小组件

Google 提供的可嵌入 Website Translator 仅限学术、政府、非营利及非商业网站使用，因此企业无法将其集成到自己的产品中 ([Google 翻译帮助](https://support.google.com/translate/answer/2534559?co=GENIE.Platform%3DDesktop)) 。

### 调用 Cloud Translation API

Cloud Translation API 是专为开发者打造的方案，能够完整保留 HTML 标签。对于 HTML 输入，其 Advanced 版本会跳过标记为 `translate="no"` 或 `class="notranslate"` 的文本，并额外提供词汇表、基于示例句对的自适应翻译，以及基于 Gemini 构建的 Translation LLM。请求中需包含文本和语言，还可以选择指定模型和词汇表：

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

API 中没有字段用来说明字符串出现在什么位置。在德语中，&quot;Save&quot; 既可以译为 *speichern* (保存文件) ，也可以译为 *sparen* (节省开支) ，而只含一个单词的请求无法给模型提供任何判断依据。流水线的其余部分都得由你自己构建：从 i18n 文件中提取字符串、保护 `{{count}}` 之类的占位符、为每种语言生成相应的复数形式、将结果写回、每次变更后重新运行，还要为审校人员提供修改输出的地方，并确保这些修改不会在下一次运行时被覆盖。如果要向用户展示翻译结果，Google 还要求注明出处：在结果旁显示 &quot;powered by Google Translate&quot; 标识，为未经修改的输出添加免责声明，并在会被搜索引擎索引的页面上添加机器翻译标记 ([出处注明要求](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 Translate。如果你需要原始机器翻译，并愿意自行处理上下文、占位符、复数形式、审校和署名，请使用 Cloud Translation API。如果译文要随产品一同交付 (例如应用 UI、文档或营销网站) ，需要在每种语言中都准确地道，并随每次发布保持更新，请使用 General Translation。

## General Translation 的不同之处

Google Translate 把很多本地化工作留给你自己处理，而 General Translation 正是为这些工作而打造的。它有两大不同之处：

* **它理解完整的上下文。** 一个 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；审校人员可在仪表板的 **译文** 页面中编辑译文；每次发布都能同时提供所有语言版本。

下面来看看上下文在代码中是什么样子。这个计费切换开关上的徽标显示为“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) 会将整个区块作为一个整体发送，连同其中的元素 (一个按钮和一个徽章) 以及 [`context`](/docs/react/reference/components/t#context) 备注一并提交，使翻译能够准确解析 &quot;Save&quot; 的含义，并按照各语言的习惯放置折扣信息。[`<Var>`](/docs/react/reference/components/var) 为折扣保留一个占位符，其值绝不会发送到 General Translation API。词汇表可在所有语言中固定产品名称等术语，自定义提示词则可设定规则，例如在德语中使用正式的 &quot;Sie&quot;。 (参见[为翻译定义上下文](/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 Translate 的文本翻译效果不错。但浏览器翻译既不支持审校，也无法生成可被索引的页面，还可能导致 React 应用出错；Website Translator 小组件则仅限非商业网站使用。
* Cloud Translation API 的请求中没有用于标明字符串出现位置的字段，占位符、复数形式、审校、交付和署名都得你自己实现。
* General Translation 能够理解代码中每个字符串的上下文，并将翻译相关的整个工作流自动化：从代码国际化、审校，到每次发布都以所有语言交付上线。

## Related questions

- [General Translation 与 i18next、react-intl 和 next-intl 对比：应该选择哪个国际化库？](https://generaltranslation.com/zh/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/zh/kb/general-translation-vs-tms.mdx): 如果开发者希望译文生成、源自代码的上下文以及审校流程都与产品发布紧密衔接，请选择 General Translation。你可以保留现有的消息目录和渲染库，也可以直接编写内联 JSX，无需翻译键。TMS 适合以语言供应商、CAT 编辑器和 XLIFF 交换为核心的翻译项目，其集成可以自动完成文件传输。
- [如何翻译 JSX 中的条件文本？](https://generaltranslation.com/zh/kb/translate-conditional-jsx.mdx): 保持句子完整，并翻译它的每个版本。三元表达式会把句子拆成碎片，使其失去含义，也无法适应各语言的语序。General Translation 通过在 `<T>` 中使用 `<Branch>` 解决这一问题，将整个句子作为一个整体进行翻译。
- [如何在 React 中处理复数形式？](https://generaltranslation.com/zh/kb/how-to-handle-plurals-in-react.mdx): 在 React 中处理复数形式时，应为每种语言的每个复数形式各准备一个句子，并按该语言的复数规则选出对应句子——英语有 2 种形式，俄语有 4 种，阿拉伯语有 6 种。gt-react 和 gt-next 提供的 General Translation `<Plural>` 组件只需接收你的源语言形式，General Translation 便会生成每种目标语言所需的形式。
- [如何为多语言 Next.js 应用设置 SEO？](https://generaltranslation.com/zh/kb/multilingual-nextjs-seo.mdx): 为每种语言提供带前缀的独立 URL，例如 /en/about 和 /es/about，然后为每种已发布的语言提供 html lang、自引用的规范网址、包含 x-default 的 hreflang 替代项、翻译后的 title 和 description，以及站点地图条目。将未发布的版本标记为 noindex。General Translation 的 gt-next 会将每种语言路由到各自的 URL，并通过 getGT 翻译标题。

## Previous and next questions

- Previous question: [General Translation 与 Weblate：该选哪一个？](https://generaltranslation.com/zh/kb/general-translation-vs-weblate.mdx)
- Next question: [i18next 替代方案：General Translation 与 i18next 对比](https://generaltranslation.com/zh/kb/general-translation-vs-i18next.mdx)

## Sitemap

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