Flex / AIR / AS

ResourceBundle 사용하기.

타울 2009. 6. 18. 15:00
ResourceBundle과 컴파일 옵션을 이용하면 손쉽게 어플리케이션내의 문장을 바꿀수 있다.
감이 오질 않는 분들을 위해서 한가지 예를 들면 ResourceBundle을 국가별로 따로 만들고 컴파일 옵션만으로 해당 국가의 언어로 바꿀수 있는 강력한 기능이다.

본 글에서는 Flex 2.0과 3.0 모두 설명하겠다.
공통작업
1. 파일 생성
project폴더 > locale > en_US > strings.properties
(일단 한개만 생성하겠다.)
2. properties 파일 작성
- 일단 ResourceBundle로 사용할 간단한 properties 파일을 작성한다.

2. 폴더를 생성하여 파일을

Flex 2.0
1. 리소스 파일을 바인딩하여 변수 생성하기.
   [ResourceBundle("strings")]
   [Bindable]
   private var stringResources:ResourceBundle;

2. 사용하기.
   var visualListTooltip:String = stringResources.getString("visualListTooltipKey");
아주 간단하다.

Flex3.0 환경에서는 다른 방법을 제시하고 있다.
Flex3.0
1. 리소스번들 파일명을 직접 넣고 키를 사용하기.
var listViewtooltip:String = ResourceManager.getInstance().getString("strings", "listViewtooltipKey");

하지만 여기까지 했을때 다음과 같은 에러메시지를 보게될것이다.
Description Resource Path Location Type
Unable to resolve resource bundle "strings" for locale "en_US". xxxx Unknown Flex Problem

이 에러가 발생하는 이유는 strings이라는 properties 파일을 찾지 못한것이기때문에 발생하는것인데
이것은 프로젝트의  컴파일 옵션에 아래와 같은 옵션을 넣어주면 해결된다.

컴파일 옵션을 넣어준다.
-locale=en_US -source-path ../locale/{locale}

옵션을 해석해 보면
-source-path ..locale/en_US 로 볼수 있다.
실제로 이렇게 해도 된다

또 이렇게 사용해 볼 수도 있다.
-locale=en_US,ko_KR -source-path ../locale/{locale}


이 옵션은 properties 파일의 경로를 넣어주는것이므로 다른곳을 지정하여도 된다.
다른 ResourceBundle을 사용할때에는 컴파일 옵션에서 해당 .properties 파일이 들어 있는 경로로 설정을 해주면 된다.

출처 : tawool(본인)

참고 : http://nogun.tistory.com/57 : 노군's