Comment changer la police de secours par défaut (pour les langues non latines)

20

Ma question est: comment changer la police de secours par défaut pour le thaï (ou toute autre langue non latine d'ailleurs) afin que l'application du terminal affiche la police thaï de mon choix tout en conservant la police anglaise.

Pardonnez les longs détails supplémentaires, mais je suis vraiment coincé ici sur Mac OS 10.11.1 et ma police de terminal est définie sur Menlo à une taille de police qui me convient. Menlo n'a pas de caractères thaïlandais, que j'ai vérifiés Fontbook > View > Repertoireet également via le Menu bar > Show Emoji and Symbols. (Mais il est intéressant de noter le Lao.) Cependant, lorsque je tape des caractères thaïlandais dans le terminal, miraculeusement le thaï apparaît. Apparemment, il existe une police de secours par défaut à l'échelle du système. Cependant, un caractère thaï ne s'affiche pas correctement. (Sara Am, สระ อำ) Je peux changer la police du terminal en CS Prajad et le thaï a l'air très bien, y compris le caractère problématique. Cependant, la police anglaise est affreusement laide et est inutile en tant que police de programmation.

J'ai désactivé SIP (System Integrity Protection) afin de modifier le fichier xml DefaultFontFallbacks.plistsitué dans

/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/Resourcespuis redémarré en pensant que cela résoudrait mon problème. Cependant, la police thaïlandaise d'origine par défaut s'affiche toujours dans le terminal.

(Modifications que j'ai apportées à DefaultFontFallbacks.plist.)

Remplacez la chaîne par défaut.

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

ajouter CS Prajad comme police monospace selon les chaînes xml chinois et coréen Han.

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

Comment puis-je changer la police de secours par défaut pour le thaï (ou toute autre langue non latine d'ailleurs) afin que l'application du terminal affiche la police thaï de mon choix tout en conservant la police anglaise.

BrianWilson
la source
Curieusement Menlo a des glyphes pour le lao et l'arabe qui ne sont pas attachés aux valeurs unicode et ne peuvent donc pas être utilisés pour l'entrée / l'affichage.
Tom Gewecke
La police que vous essayez d'utiliser est-elle installée pour le système? ou en tant que police utilisateur? Est-il également installé en tant que police TrueType?
user3052786

Réponses:

1

Tu y étais presque!

Ajoutez-le comme vous l'avez fait dans la liste de remplacement de langue préférée, mais assurez-vous que vous utilisez le nom PostScript pour la police. Il faut que ce soit exact!

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

Références:
https://gist.github.com/Moligaloo/3180490
https://github.com/zerustech/font-fallbacks-tutorial
https://github.com/zonble/tcfail/

Matt Sephton
la source