Страница 1 из 1

Добрый день помогите с локализацией ...

Добавлено: 14 окт 2012, 13:54
caHek2x
Ситуация такая: сделал программу решил сделать переводы на разные языки ...
и решил сделать в настройках выбор языка ... всё сделал но наткнулся на одном:
при изменении языка в настройках изменяется язык и перезагружается приложения ... все работает ... но если менять язык при запуске то не полностью срабатывает ...

Код: Выделить всё

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		load_setting();
		ChangeLang(langs);
.........
вот смена языка:

Код: Выделить всё

	public void ChangeLang(String lang){
		if (!getBaseContext().getResources().getConfiguration().locale.equals(new Locale(langs)))
		{
			Log.d("TTest2", "6 "+getBaseContext().getResources().getConfiguration().locale);
			Locale myLocale = new Locale(langs);
		    Resources res = getResources();
		    DisplayMetrics dm = res.getDisplayMetrics();
		    Configuration conf = res.getConfiguration();
		    conf.locale = myLocale;
		    res.updateConfiguration(conf, dm);

		    
		    Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage( getBaseContext().getPackageName() );
		    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
		    startActivity(i);		    
		    
		    Log.d("TTest2", "7 "+getBaseContext().getResources().getConfiguration().locale);
		}
	}
переменная langs хранит допустим значение en ...
стандартный язык русский (values)
англиский (values-en)

я вывел в логи текущее состояние локали
Log.d("TTest2", "7 "+getBaseContext().getResources().getConfiguration().locale);
так вот после смены языка в oncreate при выводе состояния локали всё норм выводит en
вывел тоже самое в onstart и onresume язык выводит en
а потом при нажатии клавиши на экране или вызова меню если вывести состояние локали то стоит ru_RU в чём проблема ?

как нормально при запуске приложения применять локаль ... ?

Re: Добрый день помогите с локализацией ...

Добавлено: 16 окт 2012, 08:35
Finch
Плохая практика, локализацию в приложениях андроид нужно применять не таким макаром!
Вот почитай
П.С. это велосипед...

Re: Добрый день помогите с локализацией ...

Добавлено: 16 окт 2012, 10:03
caHek2x
да я это читал ... но в некоторых случаях лучше пользователю дать выбор языка ...

Re: Добрый день помогите с локализацией ...

Добавлено: 17 окт 2012, 20:17
Finch
caHek2x ну если лучше то используй, но гра6ли сам решай =)