2013-10-04 1 views
3

JSF UI 응용 프로그램이 있고 번역 된 국가 이름을 표시하고 싶습니다.자바 로캘로 Sinhala/Sri Lankan 번역

자바 로켈에서 국가 이름을 가져 왔습니다. 하지만 내 과도기 요구 사항을 얻을 수 없습니다. Java 1.6 로켈은 44 개국 만 제공했습니다.

Locale[] localeArray = Locale.getAvailableLocales(); 
System.out.println("localeArray---->"+localeArray.length); 

for (Locale locale : localeArray) {  
    counter++; 
    System.out.print("locale-->"+locale+"-------"); 
    System.out.print("locale getISO3Language-->"+locale.getISO3Language()); 
    System.out.println("-----locale.getDisplayCountry(locale)--->"+locale.getDisplayCountry(locale)); 
    System.out.println("-----locale.getDisplayCountry()--->"+locale.getDisplayCountry()); 
    System.out.println("-----locale.getCountry()--->"+locale.getCountry()); 

    System.out.println("----------------------------------------------------"+counter); 
} 

요구 사항 수행 방법을 알려주십시오.

오라클 설명서는 link을 제공합니다.

강력한 로캘 특정 요구 사항을 수행하기 위해 Java 이외의 라이브러리가 있습니까?

+0

의견 보내주세요. –

+1

[ICU] (http://icu-project.org/)를 보시고, 더 많은 것을 찾으실 것입니다. [CLDR] (http://cldr.unicode.org/)에 번역본이 있는지 확실하지 않지만 확인해 볼 가치가 있습니다. 적어도 CLDR을 사용하면 언어 스위처 반 패턴을 구현할 수 있습니다 (그게 당신이하는 일입니다, 그렇지 않습니까?) –

+0

나는 그것을 이미 확인했습니다. 그러나 효과적인 해결책이나 방법이나 지침이 없습니다. 아파치 공유 시설이 있습니까? –

답변

1

이미 주석에서 제안했듯이 로케일의 기본 이름을 가져 오기 위해 ICU를 시도해야합니다. 가장 간단한 사용 예 :

ULocale locale = ULocale.forLanguageTag("si-LK"); 
System.out.println(locale.getDisplayName(locale)); 

이 인쇄 :

සිංහල (ශ්රී ලංකාව)

나는 대답이 올바른지 가정합니다. 그것 뿐이다

Locale javaLocale = locale.toLocale(); 

: UIViewRoot에 적합한 형태로이 변환하려면, 당신은 단지 toLocale() 메소드를 호출 할 필요가있다.

+0

안내 주셔서 대단히 감사합니다. icu4j-3.6.1.jar를 사용하여 검사했지만, ULocale 클래스에 forLanguageTag 메소드가 없습니다. 제발 우리가 사용하는 단계, 항아리를 알려주십시오. –

+1

@Ruchira : [다운로드 페이지] (http://site.icu-project.org/download)에 나열된대로 ICU의 현재 버전은 52.1입니다. 다른 프로젝트와는 달리, 난 강력하게 그것뿐만 아니라 유니 코드의 최신 버전을 포함하여 [ICU의 최신 가능한 버전] (http://site.icu-project.org/download/52#TOC-ICU4J-Download)를 사용하는 것이 좋습니다 CLDR로. –

+0

그래, 고마워, 나는 대답을 확인하고 받아 들일 것이다. –