Xml序列化和不同语言(国际化)

时间:2015-01-12 15:46:29

标签: c# xml serialization internationalization

使用不同语言(国际化)进行XML序列化的好方法是什么,以便将标记和属性序列化为使用不同语言的同一对象?

我在xml中保存配置,并希望支持xml的德语和英语。

我真的不知道这个问题的好方法是什么样的。

最佳解决方案是但不存在:

[XmlRoot("MyEnglishConfig,MeineDeuscheKonfiguration")]
public class Test
{
    [XmlElement(ElementName="Setting1,Einstellung1")]
    public String value1;
}

这样两个xml版本的解析都是正确的:

<MyEnglishConfig>
    <Setting1>English value</Setting1>
<MyEnglishConfig>

<MeineDeuscheKonfiguration>
    <Einstellung1>deutscher Wert</Einstellung1>
</MeineDeuscheKonfiguration>

1 个答案:

答案 0 :(得分:2)

  

使用不同语言(国际化)进行XML序列化的好方法是什么,以便将标记和属性序列化为使用不同语言的同一对象?

不要!这根本不是一件好事,几乎没有图书馆可以帮助你做到这一点。通过各种方式本地化和国际化维护UI;但将xml保留在单一文化中。这只是要求极度痛苦。如果他们需要使用其他语言阅读标签,那么手动编辑xml文件的人可能不会介意

如果您需要这样做,XmlAttributeOverrides可用于制作每种语言的序列化程序,但是......就是这样。