ตัวแปรสภาวะแวดล้อม LANG และ LANGUAGE ในระบบที่ใช้ Debian


19

ดูเหมือนว่าทั้งสองตัวแปรสภาพแวดล้อม LANG และ LANGUAGE จะถูกใช้โดยบางโปรแกรมเพื่อกำหนดภาษาส่วนต่อประสานผู้ใช้

ความหมายที่แน่นอนของตัวแปรเหล่านี้คืออะไรและฉันสามารถอ่านเกี่ยวกับการใช้งานที่ถูกต้องของพวกเขาได้ที่ไหน manpage for locale (1) กล่าวถึงตระกูล LC_ * ของตัวแปรสภาพแวดล้อมเท่านั้น นอกจากนี้ยังมีตัวแปร LC_ALL โดยทั่วไปอยู่ในตำแหน่งที่ไม่ได้อธิบายไว้เช่นกัน

คำตอบ:


22

LANGมีการตั้งค่าสำหรับหมวดหมู่ทั้งหมดที่ไม่ได้ตั้งค่าโดยตรงโดยLC_*ตัวแปร

LC_ALLจะใช้ในการแทนที่ทุกLC_*และและLANG LANGUAGEไม่ควรตั้งค่าในสภาพแวดล้อมผู้ใช้ปกติ แต่มีประโยชน์เมื่อคุณกำลังเขียนสคริปต์ที่ขึ้นอยู่กับเอาต์พุตที่แม่นยำของคำสั่งที่ทำให้เป็นสากล

LANGUAGEใช้เพื่อตั้งค่าภาษาของข้อความ (เป็นLC_MESSAGES) เป็นค่าหลายค่าเช่นการตั้งค่าให้fr:de:enใช้ข้อความภาษาฝรั่งเศสในที่ที่มีอยู่ หากไม่ใช้ก็จะใช้ข้อความภาษาเยอรมันและจะกลับไปใช้ภาษาอังกฤษหากไม่มีข้อความภาษาเยอรมันหรือภาษาฝรั่งเศส


ฉันจะหาเอกสารเกี่ยวกับ LANGUAGE ได้ที่ไหน LC_MESSAGES ไม่เกิดร่วมกันหรือไม่
aef

1
@Rémiคุณสามารถอธิบายเพิ่มเติมเกี่ยวกับสาเหตุที่LC_ALLไม่ควรใช้?
Édouard Lopez

1
ไม่มากที่จะพูด คุณมีความยืดหยุ่นมากขึ้นถ้าคุณตั้งค่า LANG มากกว่าถ้าคุณตั้งค่า LC_ALL: คุณสามารถตั้งค่า LANG เป็นบางอย่างและ LC_COLLATE เป็นสิ่งอื่นได้ หากคุณตั้งค่า LC_ALL การกำหนดค่าอื่น ๆ จะถูกซ่อนไว้
Rémi

1
ฉันไม่คิดว่าการLC_ALLแทนที่LANGUAGE: 1. พวกเขามีความหมายแตกต่างกัน (คำสั่ง [เช่น: fr: de: en] กับลักษณะ [เช่น: fr_FR])
Murmel

4
2. บทเอกสาร GNU gettext ของการระบุลำดับความสำคัญของรายการภาษาgettext gives preference to LANGUAGE over LC_ALL and LANG: นอกจากนี้บทLocale Environment Variablesระบุว่า:1. LANGUAGE 2. LC_ALL [...]
Murmel

10

ดู manpage locale(7): มันอธิบายว่าLANGเป็นการตั้งค่าทางเลือกในขณะที่LC_ALLแทนที่LC_*การตั้งค่าแยกต่างหากทั้งหมด


3
สถานที่ man 7 เป็นคำสั่ง
Smile4ever

2

สำหรับการอ้างอิงระบบโลแคลคือ GNU GetText ซึ่งมีเอกสารเต็มรูปแบบที่มีอยู่ในแพ็คเกจ gettext-doc (Debian / Ubuntu)

อีกวิธีหนึ่งคือมีคู่มือออนไลน์ที่มีเอกสารที่เชื่อถือได้และซับซ้อนของ ตัวแปรสภาพแวดล้อมLANGและLANGUAGE

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