我正在做正确的转换以开发多语言网站。本网站的所有文本都需要从XML文件中获取,因为网站的输出将是处理后的文件。在XSLT上包含语言文件(如XML)
这是最基本的文件,INDEX.XML:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="xsl/index.xsl"?>
<page>
<entry>
<id>12</id>
<value>img/12.jpg</value>
</entry>
<entry>
<id>13</id>
<value>img/13.jpg</value>
</entry>
</page>
该条目是独一无二的,因此他们没有需要翻译。我index.xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- I'm including a language file, but I've various language files that will be stored in different folders -->
<xsl:param name="menu" select="document('../lang/index.xml')" />
<xsl:template match="/">
<html>
<xsl:attribute name="lang"><!-- name of the lang --></xsl:attribute>
<head></head>
<body>
<ul id="menu">
<xsl:for-each select="language/menu">
<li><xsl:value-of select="." /></li>
</xsl:for-each>
</ul>
<!-- this is not important, is an example -->
<xsl:for-each select="page/entry">
<xsl:value-of select="id" />
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我包括../lang/index.xml其中包含的所有单词在一些语言,例如英语。我需要这个网站在3种不同的语言可以存储,如:
/lang/en/index.xml
<language>
<menu>Home</menu>
<menu>Images</menu>
</language>
/lang/es/index.xml
<language>
<menu>Inicio</menu>
<menu>Imágenes</menu>
</language>
/郎/fr/index.xml
<language>
<menu>Maison</menu>
<menu>Images</menu>
</language>
我的问题是我如何管理它。我无权改变这种情况,因为我不允许为每种语言执行特定的index.xsl文件。
预先感谢您,并为学校英语感到难过。
你在哪里运行XSL转换?在服务器或客户端在浏览器中?通常,这种转换是在服务器上完成的,但是您的示例看起来像您想在浏览器中的客户端上执行此操作? – 2010-09-09 23:11:23
@ 0xA3我的转换是由服务器在PHP中完成的。我现在更新更具体的情况的例子。 – ipalaus 2010-09-09 23:17:52
立即更新,以便更清晰。提前致谢! – ipalaus 2010-09-09 23:25:46