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
相关产品推荐
相关产品推荐

