2013-07-30 12 views
14

Mam domyślny plik zasobów Resources.resx, dla którego studio graficzne ładnie generuje klasę designer.cs, ale kiedy próbuję utworzyć Resources.de-DE.resx, nie generuje.Kod pliku zasobu nie został wygenerowany

Sprawdziłem, czy wszystkie właściwości obu plików są takie same.

Generuje dla Resources1.resx, ale nie dla Resources.de-DE.resx ani Resources.en-US.resx.

+0

designer.cs * nie jest * stworzone przez resx, stworzone przez studio graficzne wraz z plikiem klasy dla okna dialogowego (kontrola użytkownika). Co próbujesz osiągnąć? Gdy program zostanie uruchomiony, będzie szukał poprawnego ciągu w lokalnym resxie, jeśli się nie powiedzie, będzie wyglądał w domyślnym resxie – Sayse

+2

Mam ten sam problem. Jeśli utworzę Resources.resx, wygeneruje kod w Resources.Designer.resx. Ale jeśli zmieni nazwę pierwszego pliku na Resources.en.resx, to nie. –

Odpowiedz

9

cześć @TRS może być zagubiony, że istnieje Designer.cs obecni resources.resx i nie powinno być someDesigner.cs dla Resources.de-DE.resx ale to nie tak, ponieważ plik projektanta byłby taki sam dla wszystkich plików zasobów. a także właściwość, która jest tworzona w Designer.cs jest również powszechna, co oznacza, że ​​będziesz używać tej właściwości dla każdej konwersji, a różnica, którą możesz wprowadzić, opiera się na ResourceCulture.

+0

Pomogło mi to ustalić, dlaczego nie miałem klasy zasobów, gdy nie dostarczyłem domyślnego pliku zasobów. –

0

Tak, plik Resx projektu pozostaje pusty. należy wykonać poniższe czynności, będzie działać w 100%. 1) Utwórz plik Resource.resx pod dowolnym folderze

2) Ustaw CustomTools = PublicResXFileCodeGenerator i Konstruowanie action = osadzonego zasobu w Resource.resx pliku właściwości.

3) Teraz tworzyć różne pliki językowe jak poniżej, Resources.en-US.resx Resources.nl-NL.resx itp

4) Jeżeli MVC, w modelu MVC przekazać ten nazw jako projekt .folder

5) zmienia jedną z właściwości, jak poniżej (przykład)

[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) przebuduj projekt i przetestuj go.

To zadziała. Prawdziwą przyczyną pustego pliku designer.cs jest resource.csf. Pliki będą odnosić te pliki w oparciu o plik web.config.