我在 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.
我该如何处理这种情况?我是否必须编写自定义逻辑,或者是否已经有处理这种情况的方法。
答案 0 :(得分:1)
我不习惯使用 AppLocalizations 本身,但它的工作方式似乎与 intl 相同。
如果是这样,只需编辑您的 arb 文件即可接收所需的参数:
"placed_for": "placed for {date}",
"placed_for": "{date} का लागि राखिएको",
那么您应该可以通过以下方式使用它:
AppLocalizations.of(context).placed_for(date.toString())
编辑:
您还需要将占位符定义添加到您的 arb 模板。示例:
{
"helloWorld": "Hello {name}!",
"@helloWorld": {
"description": "The conventional newborn programmer greeting",
"placeholders": {
"name": {}
}
}
}
然后,在添加 placeholders
后,您可以使用生成的字符串:
AppLocalizations.of(context).helloWorld('Leandro'),
附注。您还可以添加多个占位符