我試圖找到如何最好地允許資源文件的本地化和客戶端自定義的信息。使用客戶端自定義資源(resx)以及默認資源
這將是一個簡單的演示,但首先我在做什麼:我們有一個應用程序是一種產品,但我們允許客戶自定義該產品。
我想要(我認爲)是創建一個消息「歡迎」(英語)和「Welkom」(南非荷蘭語)的產品。該產品需要支持不同的語言。
但是,客戶端可以在英文資源中將「Welcome」改爲「Hey Again」。
但是我們發佈了一個更新(比如v2),並且我們添加了一個新的密鑰「再見」給資源。
防止覆蓋客戶端自定義設置的最佳做法是什麼,但是更新默認資源以使其現在處於最新版本並具有兩個密鑰?
在僞代碼:
Load default resources (English) - this is done by .NET
Load default regional resources (Afrikaans) - this is done by .NET
Load the client resources (English) - ?
Load the client regional resources (Afrikaans) - ?
因此,「再見」在任何語言的回報「再見」(新的)最後要求,但「歡迎」的英文最後的請求返回「嘿再次「(客戶)和」Welkom「(默認)在南非荷蘭語中。
我一直在研究完全相同的項目。默認語言,額外的語言,並在每個客戶端可以自定義字符串。那麼,我的解決方案是 - 數據庫。每個領域都有一把鑰匙。這個鍵將與語言結合使用。想象一下帶有鍵,languageId,defaultString,customString的表。您有密鑰和用戶選擇的語言。然後你可以使用db腳本運行更新。您不會覆蓋自定義字符串或整個自定義記錄。但是你的鍵+語言組合將是靜態的。 –
我同意部分內容,但請參閱我對@Remy的評論 – Matthew