Для локализации моего приложения я использую strings.xml для трех языков.
у меня есть заявление
текущий баланс: руб. %0.2f
Я заполняю это во время выполнения, используя
getResources().getString(R.string.home_survey_text, user.demographicsPrice)
это, кажется, работает для английского и хинди, где я получаю значение как
текущий баланс: руб. 1,45
но для каннада я получаю
текущий баланс: руб. 1,45.
запятая отображается неправильно. Нужна помощь с той же рекомендацией по чтению stackoverflow, все, что может помочь, приветствуется.
Локализация — это боль для Android или любого другого приложения, если уж на то пошло. Вам нужно будет использовать NumberFormat или закодировать особый случай, связанный здесь: en.wikipedia.org/wiki/Десятичный_разделитель . Разделитель-запятая используется вместо разделителя точки в нескольких языках. Похоже, что в Android нет правильной настройки для каннада. Возможно, вы тоже захотите их прочитать; Индийская система счисления: stackoverflow.com/questions/5379231/… Символ валюты для Android: developer.android.com/reference/java/util/Currency




Вы можете использовать средство форматирования для форматирования вашего номера по вашему выбору.
NumberFormat formatter = new DecimalFormat("#.#");
String number = formatter.format(1/3);
число будет 0,3
NumberFormat formatter = new DecimalFormat("#,#");
String number = formatter.format(1/3);
число будет 0,3
Изменение значений-kn_IN на значения-kn в структуре папок помогло.
Что вы подразумеваете под "запятая отображается неправильно"? Что неверно? что ты ожидал ?