2012-06-13 12 views
1

我有不同語言的全球資源文件:如何將字符串添加到僅屬於一種語言的ASP.NET全局資源?

Resource.resx 
Resource.de-DE.resx 
Resource.ro-RO.resx 

在大多數情況下,所有的字符串Resource.resx在其他語言中也有本地化版本。

但是,我有某些字符串應該只存在於Resource.de-DE.resx而不是Resource.resx。當我嘗試在我的代碼使用它們:

GetGlobalResourceObject("Resource", "Personal Identification Number") 

我得到那個說無法解析資源項目「個人識別號碼」錯誤。當我用德語查看頁面時,該字符串仍然得到正確的本地化,因爲它存在於Resource.de-DE.resx中,但由於它不在Resource.resx中,所以在Visual Studio中出現此錯誤,我想擺脫該錯誤。

我該如何解決這個問題,以免我得到這個錯誤信息?我應該將本地特定的字符串移動到另一個資源文件嗎?

回答

0

整個資源後備方法確實假定所有字符串都存在於基本語言中。

我想你有這種情況,因爲你實現了一些只適用於德語的功能,並且你不想向基礎語言添加不必要的資源,因爲這些功能會增加不需要它的語言的本地化工作量。

一個解決方案是創建一個單獨的本地資源文件。或者只將這一個翻譯成德語(而不是其他語言),或者將其作爲基礎資源(沒有de-DE語言代碼,但仍然帶有德語字符串)。

另一個解決方案(如果你不能創建一個本地資源文件,並且出於某種原因只能使用全局資源)就是將這些額外的條目添加到你的基本全局資源中(Resource.resx)並且很明顯,不想要這些翻譯。例如,使它們全部爲空字符串,並使用Comment字段來解釋這些字符串僅適用於德語。不大好。

0

我剛剛複製了你的場景,它工作正常。只需創建另一個包含本地特定字符串的資源文件。希望這有助於:)

+0

你能更具體一點嗎?我不知道我明白你想說什麼。 –

相關問題