public static void SetLanguage(Resources res)
{
Locale language = res.getConfiguration().locale;
switch (SystemManager.COUNTRY)
{
case USA:
{
language = Locale.US;
break;
}
case France:
{
language = Locale.FRANCE;
break;
}
case Spain:
{
language = new Locale("es", "ES");
break;
}
case Russia:
{
language = new Locale("ru", "RU");
break;
}
case China:
{
language = Locale.CHINA;
break;
}
}
Locale.setDefault(language);
Configuration config = new Configuration();
res.updateConfiguration(config, res.getDisplayMetrics());
}
Manager 클래스에 이렇게 선언 해 놓고,
@Override
protected void onCreate(Bundle savedInstanceState)
{
setting = getSharedPreferences("setting", 0);
editor = setting.edit();
SystemManager.COUNTRY = SystemManager.GetCountry(setting.getString("language", ""));
SystemManager.SetLanguage(getResources());
Log.d("LOGD", getResources().getConfiguration().locale.getDisplayLanguage());
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
}
이렇게 호출 하였습니다. 로그에 찍히는건 해당 언어로 변경이 되었는데, res 폴더에 각각 만들어 놓은 strings.xml 의 내용을 읽어 오질 못하네요...
res 폴더의 구조는
res
-
values
-
values-es
-
values-fr
-
values-ru
-
values-zh
입니다. 해당 폴더들 아래는 strings.xml 이 각각 있구요. values(기본)의 strings.xml 만 호출이 됩니다.
디바이스의 기본 언어 (설정에 있는)를 바꾸면 작동 되구요
가르침을 부탁드리겠씁니다...