您的位置:首页 > 其它

Parsley 开发指南 12 本地化

2013-01-25 14:14 190 查看

12 本地化

本地化的方法推荐Parsley基于应用程序有很大的不同,取决于你是否是使用Flex。对于Flex应用程序Parsley集成了Flex ResourceManager。对于Flash应用程序Parsley提供了它自己的本地化模块。事实上,从version 1的框架模块是唯一幸存的部分,尽管有一些重大的重构。

12.1 资源绑定

这是唯一的能在Flex和Flash应用程序一样工作的Parsley本地化功能,所以我们将首先解释一下。

你可以把[ResourceBinding]元数据标签放在任何IOC容器托管的对象的属性上。

[ResourceBinding(bundle="errorMessages",key="fileNotFound")]

public var message:String;

标签有以下效果:

l 当对象被实例化的时候容器将从ResourceManager用指定的包名称和键获取消息并且注入到属性中。这一步时发生其他注入方法和标签为[Init]的方法得到调用之前。如果该包在对象初始化的时候还不能用,资源可能会在稍后的时间注入。

l 当Flex ResourceManager更新了(Flex应用程序)或Parsley ResourceManage的currentLocale属性发生改变(Flash应用程序),该属性的值会被自动更新。

对于Flex应用程序推荐主要用于在Parsley配置类或文件(MXML或XML)定义的对象使用这个特性。对于视图组件,甚至当他们连接到Parsley IOC容器如9动态视图装配 中描述的一样,你可以坚持正常Flex绑定语法如下:

<s:Label text="{resourceManager.getString('RegistrationForm','city')}"/>

这样你的本地化视图组件并不依赖于Parsley框架。Parsley[ResourceBinding] 标签仍然可能在其他本地化的对象派上用场。

对于Flash程序 [ResourceBinding]通常通常是本地化组件的推荐方法。

在大多数情况下,Parsley框架会自动检测它是用于Flex还是Flash程序,这取决于Parsley如何初始化。所以适配器连接处理[ResourceBinding] 标签的类,Flex 或者 Parsley ResourceManager将被自动设置。 有一些例外,在以下部分中描述。

像大多数其他Parsley元数据标签一样有相应的MXML和XML标签可以使用:

MXML Example

<Object type="{SlideShowController}">

<ResourceBinding property="message" bundle="errorMessages" key="fileNotFound"/>

</Object>

XML Example

<object type="com.bookstore.catalog.SlideShowController">

<resource-binding property="message" bundle="errorMessages" key="fileNotFound"/>

</object>

12.2 本地化Flex应用程序

对于Flex应用程序前面部分描述的[ResourceBinding]标签,是目前唯一的可用的(可能是唯一你需要在Flex环境的功能) 集成功能。否则你应该使用Flex本地化功能像你不使用框架一样。有丰富的文档在Flex Livedocs。

我们可能会考虑扩大Flex模块支持,包括动态加载的Flex资源模块的管理,这个模块与一个特定的Flex模块关联。但我们将等待反馈意见,看看这个模块支持如何得到使用。

初始化ResourceBinding元数据标签支持Flex

每当你使用FlexContextBuilder来初始化你基于Parsley配置的mxml,框架会自动为你设置需要的适配器。在极少数情况下,你会构建一个Parsley Flex应用程序但是完全不使用MXML配置(例如封闭自己使用XML配置文件)你需要手动设置适配器:

ResourceBindingDecorator.adapterClass = FlexResourceBindingAdapter;

12.3 本地化Flash应用程序

Flash暂时省略
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: