首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于特定于区域性的文本/翻译映射的外部XML

用于特定于区域性的文本/翻译映射的外部XML
EN

Stack Overflow用户
提问于 2010-11-16 01:15:36
回答 2查看 388关注 0票数 1

我们正在构建一个系统,从数据库获取XML数据,使用XSLT将其转换为XHTML,同时使用外部XML文件检索特定于区域性的标签(标签的翻译)。

短问题

翻译/文化特定的系统看起来合乎逻辑吗?有效率?

任何其他概念都是受欢迎的(在这种特定情况下)

详细问题

XML数据

代码语言:javascript
复制
<page id="55" objecttype="ChristianOrthodoxMonument">
 <field name="uniquename">some unique name here</field>
        .. multiple field elements here ..
</page>

XML区域性-标签

代码语言:javascript
复制
<ChristianOrthodoxMonument>
 <uniquename culture-1="Ονομασία" culture-2="Unique name" />
 <birthdate culture-1="Ημ/νία γέννησης" culture-2="Date of birth" />
</ChristianOrthodoxMonument>

现在,在XSLT中,我传递用于映射到标签的cultureid参数。

XSLT (示例片段)

代码语言:javascript
复制
<xsl:param name="cultureid" select="1" />
<xsl:variable name="objecttype" select="/page/@objecttype" />

并映射到外部文件,该文件包含在

代码语言:javascript
复制
<xsl:variable name="culture" select="document('cultural-labels.xml')" />

我创建了一个伪动态xpath

代码语言:javascript
复制
<xsl:template name="translate">
 <xsl:variable name="nodename" select="@name" />
 <xsl:value-of select="$culture/*[name()=$objecttype]/*[name()=$nodename]/@*[name()=concat('culture-',$cultureid)]" />
</xsl:template>

每当我想要得到一个字段的标签时,我就调用它。

问题A :是有效的还是过度的?太复杂了?

问题B :这个模型看起来正确吗,还是我错过了一些将来会成为障碍的重要的东西?

问题C :是否有关于与外部XML文件类似的映射技术的理论/示例?

具有复合密钥用法的第二次更新

密钥

代码语言:javascript
复制
<xsl:key name="find-node" match="*" use="concat(name(..),'!',name())"  />

查找

代码语言:javascript
复制
<xsl:template name="lookup-label">
<xsl:param name="objecttype" />
<xsl:variable name="nodename" select="@name" />
<xsl:for-each select="$culture">
    <xsl:value-of select="key('find-node',concat($objecttype,'!',$nodename))/@*[name()=$culturefield]" />
</xsl:for-each>
</xsl:template>

这是一种改进吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-16 02:20:57

简短的问题翻译/文化特定的系统看起来合乎逻辑吗?

有效率?

It 是高效的--不完全是您的实现。

我创建了一个伪动态xpath />,每当我想要获取字段的标签时,都会调用它。 问题A:这是有效的还是过度的?

不,这并不有效,因为整个XML文档将被多次遍历以找到特定的对象类型节点。

太复杂了?

不是的。

问题B:这个模型看起来正确吗?还是我遗漏了一些将来会成为障碍的重要的东西?

这个模型一般是可以的。

问题C:是否有任何关于类似的映射技术到外部文件的理论/示例?

有基于键的高效查找的 许多例子 --即使是这样。也见 这一个

票数 3
EN

Stack Overflow用户

发布于 2010-11-16 02:36:09

下面是另一种纯XSLT方法:06.htm

另一种选择可能是从xslt (look 这里)或C# (look 这里 )调用java函数。这有许多优点。

  • 利用这些语言提供的功能/工具
  • 可以共享相同的包/翻译文件。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4190377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档