Java İçselleştirme - ResourceBundle Sınıfı

ResourceBundle sınıfı, yerel ayara duyarlı metin ve nesneleri depolamak için kullanılır. Genellikle yerel ayara özgü metni depolamak için özellik dosyalarını kullanırız ve ardından bunları ResourceBundle nesnesini kullanarak temsil ederiz. Aşağıda, java tabanlı bir uygulamada yerel ayara özgü özellikler dosyasını kullanma adımları verilmiştir.

1. Adım: Özellikler dosyalarını oluşturun.

İngilizce yerel ayarı için özellikler dosyasına ihtiyacımız olduğunu varsayalım. Ardından, XXX_en_US.properties adlı bir özellikler dosyası oluşturun; burada XXX dosyanın adıdır ve en_US, İngilizce (ABD) için yerel ayarı temsil eder.

Messages_en_US.properties

message=Welcome to TutorialsPoint.COM!

Şimdi Fransız yerel ayarı için özellikler dosyası oluşturalım. Ardından, XXX_fr_FR.properties adlı bir özellikler dosyası oluşturun; burada, XXX dosyanın adıdır ve fr_FR, Fransızca (Fransa) için yerel ayarı temsil eder.

Messages_fr_FR.properties

message=Bienvenue sur TutorialsPoint.COM!

Burada, anahtarın aynı olduğunu ancak değerin her iki özellikler dosyasında da yerel ayara özgü olduğunu anlayabilirsiniz.

Adım 2: ResourceBundle nesnesi oluşturun

Aşağıdaki sözdizimini kullanarak özellikler dosya adı ve yerel ayar ile ResourceBundle nesnesi oluşturun.

ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);

Adım 3: ResourceBundle nesnesinden değeri alın.

Anahtarı geçirerek ResourceBundle nesnesinden değeri alın.

String value = bundle.getString("message");

Misal

Aşağıdaki örnek, özellikler dosyalarından yerel ayara özgü değerleri görüntülemek için ResourceBundle nesnelerinin kullanımını göstermektedir.

IOTester.java

import java.util.Locale;
import java.util.ResourceBundle;

public class I18NTester {
   public static void main(String[] args) {
      ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);  
      System.out.println("Message in "+Locale.US +": "+bundle.getString("message"));  

      bundle = ResourceBundle.getBundle("Messages", Locale.FRANCE);  
      System.out.println("Message in "+Locale.FRANCE +": "+bundle.getString("message"));
   }
}

Çıktı

Aşağıdaki sonucu yazdıracaktır.

Message in en_US: Welcome to TutorialsPoint.COM!
Message in fr_FR: Bienvenue sur TutorialsPoint.COM!

Adlandırma Kuralları için Notlar

Özellikler dosyası için adlandırma kuralları aşağıdadır.

  • Varsayılan yerel ayara eşlenen özellikler dosyası için ön ek zorunlu değildir. message_en_US.properties, message.properties'e eşdeğerdir.

  • Yerel ayara eşlenen özellikler dosyası için önek iki şekilde eklenebilir. message_fr.properties, message_fr_FR.properties'e eşdeğerdir.

Yazdır