ResourceBundle 사용하기.

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

'Flex / AIR / AS' 카테고리의 다른 글

[AS3.0] 각 달의 마지막 날짜 구하기  (0) 2009.08.11
IUITextField 를 사용하자.  (0) 2009.08.08
[Flex3.0] Box로 구현한 Drag and Drop  (0) 2009.06.11
Point 클래스  (0) 2009.06.02
Meta Data 의 사용.  (0) 2009.05.10