Biến môi trường LANG và LANGUAGE trong các hệ thống dựa trên Debian


22

Có vẻ như cả biến môi trường LANG và LANGUAGE đều được một số chương trình sử dụng để xác định ngôn ngữ giao diện người dùng của họ.

Các ngữ nghĩa chính xác của các biến này là gì và tôi có thể đọc về cách sử dụng chính xác của chúng ở đâu? Trang chủ cho miền địa phương (1) chỉ đề cập đến họ LC_ * của các biến môi trường. Ngoài ra, cũng có một biến LC_ALL thường được mô tả ở đó.

Câu trả lời:


23

LANGchứa cài đặt cho tất cả các danh mục không được đặt trực tiếp bởi một LC_*biến.

LC_ALLđược sử dụng để ghi đè lên mỗi LC_*LANGLANGUAGE. Nó không nên được đặt trong môi trường người dùng bình thường, nhưng có thể hữu ích khi bạn đang viết một tập lệnh phụ thuộc vào đầu ra chính xác của lệnh quốc tế hóa.

LANGUAGEđược sử dụng để đặt ngôn ngữ tin nhắn (dưới dạng LC_MESSAGES) thành một giá trị đa giá trị, ví dụ: đặt nó thành ngôn ngữ fr:de:entiếng Pháp nơi chúng tồn tại; nếu không, nó sẽ sử dụng tin nhắn tiếng Đức và sẽ chuyển sang tiếng Anh nếu không có tin nhắn tiếng Đức và tiếng Pháp.


Tôi có thể tìm tài liệu về NGÔN NGỮ ở đâu? Có phải nó loại trừ lẫn nhau cho LC_MESSAGES?
aef

1
@ Rémi bạn có thể giải thích tại sao LC_ALLkhông nên sử dụng?
Édouard Lopez

1
Không có gì để nói. Bạn có sự linh hoạt hơn nếu bạn đặt LANG so với khi bạn đặt LC_ALL: bạn có thể đặt LANG thành một cái gì đó và LC_COLLATE thành một số thứ khác. Nếu bạn đặt LC_ALL, mọi cấu hình khác sẽ bị ẩn.
Rémi

2
Tôi không nghĩ LC_ALLghi đè LANGUAGE: 1. chúng có ý nghĩa khác nhau (thứ tự [ví dụ: fr: de: en] so với đặc điểm [ví dụ: fr_FR])
Murmel

6
2. Chương của tài liệu GNU getText Chỉ định Danh sách ưu tiên các trạng thái ngôn ngữ : gettext gives preference to LANGUAGE over LC_ALL and LANG. Ngoài ra, chương Biến môi trường địa phương nêu rõ:1. LANGUAGE 2. LC_ALL [...]
Murmel

10

Hãy xem trang chủ locale(7): nó mô tả đó LANGlà cài đặt dự phòng, trong khi LC_ALLghi đè tất cả các LC_*cài đặt riêng biệt .


3
man 7 locale là mệnh lệnh
Smile4ever

2

Để tham khảo, hệ thống ngôn ngữ là GNU GetText, có tài liệu đầy đủ có sẵn trong gói gettext-doc (Debian / Ubuntu).

Ngoài ra, có một hướng dẫn trực tuyến với tài liệu có thẩm quyền và công phu về các biến môi trường LANGLANGUAGE .

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.