2008-09-25 90 views
5

我正在研究國際化我正在開發的Flex應用程序,並且我很好奇是否有任何最佳實踐或建議。國際化Flex應用程序的最佳實踐?

谷歌搜索這些信息會產生一些小文章和博客文章,每篇文章都以不同的方式做,而且優點和缺點都不完全清楚。

被修改,以縮小範圍:

  • 需要支持只有兩種語言(en_CA和fr_CA)
  • 需要能夠在運行時
+0

@Niko:看看[文章](http://cookbooks.adobe.com/post_Change_Locale_at_the_runtime-11143 。html) – esBe 2010-04-07 18:40:17

回答

5

當然切換,之後使用Google有點更多我遇到了關於runtime localization的文章。

並遵循下列步驟操作:

添加以下編譯器參數指定所支持的語言環境和它們的路徑: (在Flex Builder中,選擇項目並進入屬性 - > Flex編譯器 - >附加的編譯器參數)

-locale=en_CA,fr_CA -source-path=locale/{locale}

創建以下文件:

src/locale/en_CA/resources.properties 
src/locale/fr_CA/resources.properties 

然後編譯器會抱怨:unable to open 'C:\Program Files\Adobe\Flex Builder 3\sdks\3.1.0\frameworks\locale\en_CA'

它看起來可能與錯誤SDK-12507

解決方法:
sdks\3.1.0\bin目錄,執行以下命令:

copylocale en_US en_CA 
copylocale en_US fr_CA 

這將在Flex Builder安裝中創建區域設置目錄併爲其構建一些必需的資源。

然後在你.mxml文件,參考的資源包:

<mx:Metadata> 
    [ResourceBundle("resources")] 
</mx:Metadata> 

而且國際化的字符串:

<mx:TitleWindow title="Window Title"> 

變爲:

<mx:TitleWindow 
    title="{resourceManager.getString('resources', 'windowTitle')}"> 

var name:String = "Name"; 

變爲:

var name:String = resourceManager.getString("resources", "name"); 

而在你src/locale/en_CA/resources.properties文件:

windowTitle=Window Title 
name=Name 
+0

在ActionScript中使用資源管理器時,如何完成區域設置開關運行時? – 2009-01-14 19:46:38