Flutter国际化:如何将.arb文件拆分为多个独立文件
Flutter拆分ARB国际化文件的实现方法
当然可以拆分ARB文件,具体实现步骤如下:
1. 创建分类后的ARB文件
在项目的本地化目录(通常为lib/l10n)下,新建对应业务分类的ARB文件,比如:
buttons_en.arb:存放按钮相关文本{ "loginBtn": "Login", "submitBtn": "Submit", "cancelBtn": "Cancel" }messages_en.arb:存放提示消息相关文本{ "welcomeMsg": "Welcome to our app!", "errorNetworkMsg": "No internet connection" }
2. 配置l10n.yaml文件
修改项目根目录下的l10n.yaml(无此文件则新建),确保配置包含所有拆分的ARB文件:
arb-dir: lib/l10n template-arb-file: app_en.arb # 保留原模板文件,可存放通用文本或仅作为元数据载体 output-localization-file: app_localizations.dart included-patterns: - '*.arb' # 扫描目录下所有ARB文件
注意:模板文件(
app_en.arb)需保留必要元数据,示例如下:{ "@@locale": "en" }
3. 生成本地化代码
在终端运行以下命令,Flutter工具会自动合并所有ARB文件内容并生成统一的本地化类:
flutter gen-l10n
4. 使用拆分后的本地化文本
生成完成后,可直接通过生成的类调用对应文本,示例:
// 调用按钮文本 Text(AppLocalizations.of(context)!.loginBtn) // 调用消息文本 Text(AppLocalizations.of(context)!.welcomeMsg)
注意事项
- 所有同语言的ARB文件后缀需保持一致(如
_en、_zh),确保语言匹配正确。 - 不同ARB文件中禁止出现重复键名,否则生成代码时会抛出冲突错误,拆分前需做好键名规划。
内容的提问来源于stack exchange,提问作者Almog
相关产品推荐
相关产品推荐

