2010-02-06 10 views
5

Pracuję nad aplikacją ASP.NET MVC 2 i korzystam z oddzielnej biblioteki klas dla mojego modelu. Użyłem plików zasobów w projekcie mojej biblioteki klas do osadzenia wiadomości sprawdzania poprawności i użycia ich w moich klasach danych meta i wszystko było w porządku, dopóki nie zdecydowałem się dodać nowego języka do mojego projektu, więc zmieniłem nazwę Resource.resx na Resource.en-US.resx a także skopiował i zapisał jako nowy plik Resource.fa-IR.resx dla innego języka, ale po zmianie jego nazwy wszystko w pliku towarzyszącym Designer.cs zniknęło i nie mogę już uzyskać dostępu do pliku zasobów. Jak tylko usuniemy nazwę języka (np. En-US) z nazwy pliku, to działa poprawnie.Problem z plikami zasobów specyficznymi dla języka w projekcie biblioteki klas

Ustawiłem już modyfikator dostępu jako Publiczny, ale bez rezultatu.

Używam Visual Studio 2008 SP1.

Odpowiedz

6

Nie zmieniaj nazwy resources.resx: zamiast tego po prostu dodaj pliki zasobów dla dodatkowych kultur, których potrzebujesz.

Resources.resx zawiera zasoby "neutralne", które zostaną wkompilowane w główny zespół i użyte jako rezerwowe, jeśli nie ma zainstalowanego zestawu satelitów dla wymaganej kultury.

Każdy dodatkowy plik zasobów, np. Resource.fa-IR.resx będzie zwykle kompilowany w kulturalny zestaw satelitarny.

Można również dodać do AssemblyInfo.cs NeutralResourcesLanguageAttribute, która informuje ResourceManager języka użyłeś dla neutralnych środków:

assembly: [System.Resources.NeutralResourcesLanguage("en-US")] 
2

Nie trzeba zmienić nazwę domyślnego języka do zasobów .en-us.resx. Po prostu przechowuj go jako Resources.resx i będzie on używany jako zapasowy plik zasobów, co oznacza, że ​​nie ma tam języka użytkownika, np. Arabski, będzie on używany, więc trzeba mieć pliki o nazwach, jak następuje:

Resource.resx

Resource.fa-IR.resx