【问题标题】:Flutter Internationalization: How to generate AppLocalizations file with nested objects in .arb?Flutter 国际化:如何在 .arb 中生成带有嵌套对象的 AppLocalizations 文件?
【发布时间】:2022-08-20 00:54:49
【问题描述】:

我们如何在 arb 文件中使用嵌套对象?如果有嵌套对象,Flutter gen 将不起作用。

l10n.yaml

arb-dir: lib/l10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart
output-class: AppLocalizations
synthetic-package: false

pubspec.yaml

flutter:
  generate: true

app_en.arb

  \"clients\": {
    \"label\": \"Client\",
    \"title\": {
      \"add\": \"New Client\",
      \"details\": \"Client Details\",
      \"edit\": \"Edit Client\",
      \"manage\": \"Manage Clients\"
    }
  },

app_bn.arb

   \"clients\": {
    \"label\": \"ক্লায়েন্ট\",
    \"title\": {
      \"add\": \"নতুন ক্লায়েন্ট\",
      \"details\": \"ক্লায়েন্ট ডিটেলস\",
      \"edit\": \"এডিট ক্লায়েন্ট\",
      \"manage\": \"ক্লায়েন্ট পরিচালনা\"
    }
  },

如果我运行文件来生成翻译,颤振会引发异常。

例外:\"clients\" 的值不是字符串。

在 arb 文件中找不到任何包含嵌套对象的解决方案。我找到了一些使用 JSON 文件的方法。但我想使用 arb 文件。

有什么办法可以用 arb 文件做到这一点?

    标签: flutter localization internationalization flutter-localizations


    【解决方案1】:

    截至撰写此评论时,没有办法做到这一点

    然而,我特别用来组织部分的一个技巧是这样的:

     {
            "@_CLIENT": {} 
            "client_label": "Client",
            "client_title_add":"New Client",
            "client_title_details":"Client Details",
            "client_title_edit": "Edit Client",
            "client_title_manage": "Manage Clients"
            }
    

    @ 帮助我找到部分 希望这可以帮助

    【讨论】:

      猜你喜欢
      • 2022-07-05
      • 2023-01-03
      • 1970-01-01
      • 2023-04-11
      • 2021-08-25
      • 1970-01-01
      • 2018-08-19
      • 2011-11-29
      • 2012-04-10
      相关资源
      最近更新 更多