ResourceBundle 사용하기

2009. 11. 17. 00:51

ResourceBundle 사용하기

클래스 상속관계 java.lang.Object - java.util.ResourceBundle

ResourceBundle은 다음과 같은 특징을 같습니다.

  • 다른 국가의 언어에 맞추어 로컬라이징을 할 수 있습니다.
  • 복수의 로케일을 동시에 처리할 수 있습니다.
  • 새로운 로케일의 추가가 쉽습니다.

ResourceBundle을 사용하기 위해서는 다음과 같이 getBundle() 메서드를 사용하여 ResourceBundle 클래스를 로드합니다.

ResourceBundle myResource = ResourceBundle("MyResource", 로케일);

로케일의 생략시 현재 사용하는 로케일이 지정됩니다. 한글은 'ko_KR'로 로케일이 지정됩니다. 'MyResource'의 이름은 베이스 네임으로 로케일에 따라 자동으로 베이스 네임과 함께 로케일 이름이 붙은 이름을 먼저 찾게 됩니다. 예를 들면 로케일이 'ko_KR'인 경우 'MyResource_ko_KR'로 확장되며, 이 파일이 존재하지 않는 경우, 'MyResource_ko.properties'를 찾고 이 파일 존재하지 않으면 최종적으로 'MyResource_ko_KR.properties'이라는 리소스 파일을 현재 클래스가 위치한 패키지 내에서 찾게 됩니다. 만일 이런 이름의 파일이 없을 경우는 'MyResource.properties' 파일을 찾게 됩니다.

package net.jeongsam.extra;

import java.util.Iterator;
import java.util.ResourceBundle;
import java.util.Set;

public class ResourceLocaleEx01 {
	public static void main(String[] args) {
		// net.jeongsam.extra 패키지에서 MyResource_ko_KR.properties 파일을 탐색한다.
		ResourceBundle myResource = ResourceBundle.getBundle("net.jeongsam.extra.MyResource");

		Set keys = myResource.keySet();
		Iterator itKeys = keys.iterator();
		
		while (itKeys.hasNext()) {
			String key = itKeys.next();
			System.out.println(key + "=" + myResource.getString(key));
		}
	}

}

+ Recent posts