# General Translation Knowledge Base: General Translation 与 Localazy 对比：该选哪一个？
URL: https://generaltranslation.com/zh/kb/general-translation-vs-localazy.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 如果你希望借助共享术语和构建自动化来翻译 Web 与原生应用文案，同时既能保留经过审校的消息目录，也能采用内联组件，请选择 General Translation。它的 CLI 在构建过程中完成翻译，审校人员可在仪表板中编辑，并且按用量而非键的数量计费。Localazy 则更适合需要更广泛的文件格式支持、内置专业翻译服务以及原生移动端 OTA（空中下载）更新的团队。
Category: 工作流工具
Last updated: 2026-11-13
Authors: Jackie Chen
Published: 2026-11-13

Localazy 是一个托管式本地化平台，可适配各类技术栈。你可以用它的 CLI 上传源文件，借助 Localazy AI、机器翻译、自己的团队或 Localazy 的专业译者翻译这些键，然后下载译文或通过其 CDN 分发。它支持的格式涵盖 Web、Flutter 和原生移动项目。General Translation 将组件或文件翻译接入你的构建流程，并在多个项目之间共享术语；在 React、Next.js 和 Vue 中，你还可以直接将文案内联在组件中。

## Localazy 的优势

* **多种技术栈，一个平台。** [CLI](https://localazy.com/docs/cli/the-basics) 支持上传和下载[数十种格式](https://localazy.com/docs/general/supported-file-formats)，包括 Flutter ARB、XLIFF、Java properties、Qt TS 和 Excel；Professional 及以上方案还支持导出为其他格式。借助分支和发布标签，可将并行工作与不同应用版本相互隔离。
* **遵循你的规则的 AI。** [Localazy AI](https://localazy.com/docs/general/localazy-ai) 会自动应用你的词汇表和风格指南，并参考以往译文和你添加的备注。译者还能查看附加在键上的[截图](https://localazy.com/docs/general/screenshots)。CLI 的 [`localazy translate`](https://localazy.com/docs/cli/ai-translations) 可在脚本和构建流水线中按需返回 AI 译文。
* **随时可用的人工译者。** 你可以直接在平台内订购[专业翻译或机器翻译的人工审核](https://localazy.com/docs/general/human-translation-services)服务，并使用与 AI 相同的使用额度支付。
* **无需发版即可投递。** [Language CDN](https://localazy.com/docs/cdn/cdn-introduction) 将译文直接发布给用户，[空中更新 (OTA) ](https://localazy.com/docs/general/ota-updates)无需经过应用商店发版，即可刷新 Android 和 iOS 应用中的字符串。
* **自动化与复用。** [自动化流程](https://localazy.com/docs/general/automations)可在新内容到达时自动机器翻译新键并应用翻译记忆。[ShareTM](https://localazy.com/docs/general/what-is-localazy-sharetm) 是一种需主动启用的共享翻译记忆，会推荐其他 Localazy 项目中已批准的译文。
* **无限席位。** 所有方案 (包括免费方案) 均不限席位和语言数量，因此增加译者和审校人员不会产生额外费用。

## Localazy 仍需工程师自行处理的部分

在 Localazy 的托管目录工作流中，应用会读取从项目导出的文件。以下 React 示例使用 react-i18next，并搭配外部源文案目录：

```tsx title="src/MembersNotice.tsx"
import { Trans } from 'react-i18next';

export function MembersNotice({ count }: { count: number }) {
  return (
    <p>
      <Trans
        i18nKey="workspace.members"
        count={count}
        components={{ membersLink: <a href="/settings/members" /> }}
      />
    </p>
  );
}
```

```json title="locales/en.json"
{
  "workspace": {
    "members_one": "Your workspace has {{count}} member. <membersLink>Invite your team</membersLink>",
    "members_other": "Your workspace has {{count}} members. <membersLink>Invite your team</membersLink>"
  }
}
```

`localazy upload` 和 `localazy download` 可以在 CI 中运行，自动化流程也可以在新键出现时自动翻译。其独立的 [`localazy translate`](https://localazy.com/docs/cli/ai-translations) 命令还能将译文同步返回给构建脚本，而无需将其存储为项目短语。就上文的目录示例而言，这意味着你需要在组件之外同步维护消息键、复数条目和占位符映射。在受支持的库中，内联默认值和提取功能可以自动生成目录；但目录、上下文和投递配置仍需你自行维护。

Localazy 的免费方案最多支持 200 个源键。付费方案按托管的源键数量计费：Professional 方案包含 1,000 个键，按年付费为每月 $34；Business 方案包含 10,000 个键。付费方案附带一定的 AI 翻译额度；超出部分的 AI 翻译、机器翻译和人工翻译均消耗使用额度，其中 Localazy AI 的价格为每词 $0.0035 至 $0.008。Localazy 和 General Translation 均不限用户数量，因此席位并不构成两者的成本差异。 (参见 [Localazy 定价](https://localazy.com/pricing)，查阅于 2026 年 11 月。)

## Localazy 与 General Translation 概览对比

| 功能        | Localazy                                       | General Translation                                                                                                                            |
| --------- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| 字符串存放位置   | 以键的形式存放在源文件中，并上传到 Localazy 项目                  | 直接写在代码中的 [`<T>`](/docs/react/reference/components/t) 内，或保留在你现有的资源文件中                                                                           |
| 代码接入方式    | 在 CI 中上传/下载；使用 `localazy translate` 同步获取按需翻译结果 | 在构建中运行 [`npx gt translate`](/docs/cli/reference/commands/translate)，或在 Next.js 和 React 应用中使用 [Locadex](/docs/platform/locadex/quickstart) 拉取请求 |
| 由谁翻译      | Localazy AI、机器翻译、你的团队，或 Localazy 的专业译者         | 由 AI 结合代码、词汇表和自定义提示词提供的上下文进行翻译，再由你的团队在仪表板中审校                                                                                                   |
| 每个字符串的上下文 | AI 参考备注、键名、词汇表、风格指南和以往译文；截图可辅助审校人员             | 已标记的 JSX 和备注，或资源文件元数据；词汇表和自定义提示词可在已分配的项目之间共享                                                                                                   |
| 文件格式      | 数十种，包括 Flutter ARB、XLIFF 和 Java properties     | JSX，以及 [JSON、YAML、PO、Markdown、iOS、Android、.resx 等](/docs/cli/reference/formats/json-files)                                                     |
| 投递      | 下载文件、Language CDN，以及 Android 和 iOS OTA         | 构建中的本地文件，或 General Translation 为 React 和 Next.js 提供的 CDN                                                                                       |
| 定价        | 按托管源键数量计费的方案，包含 AI 额度，并可购买额外使用额度；席位不限          | [按用量计费的翻译](https://generaltranslation.com/pricing)，不按键数订阅，也不收取席位费用                                                                             |

## 为什么团队选择 General Translation 而非 Localazy

在 React、Next.js 和 Vue 中，General Translation 会直接翻译组件中的文案，因此无需维护源文案目录。下面用 `gt-react` 实现同一条通知 (需先[设置其提供者](/docs/react/react-quickstart)) ：

```tsx title="src/MembersNotice.tsx"
import { T, Plural, Num } from 'gt-react';

export function MembersNotice({ count }: { count: number }) {
  return (
    <T>
      <p>
        <Plural
          n={count}
          singular={<>Your workspace has <Num>{count}</Num> member.</>}
        >
          Your workspace has <Num>{count}</Num> members.
        </Plural>{' '}
        <a href="/settings/members">Invite your team</a>
      </p>
    </T>
  );
}
```

单数句子、后备句子和链接都保留在组件中。[`npx gt translate`](/docs/cli/reference/commands/translate) 会根据它们生成目标语言的各个复数形式；[`<Plural>`](/docs/react/reference/components/plural) 则在渲染时根据区域设置和数量选择相应的形式。

* **更快。** 英文复数分支和链接放在一起，因此文案改动始终留在该组件的拉取请求中。CLI 会提取已标记的内容，生成有改动部分的译文，并在构建前下载。工程师无需在源文案目录中为这段 UI 额外维护一条英文消息。
* **按用量计费。** Localazy 的方案会随托管源键数量的增长而逐级升级，超出套餐所含额度的翻译需要额外购买使用额度。General Translation 按你实际请求的翻译工作量计费，并复用匹配的已完成的翻译，因此目录规模增长不会迫使你升级到更高的方案。 (参见[用量费率](https://generaltranslation.com/pricing/usage)。) 
* **以 JSX 结构作为上下文。** Localazy AI 在翻译每个键时会参考其备注、词汇表和以往译文。General Translation 翻译的是整个已标记的 block，因此上文提示中的复数分支和链接会连同所有 `context` 备注一并送去翻译，审校人员可在[仪表板](/kb/review-translations)中修正结果。对于原生字符串，Android `strings.xml` 和 Apple `.strings` 文件中的注释同样可以承载这类备注。 (参见 [General Translation 如何发送上下文](/kb/ai-translation-context)。) 
* **风险更低。** 你可以沿用现有的 i18next 或 next-intl 库以及已审校的消息目录来接入该服务；是否迁移到内联组件可以另行决定。CLI 还能翻译 iOS String Catalogs、`.strings`、`.stringsdict`、Android `strings.xml` 和 PO 文件，融入你现有的发布流程。所有译文均已在本地加载时，采用 MIT 许可的 `gt-react` 和 `gt-next` 库无需 GT 账户，也无需调用运行时服务即可完成渲染。

Ramp 借助 General Translation 将其仪表板、落地页和 iOS 应用本地化为 11+ 种区域设置。 (参见[面向企业的 General Translation](https://generaltranslation.com/enterprise)。)

## Localazy 更适合的场景

如果一个项目需要支持 Flutter ARB、XLIFF 或 Java properties 等格式，需要在同一平台内直接订购专业人工翻译，需要让原生移动应用无需发布新版本即可通过 OTA (空中下载) 更新字符串，或者希望在多个 Localazy 项目之间共享翻译记忆，那么 Localazy 是更好的选择。

## 从 Localazy 迁移到 General Translation

1. **导出并备份。** 在代码仓库中保留一份源文件快照，[下载](https://localazy.com/docs/cli/download-reference)与之对应的、完整且已审校的译文，并将两者一并备份。确认目标条目均已实际翻译，而不是 source-language 后备内容；如有未完成的区域设置，请先补全。
2. **暂停 Localazy 的写入。** 在 General Translation 写入任何文件之前，暂停所有会写入代码仓库的 Localazy 上传、下载任务和自动化流程。如果两个工具写入同一批文件，最后写入的一方会覆盖另一方。
3. **设置上下文。** 为这些文件配置 `gt.config.json`，将词汇表复制到上下文分组，将风格指南复制到自定义提示词，并将针对单个字符串的备注保留在源文件注释或[键级元数据](/docs/cli/reference/keyed-metadata)中，确保首次翻译就能用上这些信息。
4. **上传。** 运行 [`npx gt upload`](/docs/cli/reference/commands/upload)，导入已下载的译文。
5. **翻译并验证。** 运行 [`npx gt translate`](/docs/cli/reference/commands/translate)，并在应用中检查一个区域设置。继续由 i18next 或 next-intl 渲染消息目录；如果仍需要原生的空中 (OTA) 投递，请在替代方案就绪之前保留现有配置。

## General Translation 能替代 Localazy 吗？

可以，适用于 React、Next.js 和 Vue 组件中的产品文案，以及 CLI 支持的各类文件格式。你已审校的译文、词汇表和逐条字符串备注都可以沿用，使用 i18next 或 next-intl 的应用也无需更换原有的库。真正的变化在于翻译发生的环节：翻译在你的构建过程中完成，而不是在一个需要与之同步的平台上进行。需要另寻替代的是原生 OTA (空中) 更新和平台内置的专业译者：前者改为通过应用发布实现，后者改由你自己的审校人员负责。

## Related questions

- [General Translation 与 TMS（Crowdin、Lokalise、Phrase）对比](https://generaltranslation.com/zh/kb/general-translation-vs-tms.mdx): 如果开发者希望译文生成、源自代码的上下文以及审校流程都与产品发布紧密衔接，请选择 General Translation。你可以保留现有的消息目录和渲染库，也可以直接编写内联 JSX，无需翻译键。TMS 适合以语言供应商、CAT 编辑器和 XLIFF 交换为核心的翻译项目，其集成可以自动完成文件传输。
- [General Translation 与 SimpleLocalize 对比：该选哪一个？](https://generaltranslation.com/zh/kb/general-translation-vs-simplelocalize.mdx): 如果你希望将 UI 文案和翻译上下文保留在组件中、在构建前生成有变更的消息，并且无需支付席位费用即可审校措辞，请选择 General Translation。你也可以继续使用现有的 i18next 或 next-intl 消息目录。SimpleLocalize 则适合需要基于键的翻译编辑器、页面内编辑、按客户定制措辞以及原生移动端 OTA 更新的团队。
- [Crowdin 替代方案：General Translation 与 Crowdin 对比](https://generaltranslation.com/zh/kb/general-translation-vs-crowdin.mdx): 如果你希望将文案保留在组件中，并随构建生成译文，请选择 General Translation。Crowdin 围绕资源文件、译者和审校工作流程来管理翻译项目，需要工程师将其接入应用，并随产品迭代持续维护。对于开源社区翻译和由供应商主导的翻译项目，Crowdin 依然是很好的选择。
- [对于每天都要发布的团队，哪款持续本地化工具最合适？](https://generaltranslation.com/zh/kb/best-continuous-localization-tools.mdx): 选择 General Translation，即可在每次构建前翻译新文案，并借助已标记 JSX 中的上下文和共享的产品术语提升翻译准确性。你的团队可以在仪表板中审校并修正措辞，Locadex 则会自动创建拉取请求，将新的 UI 文本标记为待翻译。你无需改动现有的 i18next 或 next-intl 初始化设置，即可采用这一工作流。
- [如何为软件字符串的 AI 翻译提供足够的上下文？](https://generaltranslation.com/zh/kb/ai-translation-context.mdx): 翻译完整的消息，并附上含义说明、占位符的作用、长度限制和统一术语。General Translation 的 CLI 会将标记的 JSX 提取为结构化的 block，并将上下文备注带入生成过程。对于已有的 JSON 和 YAML 目录，键级元数据可为每个字符串提供单独的指令。上下文组会将你的词汇表和自定义提示词应用到所有已分配的项目，审校人员则可在仪表板中修正输出结果。

## Previous and next questions

- Previous question: [构建时、运行时还是翻译代理：应该如何交付译文？](https://generaltranslation.com/zh/kb/build-time-vs-runtime-translation.mdx)
- Next question: [General Translation 与 SimpleLocalize 对比：该选哪一个？](https://generaltranslation.com/zh/kb/general-translation-vs-simplelocalize.mdx)

## Sitemap

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