Aşağıdaki örnek default olan Local bilgilerini bulup ekrana basmaktadır
import java.util.Locale;
public class DefaultLocalTest {
public static void main(String[] args) {
Locale currentLocale = Locale.getDefault();
System.out.println("Language: " + currentLocale.getLanguage());
System.out.println("Country:" + currentLocale.getCountry());
System.out.println("Variant:" + currentLocale.getVariant());
System.out.println("Script:" + currentLocale.getScript());
System.out.println("user.country:" + System.getProperty("user.country"));
System.out.println("user.language:" + System.getProperty("user.language"));
System.out.println("Display Language:" + currentLocale.getDisplayLanguage());
System.out.println("Display Country: " + currentLocale.getDisplayCountry());
System.out.println("Display Variant: " + currentLocale.getDisplayVariant());
System.out.println("Display Script: " + currentLocale.getDisplayScript());
}
}
Uygulama aşağıdaki gibi bir çıktı oluşturabilir:
Language: en
Country:US
Variant:
Script:
user.country:US
user.language:en
Display Language:English
Display Country: United States
Display Variant:
Display Script:
Language dil, Country ise ülke kodunu vermektedir. Variant bir bölgede alt bölgeler var ise bulunmaktadır. Script ise alfabe ile ilgili bilgidir. Display ile başlayan method'lar ise kodların kullanıcıya gösterilebilecek isimleridir.
Aşağıda varsayılan ((default) Locale'i değiştiren örnek görülmektedir:
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
public class DefaultLocalSetTest {
public static void main(String[] args) {
Locale currentLocale = Locale.getDefault();
System.out.println("Language: " + currentLocale.getLanguage());
System.out.println("Country:" + currentLocale.getCountry());
DateFormat dateFormat = DateFormat.getDateInstance();
System.out.println(dateFormat.format(new Date()));
Locale.setDefault(new Locale("tr", "TR"));
currentLocale = Locale.getDefault();
System.out.println("Language: " + currentLocale.getLanguage());
System.out.println("Country:" + currentLocale.getCountry());
DateFormat dateFormatTr = DateFormat.getDateInstance();
System.out.println(dateFormatTr.format(new Date()));
}
}
Uygulama çıktısı aşağıdaki gibi olabilir :
Language: en
Country:US
Nov 2, 2015
Language: tr
Country:TR
02.Kas.2015
Önce default Locale'in dil ve ülke bilgisini bastırıyoruz. Ardında Locale'e göre çalışan DateFormat'ı alıp tarih bilgisini bastırıyoruz. Locale US olmasından dolayı tarih varsayılan olarak Nov 2, 2015 şeklinde basılıyor. Ardından
Locale.setDefault(new Locale("tr", "TR"));
ile default Locale'i Türkçe ve Türkiye yapıyoruz. Ardından bilgileri bastırdığımızda Türkiye'ye göre olmuştur.
Örnek dosya (adı messages_tr.properties olarak verelim) aşağıdaki gibi olsun :
proje_name=Çözüm Yakın
proje_message=Çözüm Yakın Sizi Geleceğe Götürür
proje_title=Çözüm Yakın Proje 12
Aşağıdaki gibi komut çalıştırılırsa
C:\Program Files (x86)\Java\jdk1.8.0_111\bin>native2ascii /messages_tr.properties /messages_tr_2.properties
messages_tr_2.properties içeriği aşağıdaki gibi olacaktır
proje_name=\u00c3\u2021\u00c3\u00b6z\u00c3\u00bcm Yak\u00c4\u00b1n
proje_message=\u00c3\u2021\u00c3\u00b6z\u00c3\u00bcm Yak\u00c4\u00b1n Sizi Gelece\u00c4\u0178e G\u00c3\u00b6t\u00c3\u00bcr\u00c3\u00bcr
proje_title=\u00c3\u2021\u00c3\u00b6z\u00c3\u00bcm Yak\u00c4\u00b1n Proje 12
Artık mesaj kaynağı olarak bu dosya kullanılabilir.
Bir dosya içeriği http://native2ascii.net gibi online bir site üzerinden çevrilebilir.
Aşağıdaki ANT taskı çalıştırıldığında /messages*.properties şablonuna uyan properties dosyaları için native2ascii komutu çalıştırılmış olur :
<project name="unicode-property-converter" default="convert">
<target name="convert">
<delete>
<fileset dir="../target/classes" includes="**/messages*.properties" />
</delete>
<native2ascii encoding="UTF-8" src="." dest="../target/classes" includes="**/messages*.properties" />
</target>
</project>
Bu task Eclipse'de bir proje içinde kullanılabilir. target/classes içindeki messages*.properties şeklindeki dosyalar önce silinir. Ardından dosyalar native2ascii taskında geçirilir ve aynı klasöre taşınır.
Eclipse'de bu içerik için projectBuilder.xml dosyası oluşturalım ve src içine koyalım. Bu durumda eclipse'da target/classes'a ../ ile çıkarak ulaşılabilir. Bu ANT taskı messages*.properties formatına uyan tüm dosyaları classes'dan silecek ve yeniden dosyaları ascii'ye çevirip classes'a atacaktır.
Bu Ant'ın her proje derlendiğinde çalışmasını isteyebilirsiniz. Bunun için Properties - Builders 'dan New.. ile Ant Task'ını ekleyebilirsiniz. Ant Builder seçtiğinizde açılan pencerede Main tab'ında Buildfile olarak projectBuilder.xml dosyası verilir. Bu dosyayı seçtiğinizde
${workspace_loc:/Test/src/projectBuilder.xml}
şeklinde örneğin görülecektir. Artık proje derlendiğinde otomatik olarak ANT taskı çalışacaktır.
Q:\Projects\Mercury\Test\src\projectBuilder.xml:6: Error starting Sun's native2ascii:
hatası alınabilir.
Eklediğiniz build için konfigürasyon bölümünden , JRE sekmesinde Runtime JRE'yi JRE değil JDK olarak verilmesi gerekir.. Sorun ANT Builder komutunun JDK yerine JRE ile çalışmasından kaynaklanmaktadır.