Bagaimana cara menambahkan lokal ke server ubuntu?

178

Saat ini saya memiliki lokal tersebut:

locale -a

C
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
POSIX

Bagaimana cara saya menginstal ru_RUlokal ke server saya?

Cahaya Perak
sumber

Jawaban:

254
  1. Periksa lokasi mana yang didukung:

    locale -a
    
  2. Tambahkan lokal yang Anda inginkan (misalnya ru):

    sudo locale-gen ru_RU
    sudo locale-gen ru_RU.UTF-8
    
  3. Jalankan perintah pembaruan ini:

    sudo update-locale 
    
PocketSam
sumber
26
... lalu jalankansudo update-locale
Justin Force
3
Apa yang Anda lakukan jika tidak didukung?
Kimble
4
Bisakah Anda memperluas mengapa keduanya ru_RUdan ru_RU.UTF-8dibutuhkan? Saya tidak tahu banyak tentang lokal.
Sopalajo de Arrierez
15
Jika Anda bekerja dengan php5-fpm, Anda perlusudo service php5-fpm restart
Stalinko
3
Ini persis apa yang saya butuhkan, tetapi saya harus me-restart Apache untuk membuatnya berfungsi ... terima kasih!
Jabari
53

Saya akan pergi rute lain, yang IMO lebih cocok untuk gaya Ubuntu. Gunakan paket yang disediakan . Ada paket untuk setiap lokal, dan mereka melakukan semua pekerjaan untuk Anda ... tidak perlu mengedit / var file, yang saya selalu percaya tidak dimaksudkan untuk diedit secara manual.

sudo apt-get install language-pack-XX

di mana XX berarti kode bahasa. Menginstal bahasa akan menginstal juga semua varian khusus negara (misalnya, menginstal bahasa-paket-itu akan menginstalnya it_CH.utf8 dan it_IT.utf8, menginstal untuk NL akan menginstal nl_AW, nl_AW.utf8, nl_BE.utf8 dan nl_NL.utf8 ).

Palantir
sumber
Saya pikir ini adalah cara terbaik dan paling 'Ubuntu' untuk melakukan ini
Luke Madhanga
4
Tetapi menghasilkan locales menyediakan hal-hal seperti format tanggal lokal, pemisah desimal, set karakter dll. Paket bahasa juga menyediakan terjemahan, yang tidak selalu dimaksudkan.
Oskar Berggren
1
Setuju dengan Oskar. Bahkan lebih kuat jika Anda menganggap instalasi ini untuk server - sebagian besar antarmuka akan tetap dalam bahasa Inggris.
igorsantos07
2
Saya takut ini juga akan mengubah lokal saat ini, tetapi tidak. Semuanya baik-baik saja. Sepertinya pendekatan imo terbaik. Saya tidak terlalu membutuhkan "terjemahan atau hal-hal lain", tetapi jika saya secara khusus menggunakan lokal untuk beberapa alasan, saya berharap itu akan lengkap.
Balmipour
43
  1. periksa lokasi mana yang didukung:

    less /usr/share/i18n/SUPPORTED
    
  2. Tambahkan lokal ke daftar yang dihasilkan

    echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local
    
  3. Regenerasi daftar (itu akan memanggil lokal-gen ...)

     sudo dpkg-reconfigure locales
    
pengguna123231
sumber
4
Saya harus menambahkan kolom kedua: echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local(UTF-8 terjadi dua kali) di Ubuntu 15.04. Kalau tidak, itu akan berhasil.
jfs
16

Saya telah menemukan gen lokal untuk menjadi teman Anda. seperti pada (menambahkan uteb8 ibrani misalnya):

root@world:~# locale-gen he_IL.UTF-8

Anda bahkan dapat mengulanginya seperti ini:

root@world:~# dpkg-reconfigure locales

dan periksa apakah Anda melakukan yang baik:

root@world:~# locale -a

Saya menemukan solusi ini jauh lebih sederhana daripada menambahkan hal-hal ke file teks, meskipun itu yang dilakukannya.

boazr
sumber
6
echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local

Saya mendapatkan pesan berikut di poin 3: "Kesalahan: Entri buruk 'ru_RU.UTF8'"

Ini bekerja untuk saya:

echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local
pengguna123
sumber
Ini berhasil untuk saya. Dalam kasus saya, saya mengalami kesalahan entri yang buruk untuk en_GB locales. Saya telah memperbarui /var/lib/locales/supported.d/mintlocalefile saya untuk berisi baris en_GB UTF-8dan en_GB.UTF-8 UTF-8(UTF-8 tambahan hilang).
Samir Aguiar
4

Gunakan paket bahasa Ubuntu. Semua bahasa yang didukung tersedia dalam repositori default:

apt-cache search language-pack

Contoh lengkap perpindahan lokal dalam versi Ubuntu (server):

jani@example:~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

Semua lokal yang tersedia (yaitu sudah terpasang) dapat didaftar dengan:

locale -a

Lokal saya saat ini adalah en_IE:

jani@example:~$ locale
LANG=en_IE.UTF-8
LANGUAGE=
LC_CTYPE="en_IE.UTF-8"
LC_NUMERIC="en_IE.UTF-8"
LC_TIME="en_IE.UTF-8"
LC_COLLATE="en_IE.UTF-8"
LC_MONETARY="en_IE.UTF-8"
LC_MESSAGES=POSIX
LC_PAPER="en_IE.UTF-8"
LC_NAME="en_IE.UTF-8"
LC_ADDRESS="en_IE.UTF-8"
LC_TELEPHONE="en_IE.UTF-8"
LC_MEASUREMENT="en_IE.UTF-8"
LC_IDENTIFICATION="en_IE.UTF-8"
LC_ALL=
jani@example:~$ date
Sat Nov  1 15:36:51 UTC 2014
jani@example:~$

Karena saya tidak memiliki ru lokal saya harus menginstal paket bahasa ru:

jani@example:~$ sudo apt-get -y install language-pack-ru
[..]
Generating locales...
  ru_RU.UTF-8... done
  ru_UA.UTF-8... done
Generation complete.
jani@example:~$ 

Sekarang ru lokal tersedia. Lokal sistem default diatur dengan mengedit /etc/default/locale:

jani@example:~$ sudo vi /etc/default/locale
# Created by cloud-init v. 0.7.5 on Mon, 27 Oct 2014 18:46:13 +0000
LANG="ru_RU.UTF-8"
LC_MESSAGES=POSIX
jani@example:~$

Login ulang dan periksa lokal baru Anda:

jani@example:~$ locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES=POSIX
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
jani@example:~$ date
Сб. нояб.  1 15:43:45 UTC 2014
jani@example:~$ 
pengguna272735
sumber
2

Ubah /etc/locale.gen, hapus komentar atau tambahkan lokal yang ingin Anda hasilkan. Kemudian jalankan sudo locale-gen.

Anda dapat memeriksa apakah lokal ditambahkan locale -a, yang akan menampilkan semua lokal.

hunse
sumber
oh, gen lokal saya membuat banyak lokal, mengabaikan file locale.gen. Jadi gunakan saran ini dengan hati-hati.
Dzenly
0
  1. Periksa lokasi mana yang sudah didukung dalam distribusi Anda. Buka atau catfile /usr/share/i18n/SUPPORTEDdan salin lokal yang diinginkan untuk ditambahkan.
  2. pada terminal masuk sudo locale-gen locale_name.

    Sebagai contoh sudo locale-gen de_DE.iso885915@euro

  3. memasukkan sudo update-locale

  4. Periksa apakah lokal sudah diinstal dengan locale -a

BugShotGG
sumber
0

Tidak dapat berkomentar jadi saya harus menambahkan ini sebagai jawabannya.

Saya perlu menambahkan jenis lokal 'khusus' sr_RS.utf8@latin di Ubuntu.

Perintah:

sudo locale-gen sr_RS.utf8@latin

tidak menambahkan @latin ke lokal yang tersedia. Agar berhasil dalam perintah itu akan terlihat seperti ini:

sudo locale-gen [email protected]

Perintah:

sudo locale -a

sekarang menunjukkan:

sr_RS
sr_RS@latin
sr_RS.utf8
sr_RS.utf8@latin

Perhatikan perbedaan sintaks antara hasil locale -adan cara itu ditambahkan oleh locale-genperintah.

Milan Oparnica
sumber
-2

Saya melakukan hal-hal dengan cara yang mirip untuk menerapkan sistem lokal lebar tanpa me-reboot atau harus keluar.

Pertama, unduh paket bahasa:

sudo apt-get install language-pack-ru-base

Selanjutnya, periksa versi mana yang didukung:

less /usr/share/i18n/SUPPORTED | grep ru_RU

Sekarang, terapkan hasilnya (hampir selalu menggunakan versi UTF-8 untuk hampir semua bahasa!):

echo 'ru_RU.UTF-8 UTF-8' | sudo tee /var/lib/locales/supported.d/local
sudo dpkg-reconfigure locales

Akhirnya, perbarui file default Anda, sumber, dan kemudian Anda selesai:

echo 'LANG=ru_RU.UTF-8' | sudo tee /etc/default/locale

terapkan perubahan pada sistem:

. /etc/default/locale
LANGUAGE=ru_RU.UTF-8

dan periksa hasil Anda:

locale
mchid
sumber
Catatan: Jika Anda menjalankan Ubuntu biasa dan bukan server Ubuntu, perubahan tidak akan berjalan melampaui konsol (jika Anda memutuskan untuk membuka tab baru atau menutup terminal) sampai setelah waktu berikutnya Anda masuk. Namun, menggunakan server Ubuntu Anda biasanya harus masuk untuk membuka konsol baru sehingga tidak masalah.
mchid
Pertanyaan ini adalah tagget dengan server . Dan siapa dan mengapa menurunkan yang satu ini, tolong jelaskan.
Nikos Alexandris