2015-01-27 3 views
0

new Locale("", iso).getDisplayName()으로 국가 이름을 현지화 할 수 있지만 ISO 코드 자체를 현지화하는 방법이 있습니까? 내 위젯에서 저는 여러 나라를 대표하는 사람들을 사용하고 있습니다. 아랍어와 같이 언어가 다른 알파벳의 두 글자 ISO 코드로 표현되도록하는 것이 잘못되었습니다. 내 옵션은 무엇입니까?두 자로 된 ISO 국가 코드 현지화 하시겠습니까?

+0

다음과 같은 것을 찾고 계십니까?'String iso2 = Locale.getDefault(). getISO3Language(). substring (0, 2);'? –

+0

그게 최선의 해결책 일거야. 처음 두 글자는 각 국가 (예 : 영국이 아닌 UN)를 대표하는 최고의 두 문자가 아니지만 현지화가없는 것보다 낫습니다 –

+0

아니요, 현지화가 잘못되어 현지화가 잘못되었습니다. –

답변

0

정의에서 ISO 국가 코드는 고정 된 문자열입니다. 그들의 아주 아이디어는 그들이 언어와 독립적으로 국제화되어 있다는 것입니다. 표준화되고 언어 중립적 인 방식으로 국가에 관한 정보를 전송하기위한 기초를 제공합니다. 이 정보는 지역화 된 형식으로 표시 될 수 있지만 코드를 현지화하면 그 목적에 어긋납니다.

ISO 국가 코드는 프로그램과 시스템 간의 통신에서 기계 가독성 데이터에 사용됩니다. 그것들은 사용자들에게 보여지기위한 것이 아니지만 여러 가지 이유들로 볼 수 있습니다. 그것들을 지역화하는 것은 여전히 ​​잘못된 행동 일 것입니다; 올바른 해결 방법은 올바른 현지화 대신 통과시키는 소프트웨어를 변경하는 것입니다.

+0

그래서 .. 얼마나 단축 된 국가 이름이 다른 언어로 제공됩니까? –

+0

이들은 "단축 된 국가 이름에 해당하는"코드가 아닙니다. 사용할 수있는 국가 이름 * 저장소가 있습니다. 국가 이름에 대한 약어의 승인 된 저장소가 없습니다. 따라서 지역화 된 이름이나 ISO 코드 또는 사용자가 직접 알아야하는 약어를 사용할 수 있습니다. (대부분의 언어에는 약간의 국가 이름을 제외하고는 약어가 없을 것입니다. 사용자가 약어를 사용하면 무엇이든간에 많은 사람들이 오해하거나 전혀 이해하지 못할 것입니다.) –

관련 문제