ngôn ngữ không tìm thấy / cài đặt ngôn ngữ không thành công - tôi nên làm gì?


32

Tôi đã cài đặt Debian 7 i386 trên VPS của mình (OpenVZ). Mọi thứ đều hoạt động tốt, ngoại trừ các ngôn ngữ - mọi nỗ lực cài đặt mọi thứ đều hiển thị:

[...]
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "pl_PL.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
[...]

Những gì tôi đã thử:

  1. Tự tạo địa phương - update-locale LC_ALL="pl_PL.UTF-8"- chương trình: http://www.wklej.org/id/1248438/
  2. apt-get install --reinstall locales http://www.wklej.org/id/1248442/
  3. Cùng với dpkg-reconfigure locales+ thiết lập pl_PL.UTF-8, pl_PL.ISO-8859-2hoặc thậm chí en_US: http://www.wklej.org/id/1248446/
  4. export LC_ALL=pl_PL.UTF-8 (thậm chí trên root):

    -bash: warning: setlocale: LC_ALL: cannot change locale (pl_PL.UTF-8)
    

Đây là những gì cho thấy miền địa phương:

root:~# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=pl_PL.UTF-8
LANGUAGE=
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=

Không có gì thú vị được tìm thấy trong / var / log. Ngay cả việc thay đổi repo thành các địa điểm cài đặt chính thức + thanh lọc và thủ công cũng không giải quyết được vấn đề của tôi, điều này thể hiện trên mỗi bản cài đặt mới của Debian 7.

Câu trả lời:


22

Dường như không có miền địa phương được tạo ra. Bạn đã chọn pl_PL.UTF-8đúng dpkg-reconfigure localesbằng cách nhấn spacevào dòng tương ứng?

Nếu có, dòng

pl_PL.UTF-8 UTF-8

trong /etc/locale.genkhông được nhận xét (= không bắt đầu bằng #). Nếu bạn cần sửa lỗi này, bạn cũng cần chạy locale-genđể tạo các vùng. Đầu ra của nó phải là:

Generating locales (this might take a while)...
   pl_PL.UTF-8... done
Generation complete.

Nếu nó không xuất ra các địa điểm bạn muốn tạo, dường như có điều gì đó không ổn với hệ thống của bạn. Một lý do có thể là bạn đã localepurgecài đặt. Nếu không có tập tin trong /usr/share/locale/pl/LC_MESSAGEShoặc /usr/share/locale/pl_PL/LC_MESSAGESđây là trường hợp hoặc hệ thống của bạn bị hỏng.


1
Nó hoạt động! Vị trí được chọn trong /etc/locale.gen vẫn được nhận xét, không biết tại sao (vâng, tôi nhớ về phím cách) - có thể có gì đó không ổn với CHMOD. Cảm ơn!
luke_g

1
Lưu ý rằng đó -plowlà mặc định, vì vậy có thể được bỏ qua. Bạn chỉ cần gọi dpkg-reconfigure, sẽ gọi locale-gen sau khi bạn đánh dấu mục bạn muốn.
Stéphane Chazelas

@StephaneChazelas cảm ơn, tôi đã xóa nó khỏi câu trả lời và làm rõ cách sử dụng locale-gen.
jofel

Một khả năng khác là nếu bạn đã cấu hình hệ thống của mình, v.v. cho en_US nhưng bạn /etc/locale.genchỉ không bị lỗi en_GB. Tôi nhận thấy lỗi này trong chủ đề này ở đây unix.stackexchange.com/q/287716/16920 Xin vui lòng, thêm nó vào chiến lược throubledhoot quá.
Léo Léopold Hertz

12

Đầu tiên:

sudo apt-get purge locales

sau đó:

sudo aptitude install locales

và nổi tiếng:

sudo dpkg-reconfigure locales

Điều này giúp hệ thống các địa phương, sau đó cài đặt lại các địa điểm và hạ cấp libc6 từ 2,19 xuống 2,13, đây là vấn đề. Sau đó cấu hình lại địa phương.


Có vẻ để giúp đỡ nhưng tiếp theo apt-get dist-upgradesẽ phá vỡ nó một lần nữa.
ceving

Tại sao nó sẽ phá vỡ nó? Tại thời điểm đó, các ngôn ngữ không nên tương thích với libc6 đang được sử dụng? Libc6 của tôi đã được thay đổi để sử dụng một số chương trình khác. Tôi đã hạ cấp nó xuống phiên bản libc6 mặc định để hệ thống của tôi hoạt động bình thường. Tại thời điểm đó, nó sẽ tương thích rất nhiều với nâng cấp apt-get dist
tkjef

1
Một apt-get install localescài đặt các vị trí trên container debian Docker của tôi.
Stephane

7

Cách nhanh chóng và dễ dàng (mặc dù nó sẽ có nghĩa là sử dụng nhiều đĩa hơn các đĩa khác):

apt install locales-all

1

thử chạy

locale -a

nếu bạn có

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

Giải pháp cho tình huống này là cài đặt các gói địa phương (từ gói glibc [1]) theo hương vị debian hoặc glibc-all-langpacks CentOS / Fedora

[1] https://tracker.debian.org/pkg/glibc


glibc-localegói không tồn tại trong Debian
Yajo

nên là địa điểm gói ... cố định
Sérgio
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.