2012-06-13 9 views
3

Android 애플리케이션에서 현지화를 사용 중지 할 수있는 방법이 있습니까? 영어 문자열 만 사용해야합니다. 우리는 프랑스 현지화 된 문자열로 된 도서관 프로젝트를 가지고 있습니다. 이러한 라이브러리를 사용하는 일부 앱은 영어로만 제공되어야하며 일부는 지원되지 않을 수 있습니다.Android 애플리케이션에서 현지화 사용 중지

답변

7

와 구성을 업데이트해야한다는 것입니다 로캘 별 리소스를 사용하면 항상 영어 문자열 만로드해야합니다.

Resources res = getApplicationContext().getResources(); 

Locale locale = new Locale("en"); 
Locale.setDefault(locale); 

Configuration config = new Configuration(); 
config.locale = locale; 

res.updateConfiguration(config, res.getDisplayMetrics()); 
5

Android의 일반적인 동작은 지원하는 경우에만 주어진 언어를 정의하는 것입니다. 프랑스어의 경우 this는 values-fr/strings.xml이됩니다. 당신은 프랑스어의 strings.xml의 포함되지 않습니다 프랑스어 지원하지 않으려는 당신이 통제권이없는 경우는 값 폴더

http://developer.android.com/guide/topics/resources/localization.html

에 strings.xml의 다시 떨어질 경우 제공된 문자열 또는 지원하도록 로케일을 동적으로 설정하려는 경우 기본 로케일을 대체 할 수 있습니다.

http://developer.android.com/reference/java/util/Locale.html#setDefault(java.util.Locale)

편집

내가 언급하는 것을 잊었다 것은 setContentView() 또는 다른 어떤 부하 있음을 호출하기 전에 새 설정 다음을 수행

Configuration config = new Configuration(); 
config.locale = locale; 
getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics()); 
+0

나는에서 onCreate에서 Locale.setDefault (Locale.US)를() 응용 프로그램과 활동 방법 호출 시도했습니다 - 여전히 프랑스 문자열에서 onCreate 응용 프로그램의 – user1031477

+0

이 나를 위해 작동 표시됩니다. 안드로이드의 어떤 버전을 사용하고 있으며, 로케일 전체가 ICS로 크게 개선되었습니다. –

+0

Darshan이 언급 한 것처럼 설정을 업데이트해야한다는 점을 잊어 버렸습니다. 나는 그것을 나의 대답에 덧붙였다. –

관련 문제