Смена языка в приложении

Интерфейс, диалоги, темы, стили, меню
Ответить
Zammm
Сообщения: 69
Зарегистрирован: 05 окт 2014, 11:31

Смена языка в приложении

Сообщение Zammm » 21 май 2015, 20:52

Доброго времени суток!
Помогите пожалуйста неопытному начинающему разработчику. В приложении необходимо получить возможность меня язык с русского на английский. Вроде бы всё ничего - почитал уроки, методику, но споткнулся на последнем этапе - методе updateTexts().
В примерах, что находил, указывается как менять текст в текстовых полях, на кнопках по типу:

private void updateTexts()
{
btnGo.setText(R.string.btnGo);
}

Но! Совершенно нигде не нашёл и никак не могу понять, что делать с вкладками Tab, которые были созданы программно (которым я лично имена не присваивал), с пунктами меню, а также с кнопками во фрагментах, загружаемых в Tab (можно ли вообще из main activity их поменять?).

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Смена языка в приложении

Сообщение klblk » 22 май 2015, 07:48

Я менял язык в настройках и вызывал метод recreate(). В onCreate() считываю настройку и меняю локаль (хотя может быть было правильнее менять локаль сразу после смены настройки, не помню почему делал именно так, может по-глупости). Не знаю насколько это правильно, но для меня работает.

Zammm
Сообщения: 69
Зарегистрирован: 05 окт 2014, 11:31

Re: Смена языка в приложении

Сообщение Zammm » 22 май 2015, 11:29

klblk писал(а):Я менял язык в настройках и вызывал метод recreate(). В onCreate() считываю настройку и меняю локаль (хотя может быть было правильнее менять локаль сразу после смены настройки, не помню почему делал именно так, может по-глупости). Не знаю насколько это правильно, но для меня работает.
:oops: К сожалению у меня опыта очень мало, чтобы так сходу понять, как Вы делали... Может быть какой-нибудь пример можно скинуть?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Смена языка в приложении

Сообщение Foenix » 22 май 2015, 13:13

Какие имена вкладок?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Смена языка в приложении

Сообщение Foenix » 22 май 2015, 13:13

Ресурсы используют для смены языка автоматически
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Смена языка в приложении

Сообщение klblk » 22 май 2015, 13:19

собственно там где вы вызываете метод свой updateTexts() вызовете метод recreate() у Activity (вроде бы работает с Android 4.0)
А вообще я пока не понимаю какой момент вам не понятен и как у вас все устроено. Какой момент не понятен:
1) правильно организованые стринги для локализации (лежат в нужных папках: values-en, values-ru и др.)
2) программная смена локали
3) хранения локали в настройках

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Смена языка в приложении

Сообщение Foenix » 22 май 2015, 15:41

вопрос не понял, а уже отвечаешь
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Zammm
Сообщения: 69
Зарегистрирован: 05 окт 2014, 11:31

Re: Смена языка в приложении

Сообщение Zammm » 23 май 2015, 20:39

Господа, спасибо большое - навели меня на правильную мысль, создал соответствующие папочки и разместил переводы в стрингах. Единственное не понял - как прописать на разных языках всплывающие сообщения (Toast)? В strings не пойму как это сделать ,ведь у сообщений всплывающих нет имён.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Смена языка в приложении

Сообщение Foenix » 23 май 2015, 21:28

опять не ясно - то ты вкладки не именовал, то теперь тосты.. как это так? в коде можно ссылаться на строки в ресурсах.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Zammm
Сообщения: 69
Зарегистрирован: 05 окт 2014, 11:31

Re: Смена языка в приложении

Сообщение Zammm » 23 май 2015, 22:47

Изначально я сделал вот так, по корявому напрямую задал текст:
Toast.makeText(getActivity(), "Введите дату корректно", Toast.LENGTH_SHORT).show();

Как задать текст по другому я не знаю...

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Смена языка в приложении

Сообщение Foenix » 23 май 2015, 22:52

а не почитать ли уроки? В КАЖДОМ уроке, если мне не изменяет память, автор вначале ВСЕ используемые строки заносит в ресурсы, а потом же как-то кним обращается? а?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Zammm
Сообщения: 69
Зарегистрирован: 05 окт 2014, 11:31

Re: Смена языка в приложении

Сообщение Zammm » 24 май 2015, 11:00

в том то и дело, что автор аналогично принудительно задаёт текст всплывающего сообщения:
http://startandroid.ru/ru/uroki/vse-uro ... henii.html

Zammm
Сообщения: 69
Зарегистрирован: 05 окт 2014, 11:31

Re: Смена языка в приложении

Сообщение Zammm » 24 май 2015, 11:18

Всё, спасибо за своевременные пинки))) Более усердно углубился в тему, обнаружил решение проблемы на другом ресурсе в справочнике!

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Смена языка в приложении

Сообщение Foenix » 24 май 2015, 12:29

Урок 11
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Zammm
Сообщения: 69
Зарегистрирован: 05 окт 2014, 11:31

Re: Смена языка в приложении

Сообщение Zammm » 24 май 2015, 19:09

Да, видимо плохо смотрел)

Ответить