기능 :
현재 다국어 메시지 파일을 Flex에서 사용할 수 있도록 swf로 컴파일하고 bin.debug.dir 속성의 디렉토리에 복사한 후에, 추가로 JSP에서 사용할 수 있도록 변환하고 java.locale.dir 속성의 디렉토리에 복사
사용법 :
나는 이클립스에서 사용하는데, 플렉스 프로젝트 루트디렉토리에 이 내용으로 build.xml을 만들고, 마우스 오른쪽 클릭하고 "Run As > Ant Build" 를 선택하면 실행된다.
-- 기본적인 다국어 컴파일에 관한 내용은 '예제로 배우는 플렉스'를 참고하시길.
<project name="LocaleCompile" basedir="." default="ko_kr">
<property name="resource.dir" value="flex_src/resource" />
<property name="bin.debug.dir" value="bin-debug/resource" />
<property name="java.locale.dir" value="src/locale" />
<property name="en.us.locale" value="en_US" />
<property name="en.us.file" value="${en.us.locale}_ResourceModule.swf" />
<property name="ko.kr.locale" value="ko_KR" />
<property name="ko.kr.file" value="${ko.kr.locale}_ResourceModule.swf" />
<property name="resource.bundles" value="collections,containers,controls,core,effects,formatters,flexsong,logging,SharedResources,skins,states,styles,utils,validators" />
<!-- english -->
<target name="en_us">
<!-- flex -->
<exec dir="${resource.dir}" executable="mxmlc">
<arg line="-locale=${en.us.locale} -source-path=locale/{locale} -include-resource-bundles=${resource.bundles} -output ${en.us.file}"/>
</exec>
<copy file="${resource.dir}/${en.us.file}" tofile="${bin.debug.dir}/${en.us.file}"/>
<!-- java -->
<exec dir="${resource.dir}/locale/${en.us.locale}" executable="native2ascii">
<arg line="-encoding UTF-8 flexsong.properties ${basedir}/${java.locale.dir}/flexsong_${en.us.locale}.properties"/>
</exec>
</target>
<!-- korean -->
<target name="ko_kr" depends="en_us">
<!-- flex -->
<exec dir="${resource.dir}" executable="mxmlc">
<arg line="-locale=${ko.kr.locale} -source-path=locale/{locale} -include-resource-bundles=${resource.bundles} -output ${ko.kr.file}"/>
</exec>
<copy file="${resource.dir}/${ko.kr.file}" tofile="${bin.debug.dir}/${ko.kr.file}"/>
<!-- java (JSP의 charset이 UTF-8이므로 encoding을 동일하게 처리하기 위해 encoding 옵션에 UTF-8을 추가했다) -->
<exec dir="${resource.dir}/locale/${ko.kr.locale}" executable="native2ascii">
<arg line="-encoding UTF-8 flexsong.properties ${basedir}/${java.locale.dir}/flexsong_${ko.kr.locale}.properties"/>
</exec>
</target>
</project>
<property name="resource.dir" value="flex_src/resource" />
<property name="bin.debug.dir" value="bin-debug/resource" />
<property name="java.locale.dir" value="src/locale" />
<property name="en.us.locale" value="en_US" />
<property name="en.us.file" value="${en.us.locale}_ResourceModule.swf" />
<property name="ko.kr.locale" value="ko_KR" />
<property name="ko.kr.file" value="${ko.kr.locale}_ResourceModule.swf" />
<property name="resource.bundles" value="collections,containers,controls,core,effects,formatters,flexsong,logging,SharedResources,skins,states,styles,utils,validators" />
<!-- english -->
<target name="en_us">
<!-- flex -->
<exec dir="${resource.dir}" executable="mxmlc">
<arg line="-locale=${en.us.locale} -source-path=locale/{locale} -include-resource-bundles=${resource.bundles} -output ${en.us.file}"/>
</exec>
<copy file="${resource.dir}/${en.us.file}" tofile="${bin.debug.dir}/${en.us.file}"/>
<!-- java -->
<exec dir="${resource.dir}/locale/${en.us.locale}" executable="native2ascii">
<arg line="-encoding UTF-8 flexsong.properties ${basedir}/${java.locale.dir}/flexsong_${en.us.locale}.properties"/>
</exec>
</target>
<!-- korean -->
<target name="ko_kr" depends="en_us">
<!-- flex -->
<exec dir="${resource.dir}" executable="mxmlc">
<arg line="-locale=${ko.kr.locale} -source-path=locale/{locale} -include-resource-bundles=${resource.bundles} -output ${ko.kr.file}"/>
</exec>
<copy file="${resource.dir}/${ko.kr.file}" tofile="${bin.debug.dir}/${ko.kr.file}"/>
<!-- java (JSP의 charset이 UTF-8이므로 encoding을 동일하게 처리하기 위해 encoding 옵션에 UTF-8을 추가했다) -->
<exec dir="${resource.dir}/locale/${ko.kr.locale}" executable="native2ascii">
<arg line="-encoding UTF-8 flexsong.properties ${basedir}/${java.locale.dir}/flexsong_${ko.kr.locale}.properties"/>
</exec>
</target>
</project>