You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止Google Translate翻译Flutter本地化ARB文件中的驼峰式变量?

解决Google Translate翻译ARB文件中驼峰变量的问题

Google Translate的网页界面和API会误译{userName}这类驼峰命名的变量,导致Flutter本地化后的应用崩溃,以下是几种不用修改变量命名的解决办法:

方法1:利用Google Translate的「不翻译标记」

把原文本中的变量用<span class="notranslate">包裹,比如将:

"greetingMorningWithName": "Good morning, {userName}!",

改成:

"greetingMorningWithName": "Good morning, <span class=\"notranslate\">{userName}</span>!",

然后用Google Translate的HTML模式(网页版选「翻译网页」或API中设置format=html)进行翻译。翻译完成后,再把<span class="notranslate">和</span>去掉,还原成原来的变量格式即可。

方法2:使用Google Translate术语表锁定变量

在Google Translate中创建术语表,将{userName}添加为术语,设置其目标语言的翻译结果就是{userName}本身。这样无论是网页版还是API翻译时,只要匹配到这个术语,就会直接保留原样,不会进行翻译。

方法3:预处理+后处理ARB文件

编写简单的脚本(比如Python或Shell脚本),在翻译前把所有驼峰变量替换成不会被翻译的临时占位符,比如把{userName}替换成__USER_NAME_TEMP__;翻译完成后,再把临时占位符替换回原来的{userName}。这种方法不需要依赖Translate的特殊功能,兼容性更强。

方法4:使用Flutter官方本地化工具链

借助Flutter的intl_translation包,它会自动处理ARB文件中的占位符,避免翻译工具误译变量。步骤大致如下:

  1. 用intl_translation提取待翻译的字符串到.intl文件
  2. 将.intl文件导出为适合Google Translate的格式(比如CSV)
  3. 翻译后再导入回ARB文件,工具会自动保留变量的原始格式

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 21:05:02