คำตอบนี้จะแสดงให้เห็นถึงวิธีการปรับแต่งสถานที่อย่างเต็มรูปแบบเลือกที่จะใช้สถานที่ที่มีอยู่เป็นฐาน ประเภทของสถานที่ที่จะใช้ในคำตอบนี้คือi18n
ประเภท; ประเภทของสถานที่ดังกล่าวจะถูกบอกเป็นนัยในการกล่าวถึงทุกคำว่า "สถานที่" ในเนื้อหาของคำตอบ
ค้นหาคำแนะนำ
สิ่งแรกที่คุณต้องปรับแต่ง locale คือทำความรู้จักกับรูปแบบของ locale เอดิเตอร์โลแคลเว็บนี้มีคำอธิบายที่ครอบคลุมของทุกฟิลด์ในโลแคลแม้จะไม่สามารถใช้งานได้โดยใครก็ตามในลักษณะที่ถูกต้อง นี่จะเป็นแนวทางในการใช้งาน
เครื่องมือที่จำเป็น
เครื่องมือเดียวที่คุณต้องใช้กับโลแคลคือ
- โปรแกรมแก้ไขข้อความ สิ่งใดก็ตามที่ทำได้แม้ว่า VIM จะเป็นเลิศ
- ตัวแปลงข้อความเป็น Unicode เป็นที่คาดหวังมากที่สุดว่าคุณไม่ได้มีดังนั้นฉันจะให้คุณง่าย ๆ อ่านหมวดย่อยต่อไปเพื่อรับมัน
ฉันแนะนำให้คุณสร้างไดเรกทอรีและบันทึกทุกสิ่งที่เกี่ยวข้องกับงานที่คุณจะทำในสถานที่นั้น
ตัวแปลงข้อความเป็น Unicode (เข้ารหัส)
หมายเหตุ:หากคุณใช้อักขระที่ไม่ธรรมดาคุณอาจพบปัญหากับสคริปต์ที่ฉันเขียนด้านล่าง คุณอาจต้องการที่จะดูที่สคริปต์ทางเลือกการเชื่อมโยงโดยNASS
บันทึกรหัสต่อไปนี้เป็นไฟล์ ระบบของคุณจะระบุไฟล์นี้เป็นสคริปต์ไพ ธ อนซึ่งไม่เป็นไรเพราะเป็นไฟล์เดียว encodestr
คู่มือนี้จะถือว่าคุณเรียกว่าสคริปต์
#!/usr/bin/python
def encode(string):
newstring = str()
for ch in string:
newstring += "<U%04X>" % ord(ch)
return newstring
if __name__ == '__main__':
import sys
print encode(sys.argv[1])
หลังจากที่คุณบันทึกแล้วให้สิทธิ์การดำเนินการกับไฟล์ - สิ่งนี้จะเป็นประโยชน์ chmod +x encodestr
คุณสามารถทำได้โดยใช้หอยโข่งหรือโดยการเรียกใช้จากสถานีคำสั่งต่อไปนี้ในไดเรกทอรีที่คุณบันทึกสคริปต์:
./encodestr hello
ตอนนี้คุณสามารถทดสอบสคริปต์นี้โดยการทำงานในไดเรกทอรีเดียวกัน: <U0068><U0065><U006C><U006C><U006F>
คุณควรจะได้รับการส่งออกเท่ากับ
แก้ไขสถานที่ที่มีอยู่
การแก้ไขโลแคลที่มีอยู่เป็นกรณีที่ง่ายที่สุดเนื่องจากคุณจะต้องเลือกโลแคลที่เหมาะกับความต้องการของคุณเกือบทั้งหมดซึ่งในกรณีนี้คุณต้องทำการปรับเปลี่ยนเพียงเล็กน้อย ในการปรับแต่งมันคุณสามารถใช้คำแนะนำเพื่อทราบว่าส่วนใดเป็นส่วนที่คุณต้องการเปลี่ยนและวิธีที่คุณสามารถเปลี่ยนได้ สถานที่ติดตั้งทั้งหมดนั้นอยู่ใน/usr/share/i18n/locales
นั้นอย่างไรก็ตามไกด์นั้นมีทุกภาษาที่เคยสร้างมา
อย่างไรก็ตามสิ่งแรกที่คุณจะสังเกตเห็นเมื่อคุณเปิดสถานที่เกิดเหตุคือคุณจะอ่านคำภาษาอังกฤษได้มากเท่ากับ<UXXXX>
รหัสแปลก ๆ คุณจะต้องสามารถสร้างรหัสเหล่านี้ได้ซึ่งเป็นที่encodestr
มาของสคริปต์
เมื่อคุณรู้ว่าส่วนใดที่คุณต้องเปลี่ยนคุณจำเป็นต้องรู้แต่ละฟิลด์ที่มีอยู่ในส่วน
ตัวอย่างเช่นLC_TIME
ส่วนมีฟิลด์t_fmt
และอื่น ๆ อีกมากมาย แต่ละเขตมีคำอธิบายของตัวเองบนคู่มือ
เมื่อคุณทราบว่าต้องปรับเปลี่ยนฟิลด์ใดให้ใช้คำแนะนำอีกครั้งเพื่อค้นหาว่าฟิลด์ยอมรับค่าใด
ยกตัวอย่างเช่นสนามt_fmt
ยอมรับข้อความและร่วมกันตัวแปร strfmt
เมื่อคุณรู้ว่าจะเขียนอะไรในฟิลด์ที่คุณต้องการแก้ไขให้รันข้อความผ่านencodestr
สคริปต์เพื่อรับการเข้ารหัสที่เทียบเท่า
หมายเหตุ:ไม่จำเป็นต้องเข้ารหัสทุกฟิลด์ใช้ภาษาที่มีอยู่เป็นข้อมูลอ้างอิงหากจำเป็น
ตัวอย่างเช่นหากคุณต้องการมีรูปแบบเวลาTime: %T
ในt_fmt
ฟิลด์ให้รัน./encodestr "Time: %T"
; สิ่งนี้จะส่งคืน<U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054>
ดังนั้นคุณจะมีบรรทัดt_fmt <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054>
อยู่ในโลแคลของคุณ
หลังจากที่คุณแก้ไขทุกฟิลด์ที่คุณต้องการคุณจะต้องดำเนินการติดตั้งระบบภาษาต่อไปเพื่อให้สามารถใช้งานได้ ดำเนินการต่อไปยังส่วนการติดตั้งสำหรับสิ่งนี้
การสร้างสถานที่จากรอยขีดข่วน
เมื่อเทียบกับการแก้ไขหนึ่งวิธีอื่น ๆ ที่คุณสามารถใช้เพื่อสร้างสถานที่ที่กำหนดเองของคุณกำลังทำงานอยู่ตั้งแต่เริ่มต้น นี้ไม่ได้เป็นเรื่องยากมากถ้า - อีกครั้ง - คุณใช้คู่มือ นี่เป็นเคล็ดลับที่มีประโยชน์: คุณสามารถคัดลอกส่วนต่าง ๆ จากที่อื่น ๆ โดยไม่ต้องใช้วิธีคัดลอกและวางจริง คุณต้องทำตามรูปแบบนี้:
LC_SECTION
copy "locale"
END LC_SECTION
LC_SECTION
ส่วนที่คุณต้องการแก้ไขอยู่ที่ไหนและlocale
เป็นตำแหน่งที่ตั้งที่คุณต้องการคัดลอกส่วนนั้น
ตัวอย่างเช่นหากคุณต้องการคัดลอกรูปแบบเวลาในภาษาอังกฤษคุณจะมีข้อความนี้เป็นไฟล์ภาษาที่กำหนดเองของคุณ:
LC_TIME
copy "en_GB"
END LC_TIME
และนั่นจะช่วยคุณประหยัดเวลาในการทำงานมากมายและรับรองว่าการเปลี่ยนแปลงใด ๆ ที่เกิดขึ้นกับสถานที่อ้างอิงจะถูกสะท้อนให้เห็นถึงคุณ
การติดตั้งสถานที่ที่กำหนดเองของคุณ
ขั้นตอนที่ฉันจะแสดงด้านล่างอาจไม่เหมาะสม แต่ก็ใช้ได้
รวบรวมสถานที่ของคุณ อย่าตกใจ! ใช้เวลาไม่นาน เพียงแค่เรียกใช้คำสั่งsudo localedef -i custom -f UTF-8 custom.UTF-8 -c -v
ที่custom
เป็นชื่อสถานที่ของคุณ
คัดลอกโลแคลของคุณไปยัง/usr/share/i18n/locales/
ไดเร็กทอรี คุณจะต้องใช้สิทธิ์sudoอย่างแน่นอนและคุณสามารถทำได้ด้วยคำสั่งsudo cp locale /usr/share/i18n/locales/
ที่locale
เป็นชื่อไฟล์ของสถานที่ที่คุณกำหนดเอง
/var/lib/locales/supported.d/
ระบุสถานที่ของคุณใน ตัวอย่างเช่นสร้างชื่อไฟล์/var/lib/locales/supported.d/asd
และเพิ่มบรรทัดcustom UTF-8
โดยที่กำหนดเองคือชื่อของสถานที่ของคุณ
เรียกใช้คำสั่งเวทย์มนตร์ ที่จริงฉันไม่รู้ว่าคำสั่งนี้ทำอะไร แต่มันสำคัญมาก sudo locale-gen
วิ่ง เป็นไปได้มากที่สุดที่จะสร้างการอ้างอิงไปยังโลแคลที่มีอยู่ตามที่ต้องการ
บอกให้ระบบของคุณใช้โลแคล หากคุณต้องการให้ใช้โลแคลในลักษณะที่เป็นระบบทั้งระบบให้แก้ไข/etc/environment
ไฟล์ หากไม่เป็นเช่นนั้นคุณสามารถแก้ไข~/.profile
ไฟล์ของคุณหรือไฟล์อื่น ๆ ที่มีที่มาเมื่อเริ่มต้น หากคุณไม่ทราบว่าสิ่งหลังหมายถึงอะไรไม่ต้องกังวลเพียงแค่ใช้~/.profile
ไฟล์ หากต้องการทราบว่าคุณต้องเขียนอะไรให้เรียกใช้locale
คำสั่งก่อน มันควรจะออกรายการกับรายการเช่นLANGUAGE
, LC_MESSAGES
, LC_CTYPE
และอื่น ๆ อีกมากมาย คุณจะเขียนสำหรับแต่ละส่วนที่คุณต้องการ (ที่ระบุไว้ตามคำสั่งก่อนหน้า) ในบรรทัดแยกนี้SECTION="locale"
ที่SECTION
เป็นส่วนที่และlocale
ชื่อของสถานที่ที่คุณกำหนดเอง
ตัวอย่างเช่นหากคุณต้องการใช้รูปแบบเวลาจากเนเธอร์แลนด์ แต่เป็นภาษาอังกฤษให้เขียน:
LANGUAGE="en_GB:en"
LC_TIME="nl_NL"
หมายเหตุ:ถ้าคุณต้องการใช้หนึ่งโลแคลสำหรับการตั้งค่าทุกโลแคลให้เขียนLC_ALL="locale"
ว่าlocale
เป็นชื่อของโลแคลที่คุณกำหนดเองที่ไหน หากคุณต้องการใช้ภาษาสำหรับทุกสิ่ง แต่สำหรับภาษาคุณสามารถเขียนLANG="locale"
และ (ในอีกบรรทัดหนึ่ง) LANGUAGE="locale":XX
ซึ่งXX
เป็นรหัสตัวอักษร 2 ตัวสำหรับภาษาที่คุณต้องการ
ตัวอย่างเช่นหากคุณต้องการใช้ภาษาดัตช์และภาษาอังกฤษคุณสามารถใช้:
LANG="nl_NL"
LANGUAGE="nl_NL:en"
คุณทำเสร็จแล้ว
ในครั้งต่อไปที่คุณเข้าสู่ระบบสถานที่ของคุณควรจะใช้งาน คุณสามารถทดสอบสิ่งนี้ได้ด้วยการรันlocale
คำสั่งอีกครั้ง
โปรดแสดงความคิดเห็นเกี่ยวกับความไม่สอดคล้องกันหรือข้อความเท็จในคู่มือนี้!
πμ
มันจะออกผลลัพธ์แทนของตัวละครที่คาดหวัง<U00CF><U0080><U00CE><U00BC>
<U03C0><U03BC>
นี่คือลิงค์ที่ใช้งานได้