it-swarm-tr.com

Debian'a yerel ayar nasıl kurulur / değiştirilir?

Kullanıcı arayüzünün Flemenkçe olduğu bir web uygulaması yazdım. Uygulamadaki tarih dizelerini biçimlendirmek için sistemin tarih ve saat yordamlarını kullanıyorum. Ancak, sistem formatları İngilizce olan tarih dizeleri ancak Hollandaca istiyorum, bu yüzden sistemin yerel ayarlamanız gerekir. Debian'da bunu nasıl yapabilirim? LC_ALL=nl_NL Ayarını denedim, ancak herhangi bir etkisi yok gibi görünüyor:

$ date
Sat Aug 15 14:31:31 UTC 2009
$ LC_ALL=nl_NL date
Sat Aug 15 14:31:36 UTC 2009

Ubuntu masaüstü sistemimde LC_ALL ayarının iyi çalıştığını hatırlıyorum. Bu işi yapmak için ekstra paketler yüklemem gerekir mi yoksa tamamen yanlış mı yapıyorum?

67
Hongli Lai

Düzenle /etc/default/locale ve içeriği şu şekilde ayarlayın:

LANG="nl_NL.UTF-8"

Şu anda hangi yerel ayarları oluşturduğunuzu kontrol edebilirsiniz:

# locale -a

/etc/locale.gen ve etkinleştirmek istediğiniz yerel ayarların satırlarını kaldırır. Sonra bunları çalıştırarak oluşturabilirsiniz:

# locale-gen

Desteklenen yerel ayarların bir listesini /usr/share/i18n/SUPPORTED

Debian wiki hakkında daha fazla bilgi var.

77
David Pashley

locales paketini kurmanız gerekebilir. Bu size hangi yerel ayarları oluşturacağınızı soracaktır. Zaten kuruluysa, dpkg-reconfigure locales daha fazla yerel ayar oluşturmanıza olanak tanır.

68
pgs

Buradaki yanıtlar, başka yerlerde olduğu gibi eksiktir. Birkaç yerden bilgileri bir araya getirdikten sonra, benim için işe yarayan şey (1) istediğim yerel ayarın kullanılabilir olduğundan emin olun (eğer değilse üretin) sonra (2) yerel ayarla ilgili ortam değişkenlerini istenen yerel ayara getirin.

Benim durumumda en_US.UTF-8 bir docker konteynerine programlı olarak (yani etkileşimli olmayan) yüklenmiştir. Ff ihtiyacım olanı başardı ama interaktif bir Shell'de iyi çalışmalı.

apt-get update

# Install locales package
apt-get install -y locales

# Uncomment en_US.UTF-8 for inclusion in generation
sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen

# Generate locale
locale-gen

# Export env vars
echo "export LC_ALL=en_US.UTF-8" >> ~/.bashrc
echo "export LANG=en_US.UTF-8" >> ~/.bashrc
echo "export LANGUAGE=en_US.UTF-8" >> ~/.bashrc

Aynı Kabukta, source ~/.bashrc için env hemen yürürlüğe girer. locale öğesini çağırarak yerel ayarın doğru yapılandırıldığını kontrol edebilirsiniz.

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

Bu konuyla ilgili çok sayıda Soru-Cevap girişi vardı, ancak sadece birkaçı gerçekten yardımcı oldu. Kredinin vadesi gelen kredi:

17
Czar

Bu cevapların hiçbiri benim için, şu yüklü LXC kapsayıcısında işe yaramadı:

lxc-create -n sse-master -t download -n sse-master -- \
    -d debian -r jessie --Arch i386

Her zaman locale-gen, yani herhangi bir yerel ayar oluşturulmuyor (listelenen yok):

$ Sudo locale-gen
Generating locales (this might take a while)...
Generation complete.

Koşu dpkg-reconfigure locales ve bazı yerel ayarların seçilmesi güncellenmedi /etc/locale.gen beklediğim gibi.

Ancak, bu dosyayı el ile değiştirdiğim ve istediğim yerel ayarları kaldırdığımda, locale-gen düzgün çalışmaya başladı:

$ Sudo locale-gen
Generating locales (this might take a while)...
  en_GB.UTF-8... done
  en_US.UTF-8... done
Generation complete.

Ayrıca el ile böyle yerel olarak oluşturmak mümkün:

Sudo localedef -i en_US -f UTF-8 en_US.UTF-8
Sudo localedef -i en_GB -f UTF-8 en_GB.UTF-8

Ancak bu kalıcı bir çözüm değildi: locale-gen olmadan --keep-existing seçeneği, bu tür manuel olarak oluşturulan tüm yerel ayarları, yani /etc/locale.gen.

6
qris

Bir web uygulaması için, sistem varsayılanını zorunlu kılmak yerine programın içinde setlocale () içinde kullanmak daha iyi olabilir yerel ayar uygun şekilde dışarıda ayarlanmalıdır. Bu şekilde daha az gevşek biter.

3
SamB

Benim gibi Ubuntu 14.04 LTS'de, bir şekilde /etc/locale.gen dosyasına sahip olmayanlar için, /var/lib/locales/supported.d/local içine yeni bir yerel ayar ekleyebilir ve ardından şunları çalıştırabilirsiniz:

Sudo dpkg-reconfigure locales

Fransızca (örneğin) yerel ayarı da bu şekilde ekleyebilirsiniz (/var/lib/locales/supported.d/local düzenlemek yerine):

Sudo locale-gen fr_FR fr_FR.UTF-8

ISO-8859-1 yerel ayarının UTF-8 ve fr_FR kod kümelerini oluşturmak ve oluşturmak ve son olarak şunu yazın:

Sudo dpkg-reconfigure locales

işi bitirmek

1
SebMa

Ancak önce gerekli dil paketinin yüklü olması gerekir. Almanca tabanlı VPS'imde önceden yüklenmiş bir İngilizce dil paketi yoktu. Öncelikle yüklediğinizi kontrol edin:

aptitude install language-pack-en
1
valentt