国际化Flex应用程序的最佳实践?

5

我正在研究国际化Flex应用程序,并且想知道是否有任何最佳实践或建议。

通过谷歌搜索相关信息,可以得到一些小文章和博客帖子,每篇都介绍了不同的做法,但优缺点并不十分清晰。

编辑以缩小范围:

  • 需要支持两种语言(en_CA 和 fr_CA)
  • 需要能够在运行时切换

@Niko:看一下这篇文章:http://cookbooks.adobe.com/post_Change_Locale_at_the_runtime-11143.html - esBe
1个回答

5

当然,经过更多的谷歌搜索,我找到了一篇关于运行时本地化的文章。

然后按照以下步骤进行操作:

添加以下编译器参数以指定支持的语言环境及其路径: (在Flex Builder中,选择项目并进入属性 -> Flex Compiler -> Additional Compiler Arguments)

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

创建以下文件:

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

然后编译器报错:无法打开'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

当使用ActionScript中的资源管理器时,如何在运行时实现区域设置切换? - Niko Nyman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接