Проблема языковой структуры в локализации флаттера?
Я использую локализацию во флаттере.
это текст на английском языке:
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.
Как мне поступить в таком случае? Нужно ли мне писать собственную логику или уже есть способ справиться с таким случаем.
1 ответ
Я не привык работать с самими 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. Вы также можете добавить несколько заполнителей