Gnome3'te özel yerel ayarlar (Fedora 20'de)


15

Kendi özel öğelerimi oluşturdum localeve /etc/locale.confsanal bir konsolda (Ctrl + Alt + F2) oturum açtığımda başarılı bir şekilde etkili olanları yerleştirdim . Gnome3 oturumumda ise bu değişkenler ayarlanmamış. Terminal uygulamaları için onları yerleştirebilirim, .bashrcancak Thunderbird ve Pidgin gibi grafik uygulamalarında bana yardımcı olmaz.

Bu ipuçlarını izlemeye çalıştım: GNOME oturumu tarafından kullanılmayan kabuk başlatma işlemindeki yerel ayar ayarları ve hatta bir .pam_environmentdosya oluşturarak Locale - ArchWiki'deki hatayı taklit etti , ancak locales hala Gnome3 tarafından ayarlananlardır. Gnome ayarlarında bir yapılandırma diyalogu vardır, ancak yalnızca çok sınırlı bir dizi önceden tanımlanmış localekombinasyon ayarlanmasına izin verir ve bunları özelleştirmenin bir yolu yoktur.

Giriş dizinimdeki ilgili dosyalar:

user@localhost:~$ ls -lah .dmrc .pam_environment .session .xsession .xsessionrc
lrwxrwxrwx. 1 user user 16 12. Jun 08:57 .dmrc -> /etc/locale.conf
lrwxrwxrwx. 1 user user 16 11. Jun 20:23 .pam_environment -> /etc/locale.conf
lrwxrwxrwx. 1 user user 16 12. Jun 09:09 .session -> /etc/locale.conf
lrwxrwxrwx. 1 user user 16 12. Jun 09:07 .xsession -> /etc/locale.conf
lrwxrwxrwx. 1 user user  9 13. Jun 11:22 .xsessionrc -> .xsession
-rw-rw-r--. 1 user user 66 13. Jun 11:13 .profile

user@localhost:~$ cat .profile 
source /etc/locale.conf

İçeriği /etc/locale.conf:

LANG="en_US.utf8"
LC_TIME="de_MY.utf8" # NB: de_MY
LC_MONETARY="de_DE.utf8"
LC_PAPER="de_DE.utf8"
LC_NAME="de_DE.utf8"
LC_ADDRESS="de_DE.utf8"
LC_TELEPHONE="de_DE.utf8"
LC_MEASUREMENT="de_DE.utf8"
LC_IDENTIFICATION="de_DE.utf8"

localeGnome3'te özel s ayarlamayı bilen var mı?

Yanıtlar:


9

Arkaplan bilgisi

Çözümü Fedora 21 üzerinde GNOME Shell 3.14.4 ile test ettim, ancak bunun diğer sürümlere de uygulanabileceğine inanıyorum.

Anlaşılması gereken ilk şey, GNOME masaüstü ortamının sistem genelindeki yerel ayar tanımlarını geçersiz kılması ve bundan etkilenmemesi /etc/locale.conf. Ayrıca, kendi yerel yapılandırmasına sahip olan ve sistem veya GNOME ayarlarını kullanmayan uygulamalar da olabilir. Bu kılavuzda, yerel ayarları ihtiyaçlarınıza ve GNOME'a göre özelleştirmenin bir yolunu anlatacağım ve sistem yerel ayar perspektifinden tutarlı olacaktır.


Mevcut Yerel Durum Durumunu Kontrol Etme

Sistem Genelinde Ayarlar

Gönderen Fedora 21 Sistem Yöneticisi Kılavuzu :

Sistem çapında yerel ayarlar, sistem önleme programı /etc/locale.conftarafından erken önyüklemede okunan dosyada saklanır . Tek tek programlar veya tek tek kullanıcılar bunları geçersiz kılmadığı sürece, yapılandırılan yerel ayarlar her hizmet veya kullanıcı tarafından devralınır./etc/locale.conf

Geçerli yerel ayar durumunu görmek için şunu çalıştırabiliriz:

$ localectl status
   System Locale: LANG=en_US.UTF-8
                  LC_NUMERIC=en_US.UTF-8
                  LC_TIME=en_US.UTF-8
                  LC_MONETARY=en_US.UTF-8
                  LC_PAPER=en_US.UTF-8
                  LC_MEASUREMENT=en_US.UTF-8
       VC Keymap: us
      X11 Layout: us

GNOME Ayarları

$ gsettings get org.gnome.system.locale region
'en_US.UTF-8'

GNOME'un yalnızca bir ayarı vardır. Gnome-control-set_localed_locale() center'ın kaynak koduna hızlı bir şekilde bakıldığında , işlev çağrıldığında, aşağıdaki tüm kategorileri (LC_TIME, LC_NUMERIC, LC_MONETARY, LC_MEASUREMENT, LC_PAPER), tanımlanmış olan aynı yerel ayara ayarlar gibi görünüyor org.gnome.system.locale region.

Özel bir yerel ayar oluşturmadan farklı yerel ayarların karıştırılması imkansız görünüyor, ancak neyse ki çok karmaşık bir görev değil.


Özel Yerel Ayar Oluşturma

Bence açıklamanın en kolay yolu örnek. Benim özel durumda ben öncelikle İbranice (dayalı bir özel yerel ayarı, olmasını istedik he_IL ) ama LC_NAME ile gelen LC_MESSAGES en_US ve LC_TIME (ile değiştirilmiş first_weekdayve first_workdayitibaren) en_GB .

Yerel Ayar Tanımlama Dosyalarını Yakalama

Hangi bölgeleri karıştırmak istediğinize dair bir fikriniz olmalıdır. İlk olarak, içinde bulunabilecek ilgili tanım dosyalarını bulmamız gerekiyor /usr/share/i18n/locales/. Örneğime geri dönersek , aşağıdakilere ihtiyacım vardı: he_IL , en_US ve en_GB . Evimde bir çalışma klasörü ayarladım ve gerekli dosyaları buraya kopyaladım:

$ cd /usr/share/i18n/locales
$ mkdir -v ~/custom-locale ; cp -v he_IL en_US en_GB ~/custom-locale/

Yeni Bir Tanım Dosyası Oluşturma

Yerel ayarımı hc_IL olarak adlandırmaya karar verdim ve he_IL'i temel aldım . Aşağıdaki satırlar, yeni bir dosya oluşturmak hc_ILgelen içeriği ile he_ILbir dize yinelenme tamamının yerini ve yolda he_IL ile dosya içindeki hc_IL .

$ cd ~/custom-locale/
$ sed 's/he_IL/hc_IL/g' he_IL > hc_IL

Yeni Tanım Dosyasını Değiştirme

Şimdi yeni yerel ayarları ihtiyaçlarınıza göre özelleştirebiliriz. Yeni oluşturulan dosyayı ~/custom-locale/hc_ILfavori metin düzenleyicinizle açın. Ben vim kullanın (yerel tanımı dosyaları için uygun sözdizimi vurgulama vardır):

$ vim ~/custom-locale/hc_IL

Henüz favori editörünü seçmemiş olanlar ve vim çayları değil, gedit kullanabilir :)

$ gedit ~/custom-locale/hc_IL

Dosya yapısı çok karmaşık değil. Esasen, bölümlerden inşa edilmiştir. Gönderen yerel (5) man sayfaları:

Yerel ayar tanımının her yerel ayar kategorisi için bir bölümü vardır. Her bölüm mevcut başka bir yerel ayardan kopyalanabilir veya sıfırdan tanımlanabilir. Kategori kopyalanması gerekiyorsa, tanımında tek geçerli anahtar kelimedir kopya kopyalanması gerekir yerel isminin takip eder.

Kopyalama kavramı çok faydalıdır. Zaman kazandırır ve ortaya çıkan dosya net ve özlüdür. Örneğin, bölümlerin tamamını kopyalamak yerine aşağıdakilere sahip olabilirsiniz:

LC_MESSAGES
copy "en_US"
END LC_MESSAGES

Yerel ayar tanımı dosyasındaki belgelerin tamamına şu yollardan erişilebilir:

$ man 5 locale

Her ne kadar, sadece mevcut olanların bir karışımı olan özel bir yerel ayar oluşturmak istiyorsanız, her ayrıntıyı anlamaya gerek yoktur.

Benim durumumda aşağıdaki kategorileri ve anahtar kelimeleri değiştirdim:

  • LC_IDENTIFICATION

    title      "Custom Hebrew locale"
    source     "mydomain.ws"
    address    "http:////www.mydomain.ws"
    contact    ""
    email      "admin@mydomain.ws"
    tel        ""
    fax        ""
    language   "Hebrew"
    territory  "Israel"
    revision   "1.0"
    date       "2015-04-21"
    

    Not: LC_IDENTIFICATION bölümündeki tüm " category .. " satırları , dosya oluşturma sırasında kullanılarak değiştirildi . Artık onlara dokunmaya gerek yok.sed

  • LC_TIME

    Tüm bölümü en_GB'den kopyaladım ve yalnızca haftanın ilk gününü ve ilk iş gününü gösteren satırları değiştirdim:

    first_weekday 1
    first_workday 1
    
  • Kalan kategorileri oldukları gibi bıraktım veya içeriklerini aşağıdaki gibi kopyalama yönergesiyle değiştirdim :

    LC_NAME
    copy "en_US"
    END LC_NAME
    

İşte bu, tanım dosyası hazır. Dosyayı kaydetmeyi unutmayın :)

Yeni Yerel Ayarı Derleme ve Kopyalama

Yeni yerel ayarın derlenmesi, root olarak aşağıdaki komut kullanılarak veya sudo kullanılarak yapılır . hc_ILYerel ayarınızla değiştirin :

$ sudo localedef  -c -v -i hc_IL -f UTF-8 hc_IL.UTF-8

Derleme başarılı olursa, derlenen yerel veri arşiv dosyasına eklenir /usr/lib/locale/locale-archive.

Yeni yerel ayar tanımı dosyasını yerel ayar tanımları dizinine kopyalayın. hc_ILYerel ayarınızla değiştirin :

$ sudo cp -v hc_IL /usr/share/i18n/locales/

Yeni Yerel Ayarı Etkinleştirme

Bu adımda sistemi ve GNOME'u yeni yerel ayarı kullanacak şekilde yapılandırmak istiyoruz.

Sistem Genelinde Ayarlar

Düzen /etc/locale.confgibi dosya kökü ve set her satır bununla başlar LC_yeni yerele. Örneğin:

LANG=en_US.UTF-8
LC_NUMERIC=hc_IL.utf8
LC_TIME=hc_IL.utf8
LC_MONETARY=hc_IL.utf8
LC_PAPER=hc_IL.utf8
LC_MEASUREMENT=hc_IL.utf8

GNOME Ayarları

GNOME'da yeni yerel ayarı etkinleştirmek için aşağıdaki komutu çalıştırın. hc_ILYerel ayarınızla değiştirin :

$ gsettings set org.gnome.system.locale region "hc_IL.utf8"

Yeni Ayarları Doğrulama

Son adım, her şeyin beklendiği gibi çalıştığını doğrulamaktır. Tüm ayarları yeniden yüklemek benim için en kolay olanı yeniden başlatmaktı.

  • Sistem yapılandırmasının doğru olup olmadığını kontrol etmek için "Mevcut Yerel Durum Durumunu Kontrol Etme" bölümüne bakın.
  • GNOME Kabuğu ve yerel ayara bağlı uygulamaları (grafik ve konsol) kullanın ve yeni yerel ayarda beklendiği gibi davrandıklarını kontrol edin. LC_TIME'ı özelleştirdiyseniz date, tarih biçimini doğrulamak için komutu çalıştırabilirsiniz :

    $ date +%x
    21/04/15
    

Not: Her şey GNOME 3.14 ile Fedora 21'de test edildi. Diğer Linux dağıtımları ek veya farklı adımlar gerektirebilir.

Talimatlarla ilgili herhangi bir sorun bulursanız lütfen yorum yapın.


Bu çalışmaları Tarçın ile Fedora 22'de doğrulayabilirim. Büyük olasılıkla GNOME ile de çalışacaktır.
Dee'Kej

1
Eminim gerçekten çok uğraşırlarsa, özel yerel ayarlar kurmayı biraz daha zorlaştırabilirler.
5heikki

GNOME'u seviyorum ama bu çok saçma. En azından ileri düzey kullanıcılar için yerel ayarlarını kendi istedikleri gibi ayarlamalarına izin verin. Çoğu şey için bir ABD yerel ayarı istiyorum, ancak
yazıcım
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.