AWWW-1st3.6-w11.tresc-1.0-Slajd30
Internacjonalizacja aplikacji JSF
Internacjonalizacja aplikacji JSF jest realizowana poprzez (1) umieszczenie wszystkich komunikatów w zbiorze zasobów (ang. resource bundle) i (2) przygotowanie wersji plików .properties dla wszystkich przewidzianych języków. Pliki .properties to pliki tekstowe zawierające pary klucz=wartość, wiążące klucz komunikatu z jego treścią. Pliki mają kodowanie ASCII, więc polskie znaki muszą być zapisane w postaci kodów Unicode (\uXXXX).
Do ładowania plików .properties na stronach JSF służy znacznik <f:loadBundle> (3), wskazujący nazwę zbioru zasobów (bez kodu języka i rozszerzenia) i wiążący z nim nazwę zmiennej, która będzie reprezentować na stronie zbiór komunikatów.
Odpowiednia wersja językowa komunikatów będzie wybrana na podstawie obowiązujących ustawień lokalizacji. Lokalizację można jawnie ustawić dla strony znacznikiem <f:view> z atrybutem LOCALE. Jako wartość tego atrybutu można podać, tak jak w przykładzie na slajdzie, wyrażenie odczytujące ustawienia lokalizacji zawarte w żądaniu HTTP (4).
Do wyświetlania komunikatów ze zbiorów zasobów na stronie można wykorzystać znacznik <h:outputText> (5).
Oprócz internacjonalizacji komunikatów aplikacji, możliwa jest też podmiana i internacjonalizacja komunikatów ze standardowych walidatorów, które posiadają predefiniowane klucze. Muszą one być zdefiniowane w wyróżnionym zbiorze zasobów zarejestrowanym w pliku faces-config.xml.