我有一個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