Asp.net umbraco中的导航菜单
我正在使用umbraco cms。这里我有一个多语言网站导航菜单的问题。下面给出了我的xslt文件代码。它只呈现英文菜单。我是翁布拉科的新手。因此,任何人都可以告诉我,我必须在这段代码中的哪些地方进行更改,以使它能够根据不同的语言正确工作。我的代码是Asp.net umbraco中的导航菜单,asp.net,xslt,content-management-system,umbraco,Asp.net,Xslt,Content Management System,Umbraco,我正在使用umbraco cms。这里我有一个多语言网站导航菜单的问题。下面给出了我的xslt文件代码。它只呈现英文菜单。我是翁布拉科的新手。因此,任何人都可以告诉我,我必须在这段代码中的哪些地方进行更改,以使它能够根据不同的语言正确工作。我的代码是 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]> <x
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
]>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets"
exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets ">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
<xsl:param name="currentPage"/>
<xsl:variable name="rootPage" select="$currentPage/ancestor-or-self::root"/>
<xsl:variable name="siteRoot" select="$currentPage/ancestor-or-self::*[@level = 1]" />
<xsl:variable name="propertyAlias" select="/macro/PropertyAlias"/>
<xsl:template match="/">
<xsl:variable name="homepage" select="$currentPage/ancestor-or-self::Homepage"/>
<xsl:variable name="nodeIds" select="umbraco.library:Split($homepage/*[name()=$propertyAlias],',')" />
<ul class="navigation fc">
<xsl:for-each select="$nodeIds/value">
<xsl:variable name="linkNone" select="$rootPage//*[@isDoc][@id = string(current()/.)]"/>
<xsl:if test="string-length($linkNone/@id)> 0">
<li>
<xsl:attribute name="class">
<xsl:if test="$currentPage/ancestor-or-self::*[@level > 1]/@id = $linkNone/@id">
<xsl:text>selected</xsl:text>
</xsl:if>
<xsl:if test="position() = last()">
<xsl:text> last</xsl:text>
</xsl:if>
</xsl:attribute>
<xsl:choose>
<xsl:when test="string-length($linkNone/umbracoUrlAlias) > 0">
<a href="{$linkNone/umbracoUrlAlias}">
<xsl:value-of select="$linkNone/@nodeName"/>
</a>
<xsl:if test="position() != last()">
<xsl:text> | </xsl:text>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<a href="{umbraco.library:NiceUrl($linkNone/@id)}">
<xsl:value-of select="$linkNone/@nodeName"/>
</a>
<xsl:if test="position() != last()">
<xsl:text> | </xsl:text>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</li>
</xsl:if>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
-
挑选出来的
最后的
|
|
您永远不应该使用$rootPage。对于多语言或多站点,您希望停止在当前内容上方的主页($siteRoot)
看起来您的导航是由主页上的选择器选择的。为什么不让内容树结构决定导航?在这种情况下可能更简单
如果这没有帮助,请发布您的内容树结构示例。在这种情况下,“正常工作”是什么意思?什么不适合你?