Android: I18n с параметрами - PullRequest
       2

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

10 голосов
/ 25 января 2012

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

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

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

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

Ответы [ 2 ]

12 голосов
/ 25 января 2012

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

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

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

String hello = getString(R.strings.hello, "Klaus", 5);
4 голосов
/ 25 января 2012

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

В 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 ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...