我需要使用XSLT转换HTML网页的内容 .因此我使用了SgmlReader并编写了下面显示的片段(我想,最后,它也是一个XmlReader ......)
XmlReader xslr = XmlReader.Create(new StringReader(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">" +
"<xsl:output method=\"xml\" encoding=\"UTF-8\" version=\"1.0\" />" +
"<xsl:template match=\"/\">" +
"<XXX xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><xsl:value-of select=\"count(//br)\" /></XXX>" +
"</xsl:template>" +
"</xsl:stylesheet>"));
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(xslr);
using (SgmlReader html = new SgmlReader())
{
StringBuilder sb = new StringBuilder();
using (TextWriter sw = new StringWriter(sb))
using (XmlWriter xw = new XmlTextWriter(sw))
{
html.InputStream = new StringReader(Resources.html_orig);
html.DocType = "HTML";
try
{ …Run Code Online (Sandbox Code Playgroud) 我正在翻译WPF窗口.我正在使用WPF Localize Extension.到目前为止,我只有一个西班牙语翻译用于测试目的<Resource>.es.resx.在设计时翻译工作.所以我想我走在了正确的轨道上.
我已经包含了菜单项来在运行时动态转换GUI.最初我试过这个(天真的)命令......
public class CmdTranslateUI : ICommand
{
bool ICommand.CanExecute(object parameter)
{
// TODO: Query available translations
return true;
}
public event EventHandler CanExecuteChanged;
void ICommand.Execute(object parameter)
{
LocalizeDictionary.Instance.Culture = new CultureInfo(
(string) parameter);
}
}
Run Code Online (Sandbox Code Playgroud)
...并且每种语言的菜单项都以这种方式绑定到XAML中.
<MenuItem Header="Español" CommandParameter="es-ES">
<MenuItem.Command>
<l:CmdTranslateUI />
</MenuItem.Command>
</MenuItem>
Run Code Online (Sandbox Code Playgroud)
事实是这种方法不起作用."en-US"无论如何,文化信息仍然存在.我读到设置LocalizeDictionary.Instance.Culture它DictionaryEvent被触发,所以我认为这会自动更新GUI.显然我错了.
另一方面,似乎当前线程的文化也不会影响库行为.
所以我问......
问:
提前致谢 .