Tại sao ghi đè biến môi trường LANG không thay đổi ngôn ngữ cho tôi?


11

Tôi đang cố chạy một ứng dụng bằng ngôn ngữ khác như môi trường hiện tại của tôi. Để bắt đầu đơn giản, tôi muốn thay đổi ngôn ngữ ls.

Đây là những gì tôi đọc được ở mọi nơi (xem bên dưới để biết các câu hỏi liên quan): được đặt LANGthành một trong những địa điểm được hỗ trợ, ví dụ:

LANG=nl_NL.UTF-8 ls /nonexistent

để có nó hiển thị đầu ra Hà Lan (NL).

Tuy nhiên, tôi vẫn nhận được đầu ra tiếng Anh:

$ LANG=nl_NL.UTF-8 ls -al /nonexistent
ls: cannot access /nonexistent: No such file or directory

Môi trường hiện tại của tôi:

$ locale
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=

Để chắc chắn, tôi đã kiểm tra:

  • Bản địa được hỗ trợ:

    $ grep nl_NL /usr/share/i18n/SUPPORTED 
    nl_NL.UTF-8 UTF-8
    nl_NL ISO-8859-1
    nl_NL@euro ISO-8859-15
    
  • Bản địa được tạo:

    sudo locale-gen nl_NL.UTF-8
    

    sudo dpkg-reconfigure localescũng cho thấy nó được tạo ra.

  • Đã cài đặt gói ngôn ngữ tiếng Hà Lan (đã được cài đặt):

    sudo apt-get install language-pack-nl
    

Tôi đã thử cái gì khác?

  • Sử dụng exportđể đặt cả hai LANGLANGUAGEthay vì trả trước lệnh.
  • Thiết lập cũng có LC_ALL.

Trớ trêu thay, một số (chỉ một số!) Các ứng dụng GUI thực sự bằng tiếng Hà Lan, nhưng tôi chưa định cấu hình nó!

nhập mô tả hình ảnh ở đây

Tôi đang sử dụng Kubfox 12.04 (.2).

Các câu hỏi tương tự (không có kết quả):

Có gì sai trên hệ thống của tôi? Nơi để gỡ lỗi này hơn nữa?

Câu trả lời:


12

Bởi vì LANGUAGE, được ưu tiên hơn LANG, được đặt và không thay đổi.

$ LANGUAGE=nl ls /nonexistent
ls: kan geen toegang krijgen tot /nonexistent: Bestand of map bestaat niet

Thông tin thêm có trong tài liệu gettext GNU :

GNU gettext ưu tiên cho LANGUAGE hơn LC_ALL và LANG cho mục đích xử lý tin nhắn, nhưng bạn vẫn cần đặt LANG (hoặc LC_ALL) thành ngôn ngữ chính; điều này được yêu cầu bởi các phần khác của thư viện hệ thống.


Tôi thề tôi đã thử điều này rồi. Tuy nhiên, nhìn vào lịch sử vỏ của tôi, tôi nghĩ rằng điều này là do tôi chỉ thử điều này trước khi tạo miền địa phương. Bạn có thể bao gồm một nguồn cho lý do tại sao "NGÔN NGỮ được ưu tiên hơn LANG" không? Cảm ơn cho những người đứng đầu lên.
gertvdijk

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.