Файл ResourceBundle / Propertie для принятия массива строк в аргументе {0} - PullRequest
1 голос
/ 22 апреля 2010

Есть ли способ передать массив String в пакет ресурсов для локализации неизвестного числа аргументов для данного ключа?

У меня есть:

my.message=List of retired products: {0}

getValue(bundle, "my.message", list.toArray());

При этом в полученном сообщении отображается только первый элемент массива.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2010

Нет, для этого в MessageFormat API нет встроенных средств.Вам нужно создать строку со значениями самостоятельно.Например:

StringBuilder products = new StringBuilder();
for (int i = 0; i < list.size(); i++) {
    products.append(list.get(i));
    if (i + 2 < list.size()) products.append(", ");
    else if (i + 2 == list.size()) products.append(" and "); // Localize this?
}
getValue(bundle, "my.message", products);
0 голосов
/ 22 апреля 2010

Я думаю, вам понадобится петля for.

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