首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理多种(口语)语言的HTML生成器

处理多种(口语)语言的HTML生成器
EN

Stack Overflow用户
提问于 2011-06-17 16:36:22
回答 1查看 129关注 0票数 0

我需要用几种语言维护一些静态HTML页面。我正在寻找一种工具,可以让这件事变得相当简单,易于维护。

我的理想工具可以使用如下的HTML标记:

代码语言:javascript
复制
<div>
  <p>
    <langs>
      <lang lang="en">Welcome!</lang>
      <lang lang="de">Willkommen!</lang>
      <lang lang="it">Benvenuti!</lang>
    </langs>
  </p>
  <p>
    <langs>
      <lang lang="en">Where do you want to go today?</lang>
      <lang lang="de">Wo möchten Sie heute unternehmen?</lang>
    </langs>
  </p>
</div>

如果您使用所需的语言代码"de,en“运行它,它将生成:

代码语言:javascript
复制
<div>
  <p>Willkommen!</p>
  <p>Wo möchten Sie heute unternehmen?</p>
</div>

但是如果你使用" it,en“,它会产生:

代码语言:javascript
复制
<div>
  <p>Benvenuti!</p>
  <p>Where do you want to go today?</p>
</div>

其中第二段回到英语,因为没有可用的意大利语翻译。(参数"it,en“指示按优先顺序使用的语言。)

有没有人知道有什么工具可以满足这个要求?我会考虑一些更深奥的东西,比如HAML,如果它允许类似上面的东西的话。

*所谓“深奥”,是指源不是HTML (或接近HTML),而是生成HTML作为输出的东西。

EN

回答 1

Stack Overflow用户

发布于 2011-06-17 16:44:58

您可以编写一个XSLT template来做这件事。

XSL编辑:下面是一个示例模板:

代码语言:javascript
复制
<?xml version="1.0"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output indent="yes" method="xml"/>

    <xsl:param name="desiredLang" select="'it'"/>
    <xsl:param name="defaultLang" select="'en'"/>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="langs">
        <xsl:variable name="desiredValue" select="./lang[@lang=$desiredLang]"/>
        <xsl:variable name="defaultValue" select="./lang[@lang=$defaultLang]"/>
        <xsl:choose>
            <xsl:when test="$desiredValue">
                <xsl:value-of select="$desiredValue"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="$defaultValue"/>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

</xsl:stylesheet>

下面是它的输出:

代码语言:javascript
复制
<div>
    <p>Benvenuti!</p>
    <p>Where do you want to go today?</p>
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6383292

复制
相关文章

相似问题

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