• Nie Znaleziono Wyników

lab 7

N/A
N/A
Protected

Academic year: 2021

Share "lab 7"

Copied!
5
0
0

Pełen tekst

(1)

Wersje językowe.

1. Przygotowanie obsługi multijęzykowej

Część stron wymaga obsługi wielojęzycznej. W ich wypadku wymagane jest, aby teksty na stronie pojawiały się w natywnym języku użytkownika odwiedzającego stronę.

Informacja o preferowanym języku użytkownika znajduję się w nagłówku „Accept-Language” żądania (podobnie jak ciasteczka) przesyłanego do serwera przez przeglądarkę.

Analizując żądania za pomocą narzędzi developerskich można odczytać listę preferowanych języków, jak na poniższym przykładzie.

Accept-Language: pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4

Natomiast w MVC po stronie serwera nagłówek ten zostanie przypisany do pola „UserLanguages” w obiekcie „Reguest” przechowującym wszystkie informacje odebranego żądania.

„UserLanguages” jest listą typu string tak więc odwołując się do pierwszego indeksu pobierzemy nazwę języka najbardziej preferowanego przez użytkownika.

Request.UserLanguages[0];

W naszym przypadku zwrócony zostanie string „pl-PL”;

Aby natomiast ustawić w systemie MVC język należy podmienić wartości, jak na poniższym przykładzie. Po tej zmianie MVC będzie starało się wyświetlać napisy we wskazanym lub domyślnym języku. Zmiana języka ma również wpływ na sposób interpretacji przesyłanych zmiennych, w szczególności formatu dat i liczb ułamkowych, gdyż system stara się dostosować do klienta.

var ci = new CultureInfo("pl-PL");

Thread.CurrentThread.CurrentUICulture = ci;

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);

Pokazaną zmianę przeprowadza się przed rozpoczęciem obsługi żądania. W tym celu przeciąża się metodę w klasie aplikacji w pliku Global.asax. Metoda ta zostanie wywołana przed wywołaniem właściwej metody kontrolera, do której się odwoła.

protected void Application_AcquireRequestState(object sender, EventArgs e) {

}

Wymuszenie języka służy również do zmiany języka strony na żądanie klienta. Najczęściej odbywa się to poprzez akcję kliknięcia na flagę odpowiedniego państwa. Po czym wskazana wartość

zostanie wpisana w ciasteczko.

Response.Cookies.Add(new System.Web.HttpCookie("Culture", ”pl-PL”));

Następnie za każdym razem nazwę wybranego języka można pobrać z ciasteczka. var cokie = Request.Cookies["Culture"];

(2)
(3)

2. Dodawanie plików tłumaczeń.

Aby można było wyświetlać teksty w różnych wersjach językowych należy zwroty umieszczać w plikach resource file (.resx). Każdy plik zawiera zestaw zwrotów w tym samym języku. Wersja językowa rozróżniana jest w systemie po rozszerzeniu, jak np. <nazwa>.en-US.resx, <nazwa>.pl-PL.resx. Zestawy bez tego rozszerzenia są zestawami domyślnymi, gdy żaden powyższy nie zostanie wskazany.

(4)

3. Używanie plików zasobów w kodzie.

Po dodaniu plików zasobów można ich używać w dowolnym miejscu kodu widoku lub kontrolera, wystarczy dodać przestrzeń nazw odpowiadających plikowi z zasobami.

Wersję językowe modeli,

[Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Errors))]

[StringLength(250, ErrorMessageResourceName = "StringLength", ErrorMessageResourceType = typeof(Errors))] [Display(Name = "name", ResourceType = typeof(ModelResources))]

(5)

Zadanie

Cytaty

Powiązane dokumenty

Boryna naraz przyklęknął na zagonie i jąŁ w nastawioną koszulę nabierać ziemi, niby z tego wora zboŻe naszykowane do siewu, aż nagarnąwszy tyla, iż się

Pow ołując się n a wagę owych wydarzeń, stwierdza: „(...) kryzysy te oraz sposoby ich rozwiązywania stanow ią zasadnicze m om enty zwrotne w historii

Autorzy projektu Socjologia Europy Środkowo- -Wschodniej 1956–1989 proponują spojrzenie na rozwój socjologii w danym kraju z punktu widzenia uczestników tego procesu, które

Mechanizm leżący u  podstaw podwyższonego ciśnienia tętniczego u  osób z  pierwotnym chrapaniem nie jest w pełni wyjaśniony, ale może mieć związek ze zwiększoną

pozostałych cyfr dodamy pięciokrotność odciętej cyfry jedności i powstanie w ten sposób liczba podzielna przez 7, to.. wyjściowa liczba też jest podzielna

Wspomniana pani doktor (wierzyć się nie chce – ale kobit- ka ponoć naprawdę jest lekarką!) naruszyła ostatnio przepi- sy.. Może nie kodeks karny, ale na pewno zasady obowiązu-

Zasadniczo rzecz biorąc, współczesna praktyka projektowa w wymiarze designu doświadczeń została sprowadzona do totalitaryzmu semantyk, przeciwko któremu trudno się buntować,

Wprawdzie nie mówi się w utworze o jaką miłość chodzi czy międzyludzką czy do Boga, to nie jest istotne , najważniejsze że jest to uczucie o potężnej wartości i sile..