Locale (Türkçe)
Yerel ayarlar, glibc paketi tarafından kullanılır ve diğer yerel ayarlara duyarlı programlar veya kütüphaneler tarafından metin renderlama, bölgesel para birimi değerlerinin doğru şekilde görüntülenmesi, tarih ve saat formatları, alfabetik özellikler ve diğer yerel spesifik standartlar için kullanılır.
Yerel ayar oluşturma
Yerel adlar genellikle şu şekilde olur:dil[_bölge][.karakterseti][@eklenti]
, burada dil bir ISO 639 dil kodu( örneğin, İngilizce için "en" ve Türkçe için "tr" ), bölge bir ISO 3166 ülke kodu( örneğin, Amerika Birleşik Devletleri için "US" ve Türkiye için "TR" ), karakterseti ise Karakter seti yani ISO-8859-1 veya UTF-8 gibi, karakter kodlamasını belirtir. Daha fazlası için setlocale(3).
Etkin yerel ayarların bir listesini almak için şunu çalıştırın:
$ locale --all-locales
Bir yerel ayarın sistemde etkinleştirilebilmesi için önce oluşturulması gerekir.Bu, /etc/locale.gen
dosyasındaki ilgili girdilerin yorumu kaldırıldıktan sonra locale-gen çalıştırılarak gerçekleştirilebilir. Aynı zamanda, istenmeyen girdilere yorum ekleyerek devre dışı bırakabilirsiniz. Bunu yaparken diğer kullanıcılar ve belirli bazı #Değişkenler.
Örneğin Türkçe için , tr_TR.UTF-8 UTF-8
girdisini yorumdan çıkaralım.( Ve genellikle çeşitli araçlar için yedek olarak kullanılan en_US.UTF-8 UTF-8
satırınıda.):
/etc/locale.gen
... #tr_CY ISO-8859-9 tr_TR.UTF-8 UTF-8 #tr_TR ISO-8859-9 ... #en_SG ISO-8859-1 en_US.UTF-8 UTF-8 #en_US ISO-8859-1 ...
Dosyayı kaydedin ve aşağıdaki komudu çalıştırarak yerel ayarı oluşturun:
# locale-gen
Yerel ayar ayarlama
Geçerli yerel ayarı ve ilgili ortam değişkenlerini görüntülemek için şunu yazın:
$ locale
Kullanılacak yerel ayar, önceden oluşturulmuş olanlar arasından seçilir ve locale.conf
dosyasında ayarlanır. Bu dosyaların her biri, locale komutunun çıktısı ile aynı formatta ve ortam değişkenlerinin atamalarının satırlarla ayrılmış bir listesini içermelidir.
Daha önce oluşturulmuş olan mevcut yerel ayarları listelemek için şunu çalıştırın:
$ localedef --list-archive
Alternatif olarak, localectl(1) kullanılabilir:
$ localectl list-locales
Sistem yerel ayarını yapılandırma
Sistem yerel ayarını yapılandırmak için, LANG
değişkenini /etc/locale.conf
dosyasına yazın, burada kullandığımız en_US.UTF-8
, /etc/locale.gen
dosyasındaki yorumdan çıkarılmış girdilerin ilk sütunudur :
/etc/locale.conf
LANG=en_US.UTF-8
Alternatif olarak, çalıştırabiliriz :
# localectl set-locale LANG=en_US.UTF-8
Detayları görmek için #Değişkenler ve locale.conf(5).
Kullanıcı oturumu başına sistem yerel ayarını geçersiz kılma
Sistem genelindeki yerel ayar, $XDG_CONFIG_HOME/locale.conf
(genellikle ~/.config/locale.conf
) dosyası oluşturularak veya düzenlenerek her bir kullanıcı için ayrı ayrı geçersiz kılınabilir.
Öncelikli locale.conf
dosyası /etc/profile.d/locale.sh
içinde tanımlıdır .
- Bu, kullanıcı ortamında yerel dili kullanırken günlükleri
/var/log/
içinde İngilizce olarak tutmanıza da olanak tanıyabilir. - Bir
/etc/skel/.config/locale.conf
dosyası oluşturabilirsiniz, böylece useradd ve-m
seçeneği kullanılarak eklenen tüm yeni kullanıcılar~/.config/locale.conf
dosyasını otomatik olarak oluşturacaktır. Daha fazlasını öğrenmek için Users and groups#Changing user defaults.
Yerel ayar değişikliklerini mevcut oturumda kullanma/uygulama
Sistem ve kullanıcı locale.conf
dosyaları oluşturulduktan veya düzenlendikten sonra yapılan değişikliklerin çalışabilmesi için tekrardan oturum açılması gerekir. Mevcut ortamın yeni ayarları kullanmasını sağlamak için LANG
ayarını kaldırın ve /etc/profile.d/locale.sh
kaynağını kullanın:
$ unset LANG $ source /etc/profile.d/locale.sh
LANG
değişkeninin ayarı kaldırılmalıdır, aksi takdirde locale.sh
locale.conf
'daki değerleri güncellemeyecektir. Sadece yeni ve değiştirilen değişkenler yeni oturumda güncellenir; locale.conf
dosyasından kaldırılan değişkenler oturumda ayarlanmaya devam eder.Diğer kullanımlar
Yerel değişkenler Ortam değişkenleri bölümünde açıklandığı gibi standart yöntemlerle de tanımlanabilir.
Örneğin, geliştirme sırasında belirli bir uygulamayı test etmek veya hata ayıklamak için, uygulama aşağıdaki gibi bir şeyle başlatılabilir:
$ LANG=C ./my_application.sh
Benzer şekilde, geçerli kabuktan çalıştırılan tüm işlemler için yerel ayarı ayarlamak için (örneğin, sistem kurulumu sırasında):
$ export LANG=C
Değişkenler
locale.conf
dosyaları aşağıdaki ortam değişkenlerini destekler.
- LANG
- LANGUAGE
LC_ADDRESS
- LC_COLLATE
LC_CTYPE
LC_IDENTIFICATION
LC_MEASUREMENT
LC_MESSAGES
LC_MONETARY
LC_NAME
LC_NUMERIC
LC_PAPER
LC_TELEPHONE
- LC_TIME
Yukarıdaki LC_*
değişkenlerinin tam anlamı locale(7) sayfasında bulunabilirken, tanımlarının ayrıntıları locale(5) sayfasında açıklanmıştır.
LANG: varsayılan yerel ayar
Bu değişken için ayarlanan yerel ayar, ayarlanmamış tüm LC_*
değişkenleri için kullanılacaktır.
LANG
değişkenini es_ES.UTF-8
ve LC_MESSAGES
(mesaj çevirisi için kullanıcı arayüzü) değişkenini en_US.UTF-8
olarak ayarlayabilirsiniz.LANGUAGE: yedek yerel ayarlar
Çeviriler için gettext kullanan programlar, normal değişkenlere ek olarak LANGUAGE
seçeneğinide dikkate alır. Bu, kullanıcıların belirli bir sırayla kullanılacak yerel ayar listesi belirtmelerine olanak tanır. Tercih edilen yerel ayar için bir çeviri mevcut değilse, varsayılan yerine benzer bir yerel ayarın başka bir çevirisi kullanılacaktır. Örneğin, Avustralyalı bir kullanıcı ABD yazımı yerine İngiliz yazımına geri dönmek isteyebilir:
locale.conf
LANG=en_AU.UTF-8 LANGUAGE=en_AU:en_GB:en
en
veya en_US
olarak adlandırmaz veya takma ad olarak kullanmaz, bunun yerine C
olan varsayılan yerel ayarı kullanır. Eğer LANGUAGE
içinde İngilizceden sonra İngilizce olmayan bir yerel ayar yerleştirilirse, örneğin LANGUAGE=en_US:en:tr_TR
, o zaman uygulamalar İngilizce dizeler mevcut olmasına rağmen ikincil yerel ayarı seçebilir.[3] Çözüm, C
yerel ayarını her zaman açıkça İngilizceden sonra yerleştirmektir. Örneğin LANGUAGE=en_US:en:C:tr_TR
.LC_TIME: tarih ve saat biçimi
Eğer LC_TIME
en_US.UTF-8
olarak ayarlanmışsa, örneğin, tarih biçimi “MM/DD/YYYY” olacaktır. Eğer ISO 8601 tarih biçimi olan “YYYY-MM-DD” kullanılmak isteniyorsa:
locale.conf
LC_TIME=en_DK.UTF-8
Geçerli zaman damgasını yerel tarih ve saat biçiminizi kullanarak date +“%c”
ile yazdırabilirsiniz.
glibc 2.29 sürümünde bir hatayı düzeltti, en_US.UTF-8
amaçlandığı gibi 12 saat biçiminde gösterilmeye başlandı. Eğer 24 saat formatını kullanmak istiyorsanız, LC_TIME=C.UTF-8
kullanın.
LC_TIME
'ı kullanmayı durdurmuştur (Bug 1429578).LC_COLLATE: sıralama
Bu değişken, sıralama ve düzenli ifadeler için kullanılan dizilim kurallarını yönetir.
Değeri C
olarak ayarlamak, örneğin ls komutunun nokta ile başlayan dosyaları önce sıralamasını, ardından büyük harfli ve küçük harfli dosya adlarının sıralanmasını sağlar:
locale.conf
LC_COLLATE=C
Ayrıca bakabilirsiniz. [4].
Arch, olası sorunları çözmek için /etc/profile
içindeki LC_COLLATE=C
ayarını kullanırdı, ancak bu yöntem artık kullanılmamaktadır.
LC_ALL: sorun giderme
Bu değişken için ayarlanan yerel ayar, ayarlanmış olsun ya da olmasın LANG
ve diğer tüm LC_*
değişkenlerini her zaman geçersiz kılacaktır. Eğer LC_ALL
değişkeni C
veya C.UTF-8
olarak ayarlanmışsa, LANGUAGE
değişkenini de geçersiz kılacaktır.
LC_ALL
, locale.conf
dosyalarında ayarlanamayan tek LC_*
değişkenidir: yalnızca test veya sorun giderme için kullanılması amaçlanmıştır, örneğin /etc/profile
dosyası içinde.
Sorun Giderme
Karakter Kodlama sorunları için Character encoding#Troubleshooting kısmına göz atın.
Sistemim hala yanlış dil kullanıyor
Ortam değişkenlerinin locale.conf
dışında başka dosyalarda yeniden tanımlanmış olması mümkündür. Ayrıntılar için Environment variables#Defining variables bölümüne bakınız.
Eğer GNOME gibi bir masaüstü ortamı kullanıyorsanız, bu ortamın dil ayarları locale.conf
içindeki ayarları geçersiz kılıyor olabilir.
KDE Plasma ayrıca sistem ayarları aracılığıyla arayüzün dilini değiştirmeye izin verir. Değişiklikten sonra masaüstü ortamı hala varsayılan dili kullanıyorsa, adresindeki dosyayı silin ~/.config/plasma-localerc
(önceden): ~/.config/plasma-locale-settings.sh
sorunu çözmelidir.
Eğer accountsservice ile birlikte bir görüntü yöneticisi kullanıyorsanız, Display manager#Set language for user session bölümündeki talimatları izleyin.
LightDM yüklüyse kullanıcının yerel ayarını ayarlamak için otomatik olarak accountsservice kullanacaktır. Aksi takdirde, LightDM kullanıcı oturumu yapılandırmasını ~/.dmrc
içinde saklar. İstenmeyen bir yerel ayarın oradan da alınması mümkündür.
Özel bir yerel ayar kullanmak sorunlara neden oldu
Resmi olarak desteklenmeyen bir yerel ayarı yüklerken (örneğin, locale-en_xxAUR), bazı uygulamalarda çalışmayan dead/compose tuşları veya eksik yerel ayarları bildiren uygulamalar gibi bazı sorunlar ortaya çıkabilir.
Özel bir yerel ayar yükledikten sonra, bu sorunları çözmek için manuel müdahale gerekir.
iki yaklaşım vardır (en_XX.UTF-8
'i indirmiş olduğunuz özel yerel ayarınızın tanımlayıcısıyla değiştirin):
LC_CTYPE'ı ayarla
LC_CTYPE
öğesini resmi olarak desteklenen bir yerel ayara (en_US.UTF-8
gibi) ayarlayın, örn:
/etc/locale.conf
LANG=en_XX.UTF-8 LC_CTYPE=en_US.UTF-8
Xlib veritabanını değiştirme
Aşağıdakileri ekleyerek Xlib veritabanını değiştirin:
/usr/share/X11/locale/locale.dir
en_US.UTF-8/XLC_LOCALE en_XX.UTF-8 en_US.UTF-8/XLC_LOCALE: en_XX.UTF-8
/usr/share/X11/locale/compose.dir
en_US.UTF-8/Compose en_XX.UTF-8 en_US.UTF-8/Compose: en_XX.UTF-8
ABD yerel ayarı ile metrik ölçümler
Bazı araçlarda, nvme-cli
gibi, birim türü locale
ayarlarına göre seçilir; bu nedenle, ABD yerel ayarları kullanılıyorsa sıcaklıklar Fahrenheit cinsinden gösterilir. Örneğin sıcaklıkları Celsius cinsinden almak ve aynı zamanda ABD yerel ayarıyla Metrik ölçümleri kullanmak istiyorsanız, LC_MEASUREMENT=metric
öğesini /etc/locale.conf
öğesine ekleyin, paket sadece ülke yerine LC_MEASUREMENT
öğesini ararsa işe yarayacaktır. [5]