Bu Sayfayı Paylaş:

Kavram

Locale

Tanım: Java'da java.util paketinde bulunan, dil ve bölgesel ayarlar ile ilgili ana sınıf. Çalışılan yere göre Java farklı Locale sınıflarıyla çalışabilir. Örneğin Türkiye'deki bir bilgisayarda Java Türkiye'nin ayarları ile çalışmaktadır. Locale.getDefault() ile varsayılan Locale sınıfı alınabilir.

Örnek

Default Local Bilgilerini Basan Örnek

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.

Örnek

Default Locale'i Set Eden Örnek

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.

Kavram

native2ascii

Tanım: Farklı diller ve karakter formatındaki dosyaları, ASCII ve Unicode'a çeviren JDK komut satırı uygulaması. native2ascii [ inputfile ] [ outputfile ] şeklinde kullanılmaktadır.

Örnek

native2ascii İle Bir Properties Dosyasını Çevirmesi

Ö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.

Örnek

native2ascii ile Ant Taskı Örneği

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.



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir