/*
* $Header: /cvs/CVS_LEBA/common/jstd/src/java/com/obrctm/app/console/TextWindow.java,v 1.5 2003/10/29 13:13:00 pitek Exp $
*
* Copyright 2003 OBR Centrum Techniki Morskiej, All rights reserved.
*/
package com.obrctm.app.util;
import java.util.ResourceBundle;
/**
* Klasa pomocnicza zwracająca ResourceBundle dla podanej klasy.
*
* Zakłada się, że dla każdego pakietu wymagającego lokalizacji * tworzony jest plik i18n.properties (i odpowiednie wersje * dla każego locale) w katalogu pakietu. Do pliku dostajemy * za pośrednictwem standardowych mechanizmów javy. *
* Należy w każdej lokalizowanej klasie utworzyć pole statyczne
* i18n typu ResourceBundle i zainicjować
* je korzystając z metody getBundle(). Lokalizowany
* tekst pobieramu metodą getString()
*
* class SomeClass {
* private static java.util.ResourceBundle i18n
* = com.obrctm.app.util.I18N.getBundle(SomeClass.class);
* (...)
* jButtonCancel.setText(i18n.getString("L_SomeClass_cancel");
*
* Lokalizowany string posiada prefiks L_ aby lepiej wyróżniał
* się spośród innych napisów. Dodatkowo umieszczamy nazwę klasy,
* której dotyczy napis - jest to przydatne, gdy w pakiecie jest wiele
* klas wymagających lokalizacji. Na końcu dodajemy frazę wyróżniającą
* dany string (np. dla przycuisku Cancel jest to cancel).
* Cały lokalizowany string-klucz powinien być pisany po angielsku.
*
* Lokalizację aplikcji najlepiej realizować w czasie pisania kodu.
* NetBeans zawiera wsparcie dla wstawiania lokalizowanych napisów
* (CTRL+SHIFT+J) w kodzie. GUI builder zawiera również wsparcie
* przy wstawianiu properties dla beans'ów (należy wybrać format:
* {identifier}.getString("{key}")).
*
* @version $Header: /cvs/CVS_LEBA/common/jstd/src/java/com/obrctm/app/console/TextWindow.java,v 1.5 2003/10/29 13:13:00 pitek Exp $
* @author pitek
*/
public class I18N {
private I18N() {
}
/**
* Zwraca ResourceBundle dla podanej klasy.
* Plik i18n.properties szukany jest w katalogu określonym
* przez pakiet, do którego klasa należy.
* @param clazz klasa, dla której szukamy resource'ów.
* @throws MissingResourceException jeżeli nie ma pliki i18n.properties
* w katalogu pakietu podanej klasy.
*/
public static ResourceBundle getBundle(Class clazz) {
return ResourceBundle.getBundle(clazz.getPackage().getName() + ".i18n");
}
}