原文连接:
http://www.kalmeo.org/projects/kuix/docs/xml_i18n
译文:
XML可以通过多种方式是屏幕更具属性显示动态的内容。
我们将为你简单地介绍这些属性并将为你演示一个关于怎样国际化动态内容的典型例子。
基础
国际化属性
在你的XML文件中,每处%I18N_KEY%
形式的地方都会被替换为他们的本土化相应的价值位于/i18n/message.properties或/i18n/message.XX.properties文件中,XX对应于所选择的语言。
数据绑定属性
${myProperty}和@{myProperty}基本上做同样的事情:在调用Kuix.loadScreen()或Kuix.loadXml()
同时通过myDataProvider.getValue("myProperty")从DataProvider获取一个值。他们的主要区别在
于在他们生命周期中widget(放置数值的地方)和DataProvider 之间的联系。
${propertyName}在解析时仅仅被转换为它本身的值. Widget和DataProvider之间无任何联系。
@{propertyName}在解析时被转换同时如果widget不为null将被绑定到DataProvider。
/**(略)
The main goal of this feature is to be able to change the value directly in the
DataProvider and it generate automaticaly the update on all binded widgets. The concept
go forward because you can mix more than one property in an attribute definition.
**/
典型例子
让我们用Kuix来指定一些东西。
我们从i18n开始:
messages.properties:
MY_I18N_KEY=Where is {0}? He is in {1}!
mainscreen.xml:
<screen title="I18n + dynamic data exemple">
<textarea>%MY_I18N_KEY(Brian, the kitchen)%</textarea>
</screen>
运行后将显示如下信息:
"Where is Brian? He is in the kitchen!"
现在你可以把它用来指定除了Brian之外的东西或者在不同的地方。你可以定义动态的数据到i18n的
key(关键字)里作为参数:
mainscreen.xml:
<screen title="I18n + dynamic data exemple">
<textarea>%MY_I18N_KEY(${human}, @{location})%</textarea>
</screen>
${human}属性仅仅在解析时被转换。无连接的作用。
@{location}属性将被提取并关联到DataProvider。
public class HumanLocatorDataProvider extends DataProvider {
private static final String HUMAN_PROPERTY = "human";
private static final String LOCATION_PROPERTY = "location";
private String location = "the garden";
public void setLocation(String location) {
this.location = location;
dispatchUpdateEvent(HUMAN_PROPERTY); // 这里应该打错了,HUMAN_PROPERTY应改为LOCATION_PROPERTY
}
protected Object getUserDefinedValue(String property) {
if (LOCATION_PROPERTY.equals(property)) {
return location;
}
if (HUMAN_PROPERTY.equals(property)) {
return "John";
}
return null;
}
}
任何时候你可以调用setLocation()方法更新文字。
更新后的结果将会显示如下:
"Where is John? He is in the garden!"
*本人水平一般,仅供参考。更多信息请浏览原文。
分享到:
相关推荐
2. Excel到XML:完成翻译工作后,该工具可以将Excel文件的内容转换回XML格式,并自动按Android的要求生成对应的`values-xx`文件夹结构。这样,开发者可以直接将这些文件导入项目,完成本地化设置。 三、项目结构与...
3、配置xml: 【tools】--> [Configure user tools] Menu txt:xmlFormat Command :D:\Program Files\EditPlus\xml.exe (Editplus安装目录为D:\Program Files\EditPlus) Argument:fo Action:Run as Text fiter...
1. **创建XML资源文件**:为每种语言创建一个XML文件,如`messages_en.xml`(英语)和`messages_fr.xml`(法语),并按照规定的XML结构组织本地化内容。 2. **定义XML Schema**:为了确保XML文件的正确性,可以创建...
8. **序列化XML**:将XML结构写回文件或转换为字符串,可以使用`XMLStringWithOptions:`方法,该方法会根据指定的选项(如是否保留空白)生成XML字符串。 9. **错误处理**:在处理XML时,一定要注意错误处理,确保...
当XML文档内容繁多且结构复杂时,未经格式化的XML文档往往表现为一长串连续的文本,缺乏必要的换行和缩进,这不仅降低了代码的可读性,还可能增加了解析和修改的难度。因此,对XML文档进行格式化,通过添加适当的...
在Delphi编程环境中,XML(eXtensible Markup Language)是一种常用的数据交换格式,用于存储结构化数据。本文将深入探讨如何在Delphi XE7中格式化XML文件,通过提供的"delphi格式化xml文件demo"进行示例说明。 ...
- 写入XML:使用`XmlNode.AppendChild()`、`XmlNode.RemoveChild()`等方法添加、删除节点,然后用`XmlDocument.Save()`保存更改。 4. **使用LINQ to XML操作XML**: - 创建XML:使用`XElement`和`XAttribute`类...
在IT领域,尤其是在Web开发中,Flash和XML的结合是一种常见的技术应用,它允许富媒体内容(如Flash)与数据动态交互。这个压缩包“FLASH动态读取XML”提供了实现这一功能的相关资源,包括ASP生成XML的代码和Flash...
**EditPlus XML格式化** EditPlus是一款功能强大的文本编辑器,尤其在编程和代码编辑方面表现出色。它支持多种编程语言,并提供了丰富的自定义功能,包括XML文件的格式化。XML(eXtensible Markup Language)是一种...
3. **编辑与修改**:foxechs提供了XML编辑器,用户可以直接在可视化界面中修改XML文档的内容,包括添加、删除和修改元素、属性等。 4. **格式化与压缩**:foxechs支持XML文档的格式化,可以将杂乱无章的XML代码整理...
"tinyxml生成xml动态库"指的是利用TinyXML库创建一个动态链接库(DLL),这样其他程序就可以通过调用这个库来处理XML操作,而无需包含完整的TinyXML源代码。 XML(eXtensible Markup Language)是一种标记语言,常...
Settings->Editor->Code Style->XML 第二类:Eclipse使用: 1.在菜单栏中选中『windows』-〉 『Preferences』。 2.在出现的对话框的左边树中展开『Java』下的『code style』。 3.其中有两项,一项是『Formatter』,...
XML用于描述结构化数据,重点在于数据内容的组织,而HTML用于呈现数据,重点在于浏览器上的展现方式。 XML的优点包括: * 能避免浏览器或其他中介软件自行增加特定的HTML标签 * 具有扩展性,不像HTML有固定的格式 ...
FTL(FreeMarker)是一种基于Java的模板引擎,主要用于生成动态Web内容。它与XML(Extensible Markup Language)紧密关联,因为XML常被用来作为数据结构来存储和传输信息,而FTL则负责将这些数据渲染成用户友好的...
"使用说明.txt"是关于如何使用这个XML格式化工具的详细指南,可能包括操作步骤、快捷键、设置选项等内容。对于初次使用者来说,这是一个非常重要的资源,能帮助他们快速上手并充分利用工具的功能。 总的来说,XML...
- 动态生成XML:可以使用编程语言如Python的ElementTree或Java的JAXB来动态生成XML结构。 3. **XML序列化和反序列化**: - 将对象转换为XML:使用如Java的JAXB或.NET的XmlSerializer将对象实例转化为XML格式。 -...
3. SQL/XML:在SQL数据库中,SQL结合XML功能,用于查询和操作存储在数据库中的XML数据。 XML数据库: 1. XML-Enabled DB:传统的关系型数据库添加了对XML的支持,允许直接存储和查询XML数据。 2. Native XML DB:...
此外,由于内容与显示分离,基于XML的Web管理系统可以从数据库中提取特定部分进行显示,并根据不同客户的需要提供个性化的输出。 #### 二、动态XML网站的设计 动态XML网站的设计可以通过应用不同的XSL(Extensible...
在实际应用中,Groovy的这种XML处理方式特别适用于需要动态生成或修改XML配置文件、与XML格式的数据交互或者进行自动化测试等场景。由于Groovy的动态特性,它允许开发者在运行时根据需要改变代码逻辑,这在处理XML时...
5. **可视化设计**:在Winform应用中,可以使用Visual Studio的设计器创建用户界面,并添加必要的控件来显示XML模板的内容。这些控件可以配置为根据模板中的数据自动调整大小和位置。 6. **打印功能**:.NET ...