2012-12-11 2 views
3

내 안드로이드 응용 프로그램에 현지화를 구현했지만 작은 문제가 있습니다. 기본 strings.xml 파일에서 문자열의 기본값을 검색 할 수 없습니다. 예 : android에서 기본 문자열 값을 가져 오는 방법은 무엇입니까?

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
     <string name="distance">distance</string> 
</resources> 

project/res/values/strings.xml 내부 및 project/res/values-nl/strings.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <string name="distance">afstand</string> 
</resources> 

을 내 요구 사항은 로케일이 현재있는 관계없이 프로젝트/고해상도/값/strings.xml의 파일에서 '거리'변수의 값을 얻을 수 있습니다 용도.

+0

이 정보를 확인하면 http://codinglookseasy.blogspot.in/2012/07/localization.html –

+0

아니요 도움이되지 않을 수도 있습니다. – Dipendra

+0

실제로 귀하의 문제는 무엇입니까? –

답변

0

우리는 상황에 맞는 설정으로 할 수 있으며 같은 API 17에서 작동합니다 : 당신은 같은 것을 사용할 수, 안드로이드의 이전 버전

public static String getDefaultString(Context context, @StringRes int stringId){ 
     Resources resources = context.getResources(); 
     Configuration configuration = new Configuration(resources.getConfiguration()); 
     Locale defaultLocale = new Locale("en"); // default locale 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 
      LocaleList localeList = new LocaleList(defaultLocale); 
      configuration.setLocales(localeList); 
      return context.createConfigurationContext(configuration).getString(stringId); 
     } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){ 
      configuration.setLocale(defaultLocale); 
      return context.createConfigurationContext(configuration).getString(stringId); 
     } 
     return context.getString(stringId); 
    } 

:

public static String getDefaultString(Context context, @StringRes int stringId){ 
    Resources resources = context.getResources(); 
    Locale defaultLocale = new Locale("en");// default locale 
    configuration.locale = newLocale; 
    resources.updateConfiguration(configuration, res.getDisplayMetrics()); 
    return resources.getString(); 
} 

을하지만 애플리케이션의 현재 컨텍스트를 변경할 수 있다고 생각해보십시오. 앱에서 기본 언어를 사용하지 않으면 현지화에 문제가 있습니다.

관련 문제