ฉันจะเพิ่ม locale ไปยังเซิร์ฟเวอร์ ubuntu ได้อย่างไร


178

ปัจจุบันฉันมีที่ตั้งเหล่านั้น:

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

ฉันจะติดตั้งru_RUlocale ไปยังเซิร์ฟเวอร์ของฉันได้อย่างไร

คำตอบ:


254
  1. ตรวจสอบสถานที่ที่รองรับ:

    locale -a
    
  2. เพิ่มสถานที่ที่คุณต้องการ (ตัวอย่างru):

    sudo locale-gen ru_RU
    sudo locale-gen ru_RU.UTF-8
    
  3. เรียกใช้คำสั่งปรับปรุงนี้:

    sudo update-locale 
    

26
... จากนั้นก็วิ่งsudo update-locale
Justin Force

3
คุณจะทำอย่างไรหากไม่รองรับ
Kimble

4
คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับสาเหตุที่จำเป็นru_RUและru_RU.UTF-8ความต้องการได้หรือไม่? ฉันไม่ค่อยรู้เรื่องตำแหน่งที่ตั้งมากนัก
Sopalajo de Arrierez

15
หากคุณทำงานกับ php5-fpm คุณจะต้องใช้sudo service php5-fpm restart
Stalinko

3
นี่คือสิ่งที่ฉันต้องการ แต่ฉันต้องรีสตาร์ท Apache เพื่อให้มันทำงานได้ ... ขอบคุณ!
Jabari

53

ฉันจะไปอีกเส้นทางหนึ่งซึ่งเป็น IMO ที่เหมาะกับสไตล์ Ubuntu มากขึ้น ใช้แพ็คเกจที่ให้มา มีแพ็คเกจสำหรับแต่ละสถานที่และพวกเขาทำทุกอย่างให้คุณ ... ไม่จำเป็นต้องแก้ไข / var ไฟล์ซึ่งฉันเชื่อเสมอว่าไม่ได้ถูกแก้ไขด้วยตนเอง

sudo apt-get install language-pack-XX

โดยที่ XX ย่อมาจากรหัสภาษา การติดตั้งภาษาจะทำการติดตั้งตัวแปรเฉพาะประเทศด้วย (เช่นการติดตั้งภาษาแพ็คมันจะติดตั้ง it_CH.utf8 และ it_IT.utf8 การติดตั้งสำหรับ NL จะติดตั้ง nl_AW, nl_AW.utf8, nl_BE.utf8 และ nl_NL.utf8 )


ฉันคิดว่านี่เป็นวิธีที่ดีที่สุดและ 'Ubuntu' ที่สุดในการทำเช่นนี้
Luke Madhanga

4
แต่การสร้างสถานที่ให้สิ่งต่าง ๆ เช่นรูปแบบวันที่แปลตัวคั่นทศนิยมชุดอักขระเป็นต้นชุดภาษายังมีการแปลซึ่งไม่จำเป็นต้องมีเจตนา
Oskar Berggren

1
เห็นด้วยกับ Oskar ยิ่งแข็งแกร่งยิ่งขึ้นหากคุณพิจารณาว่าการติดตั้งนี้ใช้สำหรับเซิร์ฟเวอร์ - อินเตอร์เฟสส่วนใหญ่จะเป็นภาษาอังกฤษอยู่ดี
igorsantos07

2
ฉันกลัวว่านี่จะเปลี่ยนสถานที่ปัจจุบัน แต่ไม่ ทุกอย่างปกติดี. ดูเหมือน imo Approch ที่ดีที่สุด ฉันไม่ต้องการ "การแปลหรือสิ่งอื่น ๆ " เป็นพิเศษ แต่ถ้าฉันใช้ภาษาเฉพาะด้วยเหตุผลบางอย่างฉันคาดว่ามันจะเสร็จสมบูรณ์
Balmipour

43
  1. ตรวจสอบสถานที่ที่ได้รับการสนับสนุน:

    less /usr/share/i18n/SUPPORTED
    
  2. เพิ่มสถานที่ในรายการที่สร้างขึ้น

    echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local
    
  3. สร้างรายการใหม่ (จะเรียกใช้ locale-gen ... )

     sudo dpkg-reconfigure locales
    

4
ฉันต้องเพิ่มคอลัมน์ที่สอง: echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local(UTF-8 เกิดขึ้นสองครั้ง) บน Ubuntu 15.04 มิฉะนั้นมันใช้งานได้
jfs

16

ฉันพบว่าสถานที่เกิดเหตุเป็นเพื่อนของคุณ ดังใน (การเพิ่ม hebrew utf8 เป็นต้น):

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

คุณสามารถทำใหม่ได้เช่น:

root@world:~# dpkg-reconfigure locales

และตรวจสอบว่าคุณทำได้ดี:

root@world:~# locale -a

ฉันพบวิธีแก้ปัญหานี้ง่ายกว่าการเพิ่มเนื้อหาลงในไฟล์ข้อความแม้ว่าจะเป็นสิ่งที่ทำ


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

ฉันได้รับข้อความต่อไปนี้ ณ จุดที่ 3: "ข้อผิดพลาด: รายการไม่ถูกต้อง 'ru_RU.UTF8'"

งานนี้สำหรับฉัน:

echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local

สิ่งนี้ใช้ได้สำหรับฉัน ในกรณีของฉันฉันมีข้อผิดพลาดรายการที่ไม่ดีสำหรับสถานที่ en_GB ฉันได้อัปเดต/var/lib/locales/supported.d/mintlocaleไฟล์ของฉันเพื่อให้มีบรรทัดen_GB UTF-8และen_GB.UTF-8 UTF-8(ส่วนเสริม UTF-8 ขาดหายไป)
Samir Aguiar

4

ใช้ชุดภาษาของ Ubuntu ภาษาที่รองรับทั้งหมดมีอยู่ในที่เก็บเริ่มต้น:

apt-cache search language-pack

ตัวอย่างเต็มรูปแบบของการเปลี่ยนสถานที่ในเวอร์ชัน Ubuntu (เซิร์ฟเวอร์):

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

ที่ตั้งที่มีอยู่ทั้งหมด (เช่นติดตั้งไว้แล้ว) สามารถแสดงได้ด้วย:

locale -a

ตำแหน่งที่ตั้งปัจจุบันของฉันคือ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:~$

เพราะฉันไม่มีที่ตั้ง ru ฉันต้องติดตั้งชุดภาษา 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:~$ 

ตอนนี้สถานที่ ru มีอยู่ โลแคลดีฟอลต์ของระบบถูกตั้งค่าโดยการแก้ไข/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:~$

ลงชื่อเข้าใช้อีกครั้งและตรวจสอบสถานที่ใหม่ของคุณ:

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:~$ 

2

แก้ไข/etc/locale.genไม่แสดงข้อคิดเห็นหรือเพิ่มสถานที่ที่คุณต้องการสร้าง sudo locale-genจากนั้นเรียก

คุณสามารถตรวจสอบว่ามีการเพิ่มสถานที่ด้วยlocale -aซึ่งจะแสดงสถานที่ทั้งหมด


โอ้ locale-gen ของฉันสร้างโลแคลหลายตันโดยไม่สนใจไฟล์ locale.gen ดังนั้นใช้คำแนะนำนี้ด้วยความระมัดระวัง
Dzenly

0
  1. ตรวจสอบสถานที่ที่ได้รับการสนับสนุนในการกระจายของคุณ เปิดหรือcatไฟล์/usr/share/i18n/SUPPORTEDและคัดลอกโลแคลที่ต้องการเพิ่ม
  2. ใน terminal sudo locale-gen locale_nameใส่

    ตัวอย่างเช่น sudo locale-gen de_DE.iso885915@euro

  3. เข้าสู่ sudo update-locale

  4. ตรวจสอบว่าสถานที่ติดตั้งด้วย locale -a


0

ไม่สามารถแสดงความคิดเห็นดังนั้นฉันต้องเพิ่มนี่เป็นคำตอบ

ฉันต้องการเพิ่มภาษา 'sr_RS.utf8@latin ใน Ubuntu

คำสั่ง:

sudo locale-gen sr_RS.utf8@latin

ไม่เพิ่ม @latin ไปยังโลแคลที่มีอยู่ เพื่อที่จะประสบความสำเร็จในการที่คำสั่งควรมีลักษณะเช่นนี้:

sudo locale-gen sr_RS@latin.utf8

คำสั่ง:

sudo locale -a

ตอนนี้แสดง:

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

เอาใจใส่กับความแตกต่างของไวยากรณ์ระหว่างผลลัพธ์locale -aและวิธีที่มันถูกเพิ่มโดยlocale-genคำสั่ง


-2

ฉันทำสิ่งต่าง ๆ ในลักษณะเดียวกันเพื่อใช้ระบบโลแคลทั้งระบบโดยไม่ต้องรีบูตเครื่องหรือออกจากระบบ

ก่อนอื่นให้ดาวน์โหลดชุดภาษา:

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

ถัดไปตรวจสอบเวอร์ชันที่รองรับ:

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

ตอนนี้ใช้ผลลัพธ์ (เกือบจะใช้รุ่น UTF-8 เกือบทุกภาษา!):

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

ขั้นตอนสุดท้ายให้อัปเดตไฟล์เริ่มต้นจัดหาไฟล์จากนั้นดำเนินการดังนี้

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

ใช้การเปลี่ยนแปลงกับระบบ:

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

และตรวจสอบผลลัพธ์ของคุณ:

locale

หมายเหตุ: หากคุณใช้Ubuntu ปกติและไม่ใช่เซิร์ฟเวอร์ Ubuntu การเปลี่ยนแปลงจะไม่ดำเนินการเกินกว่าคอนโซล (หากคุณตัดสินใจที่จะเปิดแท็บใหม่หรือปิดเทอร์มินัล) จนกว่าจะเข้าสู่ระบบครั้งต่อไป อย่างไรก็ตามโดยทั่วไปแล้วการใช้เซิร์ฟเวอร์ Ubuntu คุณจะต้องลงชื่อเข้าใช้เพื่อเปิดคอนโซลใหม่
mchid

คำถามนี้เป็นคำถาม tagget กับเซิร์ฟเวอร์ และใครและทำไม downvote คนนี้ได้โปรดอธิบาย
Nikos Alexandris
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.