2012-03-22 4 views
3

간단한 일반 HTML 편집기로 그릴 수 있으므로 내 응용 프로그램에 쉬운 사용자 가이드 시스템을 구현하는 데 도움이되는 nice tutorial이 방금 발견되었습니다.Android의 현지화 가능 자산

내 질문에 간단합니다 : 모든 res ources는 지역화 할 수 있기 때문에 쉽게 응용 프로그램을 새로운 언어로 번역 할 수 있습니다. assets은 어떨까요? 자동 현지화 메커니즘이 있습니까? 나는 그렇게 생각하지 않는다.

도움말 페이지의 HTML 파일을로드 할 때 현지화 된 URL을 구성하려면 어떻게 시스템 로캘을 검색해야합니까? 디스플레이 크기/밀도를 리소스 월드에서 코딩 된 것과 동일하게 검색하는 호출이 있습니까 (즉, public String getDensity()은 "xhdpi", "ldpi"...를 반환합니다)?

Danke ;-)

답변

18

당신이 정말로 현재 시스템 로케일을 확인해야하는 경우, 간단한 방법은 strings.xml 파일에 식별자 문자열을 추가하는 것입니다.

예를 들어, 값/strings.xml의에 추가

<string name="lang">en</string> 

값-ES/strings.xml의에 추가

값-FR/strings.xml의 에
<string name="lang">es</string> 

, 추가 :

<string name="lang">fr</string> 

등등. 그럼 당신은 (단지 예로서, 물론 개선이)이 같은 프로그래밍 방식으로 현재 언어를 확인 할 수 있습니다 :이 당신을 도움이되기를 바랍니다

if("es".equals(getString(R.string.lang))) { 

합니다.

+2

확실히 스마트 –

+0

장치의 선택한 언어를 가져 오려면 다음과 같이하십시오. Locale.getDefault(). getDisplayLanguage(); – Alan

1

답변은 here입니다. 특히 주석을 확인하십시오.

1

낡은 질문이지만, 누군가가 이것을하고있는 경우를 대비해.

값-FR/strings.xml의에서
<string name="content_location">file:///android_asset/en/index.html</string> 

, 추가

<string name="lang">fr</string> 

단순히 자산 URL 문자열을 추가하고 번역 : 위의 제안 당신이 여분의 언어 문자열을 필요가 있다고 생각하지 않습니다 :

<string name="content_location">file:///android_asset/fr/index.html</string> 

다음 코드 액세스 그와 같은에서 :

String URL = getResources().getString(R.string.content_location); 

이고 특정 현지화 된 문자열 파일에 정의한 이후로 로컬을 기반으로 URL이 표시되어야합니다.

+0

안녕하세요 .. 그래서 en과 fr이라는 폴더를 만들어야합니까? – Shadow

+1

예, 맞습니다. –