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

如何在Flutter的*.arb本地化文件中定义不可翻译字符串?

在Flutter ARB本地化文件中实现字符串不翻译的方案

在Android的strings.xml里,我们可以通过translatable="false"属性指定字符串不参与翻译,示例代码如下:

<string name="inches" translatable="false">in</string>

针对Flutter的.arb本地化文件,有两种实用方案实现相同需求:

  • 方式一:通过ARB元数据标记不可翻译
    在主ARB文件中,给目标字符串的元数据(以@开头的键)添加"translatable": false配置,示例:

    "@inches": {
      "description": "英寸单位缩写",
      "translatable": false
    },
    "inches": "in"
    

    使用Flutter官方的intl本地化工具链时,会自动识别这个标记,跳过该字符串的翻译流程。

  • 方式二:仅在默认语言ARB文件中定义
    只将不需要翻译的字符串放在默认语言的ARB文件(比如app_en.arb)中,其他语言的ARB文件不添加该键。Flutter本地化框架在找不到对应语言的字符串时,会自动回退使用默认语言的版本,以此实现不翻译的效果。

两种方案中,方式一是官方推荐的标准做法,能清晰标记字符串的翻译状态,更利于项目维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:10:17