小编mot*_*uad的帖子

Flutter 国际化:如何使用 .arb 中的嵌套对象生成 AppLocalizations 文件?

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

\n

l10n.yaml

\n
arb-dir: lib/l10n\ntemplate-arb-file: app_en.arb\noutput-localization-file: app_localizations.dart\noutput-class: AppLocalizations\nsynthetic-package: false\n
Run Code Online (Sandbox Code Playgroud)\n

pubspec.yaml

\n
flutter:\n  generate: true\n
Run Code Online (Sandbox Code Playgroud)\n

app_en.arb

\n
  "clients": {\n    "label": "Client",\n    "title": {\n      "add": "New Client",\n      "details": "Client Details",\n      "edit": "Edit Client",\n      "manage": "Manage Clients"\n    }\n  },\n
Run Code Online (Sandbox Code Playgroud)\n

app_bn.arb

\n
   "clients": {\n    "label": "\xe0\xa6\x95\xe0\xa7\x8d\xe0\xa6\xb2\xe0\xa6\xbe\xe0\xa6\xaf\xe0\xa6\xbc\xe0\xa7\x87\xe0\xa6\xa8\xe0\xa7\x8d\xe0\xa6\x9f",\n    "title": {\n      "add": "\xe0\xa6\xa8\xe0\xa6\xa4\xe0\xa7\x81\xe0\xa6\xa8 \xe0\xa6\x95\xe0\xa7\x8d\xe0\xa6\xb2\xe0\xa6\xbe\xe0\xa6\xaf\xe0\xa6\xbc\xe0\xa7\x87\xe0\xa6\xa8\xe0\xa7\x8d\xe0\xa6\x9f",\n      "details": "\xe0\xa6\x95\xe0\xa7\x8d\xe0\xa6\xb2\xe0\xa6\xbe\xe0\xa6\xaf\xe0\xa6\xbc\xe0\xa7\x87\xe0\xa6\xa8\xe0\xa7\x8d\xe0\xa6\x9f \xe0\xa6\xa1\xe0\xa6\xbf\xe0\xa6\x9f\xe0\xa7\x87\xe0\xa6\xb2\xe0\xa6\xb8",\n      "edit": "\xe0\xa6\x8f\xe0\xa6\xa1\xe0\xa6\xbf\xe0\xa6\x9f \xe0\xa6\x95\xe0\xa7\x8d\xe0\xa6\xb2\xe0\xa6\xbe\xe0\xa6\xaf\xe0\xa6\xbc\xe0\xa7\x87\xe0\xa6\xa8\xe0\xa7\x8d\xe0\xa6\x9f",\n      "manage": "\xe0\xa6\x95\xe0\xa7\x8d\xe0\xa6\xb2\xe0\xa6\xbe\xe0\xa6\xaf\xe0\xa6\xbc\xe0\xa7\x87\xe0\xa6\xa8\xe0\xa7\x8d\xe0\xa6\x9f \xe0\xa6\xaa\xe0\xa6\xb0\xe0\xa6\xbf\xe0\xa6\x9a\xe0\xa6\xbe\xe0\xa6\xb2\xe0\xa6\xa8\xe0\xa6\xbe"\n    }\n  },\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
\n

例外:“clients”的值不是字符串。

\n
\n

找不到任何带有 arb 文件中嵌套对象的解决方案。我找到了一些使用 JSON 文件来做到这一点的方法。但我想使用 arb …

localization internationalization flutter flutter-localizations

9
推荐指数
1
解决办法
1815
查看次数