2009-09-18 26 views
1

我想本地化一個應用程序,但我有幾個限制。我必須使用基於Resx的本地化(我不能使用LocBaml)。此外,所有資源(包括後備資源(en-US))都必須存儲在附屬程序集中。沒有資源可以嵌入到應用程序中。在C#中,如何創建將在設計時使用的衛星資源?

這是我的問題。每次添加字符串時,我都必須將其添加到Resources.resx,然後將相同的字符串添加到後備資源Resources.en-US.resx。如果我理解正確,Resources.resx文件將在編譯/設計時使用,而Resources.en-US.resx文件最終將成爲運行時使用的文件。有沒有辦法解決?我可以以某種方式鏈接這兩個,以便只需要更改一個文件?

回答

2

如何執行一個簡單的預構建操作,將您的默認.resx文件複製到en-US版本?我似乎記得文化代碼沒有記錄在裏面,所以一個簡單的複製文件就可以做到。

+0

好主意。我去做。 – bsh152s 2009-09-18 20:07:10

0

爲什麼你必須有一個相同的回退資源?當你完成主要的(用於默認語言)時,只需將resx-文件複製到新文件。

+0

將所有的字符串放在默認的Resources.resx文件中,所有東西都編譯得很好。但是,運行時會拋出異常,因爲它正在尋找衛星資源(Resource.en-US.resx)。大多數人會將默認/回退資源嵌入到主程序集中,並且不會發生此問題。不幸的是,我被告知不要讓資源可以在以後不必重新編譯整個應用程序的情況下進行更新。我現在可以完成整個設計並在稍後複製。但是,編輯表單時,這仍然會讓其他開發者頭疼。 – bsh152s 2009-09-18 19:19:43

相關問題