Làm cách nào để thêm miền địa phương vào máy chủ Ubuntu?


178

Tôi hiện có những địa phương đó:

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

Làm cách nào tôi có thể cài đặt ru_RUngôn ngữ vào máy chủ của mình?

Câu trả lời:


254
  1. Kiểm tra các địa điểm được hỗ trợ:

    locale -a
    
  2. Thêm các địa điểm bạn muốn (ví dụ ru):

    sudo locale-gen ru_RU
    sudo locale-gen ru_RU.UTF-8
    
  3. Chạy lệnh cập nhật này:

    sudo update-locale 
    

26
... sau đó chạysudo update-locale
Justin Force

3
Bạn làm gì nếu nó không được hỗ trợ?
Kimble

4
Bạn có thể vui lòng mở rộng về lý do cả hai ru_RUru_RU.UTF-8cần thiết? Tôi không biết nhiều về địa phương.
Sopalajo de Arrierez

15
Nếu bạn làm việc với php5-fpm bạn sẽ cầnsudo service php5-fpm restart
Stalinko

3
Đây chính xác là những gì tôi cần, nhưng tôi phải khởi động lại Apache để nó hoạt động ... cảm ơn!
Jabari

53

Tôi sẽ đi một con đường khác, đó là IMO phù hợp hơn với phong cách Ubuntu. Sử dụng các gói được cung cấp . Có các gói cho từng miền và chúng thực hiện tất cả công việc cho bạn ... không cần chỉnh sửa / var tệp, điều mà tôi luôn tin rằng không có nghĩa là phải chỉnh sửa thủ công.

sudo apt-get install language-pack-XX

trong đó XX là viết tắt của mã ngôn ngữ. Cài đặt ngôn ngữ cũng sẽ cài đặt tất cả các biến thể theo quốc gia cụ thể (ví dụ: cài đặt ngôn ngữ-gói - nó sẽ cài đặt it_CH.utf8 và it_IT.utf8, cài đặt cho NL sẽ cài đặt nl_AW, nl_AW.utf8, nl_BE.utf8 và nl_ ).


Tôi nghĩ rằng đây là cách tốt nhất và 'Ubuntu' nhất để làm việc này
Luke Madhanga 13/03/2015

4
Nhưng việc tạo các địa phương cung cấp các công cụ như định dạng ngày được bản địa hóa, dấu tách thập phân, bộ ký tự, vv Các gói ngôn ngữ cũng cung cấp các bản dịch, không nhất thiết là ý định.
Oskar Berggren

1
Đồng ý với Oskar. Thậm chí mạnh mẽ hơn nếu bạn coi cài đặt này là dành cho máy chủ - hầu hết các giao diện sẽ bằng tiếng Anh.
igorsantos07

2
Tôi sợ điều này cũng sẽ thay đổi ngôn ngữ hiện tại, nhưng không. Mọi thứ đều ổn. Trông giống như imo tốt nhất. Tôi đặc biệt không cần "bản dịch hoặc những thứ khác", nhưng nếu tôi đặc biệt sử dụng ngôn ngữ cho một số lý do, tôi hy vọng nó sẽ hoàn thành.
Balmipour

43
  1. kiểm tra những địa phương nào được hỗ trợ:

    less /usr/share/i18n/SUPPORTED
    
  2. Thêm miền địa phương vào danh sách được tạo

    echo ru_RU.UTF8 >> /var/lib/locales/supported.d/local
    
  3. Danh sách tái tạo (nó sẽ gọi locale-gen ...)

     sudo dpkg-reconfigure locales
    

4
Tôi đã phải thêm cột thứ hai: echo ru_RU.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local(UTF-8 xảy ra hai lần) trên Ubuntu 15.04. Nếu không, nó hoạt động.
jfs

16

Tôi đã tìm thấy locale-gen là bạn của bạn. như trong (thêm hebrew utf8 chẳng hạn):

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

bạn thậm chí có thể làm lại nó như vậy:

root@world:~# dpkg-reconfigure locales

và kiểm tra xem bạn đã làm tốt chưa:

root@world:~# locale -a

Tôi thấy giải pháp này đơn giản hơn việc thêm nội dung vào tệp văn bản, mặc dù đó là những gì nó làm.


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

Tôi nhận được thông báo sau tại điểm 3: "Lỗi: Mục nhập xấu 'ru_RU.UTF8'"

Công việc này đối với tôi:

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

Điều này làm việc cho tôi. Trong trường hợp của tôi, tôi đã có lỗi nhập sai cho các địa phương en_GB. Tôi đã cập nhật /var/lib/locales/supported.d/mintlocaletệp của mình để chứa các dòng en_GB UTF-8en_GB.UTF-8 UTF-8(thiếu UTF-8).
Samir Aguiar

4

Sử dụng gói ngôn ngữ Ubuntu. Tất cả các ngôn ngữ được hỗ trợ có sẵn trong kho mặc định:

apt-cache search language-pack

Một ví dụ đầy đủ về chuyển đổi ngôn ngữ trong phiên bản Ubuntu (máy chủ):

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

Tất cả các địa điểm có sẵn (tức là đã được cài đặt) có thể được liệt kê với:

locale -a

Địa điểm hiện tại của tôi là 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:~$

Vì tôi không có ru địa phương nên tôi phải cài đặt gói ngôn ngữ 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:~$ 

Bây giờ các địa phương ru có sẵn. Ngôn ngữ mặc định của hệ thống được đặt bằng cách chỉnh sửa /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:~$

Đăng nhập lại và kiểm tra địa điểm hoàn toàn mới của bạn:

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

Sửa đổi /etc/locale.gen, bỏ ghi chú hoặc thêm các địa điểm bạn muốn tạo. Sau đó chạy sudo locale-gen.

Bạn có thể kiểm tra xem các địa điểm được thêm vào locale -a, sẽ hiển thị tất cả các địa điểm.


oh, locale-gen của tôi đã tạo ra một tấn địa phương, bỏ qua tệp locale.gen. Vì vậy, sử dụng lời khuyên này một cách thận trọng.
Dzenly

0
  1. Kiểm tra những địa phương đã được hỗ trợ trong phân phối của bạn. Mở hoặc cattệp /usr/share/i18n/SUPPORTEDvà sao chép ngôn ngữ mong muốn được thêm vào.
  2. trên thiết bị đầu cuối nhập sudo locale-gen locale_name.

    Ví dụ sudo locale-gen de_DE.iso885915@euro

  3. đi vào sudo update-locale

  4. Kiểm tra xem ngôn ngữ được cài đặt với locale -a


0

Không thể bình luận vì vậy tôi phải thêm câu này làm câu trả lời.

Tôi cần thêm một loại ngôn ngữ 'đặc biệt' sr_RS.utf8@latin trong Ubuntu.

Chỉ huy:

sudo locale-gen sr_RS.utf8@latin

không thêm @latin vào các địa phương có sẵn. Để thành công trong đó, lệnh sẽ trông như thế này:

sudo locale-gen sr_RS@latin.utf8

Lệnh:

sudo locale -a

bây giờ cho thấy:

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

Hãy chú ý đến sự khác biệt cú pháp giữa kết quả locale -avà cách nó được thêm bởi locale-gencác lệnh.


-2

Tôi đã làm mọi thứ theo cách tương tự để áp dụng hệ thống miền địa phương mà không cần khởi động lại hoặc phải đăng xuất.

Đầu tiên, tải gói ngôn ngữ:

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

Tiếp theo, kiểm tra phiên bản nào được hỗ trợ:

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

Bây giờ, hãy áp dụng kết quả (hầu như luôn luôn sử dụng phiên bản UTF-8 cho bất kỳ ngôn ngữ nào!):

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

Cuối cùng, cập nhật tệp mặc định của bạn, lấy nguồn và sau đó bạn đã hoàn tất:

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

áp dụng các thay đổi cho hệ thống:

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

và kiểm tra kết quả của bạn:

locale

Lưu ý: Nếu bạn đang chạy Ubuntu thông thườngkhông phải máy chủ Ubuntu, các thay đổi sẽ không được thực hiện ngoài bảng điều khiển (nếu bạn quyết định mở tab mới hoặc đóng thiết bị đầu cuối) cho đến lần đăng nhập tiếp theo. Tuy nhiên, bằng cách sử dụng máy chủ Ubuntu, bạn thường phải đăng nhập để mở bảng điều khiển mới vì vậy điều đó không thành vấn đề.
mchid

Câu hỏi này là tagget với máy chủ . Và ai và tại sao lại đánh giá thấp cái này, xin vui lòng giải thích.
Nikos Alexandris
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.