从XDocument.Validate()本地化验证消息

时间:2012-10-23 15:42:48

标签: .net validation localization xsd linq-to-xml

如何本地化从XDocument.Validate()返回的消息?它似乎为我返回英文消息。

以下代码段写入消息“未声明'UndeclaredElement'元素。”但这对非英语用户没有帮助。

[Test]
public void Test()
{
    var xDocument = XDocument.Parse("<UndeclaredElement/>");

    var stringReader =
        new StringReader("<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'/>");

    var xmlSchema = XmlSchema.Read(XmlReader.Create(stringReader), (o, e) => Console.WriteLine(e.Message));

    var schemaSet = new XmlSchemaSet();
    schemaSet.Add(xmlSchema);

    xDocument.Validate(schemaSet, (o, e) =>
    {
        Console.Out.WriteLine(e.Message);
    });
}

1 个答案:

答案 0 :(得分:1)

要本地化来自XDocument.Validate()的消息,必须做两件事:

  1. 将当前文化设置为所需语言:

    System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-fr");
    System.Threading.Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-fr");
    
  2. 安装.net框架语言包(在我的情况下,版本4的包是found here

  3. 感谢John的快速指针..