Locale (Türkçe)

From ArchWiki


Çeviri Durumu: Bu makale, Locale makalesinin çevirisidir. Son çeviri tarihi (yıl-ay-gün şeklinde): 2024-11-18. Eğer makalenin İngilizce sürümünde değişiklik yapılmış ise çevirinin senkronize edilmesine yardımcı olabilirsiniz. Çevirmenliğe dair bilgi edinmek için Telegram grubumuzu ziyaret edebilirsiniz. Çevrilmiş tüm makelelere buradan erişebilirsiniz.

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
Not:
  • locale-gen ayrıca glibc her güncellendiğinde de çalıştırılır. [1]
  • UTF-8 diğer karakter setlerine göre daha çok önerilir. [2]

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 .

İpucu:
  • 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
Not: Önce 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.

Note: Programlar, yerel ayarlara bağlı değerleri ararken öncelik sırasını takip eder.

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.

İpucu: İspanya'da bir İngiliz kullanıcı olduğunuzu ve programlarınızın sayıları ve tarihleri İspanyol geleneklerine göre işlemesini ve yalnızca mesajların İngilizce olmasını istediğinizi varsayalım. O zaman 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
Not: Birçok uygulama İngilizce yerel ayarlarını 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.

Note: Programlar, tarihi formatlamak için bu değişkeni her zaman dikkate almazlar. Örneğin, date(1) kendi parametrelerini kullanır ve Firefox, 57 ile 84 arasındaki sürümlerde 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]

Ayrıca bkz.