2013-06-06 2 views
0

안녕하세요. 내 안드로이드 응용 프로그램을 현지화하려고하고 있는데이 튜토리얼 http://developer.android.com/guide/topics/resources/localization.html을 읽음으로써 어떻게 읽습니까? 그러나 그것을보고 나서 언어를 변경하는 방법을 알 수 없었습니다. res/values ​​/ strings.xml에 기본값이 있고 res/values-latin/strings.xml에 다른 문자열이 있습니다. 하지만 내 응용 프로그램이 기본값 대신 res/values-latin/strings.xml에서 문자열을 사용하도록 만드는 방법을 이해할 수 없습니다. 누군가 나에게 설명 할 수 있을까요?응용 프로그램을 기본 문자열이 아닌 다른 언어로 지역화 하시겠습니까?

누군가 언어 변경 버튼을 클릭하면 응용 프로그램에 모든 문자열을 변경하도록 알릴 수 있습니까?

감사합니다.

답변

1

Android에서 자동으로 처리합니다. 사용자가 응용 프로그램을 실행하면

는 :

안드로이드 시스템은 자원이 장치의 로케일을 기반으로로드 할 선택합니다.

예 :

응용 프로그램의 기본 언어가 영어라고 가정하자. 응용 프로그램의 모든 텍스트를 프랑스어로 지역화하려고한다고 가정합니다.

res/values/strings.xml 

응용 프로그램이 사용하는 모든 문자열에 대한 영어 텍스트를 포함합니다 :이 경우, 두 개의 다른 strings.xml의 파일, 로케일 고유의 자원 디렉토리에 저장된 각을 만들 수 있습니다.

res/values-fr/strings.xml 

모든 문자열에 대해 프랑스어 텍스트가 포함됩니다. 장치가 안드로이드에서 영어 제목를로드 프랑스어 이외의 언어로 설정되어있는 경우

: Java 코드가 에 R.string.title을 참조하는 경우

, 여기 런타임에 무슨 일이 일어날 지입니다 res/values ​​/ strings.xml 파일 장치가 프랑스어로 설정되어있는 경우

, 안드로이드는 고해상도/값-FR/strings.xml의 파일에서 프랑스어 제목로드됩니다.


라틴어로는 작동하지 않습니다. 대체 방법을 검색해야합니다. 자바 내 솔루션 :

public final class English { 
    String moon = "Moon"; 
    String earth = "Earth"; 
    String mars = "Mars"; 
} 

public final class Latin { 
    String moon = "Luna"; 
    String earth = "Terrae"; 
    String mars = "Mars in Latin"; 
} 

그런 다음 코드에서 당신이 그들을 aceess 수 있습니다 응답에 대한

TextView textView = (TextView) findViewById(R.id.my_text); 
textView.setText(Latin.moon); 
+0

감사합니다! 내 라틴 문자열의 경우에는로드를 알 수 있습니다. 왜냐하면 가치가 - fr은 이미 안드로이드 프로그램에서 설정되었음을 알고 있기 때문에 – James

+0

나는 내 대답을 편집했습니다. – vovahost

관련 문제