2009-08-21 12 views
7

Ubiegam się o przypadek, w którym aplikacja ASP.NET wykorzystująca wbudowane funkcje globalizacji ulega awarii.Globalizacja ASP.NET: Culture = dyrektywa "auto" z awarią kultury neutralnej?

Na stronie ASP.NET z kulturą = „auto” dyrektywy, użytkownik z neutralnym kultury jako ich języku przeglądarki (takie jak „zh-Hans”) będzie produkować następujący wyjątek:

Kultura "zh-Hans" jest kulturą neutralną. Nie można go używać w formatowaniu i analizie , a zatem nie można ustawić jako kultury bieżącego wątku .

w System.Globalization.CultureInfo.CheckNeutral (CultureInfo kultura) w System.Threading.Thread.set_CurrentCulture (CultureInfo wartości) w System.Web.UI.Page.set_Culture (ciąg wartości) w ASP .somePage_aspx .__ BuildControlTree (somePage_aspx __ctrl) na ASP.somePage_aspx.FrameworkInitialize()

Jakieś pomysły? Odpady wprowadzane do parametrów Culture/UICulture wydają się generalnie ignorowane, ale ten przypadek powoduje nieobsługiwany wyjątek.

Odpowiedz

3

Po pierwsze, możesz rozważyć ustawienie UICulture = "auto" oraz Culture = "auto" w swoim Deklaracja <% @ strona%>.

Teraz nie widzę tej repro na mojej instalacji .NET 4.0 (beta), więc może to być błąd produktu w .NET 3.5.

Oto doskonałym źródłem poznawania kultur i neutralnych różnicy między UIculture i kultura: http://blogs.msdn.com/ddietric/archive/2008/02/05/yacvcp-yet-another-currentculture-vs-currentuiculture-post.aspx

nadzieję, że to pomocne.

2

Nie możesz ustawić kultury na żądanie rozpoczęcia? (Uwaga: żądania asp.net mogą przeskakiwać między wątkami, więc musisz również podłączyć się do wątku.)

+0

cześć Andrew Arnott. Umieściłem culture = "auto" uiculture = "auto" w moim <%@Page %>. Nawet otrzymuję ten sam wyjątek co Kultura "zh-Hans" jest kulturą neutralną.Nie można go używać do formatowania i analizowania, dlatego nie można go ustawić jako kultury aktualnej wątku. ten wyjątek na pojedynczej stronie pozostawia wszystkie strony działające poprawnie .------ Pomóż mi –

6

Miałem ten sam problem i po poklepaniu się po ścianie przez chwilę znalazłem odpowiedź pod nosem.

Problem miałem był w nie rozumiejąc różnicy między CurrentCulture i CurrentUICulture. Różnica polegająca na tym, że CurrentCulture służy do formatowania dat, liczb i sortowania, jest używana do wyszukiwania ciągów specyficznych dla kultury z zasobu.

miałem jakiś kod, który wyglądał jak

return input.ToString("C", System.Globalization.CultureInfo.CurrentUICulture); 

kiedy należy być

return input.ToString("C", System.Globalization.CultureInfo.CurrentCulture); 

Po rozpoczęciu próby poszczególnych pozycji Format kultury z nieswoistym kultury dostaniesz Systemu .NotSupportedException.

+0

To może nie być dokładnie ten sam problem, ale powinieneś szukać kodu, w którym próbujesz przypisać neutralną kulturę poprzez CurrentUICulture do czegoś oczekując bardziej specyficznej kultury, do której można uzyskać dostęp za pośrednictwem CurrentCulture. – mjallday

Powiązane problemy