luktom.net
  • blog
  • kontakt
  • english





ASP.NET MVC i subdomeny językowe

17 sie, 2010
C#
Brak komentarzy
Odsłony : 4310

Istnieje kilka podejść do kwestii wyboru wersji językowej aplikacji stworzonej w ASP.NET MVC.
Między innymi można odczytywać jaki język preferuje przeglądarka użytkownika, tutaj powstaje jednak problem, gdy chcemy uruchomić wersję językową inną niż przeglądarka (bo trzeba się bawić w przechowywanie tego w sesji lub ciasteczkach).

Osobiście jestem „fanem” subdomen językowych – czyli dla jednej aplikacji tworzymy bindingi dla hostów w stylu „pl.luktom.net”, „en.luktom.net”, „de.luktom.net”.
Rozwiązanie to jest szybkie w implementacji – ot, wpis w DNSie i ustawienie bindingów – góra kilka minut.
Poza tym daje nam elastyczność związaną z możliwością rozbicia obsługi poszczególnych wersji językowych aplikacji na kilka serwerów – dzięki czemu np. użytkownicy z Japonii zostaną już na poziomie DNS skierowani do serwera w Japonii, a użytkownicy z Niemiec mogą zostać przekierowani do serwera w Europie (ale to jest osobny temat, na inny artykuł).

W dalszej części prezentuję kod wybierający kulturę w zależności od nazwy hosta z subdomeną językową.

Implementacja wybierania kultury aplikacji jest bardzo prosta i sprowadza się do dodania metody Application_AcquireRequestState do klasy MvcApplication w Global.asax (nie zapomnijcie o using System.Globalization!):

protected void Application_AcquireRequestState(object sender, EventArgs e)
{
    CultureInfo ci = new CultureInfo(Request.Url.Host.Substring(0, 2))

    System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
    System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);
}

Powyższy kod, na postawie pierwszych dwu liter domeny hosta tworzy odpowiedni obiekt CultureInfo, a następnie bieżącemu wątkowi, w którym wykonywana jest aplikacja ASP.NET MVC przypisuje tę kulturę, dzięki czemu automatyczne użyte zostaną odpowiednie pliki zasobów dla danej kultury.



Tagi :   asp.net mvcc#cultureinfoglobalizacjalokalizacjamvcsubdomeny

Powiązane wpisy

  • Jak utworzyć kanał RSS w ASP.NET MVC?

  • Topshelf czyli usługi Windows z górnej półki

  • C# i uruchamianie procesu z uprawnieniami administratora

  • WCF Data Services i DataGridView – wyświetlanie relacji

  • Dodaj komentarz

    Click here to cancel reply

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>





    Łukasz Tomaszkiewicz

    Łukasz Tomaszkiewicz

    Pasjonat chmury, szczególnie AWSa, który nieustannie automatyzuje powtarzające się czynności i optymalizuje procesy, przy okazji wdrażając dobre praktyki dotyczące bezpieczeństwa. Jego szerokie doświadczenie w zakresie tworzenia oprogramowania, projektowania baz danych, a także wirtualizacji serwerów i zarządzania infrastrukturą w chmurze pozwala mu spojrzeć przekrojowo na współczesny stack technologiczny.

    W wolnym czasie fotograf, sporadycznie piszący blogger :) a także regularny prelegent na krakowskich grupach związanych z IT.

    Wyznawca Vim'a :)

    Kategorie

    • Ansible
    • AWS
    • C#
    • Chatboty
    • Cloud
    • Daj się poznać 2017
    • Docker
    • Inne
    • Linux
    • Open source
    • Organizacyjne
    • Prelekcje
    • Sieci komputerowe
    • SQL Server
    • Windows
    • Windows Server
    • Wirtualizacja

    Najczęściej czytane

    • Creating single node VSAN cluster
    • SQL Server – walidacja numerów PESEL i NIP
    • Konfiguracja serwera DHCP na routerach Cisco
    • Aktywacja routingu IP w Windows 7 / Windows Server 2008
    • Konwersja maszyn wirtualnych z ESXi do Hyper-V przy użyciu SCVMM 2012
    • Jak podłączyć program R do SQL Servera?

    Tagi

    .net ai ansible asp.net mvc aws aws cli bot builder bot framework c# centos certyfikaty chatbot chatboty cisco cmd docker dsp2017 esxi hyperv kontenery konteneryzacja linux mvc nlp openvpn plssug pobieranie powershell prelekcje rancher redhat router sieci smogbot sql server ssd ssl vmware vsphere windows windows mobile windows server wirtualizacja wit.ai wrzuta

    Copyright © 2006-2018 by Łukasz Tomaszkiewicz. Wszelkie prawa zastrzeżone