วิธีรับตัวเลขเฉพาะภาษาของมนุษย์?


9

TL; DR:ฉันจะใช้ตัวเลขภาษาฮินดี (١٢٣ ... ) เมื่อเขียนเป็นภาษาอาหรับได้อย่างไร


Emacs ได้รับการยกย่องว่าเป็นบรรณาธิการที่ดีที่สุด แต่เมื่อพูดถึงการใช้ตัวเลขในบริบทของการเขียนไม่มีคำตอบที่น่าพอใจสำหรับผู้ใช้หลายภาษาเมื่อเทียบกับ Microsoft Word นั่นคือการเขียนเชิงตัวเลข

ใน Microsoft Word 2010 ไปที่เมนูแบบเลื่อนลง -> คำสั่งเพิ่มเติม -> ขั้นสูง -> ภายใต้แสดงเนื้อหาของเอกสารคุณสามารถเลือกcontextตัวเลขจาก (ภาษาอาหรับหรือภาษาฮินดีหรือบริบทหรือระบบ) ตัวเลือกบริบทช่วยให้คุณสามารถเขียนตัวเลขตามบริบทของการเขียนของคุณหากเป็นตัวเลขภาษาอังกฤษจะเป็นภาษาอาหรับ 1,2,3,4,5,6,7,8,9,0 - ฟังดูแปลก! แต่มันถูกตั้งชื่อเพื่อ (เรียกชื่อผิด) และถ้าคุณเขียนในภาษาอาหรับตัวเลขจะเป็นตัวเลขภาษาฮินดีซึ่งเขียนดังนี้:
ป้อนคำอธิบายรูปภาพที่นี่

สำหรับ Windows ฉันพบว่าการเปลี่ยนinput-methodขณะเขียนเป็นวิธีที่จะไปหากฉันจะเขียนเอกสารหลายภาษาใน Emacs ว่าภาษาอังกฤษและภาษาอาหรับหรือภาษาอื่นด้วยตัวอักษรที่แตกต่างกันโดยสิ้นเชิง การเปลี่ยนภาษาหรือรูปแบบแป้นพิมพ์จากแถบภาษาใน Windows IMHO จะไม่ให้ผลเหมือนเดิมเพราะจะทำลายการเชื่อมโยงคีย์ทั้งหมดในเครื่องมือแก้ไข Emacs ของคุณ (โดยเฉพาะในกรณีที่มีสองภาษาที่แตกต่างกันเช่นภาษาอังกฤษและภาษาอาหรับ) การแก้ปัญหาคือการโพสต์ที่นี่

ใน Microsoft Word หลังจากตั้งค่าตัวเลขเป็นบริบทคุณสามารถเขียนภาษาอังกฤษด้วยตัวเลขอารบิกได้อย่างราบรื่นและเมื่อคุณเปลี่ยนเป็นเขียนเป็นภาษาอาหรับโดยการหมุนไปที่ ( ALT+ R SHFT) คุณจะเขียนข้อความภาษาอาหรับด้วยตัวเลขภาษาฮินดีในเวลาไม่นานดังที่แสดงในภาพด้านล่าง ใน Emacs หลังจากเปลี่ยนเป็นinput-methodภาษาอารบิกตัวเลขจะยังคงเป็นภาษาอาหรับ (1,2,3 ฯลฯ ) และไม่ใช่ตัวเลขภาษาฮินดีที่ต้องการ

ป้อนคำอธิบายรูปภาพที่นี่

ฉันไม่คิดว่าวิธีแก้ปัญหานี้เกี่ยวข้องกับ Microsoft Windows เนื่องจากการเปลี่ยนภาษาของการตั้งค่าภูมิภาคจะเปลี่ยนตัวเลขของอินเทอร์เฟซ Windows เช่นกันและจะมีผลกระทบที่ไม่พึงประสงค์ทั้งระบบ

ฉันเชื่อว่าศักยภาพในการขยายของ Emacs ถือเป็นกุญแจสู่ปัญหานี้ จะเฉพาะเจาะจงมากขึ้น ฉันขอแนะนำให้ Emacs ควรตรวจจับinput-methodและหากเป็นภาษาอาหรับก็ควรทำการตั้งค่าเลขอารบิกทั้งหมดใหม่ให้เป็นภาษาฮินดีโดยอัตโนมัติ หรือ ปรับแต่งรูปแบบแป้นพิมพ์ภาษาอาหรับเพื่อให้มีภาษาฮินดีแทนตัวเลขอารบิก

รายการที่แจ้งเป็นบทความที่เกี่ยวข้องกับปัญหานี้ แต่ฉันไม่สามารถแปลข้อมูลเหล่านี้เป็นโซลูชันจริงที่เหมาะสมกับข้อมูลเฉพาะของโพสต์นี้:

https://tex.stackexchange.com/q/191040/26295

ด้านล่างเป็นวิธีการขยายวิธีการป้อนข้อมูลใน Emacs https://emacs.stackexchange.com/a/3404/2443

การพิมพ์ตัวเลขภาษาฮินดีอาจเป็นงานที่น่าเบื่อหน่ายใน Emacs หากคุณต้องการป้อนตัวเลขภาษาฮินดีทีละหนึ่งรายการC-x 8 RETเหล่านี้จะถูกแมปใน Unicode กับรหัสต่อไปนี้: 0661 สำหรับหมายเลข 1, 0662 สำหรับหมายเลข 2, 0663 สำหรับหมายเลข 3, 0664 สำหรับหมายเลข 4, 0665 สำหรับหมายเลข 5 และอื่น ๆ

คำถาม
อะไรคือการปรับแต่งที่ดีที่สุดสำหรับ Emacs 24 และการกดแป้นที่สั้นที่สุดเพื่อจำลองประสบการณ์การเขียนตามบริบทที่ราบรื่นโดย Microsoft Word


ฉันคิดว่ามีความสับสนอยู่ที่นี่ตัวเลขที่คุณกำลังเรียกภาษาฮินดีนั้นเป็นเลขอารบิคจริง ๆ !
อิกบัลอันซารี

@IqbalAnsari สวัสดีไม่ใช่แดกดัน - ฉันรู้ว่ามันอาจดูสับสนเป็นครั้งแรก แต่ถ้าคุณเป็นผู้ใช้ Microsoft Word และคุณเขียนเป็นภาษาอาหรับคุณจะคุ้นเคยกับศัพท์แสงนี้ในไม่ช้า หากคุณมี Microsoft Word คุณสามารถตรวจสอบได้
ปริญญาเอก

1
เนื่องจาก: การตีพิมพ์บรรทัดฐานในบางประเทศที่พูดภาษาอาหรับเริ่มต้นที่ตัวเลขภาษาฮินดี (١٢٣ ... ) เช่นอียิปต์ในขณะที่คนอื่น ๆ เริ่มต้นเป็นเลขอารบิค (123 ... ) เช่นเลบานอน
แดน

@Dan, อียิปต์และเลบานอนเป็นทั้งประเทศที่พูดภาษาอาหรับพวกเขาควรใช้ภาษาฮินดีในสิ่งพิมพ์ของพวกเขาหรืองานเขียนอื่น ๆ จากนั้นเค้าโครงภาษาอาหรับเริ่มต้นของ Emacs จะดีกว่าการเปลี่ยนตัวเลขจากภาษาอาหรับเป็นภาษาฮินดี
ปริญญาเอก

สิ่งที่พวกเขาควรทำหรือไม่ควรทำนั้นไม่เกี่ยวข้องเท่าที่ควรทำ และสำหรับสิ่งที่คุ้มค่าสิ่งพิมพ์ออนไลน์ที่สำคัญส่วนใหญ่ใช้เลขอารบิก - cf al-Jazeera , al-Hayat (แพน - อาหรับทุกวัน), al-Nahar (เรือธงเลบานอนรายวัน), al-Ahram (ธงอียิปต์ทุกวัน) ฉันชอบความสวยงามของตัวเลขภาษาฮินดี แต่ดูเหมือนว่าquailจะเป็นตัวเลือกที่เหมาะสมในการเริ่มต้นเป็นเลขอารบิกเนื่องจากดูเหมือนว่าจะเป็นค่าเริ่มต้นในโลกอาหรับเช่นกัน
แดน

คำตอบ:


10

ดังนั้นความต้องการคือ: เมื่อฉันใช้arabicวิธีการป้อนข้อมูลและฉันพิมพ์ตัวเลขฉันต้องการให้ Emacs แทรกอักขระภาษาฮินดีสำหรับตัวเลขนั้น

ในการทำเช่นนี้เราสามารถปรับวิธีการเชื่อมโยงของคุณเพื่อขยายวิธีการป้อนข้อมูลเช่น:

(eval-after-load "quail/arabic"
  '(let ((quail-current-package (assoc "arabic" quail-package-alist)))
     (quail-define-rules ((append . t)) ;; don't clobber the existing rules
                         ("0" "\u0660")
                         ("1" "\u0661")
                         ("2" "\u0662")
                         ("3" "\u0663")
                         ("4" "\u0664")
                         ("5" "\u0665")
                         ("6" "\u0666")
                         ("7" "\u0667")
                         ("8" "\u0668")
                         ("9" "\u0669"))))

จากนั้นเมื่อคุณใช้C-uC-\ arabic(หรือC-\หากเป็นค่าเริ่มต้นของคุณ) และพิมพ์ตัวเลขมันจะแทรกการแปลที่ระบุแทน


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