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

Flutter中如何为多语言代码复用同一.arb翻译文件?

挪威多语言代码的翻译文件复用方案

当然不用创建7份完全相同的文件,完全可以通过语言代码映射或者配置别名的方式复用同一个.arb文件,大幅降低维护成本。

具体实现方式

  • Flutter环境下的配置:在pubspec.yaml的flutter_localizations配置中,给不同语言代码设置别名指向同一个arb文件。示例配置如下:

    flutter:
      localizations:
        delegates:
          - GlobalMaterialLocalizations.delegate
          - GlobalWidgetsLocalizations.delegate
        supportedLocales:
          - Locale('no')
          - Locale('no', 'NO')
          - Locale('nb')
          - Locale('nb', 'NO')
          - Locale('nb', 'SJ')
          - Locale('nn')
          - Locale('nn', 'NO')
    

    之后在AppLocalizations类的加载逻辑里,针对这些Locale统一返回同一个翻译实例即可。

  • 通用语言代码映射:如果是其他使用arb的框架,可在语言加载逻辑中,将no_NO、nb_SJ等代码映射到主语言代码(比如nb),直接加载对应的arb文件。

关键注意点

  • 书面挪威语(nb)和新挪威语(nn)是两种不同的语言变体,不能复用同一文件,需要分开维护;而no、no_NO通常是nb的别名,nb_SJ与标准nb差异极小,可复用nb的翻译文件。
  • 维护时只需更新主文件,所有别名对应的语言会同步生效,避免重复修改操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:05:13