Linux'da türkçeleme konusunda Nilgün Belma Bugüner ve Deniz Akkuş Kanca tarafından hazırlanan Türkçe-NASIL gibi bir belge varken çok yeni şeyler söylemeyeceğiz. (Yazının ilerleyen bölümlerinde bu belgeye Türkçe-NASIL ismiyle sıklıkla gönderme yapılacaktır.) Dolayısıyla ilk iş olarak yıllarca Türkiyedeki linux listeleri ve forumlarda "Acele yardim... Turkce problemim var" şeklinde seslendirilen ve -biraz sert bir ifade olacak ama- baştan savma izah edilmiş çözüm önerileriyle sürüp giden bu türkçeleme problematiğini derli toplu bir HOWTO formatı içinde ele alan Türkçe-NASIL dokümanının ayrıntılı okunmasını tavsiye ediyorum. Redhat tabanlı bir sistem göz önüne alınarak hazırlanmış dokümanda bir linux sisteminin türkçeleme omurgası ortaya çıkartılabiliyor. Özellikle UTF-8 desteğiyle ilgili açıklamaların ve eklerde verilen klavye dosyalarının çok değerli olduğunu belirtelim. Debian-Woody'de türkçeleme başlığını taşıyan bu yazıda karanlığa taş atıp tutturmaktan ibaret olan bir takım kirli oyunlara ;) girmek yerine Türkçe-NASIL belgesiyle resmîleştiğini kabul ettiğim türkçeleme çalışmalarıyla uyumluluk yaklaşımını tercih ederek, orada açıklanan ayarların debian'a -mümkün mertebe debian adabına uygun şekilde- taşınmasına çalıştım. Uyumluluk nosyonunu korumakla beraber Türkçe-NASIL'la gelen klavye eşlemlerinde küçük düzeltmeler yapmaktan da imtina etmedim. Ayrıca okuduğunuz bu dokümanın -şimdilik- resmi bir HOWTO niteliğinde olmayacağı ön kabulüyle bazı pratik ve hayat kurtaran önerilerle yazıyı zenginleştirme yoluna gittim. Henüz Debian Woody ile tanışmamış olanlar için yazıda sergilenen yaklaşımın anlaşılması açısından Woody incelemesine tekrar bir göz atılmasını öneriyorum.
Türkçe-NASIL belgesinden söz etmişken bu belgenin yazarlarının da aktif olarak katıldığı gnu-tr projesine değinmemek olmaz. Bakın gnu-tr projesinde ne yapılıyor: (Deniz Akkuş Kanca'nın mesajından alıntı)
Gnu-TR yaklaşık iki yıldır (1 yıl 9 ay) devam eden bir Türkçeleştirme projesidir. Ağırlıklı olarak komut satırı yazılımlarının Türkçeleştirilmesini üstlenmiştir.
Eğer bilgisayarınız size "File not found" yerine "Dosya bulunamadı" tarzında mesajlar veriyor ise, bunu gerçekleştiren Gnu-TR'nin çevirileridir. mv, rm, ls, gcc, gpg, tar, fetchmail, find, awk, grep gibi her gün kullanılan pek çok yazılımın Türkçe çevirisini yapıyoruz.
Gnu-TR'nin kapsamı dahilindeki programlarda Türkçe çevirileri %73 oranında yapılmış durumdadır. Fakat çeviri yaşayan bir şey -- programlar güncellendikçe çevirilerin de güncellenmesi gerekiyor.
Bize katılacak çevirmenler arıyoruz.
Son cümledeki çağrıya dikkat! Bu çağrıya icabet edecek olan arkadaşlar Linux'un Türkiye'de yaygınlaşmasına büyük bir katkı sağlayacaktır. Bilgi ve zamanınız ölçüsünde dilediğiniz bir programın sorumluluğunu üstlenerek çorbada tuzunuz olsun istemez misiniz?
Geleceğe yönelik bir kayıt düşerek UTF-8'in önemini vurgulamak yerinde olacaktır. Günümüzde kullanılan ISO standartı 8-bitlik bir kodlamayı esas alır. Teferruatı "unicode konsorsiyomu" tarafından belirlenen UTF-8 kodlaması değişken uzunluklu (1-4 byte arası) unicode kodlama protokollerinden biridir ve ISO tarafından ISO-10646-1 standartına bağlanmıştır. UTF-8'le ulaşılacak olan durum biraz basit bir ifadeyle şöyle özetlenebilir: Gelecekte ön tanımlı olarak UTF-8 uyumlu şekilde konfigüre edilen bir linux sisteminde oluşturduğunuz türkçe dokümanı Japonya'daki UTF-8 uyumlu bir makinada bile türkçe karakterlerle sorunsuzca görüntüleyebileceksiniz. UTF-8'in yeterince olgunlaşmadığı kanaatiyle bu dokümanda ISO-8859-9'i esas alan ayar prosedürleri sunulmuştur. Bununla birlikte yazı UTF-8 konfigürasyonunu düşününler için de faydalı olacak muhtevaya sahiptir. UTF-8 konusunda Türkçe-NASIL'ın oldukça yeterli bir içerik sunduğunu da tekrar etmek isterim.
Türkçeleme ayarlarına, ilerleyen aşamalarda işimizi kolaylaştıracak bir ilk adımla başlayalım. Yeri geldiğinde belirtileceği gibi dağıtımla gelen bir kısım sistem dosyası hatalı. Hataları giderilmiş olan bu dosyalarla birlikte çeşitli yapılandırma ayarlarını içeren diğer bazı dosyalar bir pakette toplanarak ekte sunulmuştur.
Ekte verilen türkçe destek paketini makinanıza indirerek bir dizine açın:
cd ; tar zxvf tr.tar.gzİleride belirtilecek bir ek dosyaya
/root/tr
dizininden ulaşacağınızı kabul ediyorum.
Ayarların kolayca takip edilebilmesi için yukarıda da görüleceği üzere her adım kolay algılanabilir bir biçimde düzenlenmiş ve o adımın doğru şekilde icra edilip edilmediğini test etmek amacıyla -eğer anlamlı ise- uygun bir test yöntemi de eklenmiştir. (Dileyen yazıdaki laf kalabalığına girmeden sadece bu adımları izleyerek sonuca ulaşabilir.) Burada izah edilen yapılandırmanın Debian'a (daha da ötesi Debian 3.0'a) özel olacağı aşikâr. Fakat diğer dağıtımları kullananların da içerikten istifade etmesi için mümkün mertebe her adımda, çoğunlukla elle yapılan bir değişikliği açıklayan bir alternatif ayar yöntemi de vermeye çalıştım.
Redhat 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 böyle bir merkezileştirme yok.
Her ülkeden yüzlerce kullanıcının taze bir kurulum sonrası kendi yereline özel
ayarları yapmak üzere dağıtımdan bağımsız şekilde kör gözle yönelebileceği ilk
dosya olarak bu i18n
'in kullanılması tutarlı olurdu kanaatimce.
(LSB gelecekte işleri değiştirebilir belki.) Debian'da yerel ayarlar
çeşitli dosyalara dağıtılmakla beraber /etc
altında toplanmıştır.
Bu dosyalar özetle şöyle:
/etc/console/boottime.kmap.gz
- Klavye eşlem dosyası.
/etc/console-tools/config
- Konsol fontlarıyla 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.
Konsol
İlk çalışma sahamız metin tabanlı konsol ortamı. Önce klavyeyi
türkçeleyeceğiz. Debian'da konsola ilişkin karakter ve 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ımlarlardan çıkan paketlerle aynı. console-tools
'la çakışma
(conflict) gösteren kbd paketiyle ilgilenmeyeceğiz. Kurulum
sonrasında sisteminizde bulacağınız paket Important olarak
sınıflanmış olan `console-tools
'. Klavye seçimi için
`console-data
'nın debconf arayüzü kullanılıyor.
Yani:
dpkg-reconfigure console-data
komutu ile istediğiniz klavyeyi seçiyorsunuz. (`kbd
' paketi
kurulu olsaydı `kbdconfig
' kullanılacaktı.)
Türkçe klavye eşlemi olarak "Q Layout (1)", "Q Layout (2)" ve "Alternate" şeklinde üç alternatifiniz var. "Alternate" türkçe karakterleri Altgr tuşuyla üreten, programcılara yönelik bir tuşeşlemi. Her üç klavye yerleşimi de bazı problemlere sahip:
"Q Layout (1)" yerleşiminde Altgr-q ile `@
'
basmaya çalışırsanız karşınıza basitçe `q
' çıkıyor. Benzer
şekilde Altgr-, ``
' karakterini basması gerekirken bunu
yapmıyor ve `|
' ile karşılaşıyorsunuz. Benim klavyemde
Tab tuşunun üstünde konumlanan `"
' (Shift
halde Eacute yani: `é
') tuşu `'
basıyor, çift tırnak karakterine ancak Shift ile ulaşılıyor. Öte
yandan bu yerleşimde klasik
Backspace-Delete sorunu yok. Yani Delete tuşu kursörün
üzerinde bulunduğu karakteri, Backspace ise kursörden önceki
karakteri (geriye doğru giderek) siliyor.
Şimdi "Q layout (1)" kırk satır idi. Gelelim kırk katır'a yani
"layout (2)"ye. Bu yerleşimde yukarıda zikredilen sorunlar yok.
Maamafih Delete tuşu Backspace işlevinde. Delete
işlevine alışanlar için bu oldukça sıkıntı verici. Yine de kullanılması
gereken eşlemin bu olduğunu söyleyebiliriz. Eğer bugüne kadar yukarıda
belirtilen klavye eşlem dosyalarını kullanmış ve onlara alışmış iseniz
`console-data
' için yukarıda verilen debconf komutunu
çalıştırmakla eriştiğiniz durum yeterli olacaktır. Böyle bir durumda aşağıda
açıklanan adımları pas geçebilirsiniz.
Türkçe konsol tuşeşlemleri uzun yıllardır güncellenmiyor. Vebali
Türkiye'deki bütün Linux kullanıcılarının boynunda olan bu ihmalkarlığın
bahanesi yoktur sanırım. Linux kullanmaya başladığım ilk zamanlardan beri
değişmeyen bu kırk katır-kırk satır sorununu "Q layout 2" yani
sistemdeki adıyla tr_q-latin5.kmap.gz
'i esas alan kendi
hazırladığım bir eşlem dosyasıyla çözmüş ve ilerleyen yıllarda da her kurulum
sonrasında ilk yaptığım iş bu dosyayı kurmak olmuştu. Kestirmeden giderek bu
dosyayı size vermek yerine başta belirttiğim prensibi işleterek Türkçe-NASIL
belgesinin eklerinde verilen konsol klavye eşlemleri üzerinden bir çözüm
üreteceğiz. Çözüm üreteceğiz dedim çünkü Türkçe-NASIL'ın ekinde verilen
trq
eşleminde de (birkaç başka küçük problemin yanısıra)
Backspace-Delete sorunu var. Destek dosyaları arasında bulacağınız
trq.kmap.gz
dosyası Türkçe-NASIL'la gelen tuşeşleminin
düzeltilmiş halidir. Tahmin edileceği üzere alternatif türkçe tuşeşlemi de
(yani tralt
) problemli. Neyse ki bir arkadaş bu konuda duyarlılık
göstermiş ve console-data
'ya -gelecekte eklenmek üzere- doğru
çalışan bir tuşeşlemi göndermiş. console-data
'nın
bug-report'larında uuencode
halde rastladığım bu dosyayı
da destek paketinde bulabilirsiniz. (Merak edenlere not:
console-data
'ya gönderilmiş bir trq
dosyası
bulamadım. Herkes kendi derdinin peşinde galiba ;) Şimdi ayarlara devam edelim
ve bu düzgün eşlem dosyalarını sisteme kopyalayalım:
cp --suffix='.old' ~/tr/*.kmap.gz /usr/share/keymaps/i386/qwerty
Düzeltilmiş trq
eşlemini kullanmak için yukarıda verilen
adımda `console-data
'nın veritabanında trq
'ya karşı
düşen "Q layout (1)"i seçmiş olmanız gerekiyor.
P.S. -- Destek dosyaları arasında kendi kullandığım eklentileri de içeren
trq_enhanced
dosyası mevcut. Bu dosyanın içeriğini -her ne kadar
zararsız olsa da- subjektif niteliğinden dolayı trq
eşlemine
bulaştırmadım. README
'de de tarif edildiği gibi bu tuşeşlemini
denemek için install-keymap trq_enhanced
komutunu kullanmanız
gerekecek.
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
Klavye eşlemini kurduktan sonra türkçe konsol karakterlerini doğru şekilde
görüntülemek için konsol fontlarını ayarlıyoruz. `console-data
'
klavyeyi ayarlama imkanı sunmakla birlikte konsol karakterlerini değiştirme
imkanı vermiyor. Bu durumda ya gidip elle bu işlemi yapacaksınız ya da daha
debian uyumlu bir yol arayacaksınız. Bu ikincisini yaptığınızda karşınıza
çıkacak paket Optional olarak damgalanmış`fonty
'
oluyor.
`
fonty
'i kuruyoruz. debconf sayesinde ayarı da kurulum sırasında yapacağız:apt-get install fonty`
fonty
'nin ön yapılandırma ekranındaiso9 (Turkish)
'i seçiyoruz. Paket, sanal terminallerde (tty1-6) farklı fontlar kullanabilmenizi de sağlıyor. (Biz bütün terminalleri 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ığı basitçe
/etc/console-tools/config
dosyasına:
SCREEN_FONT=iso9-16 APP_CHARSET_MAP=iso09
satırlarını eklemekten ibaret. Konsol fontlarından söz etmişken
"Euro" sembolünü de zikretmek isterim. trq
'da
euro desteği var ve Altgr-e ile bu sembole ulaşabilirsiniz.
(Altgr-c ile de "Cent" sembolü tuşlanabilir.)
Fakat sembollerin doğru fontlarla görüntülenmesi için yukarıdaki
satırların:
SCREEN_FONT=lat0-16 APP_CHARSET_MAP=iso15
şeklinde olması gerekiyor. ISO-8859-15'de tanımlı olan euro sembolünü türkçe karakterlerle birlikte kullanmak için UTF-8'den başka bir yöntem yok. Borsadaki linux kullanıcılarına duyurulur :)
Test:
Test yapmanın sırasıdır. Bu noktada -eğer Windows'dan kalan
alışkanlıklarınızdan kurtularak reboot yapmamış iseniz- önce
inputrc
dosyasını tekrar okutmamız gerekiyor. Bunun yöntemi
Ctrl-x Ctrl-r kombinasyonunu tuşlamak. Her şeyi anlatıldığı gibi
yapmış iseniz şu an türkçe karakterleri doğru şekilde tuşlayabiliyor ve
görebiliyor olmanız gerekiyor. Ö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. Herhangi bir problem
tespit etmişseniz veya bir önerinizin varsa yorumlarınızı beklerim.
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. locale 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 locale ayarı da icra edilmiş olacaktır. (Bu amaçla
ekstra hiçbir seçim yapmadan dselect
adımını izlemek yeterlidir.)
locales
paketini kurmamış olanların önce apt-get install
locales
ile kurulum yapması gerekecektir. Konfigürasyon iki aşamadan
oluşuyor. Gerekli yerel dil dosyalarının üretilmesi yani sistemde hazır
bulundurulması ve sistem genelinde geçerli locale ortam
değişkenlerinin atanması:
dpkg-reconfigure localeskomutunu çalıştırıyoruz. Karşımıza gelen ekranda
tr_TR ISO-8859-9
'i seçili hale getiriyoruz. Sonraki adımda da sistem yerelinitr_TR
olarak belirliyoruz. Bu ayarlar sonrasındatr_TR
'ye ait dosyalar/etc/locale.gen
dosyasında listelenerek üretilecek ve/etc/environment
dosyasındaLANG=tr_TR
ataması yapılacaktır.
Test:
Yerel dil yapılandırmasının etkin olması için oturumdan çıkıp tekrar giriyoruz (Tips: Ctrl-D tuş kombinasyonu) ve şöyle bir deneme yapıyoruz :)
ls Emrehan_Halıcıyı_meclisde_gormek_isteyenlerin_listesi
Eğer aldığınız cevap:
ls: Emrehan_Halıcıyı_meclisde_gormek_isteyenlerin_listesi: Böyle bir dosya ya da dizin yok
şeklinde ise vatana millete hayırlı olsun ;)
Burada biraz nefeslenelim. Sistem yerelinin türkçe olması güzel. Birçok
GNOME programında türkçe karakter sorununun hallolması ve sıralama
işlemlerinde türkçenin dikkate alınması gibi önemli kazanımlarımız olacak.
Peki "Bu saydıkların güzel de ben yarısı türkçe yarısı ingilizce mesaj
görmek istemiyorum, ingilizce biliyorum ve bekârım..." diyenlere
sunacağımız bir reçete var mı? Var tabii... Unutmayalım ki sistemde
tr_TR
dışında bir de Posix locale yani C
(veya POSIX
) mevcut. Hatta yukarıdaki mesajları ingilizce
seslendirmek için `LC_MESSAGES=C ls Emrehan_Halıcıyı...
' komutunu
kullanarak deneme yapabilirsiniz. Şimdi bu isteği daha rasyonel bir kıvama
dönüştürelim:
"Sıralamaların Türkçe yapılması güzel. Fakat mesajların ingilizce gelmesini istiyorum. Ayrıca bir geliştirici olarak Sayı ve Zaman formatının
POSIX
uyumlu olmasını da tercih ederim." denilirse/etc/environment
dosyasını düzenlememiz gerekecektir:LANG=tr_TR LC_MESSAGES=C LC_NUMERIC=C LC_TIME=CDileyenler bu satırlar üzerinde oynayabilirler.
UTF-8 için locale yapılandırmasının nasıl yapılacağı
Türkçe-NASIL'da ayrıntılı anlatılmıştır. Debian'da UTF-8 yapılandırması
hakkında geniş bir içeriğe sahip olan Debian-UTF8-HOWTO
dokümanının okunması da faydalı olacaktır. Türkçe UTF-8 konusunda küçük bir
sorun bizi bekliyor. 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 durumda elle işlem yapıyoruz:
Önce Türkçe UTF-8 yerelini /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 listelenen diğer yereller de tekrar üretilecektir, göz ardı edebilir:
locale-gen
locale
değişkenlerini daha ayrıntılı ve debian meşrebinde
ayarlamak isteyenler için `localeconf
' paketinin varlığını haber
edelim. Bu paket kurulduğunda bütün locale değişkenlerinin yukarıda
anlatıldığı gibi manuel olarak atanması yerine debconf kullanılıyor
(dpkg-reconfigure localeconf
) ve istenilen yerelleştirme
değişkeni de kolayca istisna haline getirilebiliyor.
Bu bahisde iki ilginç paketten de söz edeyim: İlki `user-de
'
paketi. Sistemi almanca hale getiriyor. Diğeri ise
`language-env
'. Bu paketle birçok dil için yerelleştirme
yapılabiliyor ve ayarlar X Window'u da kapsıyor. `user-de
' global
yapılandırma yolunu tercih ediyor, `language-env
' ise kullanıcı
bazında yerelleştirme yapıyor. Bunlardan niçin söz ediyorum? Hani diyorum
kendine güvenen bir babayiğit arkadaş çıksa da bu paketlerin kaynak kodlarını
(scriptlerini) alarak bir `user-tr
' yazsa veya
`language-env
'in desteklediği diller listesine türkçeyi de eklese
(evet, maalesef listede tr
yok). Bir miktar perl
bilen arkadaşlara (ki buna bile gerek olmayabilir) özellikle
`language-env
' paketini öneriyorum. İndirin ve inceleyin.
X Window
X Window konfigürasyonunda oluşabilecek problemlerin kolayca lokalize
edilebilmesi ve ayarların eksiksiz şekilde güncellenmesi için -eğer
kullanılıyorsa- x-display-manager
yani X ekran
yöneticisi'nin (xdm
, gdm
veya kdm
)
öldürülmesi pratik olacaktır. Meselâ xdm
için ps ax|grep
xdm
ile öğrendiğiniz nnn
nolu prosesi kill -HUP
nnn
komutuyla sonlandırıyoruz.
Woody XFree86 4.1 ile geliyor. XKB
'nin kullanıldığı 4.x
serisinde klavye ayarı 3.x serisine göre daha nizami ve kolay yapılabiliyor.
3.x serisinde xmodmap
ile icra ettiğiniz numaraların yerini
XF86Config-4
'deki InputDevice
bölümünde konumlanan
XkbLayout
değişkeninin ayarlanması alıyor.
/etc/X11/XF86Config-4
dosyasında:Section "InputDevice" ... Option "XkbLayout" "tr" ... EndSectionsatırının olması gerekiyor. İlk kurulum sırasında muhtemelen yapılmış olan bu ayar herhangi bir anda:
dpkg-reconfigure xserver-xfree86komutuyla tekrar edilebilir.
Hikâye buraya kadar güzel görünüyor. Fakat önemli bir problem var.
Türkçe-NASIL dokümanında da ifade edildiği gibi X 4.1 ile gelen türkçe klavye
sembol dosyası -diğer bazı sorunların yanısıra- türkçe yereliyle problem
çıkarıyor. Problem geliştiricilere raporlanmış ve sorunu gideren sembol
dosyası 4.2 dağıtımına eklenmek üzere gönderilmiş durumda. Türkçe-NASIL'ın
eklerinde X 4.1 için verilen sembol dosyasını ekte tr-4.1
adıyla
bulacaksınız. Orijinal halinde zararsız bir yazım hatası vardır; okuduğunuz
dokümanın ekinde verilen tr-4.1
dosyasında bu hata giderilmiştir.
Bu dosyayla birlikte konsol tuşeşlemlerinde söz edilen
trq_enhanced
eklentisinin X altındaki karşılığı olan
tr_enhanced-4.2
dosyasını da kopyalayalım:
cp --suffix='.old' ~/tr/tr-4.1 /etc/X11/xkb/symbols/tr cp ~/tr/tr_enhanced-4.1 /etc/X11/xkb/symbols/tr_enhanced
Türkçe-NASIL'da X 4.1'ün başka bir sorunu olarak Caps Lock tuşu aktif hale geldiğinde klavyedeki Caps Lock led'inin yanmadığı ve belge eklerinde verilmiş olan tuşeşlemiyle bu sorunun da çözümlendiği belirtilmiş.
Caps Lock led'inin doğru çalışmasını sağlayacak opsiyon da kullanıldığında
XF86Config-4
dosyasının klavye kısmı şu hali alıyor:Section "InputDevice" ... Option "XkbRules" "xfree86" Option "XkbModel" "pc105" Option "XkbLayout" "tr" Option "XkbOptions" "grp_led:caps" EndSection
Değişikliklerin debconf kontrolünde olması isteniyorsa daha önce
verilen ayar komutu kullanılmalıdır. Aksi halde manuel yapılan ayarlar
gelecekte icra edilebilecek bir debconf yapılandırması sırasında
kaybolacaktır. Bir not da müstakbel X 4.2 için: Türkçe-NASIL'da X 4.2 için
hazırlanan ve yeni sürüme eklenmesi için XFree geliştiricilerine gönderildiği
söylenen bir sembol dosyası (tr-4.2
) ve ilaveten
CapsLock ile alâkalı bir dosya var (caps-4.2
). Malum
olduğu üzere Woody, X 4.1 kullandığından bu dosyalar bize şu an gerekmiyor.
Fakat X 4.2'nin ön sürümleri çıkmaya başladı ve şu günler itibarıyla
unstable
'a henüz taze giren yeni sürüm makinanıza düştüğünde 4.2
dosyaları mutlaka gerekecek. Zira XFree 4
'ün CVS
dizinlerine baktığımda bu düzeltmelerin hâlâ commit
edilmediğini
gördüm. Galiba adamlar X 4.2.3'ü bekliyorlar. (1-2 ay daha bekleyelim, yok
eğer yine eklenmemiş ise X-i18n grubuna bir FM çıkarması yapmamız vacip olacak
;) X 4.2 için klavye ayarı XkbOptions
kısmında ufak bir farklılık
gösteriyor. Türkçe-NASIL'da belirtilen satırları aynen buraya
alıntılıyorum:
Section "InputDevice" ... Option "XkbRules" "xfree86" Option "XkbModel" "pc105" Option "XkbLayout" "tr" Option "XkbOptions" "caps:shift" EndSection
P.S. -- tr_enhanced
eklentisini kullanmak amacıyla yapılacak
ayar şöyle olmalıdır:
Section "InputDevice" ... Option "XkbRules" "xfree86" Option "XkbModel" "pc105" Option "XkbLayout" "tr_enhanced" Option "XkbVariant" "nodeadkeys" Option "XkbOptions" "grp_leds:caps" EndSection
X 4.2 için destek paketindeki tr_enhanced-4.2
kullanılmalıdır.
(XkbOptions
için "caps:shift"
değişikliği
unutulmamalıdır.)
Test:
X'i tekrar başlatarak bir xterm
penceresi açıyoruz. Konsolda
yaptığımız yerelleştirme yapılandırması doğru ise ayarların X'e taşınmış
olması gerekiyor: locale
komutu ile bunu kontrol ediyoruz. Sistem
yereli tr_TR
ise sorunlu bölgedeyiz demektir. Türkçe
karakterleri tuşlayarak tepki gelip gelmediğina bakıyoruz. Karakterler doğru
görüntülenmese bile tuşların tepki vermesi lâzım. Türkçe klavye sembol
dosyasının tr_TR
yereliyle sorun oluşturduğunu söylemiştik. Eğer
X'deki locale tr_TR
değilse zaten problem olmayacaktır.
Bu durumda önceden anlatılan yerelleştirmenin doğru yapıldığına emin olmamız
gerekiyor.
Bitmap fontlar
Klavye tamam ise türkçe biteşlem (off! bu türkçeleme yoruyor yaw, bitmap
dedim biraz önce ;) fontların kurulumuna geçebiliriz. Debian'da
BDF
fontların organizasyonu diğer dağıtımlardan farklıdır. Redhat
tabanlı dağıtımlarda ISO-8859-9 serisi fontlar müstakil bir rpm
paketi halinde gelir ve konfigürasyon dosyalarında tanımlı font patikalarının
-doğru sırada- değiştirilmesiyle türkçeleme yapılır. (Ayrıntılar için bkz.
Türkçe-NASIL)
Debian'da Standart olarak kurulan X fontları UTF-8 olarak kodlanmıştır (ISO-10646-1) ve sadece türkçe fontlara hasredilmiş bir paket mevcut değildir. Türkçe açısından hâlâ geleceğin teknolojisi kıvamında olan bu UTF-8 fontları bir miktar ihtiyatla karşılayarak klâsik ISO-8859-9 olarak kodlanmış fontları aradığımızda karşımıza şu 3 paket çıkacaktır:
xfonts-100dpi-transcoded xfonts-75dpi-transcoded xfonts-base-transcoded
`*-transcoded
' serisi fontlar sistemde zaten kurulu olan
ISO-10646-1 fontların standart ISO-8859-1..9 serisine tekrar kodlanmış
halidir. Şimdi bu paketleri kuralım:
apt-get install xfonts-100dpi-transcoded xfonts-75dpi-transcoded xfonts-base-transcoded
Standart kurulum sırasında UTF-8 fontlar zaten kurulu olduğundan Unicode kullanımının olgunlaşması bu adımı gereksiz kılacaktır. Başta da belirtildiği gibi Woody'de UTF-8 türkçelemesini denemedim. Bunu deneyen var ise durumu FM'e raporlamaları halinde çok memnun kalırım.
8859-9 serisi fontlar artık kurulu olduğuna göre konsolda türkçe fontların
görüntülenebilmesi için X kaynaklarında (Xresources
) ayar
yapmamız gerekecek. Bu amaçla home
dizininizde bulunduracağınız
bir .Xresources
dosyasında:
XTerm*Font: -misc-fixed-medium-r-normal--15-*-*-*-*-*-iso8859-9 XTerm*Font1: -misc-fixed-medium-r-normal--13-*-*-*-*-*-iso8859-9 ...
satırlarını bulundurmanız yeterli olacaktır. Ayarların sistem genelinde
etkili olmasını temin edecek bir yöntem aradığımızda X paketleriyle gelen
dokümanlar bize /etc/X11/Xresources
dizinini gösterecektir.
Redhat tabanlı dağıtımlarda global X ayarlarını içeren
/etc/X11/Xresources
bir dizin değil dosyadır ve yukarıda
belirtilen ayarların bu dosyaya işlenmesi gerekir. Debian'da ise muhtelif
ayarları dosya grupları halinde yaratarak bu dizine yerleştirmemiz yeterlidir
ve X'in ilklendirmesi sırasında Xresources
dizini altındaki bütün
dosyalar okunur.
Ekte verilen
tr-resources
dosyasındax-terminal-emulator
,rxvt
vewterm
'de türkçe karakterlerin doğru görüntülenmesini sağlayan düzenlemeler mevcuttur. Kurulumu:cp ~/tr/tr-xresources /etc/X11/Xresources
Özellikle 14 veya 15 inch monitör sahipleri fontlarla oynama ihtiyacı duyabilirler. (Bu denemeler sırasında gerekecek font tanım satırlarından biraz sonra bahsedeceğim.)
Test'e geçmeden önce bir ayar daha yapacağız. Kurbanımız
/etc/X11/fonts/misc/xfonts-base.alias
dosyası.
Xresources
ayarlarını umursamadan kafasına göre davranan her
türlü kod parçasına fake atmak için bu dosyada iso8859-1
ile
biten bütün satırları iso8859-9
olarak değiştireceğiz. İşinizi
kolaylaştırayım:
vi /etc/X11/fonts/misc/xfonts-base.aliasVe şimdi VI komut satırında:
:%s/8859-1$/8859-9/yaparsak tamamdır. Bir de ilk satırlarda gözünüze çarpacak olan
fixed
fontu var. X'in bütününde leblebi gibi kullanılan bu font'u da hazır geldik uygun bir varsayılan'a atayalım.fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-9satırını şöyle biraz daha iri bir fontla değiştirelim:
fixed -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-9Nasıl bir görüntünü oluşacağı merak ediliyorsa eklerde gelen
xfonts-base.alias
dosyasına bakılabilir.
Yukarıda Xresource
'a konulacak font tanımları probleminden
bahsetmiştim. Font tanımlarına bu dosyayı inceleyerek ulaşabiliriz.
Kaydetip, çıkalım. (Hımm, yoksa bilmiyormusunuz?
:wq
) Son olarak alias'ları güncelleyeceğiz:update-fonts-alias misc
Test:
Bütün ayarları doğru yapmış isek X'i tekrar başlatıp, bir
xterm
penceresi açarak türkçe karakterleri tuşlayabiliyor ve
doğru şekilde görebiliyor olmamız lâzım.
Ölçeklenebilir fontlar
Kurulumu bir önceki bölümde anlatılan biteşlem fontların yanısıra X Window'da ölçeklenebilir font olarak Apple kaynaklı TrueType (a.k.a. TT) ve Adobe kaynaklı Type1 yani postscript fontlar kullanılabiliyor. Daha nadir kullanılan diğer bir ölçeklenebilir font tipi de Bitstream tarafından geliştirilen Speedo oluyor. Ölçeklenebilir font kurulumunun nasıl yapıldığını anlamak amacıyla X'in font yönetiminden ve tarihçesinden kısaca bahsetmek sağlıklı olacak. Karanlığa taş atmamak için bu kısımda af buyurursanız türkçelemenin dışına çıkacağız. Arzu edenler atlayabilirler.
X Window, 4.x serisinden önceki ilk sürümlerden itibaren biteşlem ve Type1 fontları doğrudan sunucu içinden desteklemekteydi. Ekran görünümü açısından biteşlem'in sınırları malum. Ölçeklenebilir Type1 teknolojisi ise doğuşu itibarıyla yazıcı çıktısına yönelik bir font olmakla beraber ekran fontu olarak da kullanılabilecek yeterliliktedir. Fakat bu teknoloji (Type1 fontlarındaki lisans problemlerinden olsa gerek) bir türlü yaygınlık kazanamamıştır. Alternatif bir teknoloji olarak sunulan TrueType fontların ticarî grafik arayüzlerde (Windows, MacOS vb.) kullanılması ve özellikle Microsoft'un TrueType'a destek vermesiyle birlikte X Window ile bu sistemler arasındaki estetik görünüm farkı hissedilir düzeye çıkmıştır.
X'e TT desteğinin eklenmesi yönündeki ilk girişim 3.x serisinde ortaya
çıkan xfstt
'dir. Geliştiricisi tarafından xfs
ve
tt
kısaltmalarının terkibiyle oluşturulan bu isim aynı zamanda
yazının ilerleyen kısımlarında izah etmek için epey bir ter dökeceğimiz feci
isim anarşisinin de kaynağıdır. Şimdi bu ismin ilk bölümü üzerinde durmakta
yarar var. xfs
x font server yani X font sunucusundan
türetiliyor. Peki, xfs
ne? Aşırı basitleştirerek anlatacak
olursak; X Window, kompütür jargonunda Client-Server yani
İstemci-Sunucu denilen bir modelin örneğidir. Bu modelde ağ içinde
konumlanan bir sunucu bilgisayar vardır ve istemci
durumundaki terminallerden -ağ yoluyla gelen- istekleri karşılar. X örneğinde
istemci terminal X sunucusundan bir dizi ekran görüntüsü talep eder.
Verilen basit örnekle oluşabilecek yanlış anlamaları önlemek için bu
terimlerin birer metafor olduğunu vurgulayalım. Aslında istemci ve
sunucu, bu isimlerin çağrıştırdığı role sahip yazılımlardır. X
sunucusunu çalıştıran bilgisayarın da sunucu olarak
zikredilmesine rağmen bu terimlerin elle tutulur fiziksel nesnelere karşılık
gelmediğine dikkat etmek gerekir.
Şu an ağa bağlı olmadan kendi başına takılan fena halde personal
linux sisteminizde başlattığınız bir X oturumunun "Mercedes'le bakkala gitmek"
anlamı taşıdığını farketmişsinizdir sanıyorum. Her meziyet bir zaafa
dönüşebilir. Olsun, ne dert, altınızdaki Mercedes'e bakın, bakkal'a
değil ;) Dönelim xfs
'e... X font sunucusu da bu model içine cuk
oturur. Her makinaya font yüklemek yerine ağdaki bir makinaya fontları
yüklüyor ve bunu X font sunucusu olarak atıyorsunuz. X sunucusu istemciye
göndereceği bir X ekranını oluşturmadan önce ihtiyaç duyacağı fontları ve
-dikkat buyurun- bunların render edilmesi işlemini bu sunucuya
yaptırıyor. Böylelikle fontların merkezî bir bölgede toplanması avantajına ek
olarak, X sunucusunun üzerindeki render yükü de azalıyor. X'e TT
desteğini eklemeye çalışan geliştiricilerin xfs
'i hedef almasının
nedeni de anlaşılmıştır zannediyorum. X sunucusu xfs
'e özel bir
mülkiyet alanı verdiğinden ne haltlar çevirdiğiyle de ilgilenmez. İşte bir
tasarım farkı veya Mercedes'in avantajı :)
xfstt
X 3.x serisinde uzunca bir süre TT desteği için tek
alternatifti ve dağıtımda bulacağınız xfstt
paketiyle hâlâ da
hayatiyetini sürdürüyor. xfstt
dışında ne girişimler oldu?
Serbest yazılım aleminde sıklıkla benzeri görülebilecek "şunu da açık
yazılım repertuvarına katalım" anlayışıyla ortaya çıkan FreeType
projesi gelişmeseydi bu girişimler epey gecikecekti. FreeType her
biri muhtelif çap ve ebatta lisansa sahip font teknolojilerini serbest bir
kitaplıkta (ehmm, library) toplamayı hedefleyen bir projedir ve doğal
olarak TT'yi de gözüne kestirmiştir. TT desteği freetype
kitaplığında yerini alınca ikinci bir çözüm doğdu: xfsft
. Hadi
bakalım başladık: dikkat buyurun tt
değil ft
. Bu
program da xfs
'e tatbik edilen bir yamadır ve xfs
'in
TT fontlarını freetype
kitaplığı üzerinden kullanmasını sağlar.
Diğer bir girişim de caponlardan geldi. Nev-i şahsına münhasır asya fontlarına
TT tadı vermek için yine freetype
'ı kullanan bir başka yama
türedi: xfs-xtt
. (Uyarıldığınızı unutmayın ;) xfstt
ayrı bir paket halinde geliyor demiştik. Peki Debian dağıtımında
xfs-xtt
ve xfsft
paketleri de mevcut mu?
xfs-xtt
için cevabımız evet, böyle bir paket var.
xfsft
ise öyle bir hikâyedir ki sormayın gitsin.
Hikâye Linux'un Red-mond'ı olan Redhat'te başlıyor.
xfs
'in yamalanmış hali olan bu xfsft
'ye Redhat'teki
elemanlar öyle bir iştahla saldırıyorlar ki hemen orası burasıyla oynuyorlar
ve akıllara sezâ bir isimlendirme manevrası yaparak bu epey kurcalanmış kod
parçasına sadece xfs
diyorlar. Redhat 6.x ile gelen ve TT
kurulumu hakkında orada burada gördüğünüz:
FontPath "unix/:-1"
satırıyla sunuma çağırılan xfs
işte bu ameliyatlı
xfsft
'dir. Redhat xfsft
'yi özellikle X sunucusundaki
render yükünü alması yönüyle kurcalamış ve X 4.x'le gelen Redhat
7.x'de de X 4.x'deki dahilî TT desteğine rağmen -değişmiş isimle-
xfs
'i kullanmaya devam etmiştir. Üstelik 6.x'de tükürdüğünü
7.x'de yalayıp yukarıdaki satırı doğrusuyla değiştirerek:
FontPath "unix/:7100"
Redhat'i çevirdiği dolaplarla başbaşa bırakıp iyi adamlara dönelim :) Geniş
çaplı değişiklikler vaad eden 4.x sürümüyle X geliştiricileri bu
xfsft
'deki yamayı X sunucusunun içine koymuşlar ve bunu yaparken
diğer girişime vefa göstererek xtt
'yi de sunucunun font
arkayüzüne eklemişlerdir. İşte XF86Config-4
'ün
Modules
bölümündeki:
Section "Module" ... Load "freetype" ... EndSection
görüntüsünün kaynağı budur. (xfs-xtt
'deki işlevsellik
Load "xtt"
ile yüklenir fakat aynı anda bu iki modülü birden
kullanamazsınız.) X'in modülerleşmesi hedefine uygun olarak 4.x'de Type1
desteği de modül haline getirilmiştir. Bu yüzden 4.x serisinde TT'nin yanısıra
Type1 desteği (ve hatta Speedo) kullanılacaksa yukarıdaki satırlar:
Section "Module" ... Load "freetype" Load "speedo" Load "type1" ... EndSection
şeklinde olmalıdır.
FreeType projesi ilerleyen versiyonlarda TT fontların
konturlarında ara tonlar kullanarak fontun daha güzel görünmesini sağlayan
Anti-Aliasing (a.k.a. AA) özelliğini de eklemiş ve bu özellik hemen X
4.x'de yerini almıştır. X 4.x'in font yönetimindeki diğer bir yenilik
XftConfig
dosyasının varlığıyla görülebilir. Bu dosya AA
tekniğinin hangi fontlara uygulayacağını belirlemek açısından önemli. Yeri
gelmişken belirtelim AA, X 4.x ile gelen bir yenilik. Bu özelliği kullanmak
için sadece XFree86'daki destek yetmiyor. Öncelikle ekran kartınızda bu
özelliğin olması gerekiyor. (Günümüzün ekran kartlarında böyle bir sorunumuz
yok.) Programın kullandığı kod kitaplığının da AA'dan haberdar olması lâzım.
GNOME-Gtk hâlihazırda AA uyumlu değil fakat 2.x itibarıyla AA desteği var. (Bu
2.x UTF-8'i de destekleyecek.) KDE-Qt AA'yı tam gaz kullanıyor (ve eskiden
beri UTF-8 uyumlu). Woody'de hazır haliyle Mozilla (1.0) AA'yı destekliyor.
Enteresan bir not babadan kalma konsol programı xterm
hem AA hem
de UTF-8 uyumlu. Xserver'ın AA özelliğini aktiflemek için
freetype
modülünün kurulu olması yeterli. AA'nın kullanıldığını
test etmek için `xdpyinfo | grep RENDER
' komutunu
çalıştırabilirsiniz. Komutun çıktısında RENDER
görülmeli.
Bu kadar laftan çıkacak sonuçlara gelelim:
X 4.1'le yüklü Woody'de TT desteği için
XF86Config-4
'de yukarıda belirtilen şekildefreetype
modülünü kurmak ve TT fontların bulunduğu dizinleriFiles
'da tanımlı patikalara eklemek yeterlidir.Özel bir plânınınız yoksa TT için Redhat'in yaptığı gibi ayrıca bir font sunucusu kurmanız veya kullanmanız gerekmez. Yani
XF86Config-4
dosyasında:FontPath "unix/:7100"
şeklinde bir satırı bulundurmanız gerekmiyor. Bu satır silinebilir veya comment out edilebilir. (Normal bir Woody kurulumunda
xfs
'in kurulu olduğunu göreceksiniz. Mevcut bir font sunucusunu devreden çıkarmak için bir de sunucuya ait daemon'u öldürmek gerekir. Debian'da daemon'ları -Redhat lingo'da bunlara servis deniyor- düzenlemek için `rcconf
' paketinden yararlanabilirsiniz.)Font yönetiminin font sunucusuna devredilmesi halinde -bellek kullanımı biraz artmakla birlikte- X sunucusunun daha etkili çalışacağı ifade edilmektedir. Test etmedim fakat yeni nesil ekran kartları ve işlemciler için bunun çok önemsenebilir bir fark yaratmayacağı tahminiyle "suyun bulandırılmaması" taraftarıyım. Suyu bulandırmakta ısrar edenler için işte font sunucusu alternatifleri:
xfstt
- Daha önce bahsettiğimiz malum TT destekli
xfs
. xfs-xtt
- Caponların
xfs
'i. Bu da izah edildi. xfs
- İlgili yerde açıkta bıraktığımız "
xfsft
ne oldu?"nun cevabı.xfsft
Potato ile gelmektedir ve X 3.x serisinde TT fontlar için kurulumu gereklidir. (Diğer alternatif: `xfs-xtt
') Woody'de Redhat'in yaptığı gibixfsft
-geliştirilmiş haliyle-xfs
olarak isimlendirilmiştir. Yani bu 4.x öncesinde gelen çıplakxfs
değil.
Font sunucusunun
XF86Config-4
ile tek ilişkisi:FontPath "unix/:7100"
gibi bir satırla tanımlanan sunucu port'udur. (
xfs
için ön tanımlı olarak7100
'dür, diğerlerinde genellikle7101
kullanılır.) Redhat 6.x'deki-1
port'u bu dağıtımın yerel sunucudakixfs
erişimini optimize etmesi yaklaşımıyla üretilen standart dışı bir port'tur.Font sunucusu kullanıldığında
XF86Config-4
'de font sunucusunun çağırıldığı satırın altında sıralanan font patikaları fallback yanixfs
kullanılmadığında X sunucusunun erişeceği statik font dizinlerini gösterir.Font sunucusuyla ilgili asıl ayarlar
/etc/X11/fs
dizini altındakiconfig
dosyasındadır. TT font dizinleri burada listelenmelidir.
Truetype (TT) fontlar
TT fontları kurmaya hazırız artık. Sıradan bir Debian kurulumunda daha önce
de belirtildiği gibi font sunucusu (xfs
) kurulu olacaktır. Font
yönetimi için doğrudan X'in içindeki TT desteğini kullanma yöntemini tercih
ettiğimizden ilk iş olarak xfs
'i devreden çıkaracağız. Bu amaçla
/etc/X11/XF86Config-4
dosyasında font sunucusunun çağrıldığı:
FontPath "unix/:7100"
satırını çıkarmak (veya commentlemek) ve -artık gerekmeyeceğine
göre- xfs
daemon'ı pasif hale getirmek doğru olacaktır.
(Bu sonuncu işlem için rcconf
kullanılabileceğini tekrar
hatırlatalım.) Font yönetimi için mevcut hali korumak isteyeceklerin
açıklamalarda belirtilen font patikalarını /etc/X11/XF86Config-4
dosyası yerine xfs
'in kullandığı /etc/X11/fs/config
dosyasında düzenlemeleri gerekecektir.
Konfigürasyona başlarken bir debian düsturunu işletelim. Debian sosyal
sözleşmesi'ne uygun serbestiyette ve kaliteli TT font bulamayacaksınız.
Yani günah işlememiz gerekiyor ;) Microsoft'un sitesinde bulunabilecek
standart web fontlarını zekice hazırlanmış bir paketle
(`msttcorefonts
') indirererek kurabilirsiniz. Burada başka bir
yöntem kullanarak TT fontları bir yerlerden çalacağız ;) Damardan linux'cu
değilseniz makinanızda bir Windows partisyonu vardır zannediyorum. Önce
otomatik ve sancısız bir yol tarif edeceğim, sonra da -diğer dağıtımları
kullananların istifadesi amacıyla- manuel bir kurulum için bilgi
vereceğim.
MS'in sitesinden font indirecek paket olur da, hemen burnunuzun dibindeki
partisyondan download (!) yapacak bir araç olmaz mı? İşte
`ttf-commercial
' böylesi bir hırsız paket.
debconf
'un bütün avantajlarını kullanan bu araçla TT fontları
üstelik Policy'ye uygun yerlere kurabiliyoruz.
`ttf-commercial
' önceden hazır halde tuttuğu geniş bir ticarî
font listesiyle iş görüyor. Programa (daha doğrusu script) TT
fontları bulacağı yeri gösterdiğimizde o lokasyonda mevcut fontları kendi
listesiyle karşılaştırıyor ve geçerli gördüklerini alıyor.
`ttf-commercial
'ın fontları çalacağı alanı hazırlamamız gerekiyor
önce.
Windows partisyonumuzu
mount
edelim:mount /dev/hda1 /mnt/windowsBurada
hda1
ile gösterilen bilgisayarınızdaki Windows bölümüdür ve/mnt/windows
'a mount edilir (yoksa oluşturun veya komutu değiştirin).
Bu kadar... Gerisini kurulum sırasında gelen ön konfigürasyon safhasında o halledecek:
apt-get install ttf-commercial
ttf-commercial
TT font dizinini bulacak ve takip eden aşamada "Fontları kopyalayayım mı, sembolik bağlama mı yapayım?" şeklinde soracak. (Ben kopyalanmasını öneriyorum.) Daha sonra font sunucusu kullanıp kullanmadığınızı soracak. Hayır diyeceğiz. Son safhada font dizinleriniXF86Config-4
'e ekleyebileceğini belirtecek. Biz de eklemesini söyleyeceğiz.
Bu işi manuel nasıl yaparız, onu da kısaca anlatalım:
Önce fontları belirli bir dizine kopyalayacağız. Bu belirli dizinin ne olacağı hususunda -tam olarak resmîleşmese bile- bir gelenek: Policy mevcut. Debian listelerinde Branden Robinson'ın mesajını okuyabiliriz. Hazret der ki: "Fontları
/usr/share/fonts/truetype
altına kurun ve buradaki bütün*.ttf
'ları/usr/lib/X11/fonts/TrueType
altına sembolik olarak bağlayın. Bu sonuncu dizinde bulunan ve her kurulumda değişebilecek font listelerini de/etc/X11/fonts/TrueType
altındaki güncelleme dosyalarıyla yönetin."Meselâ eklerde Win2k için -test edilmiş- fontların listesini içeren
msfonts.list
dosyasından yararlanarak kopyalama yapmak için şu adımlar takip edilebilir:Yukarıda anlatıldığı şekilde Windows bölümünü
mount
ederek, TT fontların bulunduğu dizine geçiyoruz. (Win2k için bu dizinin/mnt/windows/WINNT/Fonts
olduğunu varsayıyorum):mount /dev/hda1 /mnt/windows && cd /mnt/windows/WINNT/Fonts
Bu dizin içindeyken şu komut kullanılarak listedeki fontlar
/usr/share/fonts/truetype/msfonts
dizinine transfer edilebilir:cpio -pvd /usr/share/fonts/truetype/msfonts < ~/tr/msfonts.list
İzinlerde bir sorun olmaması lâzım:
chmod 0644 /usr/share/fonts/truetype/msfonts/*
Robinson'un önerdiği sembolik bağlamayı yapıyoruz: (
/usr/lib/X11/fonts/TrueType
dizini mevcut değilse -0755
izniyle- yaratılmalı.)ln -s /usr/share/fonts/truetype/msfonts/*.ttf /usr/lib/X11/fonts/TrueType
TT font'lara ilişkin ölçekleme dosyasını üretmemiz gerekecek. Bu amaçla
ttmkfdir
gibi bir araç var. Eğer yok ise önce onu kuruyoruz. Ölçekleme dosyalarının geleneğe uygun olarak/etc/X11/fonts/TrueType
dizininde oluşturulması doğru olacaktır. Fontların bulunduğu dizindettmkfdir
'i çalıştırıyoruz: (Bu dizin mevcut değilse -0755
izniyle- yaratılmalı.)ttmkfdir > /etc/X11/fonts/TrueType/msfonts.scale
Font listelerini güncelliyoruz:
update-fonts-scale TrueType update-fonts-dir TrueType
Son olarak
/etc/X11/XF86Config-4
'de sunucuya fontların yerini bildiriyoruz. Eğer TT fontların idaresi için font sunucusu kullanmış isek konfigürasyon yerimiz/etc/X11/fs/config
dosyası. Tafsilâtı daha önce anlatıldı.
Windows'la gelen fontların bazıları sorunlu ve bunları ayıklamak gerekiyor.
Ekteki msfonts.list
dosyasında listelenen fontların -en azından
şu güne kadar- sorun çıkarmadığını gördüm. Fakat misâl verilecek olursa,
gerek ttf-commercial
'da gerekse de bendeki listede bulunan
linotype-palatino
'nun Wine
ile problemli olduğunu
raporlayanlar var.
İşler yolunda gitti gibi gözüküyor. Font listeleri sorunsuzca üretildi. Fakat daha sonra vurgulanacağı gibi font listelerinin ekstra bir son işlemden geçmemesi halinde AbiWord ile uyumsuzluk göstermesi söz konusu. Bu meseleyi ilgili yerde değerlendirmek üzere sistemdeki estetik müdahalelere devam edelim.
El değmemiş bir XF86Config-4
dosyasındaki font patikalarını
incelediğimizde şunu görürüz: 100dpi biteşlem fontlar, 75dpi'ın önündedir ve
bunun sonucu da öküz gözü görünümünde menülerdir :) Bunu önlemek için 75dpi
fontları 100dpi'ın üstüne alıyoruz. Kritik işlemler olmamakla beraber gereksiz
font satırlarını siliyor ve ttf-commercial
'ın eklediği dizini de
daha mantıksal bir yere alıyoruz.
/etc/X11/XF86Config-4
:Section "Files" FontPath "/usr/lib/X11/fonts/misc" FontPath "/usr/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/lib/X11/fonts/Type1" FontPath "/usr/lib/X11/fonts/TrueType" FontPath "/usr/lib/X11/fonts/Speedo" FontPath "/usr/lib/X11/fonts/75dpi" FontPath "/usr/lib/X11/fonts/100dpi" EndSection
Sıradan bir kurulumda aksi bir gelişmeyi düşünmüyorum ama yine de TrueType
ve Type1 fontların kullanılabilmesi için gereken modüller olan:
freetype
ve type1
'in X sunucusunda hazır bulunup
bulunmadığını da kontrol edelim. Şöyle bir şeyler görmeniz lâzım:
Section "Module" ... Load "freetype" Load "type1" ... EndSection
Test:
Kısa bir test prosedürü bizi bekliyor. Önce X sunucusunu al baştan yapalım.
Eğer X font sunucusu kurulu olsaydı bir de onu tekrar başlatmamız gerekecekti.
(/etc/init.d/xfs restart
)
Acaba TT fontları sistem görüyor mu? Kurulu fontların alâmet-i farikası
microsoft
olduğuna göre işte bunun testi:
xlsfonts | grep microsoft
Ekranınız şöyle bir taşıyorsa tamamdır, fontlar kurulu... Hemen TT destekli bir programı meselâ Mozilla'yı çalıştıralım. Eğer herşey yolunda gitmiş ise TT fontların keyfini çıkarabilirsiniz.
Type1 (Postscript) fontlar
Gtk tabanlı programlar biteşlem ve Type1 (yani postscipt) fontları birlikte
kullanmaktadır. Şu aşamada herhangi bir Gtk programında meselâ
gnumeric
'de baskı önizleme yapmayı denersek türkçe karakterlerde
sorun olduğunu gözleyebiliriz. Bunu gidermek için Type1 font listeleriyle
(ölçekler ve alias eşlemeleri) uğraşacağız. Debian'da her türlü
fontun organizasyonu defoma
yani Debian Font Manager
araçları ile yürütülüyor. Özellikle TT fontların kurulumuna nispetle
yapılandırması çok daha zor olan Type1 fontlar için bu araç seti geniş
imkânlar sağlıyor. Defoma ile yapılacak düzenlemelerde işin bir
miktar erbabı olmanız gerekmekte. Bu bölümde problemleri halletmek için dipsiz
kuyuya dalmadan KISS prensibini kullanacağız ;)
Hedef /etc/X11/fonts/Type1/gsfonts-x11.scale
ve yine aynı
dizindeki /etc/X11/fonts/Type1/gsfonts-x11.alias
dosyaları. Bu
dosyaları açarak iso8859-9
satırları ekleyeceğiz. Ekleme yapmak
yerine dosyada zaten bulunan ve işimize yaramayan iso8859-2
'li
satırları değiştirmek daha pratik olacaktır. O halde yine VI'e başvuralım:
cd /etc/X11/fonts/Type1 cp gsfonts-x11.scale gsfonts-x11.scale.orig vi gsfonts-x11.scale cp gsfonts-x11.alias gsfonts-x11.alias.orig vi gsfonts-x11.aliasVI komut satırında şöyle yapıyoruz: (her iki dosya için)
:%s/8859-2/8859-9/g
Ölçekleri düzenlemek yetmez, fonts.dir
'da benzer şekilde
olmalı. Aşağıda verilen güncellemelerle zaten bu gerçekleşecektir: (Önce
update-fonts-scale
yapılmalı!)
update-fonts-scale Type1 update-fonts-alias Type1 update-fonts-dir Type1
Test:
X'i yeniden başlatalım. gnumeric
baskı önizlemede türkçe
karakterleri sorunsuzca görüyor olmamız lâzım.
Bu iltifatlardan sonra dokümandaki birkaç küçük yazım hatasına değinmek istiyorum:
1) X Window başlığının altında konfigürasyon anlatılırken ve ilk örnek kod verilirken şöyle yazılmış:
/etc/X11/XF84Config-4 dosyasında: ...
Doğrusu ise:
/etc/X11/XF86Config-4 dosyasında: ...
olmalı.
2) Bitmap fontlar anlatılırken ikinci örnek kodda şöyle yazılmış:
cp ~/tr/tr-resources /etc/X11/Xresources
Doğrusu ise:
cp ~/tr/tr-xresources /etc/X11/Xresources
olacak.
FZ (hata ayıklayıcı ;-)