Страница 1 из 1
Смена языка в приложении
Добавлено: 21 май 2015, 20:52
Zammm
Доброго времени суток!
Помогите пожалуйста неопытному начинающему разработчику. В приложении необходимо получить возможность меня язык с русского на английский. Вроде бы всё ничего - почитал уроки, методику, но споткнулся на последнем этапе - методе updateTexts().
В примерах, что находил, указывается как менять текст в текстовых полях, на кнопках по типу:
private void updateTexts()
{
btnGo.setText(R.string.btnGo);
}
Но! Совершенно нигде не нашёл и никак не могу понять, что делать с вкладками Tab, которые были созданы программно (которым я лично имена не присваивал), с пунктами меню, а также с кнопками во фрагментах, загружаемых в Tab (можно ли вообще из main activity их поменять?).
Re: Смена языка в приложении
Добавлено: 22 май 2015, 07:48
klblk
Я менял язык в настройках и вызывал метод recreate(). В onCreate() считываю настройку и меняю локаль (хотя может быть было правильнее менять локаль сразу после смены настройки, не помню почему делал именно так, может по-глупости). Не знаю насколько это правильно, но для меня работает.
Re: Смена языка в приложении
Добавлено: 22 май 2015, 11:29
Zammm
klblk писал(а):Я менял язык в настройках и вызывал метод recreate(). В onCreate() считываю настройку и меняю локаль (хотя может быть было правильнее менять локаль сразу после смены настройки, не помню почему делал именно так, может по-глупости). Не знаю насколько это правильно, но для меня работает.

К сожалению у меня опыта очень мало, чтобы так сходу понять, как Вы делали... Может быть какой-нибудь пример можно скинуть?
Re: Смена языка в приложении
Добавлено: 22 май 2015, 13:13
Foenix
Какие имена вкладок?
Re: Смена языка в приложении
Добавлено: 22 май 2015, 13:13
Foenix
Ресурсы используют для смены языка автоматически
Re: Смена языка в приложении
Добавлено: 22 май 2015, 13:19
klblk
собственно там где вы вызываете метод свой updateTexts() вызовете метод recreate() у Activity (вроде бы работает с Android 4.0)
А вообще я пока не понимаю какой момент вам не понятен и как у вас все устроено. Какой момент не понятен:
1) правильно организованые стринги для локализации (лежат в нужных папках: values-en, values-ru и др.)
2) программная смена локали
3) хранения локали в настройках
Re: Смена языка в приложении
Добавлено: 22 май 2015, 15:41
Foenix
вопрос не понял, а уже отвечаешь
Re: Смена языка в приложении
Добавлено: 23 май 2015, 20:39
Zammm
Господа, спасибо большое - навели меня на правильную мысль, создал соответствующие папочки и разместил переводы в стрингах. Единственное не понял - как прописать на разных языках всплывающие сообщения (Toast)? В strings не пойму как это сделать ,ведь у сообщений всплывающих нет имён.
Re: Смена языка в приложении
Добавлено: 23 май 2015, 21:28
Foenix
опять не ясно - то ты вкладки не именовал, то теперь тосты.. как это так? в коде можно ссылаться на строки в ресурсах.
Re: Смена языка в приложении
Добавлено: 23 май 2015, 22:47
Zammm
Изначально я сделал вот так, по корявому напрямую задал текст:
Toast.makeText(getActivity(), "Введите дату корректно", Toast.LENGTH_SHORT).show();
Как задать текст по другому я не знаю...
Re: Смена языка в приложении
Добавлено: 23 май 2015, 22:52
Foenix
а не почитать ли уроки? В КАЖДОМ уроке, если мне не изменяет память, автор вначале ВСЕ используемые строки заносит в ресурсы, а потом же как-то кним обращается? а?
Re: Смена языка в приложении
Добавлено: 24 май 2015, 11:00
Zammm
в том то и дело, что автор аналогично принудительно задаёт текст всплывающего сообщения:
http://startandroid.ru/ru/uroki/vse-uro ... henii.html
Re: Смена языка в приложении
Добавлено: 24 май 2015, 11:18
Zammm
Всё, спасибо за своевременные пинки))) Более усердно углубился в тему, обнаружил решение проблемы на другом ресурсе в справочнике!
Re: Смена языка в приложении
Добавлено: 24 май 2015, 12:29
Foenix
Урок 11
Re: Смена языка в приложении
Добавлено: 24 май 2015, 19:09
Zammm
Да, видимо плохо смотрел)