2010-10-27 14 views

Odpowiedz

1

Zalecam, patrząc na ResourceBundles.

To skomplikowane pytanie, ponieważ jeśli posiadasz bazę danych, będziesz chciał także I18N.

1

Jest to w zasadzie kwestia domeny. Jeśli jesteś w Internecie, większość głównych frameworków zapewni I18N (na wiosnę to działa with .properties files and taglibs).

W przeciwieństwie do aplikacji komputerowych, iniekcja zasobów może być interesującą opcją. Spring Application Framework idzie jeszcze dalej i pozwala na skonfigurowanie nazwanych komponentów Swing (przyciski, etykiety, ...) całkowicie z plików konfiguracyjnych. Dzięki temu możesz ustawić kolory i granice komponentów, ale także ich teksty.

13

Można użyć ResourceBundle.getBundle(name), która zwraca poprawny pakiet zgodnie z ustawieniami regionalnymi użytkownika i uzyskać określone komunikaty.

Sposób działania klasy ResouceBundle polega na tym, że należy załadować pakiet (zwykle plik .properties) za pomocą zlokalizowanych wiadomości. Na przykład można mieć:

messages_en.properties 
----- 
greeting = "Hello " 

i

messages_es.properties 
----- 
greeting = "Hola " 

i używać go w sposób następujący.

... void main(... . { 
    ResourceBundle bundle = ResourceBundle.getBundle("messages", userLocale); 
    System.out.println(bundle.getString("greeting") + " Steve "); 
} 

I będzie drukować

Hello Steve 

jeśli locale użytkownik English (en) i

Hola Steve 

jeśli locale użytkownik Hiszpański (ES)

Sposób ResouceBundle.getBundle() , nie tylko ładuje pliki .properties, jeśli są dostępne, może również załadować klasę, która z kolei może załadować wiadomość e z bazy danych.

Zobacz także:

ResourceBundle

Internationalization Quick Intro

Powiązane problemy