웹사이트 검색

Java i18n - Java의 국제화


Java 또는 Java i18n의 국제화는 매우 중요한 기능입니다. Java는 리소스 번들을 통해 국제화(i18n) 지원을 제공합니다.

Java의 국제화

애플리케이션이 다른 로케일을 지원하도록 하려면 로케일 특정 속성 파일을 만들어야 합니다. 파일 이름은 언어 코드 및 국가 코드가 포함된 번들 이름 패턴을 따릅니다(예: ApplicationMessages_en_US.properties). 특정 로케일에 대한 속성 파일이 준비되면 올바른 로케일로 리소스 번들을 초기화하기만 하면 됩니다. Java는 이 용도로 사용되는 두 클래스 java.util.ResourceBundlejava.util.Locale을 제공합니다. ResourceBundle은 로케일 특정 속성 파일을 읽고 모든 키에 대한 로케일 특정 값을 가져올 수 있습니다. 이는 웹 애플리케이션 텍스트를 특정 로케일로 만드는 데 매우 유용합니다. HTTP 요청에서 로케일 정보를 가져오고 해당 로케일 리소스 번들 파일로 동적 페이지를 생성할 수 있습니다. 사용자에게 로케일을 선택하고 레이블을 동적으로 업데이트하는 옵션을 제공할 수도 있습니다.

자바 i18n 예제

package com.journaldev.i18n;

import java.util.Locale;
import java.util.ResourceBundle;

public class JavaInternationalizationExample {

    public static void main(String[] args) {
        //default locale
        ResourceBundle bundle = ResourceBundle.getBundle("ApplicationMessages");
        //Get ResourceBundle with Locale that are already defined
        ResourceBundle bundleFR = ResourceBundle.getBundle("ApplicationMessages", Locale.FRANCE);
        //Get resource bundle when Locale needs to be created
        ResourceBundle bundleSWE = ResourceBundle.getBundle("ApplicationMessages", new Locale("sv", "SE"));
        
        //lets print some messages
        printMessages(bundle);
        printMessages(bundleFR);
        printMessages(bundleSWE);
        
    }

    private static void printMessages(ResourceBundle bundle) {
        System.out.println(bundle.getString("CountryName"));
        System.out.println(bundle.getString("CurrencyCode"));
    }

}

여기서 번들 이름은 ApplicationMessages이고 로케일별 리소스 번들 2개와 기본 리소스 번들 1개가 있습니다. ApplicationMessages.properties

CountryName=USA
CurrencyCode=USD

ApplicationMessages_fr_FR.properties

CountryName=France
CurrencyCode=Euro

ApplicationMessages_sv_SE.properties

CountryName=Sweden
CurrencyCode=Kr

Locale 클래스의 사용에 주목하십시오. 이미 정의된 일부 로케일이 있지만 언어 코드와 국가 코드를 생성자에 전달하여 항상 새 로케일을 생성할 수 있습니다. 위의 프로그램을 실행하면 다음과 같이 출력됩니다.

USA
USD
France
Euro
Sweden
Kr

이것이 빠른 Java i18n 예제의 전부입니다. Java의 국제화는 웹 애플리케이션에서 로케일 특정 언어로 페이지를 제공하는 데 매우 유용합니다.