【发布时间】:2015-01-12 15:46:29
【问题描述】:
有什么好的解决方案可以用不同的语言进行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>
【问题讨论】:
-
XML 序列化程序是文化不变的。您是否尝试过解析德语并查看会发生什么?
-
你是说你希望标签和属性可能是两种语言之一,即
可以是 说(忽略我的德语语法在这里!)?您是否计划/需要允许混合语言,即在其他英文文档中使用德语部分? -
我想你不明白我的问题 Yuval。我更新了问题。 Tolanj 确实明白。
-
一个选项是您将(比如说)英语视为大师,并通过 Xsl / LinqToXml / 任何事后 / 前(反序列化)完成翻译。即您允许.Net 设置使用单一语言并在您保存/加载该配置的位置放置一个包装器。这对你来说是一个可行的方法吗?如果是这样,它有什么困难? Arhh 任何“字段”复杂,即您依赖嵌入式复杂类型?
标签: c# xml serialization internationalization