2017-03-06 27 views
0

我有一個美國英語WPF應用程序,它不是語言本地化的,但英語流利用戶希望它在設置爲德語語言環境的PC上運行。因此,以英文顯示所有內容不是問題,但是當我的應用程序從XML文件讀取時,他們發現分析失敗。 XML文件由開發人員手動創建,作爲插件體系結構的一部分,包含格式爲1.23E + 05的數字。我用StreamReader和XmlSerializer.Deserialize()讀入它們。序列化類中的大多數字段都聲明爲字符串,我稍後將它們解析爲雙精度。有沒有辦法支持這種使用模式?是否有解決方案隻影響來自應用外部的輸入(希望儘量減少所需的更改)?我認爲我要求的是在沒有完全支持本地化的情況下支持不同的語言環境,如果這樣做合理的話。我可以用影響數字/日期顯示格式的區域設置,如果這種情況自動發生的話。我主要關心的是不要崩潰:)謝謝。WPF App Support Locale without Localization

+0

當你的應用在德國電腦上運行時,你仍然想使用英文數字/日期等。格式?這是你的目標嗎? –

+0

@Mighty Badaboom:更新了帖子,以表明不顯示這些內容的偏好。 –

+0

什麼是XML文件?通常,如果是設置或某些內部數據(而不是用戶生成的報告),則必須將其保存在中性文化中以避免這種情況。你如何序列化/創建XML然後反序列化/加載/使用它? 'XmlSerializer'是[獨立於文化](http://stackoverflow.com/q/21140292/1997232)(也叫做中性文化)。 – Sinatr

回答

0

你應該明確地設置培養你的應用程序

Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;

取而代之的是InvariantCulture的,你也可以通過特定的文化。數字格式等內容與您當前的文化密切相關。

+0

所以如果我設置CurrentCulture = en-US,那麼就像我所有的輸入文件都包含格式化爲en-US的數字一樣,那麼執行的機器的語言環境是什麼都不重要? –