在我的 flutter 应用程序中,我使用
.arb
文件实现了本地化。就我而言,我想要实现的是这样的:
"arrangement_index": "{value}{value == 1? 'st' : 'nd'}",
"@arrangement_index": {
"placeholders": {
"value": {
"type": "int"
}
}
}
所以,对于生成的翻译,如果我使用:
AppLocalizations.of(context)!.arrangement_index(1)
我应该得到:1st
AppLocalizations.of(context)!.arrangement_index(2)
我应该得到:2nd
这种方法不起作用,我怎样才能获得这样的功能?
flutter_localizations 使用 ICU 语法解析 .arb 文件中的文本并生成 Dart 本地化。
这是编写本地化的圣经:https://icu.unicode.org/design/formatting/messageformat/newsyntax
如果您遵循他们的文档并将其应用于您的具体案例,这就是您最终应该得到的结果:
"arrangement_index": "{value,select, 1 {1st} 2 {2nd} 3 {3rd} other{{value}th}}",
"@arrangement_index": {
"placeholders": {
"value": {
"type": "int"
}
}
}
这对我有用
"order_garbage_content": "{num, plural, zero {мешок} one {мешок} few {мешка} other {мешков}}",
然后使用 flutter pub get