2011-10-12 5 views
20

누군가 res/values ​​디렉토리에서 문자열 배열의 유효성을 검사하는 좋은 방법이 있는지 궁금합니다.안드로이드 문자열 배열 로케일 확인

나는 기본 로케일을 사용하여 코드에 의해 생성하고 응용 프로그램에 대한 번역자가 번역 그들은 또한 문자열 배열을 생성 할 그런 때

<string-array name="array_example1"> 
    <item>One</item> 
    <item>Two</item> 
    <item>Three</item> 
</string-array> 

처럼 뭔가의 자원을 가질 수있다. 경우에 따라 하나의 번역이 리소스 파일 중 다른 하나보다 뒤떨어져 배열에 항목 수가 많지 않을 수도 있습니다 (위의 예에서 "1"및 "2"만 가능)

항목 수가 불일치합니까? 불일치가 발생하면 코드에 문제가 발생할 수 있지만 앱에 여러 언어로 10 개의 문자열 배열이 있으므로 모두 일치하는지 확인하는 데 시간이 많이 걸립니다.

다른 사람들이 이것을 위해 어떤 접근 방식을 사용합니까?

+1

파일을 구문 분석하고 일치하는 작은 스크립트를 만들 수 있습니까? 내가 알고있는 –

+0

. 일부 사용자 정의 XML 비교 도구,있을 수 있습니다? – njzk2

답변

41

나는 충돌을 막는 더 좋은 방법을 발견했다. 기본 언어는 단지에 대해 표시 얻을 것이다 불일치가있는 경우

<string-array name="array_example1"> 
    <item>@string/resOne</item> 
    <item>@string/resTwo</item> 
    <item>@string/resThree</item> 
</string-array> 

그런 다음 따라서

<string name="resOne">One</string> 
<string name="resTwo">Two</string> 
<string name="resThree">Three</string> 

이 방법을 추가 : 그 문자열 배열은 다음과 같은 방법으로 문자열 리소스를 참조 할 수 실현하지 않았다 그 옵션을 다른 크기의 목록으로 인해 중지 충돌

+0

완벽한 솔루션! 나는 그것이 가능하다는 것을 깨달았다, 나는 지금 막 구문을 모른다 : –

+0

공유를위한 감사. – Sathesh

+0

또한'translatable = "false"'속성을''요소로 설정하는 것을 추천합니다. 이렇게하면 다른 언어 파일에이 배열이 있으면 Lint가이를 알립니다. – Robyer