2013-07-30 111 views
14

我有我的默認資源文件Resources.resx其中Visual Studio很好地生成designer.cs類,但是當我嘗試創建Resources.de-DE.resx時,它不會生成。資源文件代碼不生成

我檢查了兩個文件的所有屬性都一樣。

它確實生成Resources1.resx,但不生成Resources.de-DE.resxResources.en-US.resx

+0

designer.cs *不*由RESX創建,由Visual Studio與類文件的對話框(用戶控件)一起創建的。你想達到什麼目的?當程序運行時,它會在本地resx中查找正確的字符串,如果失敗,它會查找默認的resx – Sayse

+2

我有同樣的問題。如果我創建Resources.resx,則在Resources.Designer.resx中生成代碼。但是,如果將第一個文件重命名爲Resources.en.resx,則不會。 –

回答

9

你好@TRS你可能會感到困惑,有一個Designer.cs目前對於Resources.resx並且應該有someDesigner.csResources.de-DE.resx但這而不是這種情況,因爲設計器文件對於所有資源文件都是相同的。並且在Designer.cs中創建的屬性也很常見,這意味着您將在每次轉換時使用此屬性,因此您可以製作的差異基於ResourceCulture。

+0

這幫助我瞭解了爲什麼我沒有提供默認資源文件時沒有資源類。 –

0

是的,Designer resx文件保持空白。 你應該按照下面的步驟,它會100%的工作。 1)在任何文件夾下創建Resource.resx文件

2)set CustomTools = PublicResXFileCodeGenerator和 Build Action = Resource.resx文件屬性中的嵌入式資源。

3)現在創建不同語言的文件,如下面, Resources.en-US.resx Resources.nl-NL.resx等

4)如果MVC,在MVC模式是指這個命名空間爲項目.folder

5)更改的屬性中的一個,如下(實施例)

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MMM/yyyy}"), Display(Name = "dtMovinDate",ResourceType = typeof(Resources.Resource))] 
      public DateTime dtMovinDate { get; set; } 

6)

In config file add this under System.web 

    <globalization enableClientBasedCulture="true" culture="en-US" uiCulture="en-US" /> 

7)重建項目並測試它。

它會工作。 designer.cs文件爲空的真正原因是資源designer.cs會根據您的web.config文件引用這些文件。