如何在干净的代码文件夹结构中按功能拆分 Flutter ARB 本地化文件?

问题描述 投票:0回答:1

我正在开发一个遵循干净代码架构的 Flutter 项目,并使用 ARB 文件进行本地化。我想组织每个功能和组件中的翻译文件,但我不确定构建它们的最佳方法。目前,我的项目如下所示:

lib/
  ├── features/
  │    ├── feature_1/
  │    │    ├── data/
  │    │    ├── domain/
  │    │    ├── presentation/
  ├── l10n/    
  └── main.dart

我的目标是将本地化文件移近每个功能,如下所示:

lib/
  ├── features/
  │    ├── feature_1/
  │    │    ├── data/
  │    │    ├── domain/
  │    │    ├── presentation/
  │    │    │    └── l10n/
  │    │    │         ├── feature_1_en.arb
  │    │    │         └── feature_1_de.arb
  └── main.dart

我有一些具体问题:

  1. 有没有办法分割翻译
    .arb
    文件,以便它们驻留在每个功能的
    presentation
    文件夹中(例如,
    lib/features/feature_1/presentation/l10n
    )?
  2. 将 ARB 文件放置在特定于功能的文件夹中是否仍然允许本地化逻辑正常工作,或者以这种方式管理它们是否会受到限制?
  3. 是否有任何推荐的实践或工具可以在干净的代码架构中处理基于功能的本地化?

任何建议或例子将不胜感激!

android flutter dart intl arb
1个回答
0
投票

您的目标是干净的代码架构并考虑功能级别的本地化,这真是太好了。
虽然代码干净,但重要的是不要使解决方案过于复杂或紧密耦合。集中式本地化文件的通用结构已经过优化,并且遵循干净的代码原则。在重组之前,问问自己:

  • 如果相同的字符串出现在多个要素中,您会在每个文件中重复它吗?
  • 未来扩容时,需要花费多少额外的精力去搜索各种文件来更新翻译?

根据我的经验,集中式方法更容易,因为许多字符串被重用。它通过单一来源处理所有内容,简化了更新并使本地化管理更加高效。

示例:

© www.soinside.com 2019 - 2024. All rights reserved.