Konsolda Türkçe desteği
Önceki Türkçe NASIL Sonraki
Konsolda Türkçe desteği
Konsola Türkçe desteği sağlamak için bir yazı tipi dosyası ile klavye dosyasına ihtiyacımız var. Yazı tipi dosyası Türkçe karakterleri içeren herhangi bir .psf.gz dosyası olabilir. Dosya isimlerinin standartlaştığı günümüzde iso09.f16 ismi hepimize yeterde artar. Ancak bu dosyalar her dağıtımda ne yazık ki hala Türkçe karakterlerimizi içermeyebiliyor. Bu bakımdan bu yazıtiplerini tr.tar.bz2 paketi içinde size sunuyoruz. Belgenin bundan sonraki bölümlerinde, bu paketi indirip /root/tr dizinine açtığınızı varsayacağız.
Red Hat
Eğer aşağıdaki işlemleri yaptıktan sonra hala tanıdık olmayan karakterlerle karşılaşıyorsanız, iso09.fxx.psf.gz dosyalarını /lib/kbd/consolefonts dizinine kopyalayıp tekrar deneyiniz. Bu dosyalar hem ISO hem de UTF kiplerinde kullanılabilir. UTF için daha çok karakter içeren (512 karakterlik) bir yazı tipi dosyası kullanmak mümkünse de hazırda böyle bir yazı tipi dosyası henüz bulunmamaktadır. Klavye dosyası ise hangi klavyeyi kullanmaya alışkın olduğunuza bağlı olarak değişebilir. Q klavye kullanlar trq.kmap.gz ya da trqu.kmap.gz, F klavye kullananlar trf.kmap.gz ya da trfu.kmap.gz dosyasını tercih etmelidir.
Klavyesinde Türkçe karakter bulunmayanlar ya da Türkçe karakterlerin el altında kolayca erişilebilir olmasını istemeyenler Türkçe karakterlere <AltGr> tuşu ile erişilebilen trqalt.kmap.gz dosyasını tercih edebilir.
Bu dosyaların yerleri Red Hat dosya sisteminde:
UTF-8 desteği verilecek bir sistem için klavye dosyaları farklıdır. Bu dosyalar henüz dağıtımlarda yer almıyor. Eklerde bulabilirsiniz.
Bu dört dosyanın eklerde kodları verilen sürümleri birbirleriyle çalışabilen dosyalardır. Eğer ISO-8859-9 ve UTF-8 kipler arasında geçiş yapmak isterseniz ya da F ve Q klavyeler arasında kolayca geçiş yapmak isterseniz eklerde kodları verilen bu 4 dosyayı sisteminize kaydedin. Bunlar birbirlerini çağırabilen dosyalardır. Alışılmıştan biraz farklıdırlar. Kullanırken Linux'un çok dillilik desteğindeki gücünü farketmenizi sağlarlar. Kullanımları için kodlarındaki açıklamaları okuyunuz.
Genellikle sadece sunucu olarak kullanılan makinalarda kurulu Linuz sistemlerinde sadece konsol uygulamalarının çalıştırılması yeterli olduğundan pek çok sistem yöneticisi sistemlerine Türkçe desteği vermek ihtiyacını duymaz ve hatta windows'dan gelen alışkanlıkla, Türkçe bir sistemin başına dert açacağından çekinir. Bu söylem Linux için geçerli değilse de, bu onların düşünceleridir. Bu klavye dosyaları sisteminizin dil ayarlarını değiştirmenize gerek kalmadan klavyenizden Türkçe karakterleri yazabilmenizi sağlar. Örneğin: trq.kmap dosyasını loadkeys trq ile çalıştırabilir, ctrl+alt+9 (harflerin üst sırasındaki rakamlardan 9) ile hemen Türkçe karakterleri okumaya ve yazmaya başlayabilirler. UTF-8 ile yazılmış bir metni okumak da onlar için zor olmayacak. <Ctrl>-<Alt>-<8> tuşlamaları yeterli. Yalnız dikkat mc kullanıyorsanız, önce <F10> ile mc'den çıkın ondan sonra bu tuşları kullanın, yoksa mc bu tuşlarla çalıştırılan komutları sanal konsolunda çalıştırarak konsolu kilitleyebilir. mc'yi UTF-8 kodlama altında mc -a yazarak çalıştırmanızı öneririm.
Şimdi gelelim bu dosyaların kullanılmasını sağlayacak değişiklikleri sistem dosyalarında yapmaya...
Red Hat için /etc/sysconfig dizininde bu iş için ayrılmış dosyalar var.
clock dosyası
ZONE="Europe/Istanbul"
UTC=true
ARC=false
i18n dosyası
ISO-8859-9 desteği
LANG="tr_TR"
LANGUAGE="tr"
SYSFONT="iso09.f16"
UTF-8 desteği
LANG="tr_TR.UTF-8"
LANGUAGE="tr"
SYSFONT="iso09.f16"
keyboard dosyası
ISO-8859-9 desteği
Q klave kullanıcıları için:
KEYTABLE="trq"
F klavye kullanıcıları için:
KEYTABLE="trf"
UTF-8 desteği
Q klavye kullanıcıları için:
KEYTABLE="trqu"
F klavye kullanıcıları için:
KEYTABLE="trfu"
Sadece UTF-8 desteği sağlayanlar için değişiklik gerektiren bir dosya daha var. /etc/profile.d/lang.sh dosyasının sonuna
unicode_start
setsysfont
satırlarını ekleyecekler.
Bu işlemleri bitirdikten sonra bu dosyalar başlatma betiklerinin kullandığı dosyalar olduğundan sistemi yeniden başlatmanız gerekmektedir.
Sistemi yeniden başlattığınızda hemen yaptıklarımızı bir test edelim. Klavyenizde hemen bir kaç tuşa basın: üğişçö
Ve komut satırına
$ locale
yazdığınızda sisteminizi ISO-8859-9 için yapılandırmışsanız
LANG=tr_TR
LC_CTYPE="tr_TR"
LC_NUMERIC="tr_TR"
LC_TIME="tr_TR"
LC_COLLATE="tr_TR"
LC_MONETARY="tr_TR"
LC_MESSAGES="tr_TR"
LC_PAPER="tr_TR"
LC_NAME="tr_TR"
LC_ADDRESS="tr_TR"
LC_TELEPHONE="tr_TR"
LC_MEASUREMENT="tr_TR"
LC_IDENTIFICATION="tr_TR"
LC_ALL=
sisteminizi UTF-8 için yapılandırmışsanız
LANG=tr_TR.UTF-8
LC_CTYPE="tr_TR.UTF-8"
LC_NUMERIC="tr_TR.UTF-8"
LC_TIME="tr_TR.UTF-8"
LC_COLLATE="tr_TR.UTF-8"
LC_MONETARY="tr_TR.UTF-8"
LC_MESSAGES="tr_TR.UTF-8"
LC_PAPER="tr_TR.UTF-8"
LC_NAME="tr_TR.UTF-8"
LC_ADDRESS="tr_TR.UTF-8"
LC_TELEPHONE="tr_TR.UTF-8"
LC_MEASUREMENT="tr_TR.UTF-8"
LC_IDENTIFICATION="tr_TR.UTF-8"
LC_ALL=
sonuçlarını alacaksınız.
Son bir test olarak komut satırına
# iconv --help
yazın.
Eğer uygulamaların Türkçe çeviri desteklerini istemiyorsanız, /etc/sysconfig/i18n dosyanızdaki ilgili satırı LANGUAGE="en" olarak değiştiriniz. Bu satırın etkisi sisteminizi yeniden başlattığınızda görülecektir. Hemen etkisini görmek isterseniz
# export LANGUAGE="en"
# iconv --help
yazdığınızda yardım ingilizce gelecektir. Ama bu Türkçe karakter yazmanıza ve Türkçe bir metni okumanıza engel değildir.
Debian
Debian dağıtımına Türkçe desteğinin kazandırılması Redhat tabanlı dağıtımlara göre bir miktar farklılık arzetmektedir.Burada anlatılan yapılandırma Debian 3.0 (a.k.a. Woody) kararlı (stable) sürüme özel olmakla birlikte, büyük olasılıkla deneme (testing) ve kararsız (unstable) sürümler için de geçerli olacaktır. Debian'da Türkçe desteği kapsamında sunulan yöntemler (özellikle Türkçe konsol desteği) ilkesel olarak Debian 3.0 öncesi sürümlere de uygulanabilir, fakat 3.0 sürümüyle eski sürümler arasındaki farklılıklar doğru sonuç alınmasını güçleştirecektir.
Red Hat tabanlı dağıtımlarda yerel nitelikte bütün ayarlar /etc/sysconfig/i18n dosyasında (ve aynı dizindeki diğer bazı dosyalarda) merkezileştirilmiştir. Debian'da -en azından şimdilik- böyle bir merkezileştirme yoktur. (Gelecekte LSB uyumluluğunun tam olarak sağlanması halinde buna yönelik bir değişiklik beklenebilir.) Debian'da yerel ayarlar çeşitli dosyalara dağıtılmakla beraber /etc dizini altında toplanmıştır. Bu dosyalar özetle şunlardır:
/etc/console/boottime.kmap.gz
Klavye eşlem dosyası.
/etc/console-tools/config
Konsol yazıtipleri ile ilgili ayarlar.
/etc/environment
Sistem genelinde geçerli ortam değişkenleri. Yerel dil ayarları(locale) bu dosyadadır.
/etc/locale-gen
Sistemde mevcut olan yerellerin listesi.
Debian'da konsol yazıtipleri ve klavye eşlem dosyaları `console-common' ve `console-data' dışında iki alternatif paketle geliyor: `console-tools' ve `kbd'. Bu paketler içerik ve isim itibarıyla diğer dağıtımlardakilerle aynıdır. Artık eskimiş bir paket olan kbd ile ilgilenmeyeceğiz. Kurulum sonrasında sisteminizde bulacağınız paket Important olarak sınıflanmış olan `console-tools'. Konsolda kullanılacak klavye eşlemi `console-data'nın debconf arayüzü ile belirleniyor. Yani:
# dpkg-reconfigure console-data
komutu ile istediğiniz klavyeyi seçiyorsunuz. (`kbd' paketi kurulmuş ise benzer işlem `kbdconfig' ile yürütülebilir.)
Türkçe Q klavye yerleşimi olarak "Q Layout (1)", "Q Layout (2)" ve "Alternate" şeklinde üç seçeneğiniz var. ("Alternate" Türkçe karakterleri <AltGr> tuşuyla üreten ve daha çok programcılar tarafından kullanılan bir tuşeşlemi.) Her üç yerleşim de Debian'a özgü olmayan bazı önemli problemlere sahip. `@' karakterini tuşlama olanağı bulunmadığından "Q Layout (1)" yerleşimini özellikle tavsiye etmiyoruz. Öte yandan "Q Layout (2)" yerleşiminde de piyasada bulunan olağan klavyelerdeki görünümle uyuşmayan bazı davranışlarla karşılaşacaksınız (<Delete> tuşunun kursörün solundaki karakteri silmesi gibi). Bu belgenin eklerinde verilen Türkçe konsol klavye eşlemlerinde bu sorunlar bulunmamaktadır. Eğer bugüne kadar dağıtımlardan çıkan klavye eşlem dosyalarını kullanmış ve onlara alışmış iseniz `console-data' için yukarıda verilen komutu çalıştırmakla eriştiğiniz durum konsol klavyenin yapılandırması için yeterli olacaktır. Bununla birlikte, düzeltilmiş eşlemlerin yanısıra -şimdilik- dağıtımlarla birlikte gelmeyen UTF-8 klavye eşlemlerini de içerdiğinden eklerdeki bütün klavye eşlem dosyalarının sisteme kopyalanmasını öneriyoruz:
# cp --suffix='.eski' ~/tr/trq*.kmap.gz /usr/share/keymaps/i386/qwerty
# cp --suffix='.eski' ~/tr/trf*.kmap.gz /usr/share/keymaps/i386/fgGIod
Dağıtımla gelmeyen dosyalar `console-data'nın veritabanında bulunmadığından bu eşlemleri kurmak için farklı bir yöntemi: install-keymap aracını kullanmak zorundayız. Mesela Q klavye için şöyle bir komut kullanılmalıdır:
# install-keymap trq
Buraya kadar Türkçe Q klavye kurulumu anlatıldı. console-data paketinde Türkçe F klavye yerleşimleri de mevcuttur. Q klavye'lerle benzer problemler bu yerleşimlerde de bulunduğundan eklerdeki F klavye dosyalarının kullanılmasını tavsiye ederiz. Bu amaçla yukarıdaki komutu şu şekilde uygulamanız gerekecektir:
# install-keymap trf
Doğru klavyeyi seçmek yetmiyor. Türkçeye özel tuşların kullanılması amacıyla bir küçük ayarı da /etc/inputrc dosyasında yapmamız gerekiyor.
/etc/inputrc dosyasına girerek aşağıdaki satırların bulunmasını sağlıyoruz:
set input-meta on
set output-meta on
set convert-meta off
set meta-flag on
İpucu
xterm'de geçmişte yapılan tercihlerden kaynaklanan bir özellik vardır: <Home> ve <End> tuşları kabuk programda (bash) kullanılan readline kitaplığının tanımadığı semboller üretir. Bu özellik kullandığınız dağıtım üretilen sembolleri readline kitaplığına bir şekilde öğretmedikçe kusur olarak karşımıza çıkar. inputrc dosyasını değiştirirken aşağıda verilen eklemenin de yapılması <Home> ve <End> tuşlarının çalışmasını sağlayacaktır:
# xterm'de Home ve End tuslarini duzelt.
$if TERM=xterm
  "\e[H": beginning-of-line
  "\e[F": end-of-line
$endif
Klavye eşlemini kurduktan sonra Türkçe konsol karakterlerini doğru şekilde görüntülemek için konsol yazıtiplerini ayarlıyoruz. Bu noktada `console-data'nın klavye yapılandırmasına benzer kolaylıkla konsol karakterlerini yapılandıracak bir paket aradığınızda karşınıza Optional olarak damgalanmış `fonty' paketi çıkacaktır. debconf sayesinde yapılandırmayı da `fonty' kurulurken gerçekleştireceğiz:
# apt-get install fonty
`fonty'nin ön yapılandırma ekranında iso9 (Turkish)'i seçiyoruz. Paket, sanal uçbirimlerde (tty1-6) farklı yazıtipleri kullanabilmenizi de sağlıyor. (Biz bütün uçbirimleri Türkçeleme yolunu tutuyoruz.)
Eğer `fonty' paketini daha önceden kurmuş iseniz bu aşamaya:
# dpkg-reconfigure fonty
komutuyla ulaşabilirsiniz.
`fonty'nin yaptığı işlem her sanal uçbirim için /etc/console-tools/config dosyasına:
SCREEN_FONT=iso9-16
APP_CHARSET_MAP=iso09
satırlarını eklemekten ibaret.
Bu kısımda "Euro" sembolünden de söz etmek isterim. trq'da euro desteği var ve <AltGr>-<e> ile bu sembole ulaşabilirsiniz. (<AltGr>-<c> ile de "Cent" sembolü tuşlanabilir.) Fakat ISO-8859-9 karakter setiyle çalışırken ISO-8859-15'de tanımlı olan euro sembolünün doğru yazıtipiyle görüntülenmesi ISO kipinde mümkün olmayacaktır. Bu sembolü Türkçe karakterlerle birlikte kullanmak için UTF-8'den başka bir yöntem yok. Borsadaki GNU/Linux kullanıcılarına duyurulur :-)
Test:
Önce inputrc dosyasını tekrar okutmamız gerekiyor:
# . /etc/inputrc
Her şeyi anlatıldığı gibi yapmış iseniz şu an Türkçe karakterleri doğru şekilde tuşlayabiliyor ve görebiliyor olmanız lâzım. Önemli bir kontrol olarak <Backspace> ve <Delete> tuşlarını da test edelim ve hatta bu test'e mümkün mertebe her türlü tuş varyasyonunu denemek suretiyle devam edelim. Tespit edilen herhangi bir problemi bana bildirebilirsiniz.
Yerelleştirme (locale)
Yerel dil yapılandırması için müstakil bir bölüm açmamız konunun önemini de ortaya koymaktadır. Yerel ayarı sistemin bütününde etkileri görülecek bir işlemdir. Özellikle Gtk programlarının bu ayara çok bağlı bir davranış gösterdiğini söylemek gerekiyor. Debian'da yerel dil dosyaları Standart olarak sınıflanmış olan locales paketiyle gelir. Eğer ilk kurulum sırasında bütün Standart paketleri kurmuş iseniz zaten yerel ayarı da icra edilmiş olacaktır. locales paketini kurmamış olanların önce:
# apt-get install locales
ile kurulum yapması gerekecektir. Yapılandırma iki aşamadan oluşuyor. Gerekli yerel dil dosyalarının üretilmesi, yani sistemde hazır bulundurulması ve sistem genelinde geçerli yerel ortam değişkenlerinin atanması:
# dpkg-reconfigure locales
komutunu çalıştırıyoruz. Karşımıza gelen ekranda tr_TR ISO-8859-9'i seçili hale getiriyoruz. Sonraki adımda da sistem yerelini tr_TR olarak belirliyoruz. Bu ayarlar sonrasında tr_TR'ye ait dosyalar /etc/locale.gen dosyasında listelenerek üretilecek ve /etc/environment dosyasında LANG=tr_TR ataması yapılacaktır.
Test:
Yerel dil yapılandırmasının etkin olması için oturumdan çıkıp tekrar giriyor (İpucu: <Ctrl>-<d> tuş kombinasyonu) ve şöyle bir deneme yapıyoruz:
# ls asla_varolmayan_bir_dosya_veya_dizin
Eğer aldığınız cevap:
ls: asla_varolmayan_bir_dosya_veya_dizin: Böyle bir dosya ya da dizin yok
şeklinde ise yerel dil yapılandırmanız tamamdır.
İpucu
Uygulamaları İngilizce mesajlarla kullanmak istiyorsanız yerel değişkenlerle oynamanız gerekecektir. Buna bir örnek verecek olursak:
"Sıralamaların Türkçe yapılması güzel. Fakat mesajların İngilizce gelmesini istiyorum. Ayrıca bir geliştirici olarak Sayı ve Zaman biçeminin POSIX uyumlu olmasını da tercih ederim." denilirse /etc/environment dosyası şöyle olmalıdır:
LANG="tr_TR"
LC_MESSAGES="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
UTF-8
Debian'da UTF-8 yapılandırması bu belgenin ilgili bölümlerinde anlatılanlarla aynı ilkelere dayanır. Debian'a özgü farklılıklar konsol'da UTF-8 yapılandırmasına ayrılan bu bölümde olduğu gibi ayrıca belirtilecektir. Dolayısıyla sisteminizi UTF-8 kipinde kullanmak istiyorsanız öncelikle belgenin UTF-8 ile ilgili bölümlerinin okunmasını tavsiye ediyoruz. Konu hakkında daha ayrıntılı bilgi isteyenler "Debian-UTF8-HOWTO" belgesini de inceleyebilirler.
UTF-8 kipinde çalışma için gerekli ilk adım bu kodlamaya ait Türkçe UTF-8 yerelin kurulmasıdır. "Kararlı" sürümde yukarıda anlatılan şekilde bunu yapmak istediğinizde küçük bir sorun sizi bekliyor olacak. tr_TR.UTF-8 yerelleri `locales' paketinin debconf arayüzünde listelenmemiştir. Yani dpkg-reconfigure locales ile karşımıza çıkacak listede tr_TR.UTF-8'i göremeyeceğiz (bu hata yeni sürümlerde düzeltilmiştir). Bu durumda elle işlem yapacağız:
Önce Türkçe UTF-8 yereli /etc/locale.gen'de tanımlıyoruz. Şu satır ekleniyor:
tr_TR.UTF-8 UTF-8
Sonra da ilgili yereli üretiyoruz. Brute force niteliğindeki bu işlem sırasında, gözardı edilebilir bir yan etki olarak listelenmiş diğer yereller de tekrar üretilecektir:
# locale-gen
Yerel değişkenlerini daha ayrıntılı ve Debian usulüyle ayarlamak isteyenler için `localeconf' paketinin varlığını da haber edelim. Bu paket kurulduğunda bütün yerel değişkenlerinin elle atanması yerine debconf arayüzü kullanılıyor (dpkg-reconfigure localeconf) ve istenilen yerel değişkeni de kolayca istisna haline getirilebiliyor.
Önceki Üst Ana Başlık Sonraki
Türkçe desteği için gereken temel yazılımlar Başlangıç X Window Türkçe yazı tiplerinin yüklenmesi
Bir Linux Kitaplığı Sayfası