Android: I18n с параметрами

Я знаю, что есть поддержка в Android для приложения 18n, но могу ли я указать параметры для такой строки? В Rails я могу сделать что-то вроде этого:

en:
  hello: "Hello %{name}! You've got %{count} messages."

t("hello", name: "Klaus", count: 5)

Есть ли что-то подобное в Android или мне нужно сделать это самостоятельно?

Ответ 1

Чтобы уточнить ответ Хайко и показать свой конкретный пример, если вы хотите иметь более одной строки, вам необходимо их число:

<string name="hello">Hello %1$s! You've got %2$d messages.</string>

Таким образом, вы можете переключать порядок строк в каждом переводе. С его помощью:

String hello = getString(R.strings.hello, "Klaus", 5);

Ответ 2

Вы можете сделать то же самое

В файле strings.xml вы можете поместить

<string name="xyz">Do you really want to report [%s] as spammer?</string>

а затем в вашем коде вы помещаете

String foo = getString(R.strings.xyz,"Joe Doe");

См. Context.getString()