วิธีการเปลี่ยนแบบอักษรทางเลือกเริ่มต้น (สำหรับภาษาที่ไม่ใช่ละติน)


20

คำถามของฉันคือ:ฉันจะเปลี่ยนแบบอักษรทางเลือกเริ่มต้นสำหรับภาษาไทย (หรือภาษาที่ไม่ใช่ละตินสำหรับเรื่องนั้น) ได้อย่างไรเพื่อให้แอปเทอร์มินัลแสดงตัวอักษรภาษาไทยที่ฉันเลือกในขณะที่รักษาแบบอักษรภาษาอังกฤษ

ให้อภัยรายละเอียดเพิ่มเติมที่ยาวนาน แต่ฉันติดอยู่ที่นี่จริง ๆ บน Mac OS 10.11.1 และแบบอักษรเทอร์มินัลของฉันถูกตั้งค่าเป็น Menlo ในขนาดตัวอักษรที่สะดวกสบายสำหรับฉัน Menlo ไม่มีตัวอักษรใดไทยซึ่งผมสองครั้งในการตรวจสอบและผ่านทางFontbook > View > Repertoire Menu bar > Show Emoji and Symbols(แต่น่าสนใจคือลาว) อย่างไรก็ตามเมื่อฉันพิมพ์อักขระภาษาไทยลงในเทอร์มินัลภาษาไทยอย่างปาฏิหาริย์จะปรากฏขึ้น เห็นได้ชัดว่ามีแบบอักษรทางเลือกเริ่มต้นระบบกว้าง อย่างไรก็ตามอักขระไทยหนึ่งตัวแสดงไม่ถูกต้อง (Sara Am, สระอำ) ฉันสามารถเปลี่ยนฟอนต์เทอร์มินัลเป็น CS Prajad และภาษาไทยดูดีมากรวมถึงตัวอักษรปัญหา อย่างไรก็ตามตัวอักษรภาษาอังกฤษนั้นดูน่าเกลียดและไม่มีประโยชน์เหมือนอักษรโปรแกรม

ฉันปิดใช้งาน SIP (System Integrity Protection) เพื่อแก้ไขไฟล์ xml ที่DefaultFontFallbacks.plistอยู่

/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/Resourcesจากนั้นรีบูตเครื่องโดยคิดว่าสิ่งนี้จะช่วยแก้ปัญหาของฉันได้ อย่างไรก็ตามฟอนต์ภาษาไทยเริ่มต้นดั้งเดิมยังคงแสดงอยู่ในเครื่องเทอร์มินัล

(การเปลี่ยนแปลงที่ฉันทำDefaultFontFallbacks.plist)

แทนที่สตริงเริ่มต้น

<default>...
    ...
    <string>Thonburi</string> to <string>CSPrajad</string> (no space)
    ...
</default>

เพิ่ม CS Prajad เป็นฟอนต์ monospace ตามสตริง xml ของฮั่นจีนและเกาหลี

<monospace>
    ...
    <array>
        ...
        <array>
            <string>th</string>
            <string>CSPrajad-Regular</string>
        </array>
        ...
    </array>
    ...
</monospace>

ฉันจะเปลี่ยนแบบอักษรทางเลือกเริ่มต้นสำหรับภาษาไทย (หรือภาษาที่ไม่ใช่ละตินสำหรับเรื่องนั้น) ได้อย่างไรเพื่อให้แอปเทอร์มินัลแสดงแบบอักษรภาษาไทยที่ฉันเลือกในขณะที่รักษาแบบอักษรภาษาอังกฤษ


Oddly Menlo มี glyphs สำหรับภาษาลาวและภาษาอาหรับซึ่งไม่ได้แนบกับค่า unicode จึงไม่สามารถใช้สำหรับอินพุต / จอแสดงผลได้
Tom Gewecke

แบบอักษรที่คุณพยายามจะใช้ติดตั้งไว้กับระบบหรือไม่? หรือเป็นแบบอักษรของผู้ใช้ นอกจากนี้ยังติดตั้งเป็นแบบอักษร TrueType หรือไม่
user3052786

คำตอบ:


1

คุณเกือบจะอยู่ที่นั่นแล้ว!

เพิ่มในรายการทางเลือกภาษาที่ต้องการเหมือนที่คุณทำ แต่ต้องแน่ใจว่าคุณใช้ชื่อ PostScript สำหรับแบบอักษร จะต้องมีแน่นอน!

<array>
    <!-- for Thai  -->
    <string>th</string>
    <!-- below is the case sensitive PostScript name  -->
    <string>CSPraJad</string>
</array>

ข้อมูลอ้างอิง:
https://gist.github.com/Moligaloo/3180490
https://github.com/zerustech/font-fallbacks-tutorial
https://github.com/zonble/tcfail/

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