Magic Translate vs. Angular i18n
Angular 应用程序通常使用以下三种工具之一进行翻译:Angular 的内置 i18n、ngx-translate 或 Transloco。在发布应用程序之前,这三种语言都需要对每种语言进行翻译。Magic Translate 直接翻译模板中的文本,无需翻译文件。
一目了然
| Magic Translate | Angular i18n | ngx-translate 和 Transloco | |
|---|---|---|---|
| 你如何写文字 | 你自己的话,在 <t> 或 t pipe | 你自己的话,用 i18n 标记 | 每条消息的密钥 |
| 翻译 | AI 翻译,自动创建 | 提取到 XLIFF 文件并由你翻译 | 每种语言的 JSON 文件,由你编写 |
| 切换语言 | 在运行时 | 每种语言一个版本 | 在运行时 |
| 服务器渲染 | 是的,在编译时使用预渲染进行翻译 | 是的 | 是的,需要额外的设置 |
| 价格 | 免费套餐,然后根据使用量订阅月度套餐 | 免费,是 Angular 的一部分 | 开源且免费 |
代码有何不同
使用 Angular 的内置 i18n,你可以标记文本、提取它并翻译每种语言的解压缩文件:
<h2 i18n>Your shopping cart</h2>
ng extract-i18n# then translate messages.xlf into messages.de.xlf, messages.fr.xlf, …# and build the app once per language
使用 ngx-translate 或 Transloco 时,每条消息都有一个密钥,其翻译存在于 JSON 文件中:
<!-- ngx-translate --><h2>{{ 'cart.title' | translate }}</h2><!-- Transloco --><h2>{{ 'cart.title' | transloco }}</h2>
使用 Magic Translate,您可以编写文本并发布应用程序:
<h2><t>Your shopping cart</t></h2><input [placeholder]="'Search products' | t" />
何时选择 Magic Translate
- 你想让你的 Angular 应用程序支持多种语言,而无需提取、翻译和加载文件。
- 您希望用户切换语言,而无需重新加载应用程序或为每种语言构建一次应用程序。
- 您的文本经常更改,并且您希望每种语言都保持最新状态。
何时选择 Angular i18n、ngx-translate 或 Transloco
- 所有文本必须由一个人翻译或审阅。
- 你需要精确控制每种语言的复数和措辞。
- 你想要一个没有外部服务的免费解决方案。
移至 Magic Translate
一次可以切换一个组件。用 <t> 中的英文文本替换密钥或 i18n 属性,或使用 t pipe 作为属性。Angular 指南显示了设置。
准备好试试了吗?按照入门指南在五分钟内翻译您的第一个组件。