颤动本地化中的语言结构问题?

Language structure problem in localization for flutter?

我在 flutter 中使用本地化。

这是英语文本:placed for $date

这是翻译后的文字:$date का लागि राखिएको

如您所见,文本中有一个变量(日期),由于两种语言的语法结构不同,变量必须放在不同的位置。

AppLocalizations.of(context).placed_for + date.toString()
// The usual way of doing this does not work due to different placing of the date variable.

我该如何处理这种情况?我必须编写自定义逻辑还是已经有办法处理这种情况。

我不习惯使用 AppLocalizations 本身,但它的工作方式似乎与 intl 相同。

如果是这样,只需编辑您的 arb 文件以接收所需的参数:

"placed_for": "placed for {date}", 
"placed_for": "{date}  का लागि राखिएको",

那么您应该可以通过以下方式使用它:

AppLocalizations.of(context).placed_for(date.toString())

编辑:

您还需要将占位符定义添加到您的套利模板中。示例:

{
  "helloWorld": "Hello {name}!",
  "@helloWorld": {
    "description": "The conventional newborn programmer greeting",
    "placeholders": {
      "name": {}
    }
  }
}

然后,在添加 placeholders 之后,您可以使用生成的字符串:

AppLocalizations.of(context).helloWorld('Leandro'),

PS。您还可以添加多个占位符