我有一个ASP.NET Web应用程序,使用XSLT转换后端数据(XML格式),生成输出到页面的XHTML。ASP.NET中XSLT + RESX的本地化方法
简化代码:
XmlDocument xmlDoc = MyRepository.RetrieveXmlData(keyValue);
XslCompiledTransform xsl = new XslCompiledTransform();
xsl.Load(pathToXsl, XsltSettings.TrustedXslt, null);
StringWriter stringWriter = new StringWriter();
xsl.Transform(xmlDoc, null, stringWriter);
myLiteral.Text = stringWriter.ToString();
目前我XSL文件包含XHTML标记元素,以及文字标签,这是目前在英国。例如:
<p>Title:<br />
<xsl:value-of select="title"/>
</p>
<p>Description:<br />
<xsl:value-of select="desc"/>
</p>
我希望将文本标签(标题和说明如上所述)进行本地化。我正在考虑使用.NET资源文件(.resx),但我不知道在转换发生时如何将resx字符串资源拉入到XSLT中。
我不希望具有XSLT文件的特定于语言环境的副本,因为这意味着很多重复的转换逻辑。
(注:XML数据已经本地化,所以我并不需要改变)
这不是一个实际的解决方案。如果您这样做,资源文件必须与解决方案一起分发。 – 2010-05-05 11:26:57
带有翻译字符串的XML文件将与XSLT一起分发。 .resx格式是标准格式。我不明白为什么这是不实际的。 – 2012-01-29 00:43:44