1. 다국어 패키지를 복사..
1- 1. cmd >cd $FlexHome$\sdks\3.2.0\bin
1 - 2. cmd > copylocale.exe en_US 적용할 언어[ex)ko_KR]
2. 제대로 생성됐는지 확인.
2 - 1. cmd > cd $FlexHome$\3.2.0\frameworks\locale
2 - 2. cmd > dir --> swc파일 생성 확인.
3. Flex Builder에서 설정.
3 - 1. Project >>마우스 오른쪽 클릭 >> Properties >> Flex Compiler
3 - 2. Additional compiler arguments >> -locale en_US en_KR -source-path=locale/{locale}
( 경로 확인. - src 디렉토리 기준임.)
얼마전 프로젝트를 하면서 Tour de Flex 를 다운받은적이 있다..
이것저것 보는데
Localization 이라는게 있는것이다
플젝 하면서 다국어 버전을 만들라고 요청 온적이 있었는데..
우리는 그냥 Localizer.as 파일을 만들어서 일일히 변환 해주는 노가다를 했었다(물론 xml로 언어는 가져오지만 그래도 좀...)
Localization을 보니 플랙스에서 가지고 있는 locale을 바꿔 주는것이다..
오~! 이런 획기적인?
그래서 한번 찾아봤다..
Flex 3:Feature Introductions: Runtime Localization
오 이런게? 흠....
보면 알겠지만 (사실 나도 영어는 딸려서...)
fr_FR, en_US 버전 두개를 만들어 언어 변환을 해주는것이다
그럼 TEST 시작..
일단 en_US의 카피 본이 필요 하다
자신이 설치한 Flex Builder 에 가보면
난 디폴트로 설치를 해서 경로가 C:\Program Files\Adobe 이곳이다
그럼 기본으로 Flex 가 가지고 있는 locale 을 알아보자
C:\Program Files\Adobe\Flex Builder 3 Plug-in\sdks\3.2.0\frameworks\locale
으로 들어가보자
경로는 Bulider 설치 폴더\sdks\3.2.0\frameworks\locale 이다
그럼 en_US,ja_JP 폴더 두개가 있을것이다..
이게 플렉스에서 가지고 있는 두가지 버전의 locale 이다...하난 영어,하는 일어..(췟)
난 한국사람이기 때문에 영어,한국어 두가지의 locale 버전을 만들것이다..
그럼 기본으로 가지고 있는 locale 을 카피 한다
도스창을 연다 시작프로그램 >> 실행 >> cmd
C:\Program Files\Adobe\Flex Builder 3 Plug-in\sdks\3.2.0\bin
요기로 가서
copylocale.exe 원본locale 복사locale 이렇게 적는다
나는 copylocale.exe en_US en_KR 을 했다
이렇게 실행이 된다
다시
C:\Program Files\Adobe\Flex Builder 3 Plug-in\sdks\3.2.0\frameworks\locale
로 가보면 en_US, en_KR, ja_JP 가 있다
en_KR 폴더에 가면
automation_agent_rb.swc, datavisualization_rb.swc
파일만 없고 나머지 파일은 있는것을 확인할 수 있다 (저 위에 있는것은 bulider 정식 버전에서 쓰이나 차트나, AdvancedDataGrid등 이런것들이다..)
이제 빌더로 가보자~!
flex 에서 application.mxml 이 있는 경로에 locale 이란 폴더를 만들어 준다
그리고 언어 변환을 할 en_US,en_KR 두개의 폴더를 locale 폴더 안에 만들어준다
그리고 properties 파일을 만들어 준다
properties 파일은 java에서 HashMap,HashTable 과 같이 key = value 로 들어가는 프로퍼티들을 모은 파일이다 flex에서 따지자면 Object같은? Object도 Object.key = value; 로 할수 있으니까..
나는 jang.properties 파일을 만들것이다 (각각 en_US, en_KR 폴더에 하나씩 만들어 준다)
이제 properties 파일을 열고 KEY = VALUE를 넣어준다
이런구조?
여기서 주의해야 할점... properties 파일은 이클립스에서 기본적으로 만들때 파일 encoding이
ISO-8859-1 이다 저장을 할려면 안될것이다..그러므로 UTF-8로 변환을 해주어야 한다
(각 파일마다 전부 UTF-8로 변환을 해주었다면 알아서 UTF-8로 변환 해주니까 상관없음...
encoding 변환방법
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Metadata>
[ResourceBundle("jang")]
</mx:Metadata>
<mx:Script>
<![CDATA[
[Bindable]
private var locales:Array = [ "en_US" , "en_KR" ];
private function localeComboBox_initializeHandler(event:Event):void
{
localeComboBox.selectedIndex = locales.indexOf(resourceManager.localeChain[0]);
}
private function localeComboBox_changeHandler(event:Event):void
{
resourceManager.localeChain = [ localeComboBox.selectedItem ];
}
]]>
</mx:Script>
<mx:Label text="{resourceManager.getString('jang', 'NAME')}"/>
<mx:ComboBox id="localeComboBox" dataProvider="{locales}"
change="localeComboBox_changeHandler(event)"/>
</mx:Application>
Localization.mxml 파일을 이렇게 고친후
Flex 컴파일에서 설정 하자~!
Project >>마우스 오른쪽 클릭 >> Properties
를 클릭후
Flex Compiler >> Additional compiler arguments 로 간다
그리고 -locale en_US en_KR -source-path=locale/{locale}이렇게 넣어 준다
OK 누른후 Localization.mxml 실행
'Flex' 카테고리의 다른 글
flex 특수 문자 예) (0) | 2010.11.08 |
---|---|
Flash Builder 4 Beta2에서 SVN 설치하기 (0) | 2010.10.18 |
Flex Encryption (MD5, SHA1, SHA224, SHA256, HMAC) (0) | 2010.10.01 |
HTTPService Parameters (0) | 2010.09.29 |
FLEX로 화면캡쳐 및 이미지파일로 저장하기 (0) | 2010.08.13 |