harfbuzz

How does harfbuzz support Mongolian layout?


I am working on a project. The UI is developed using QT, and Mongolian is needed to be displayed on the UI.But the Mongolian displayed on the UI is a single mongolian character. QT's layout engine uses the harfbuzz library. There is no Mongolian related module in the harfbuzz source code.Does harfbuzz support Mongolian layout? If it doesn't,any other library can work?

Another,I found some message in help manual.

https://harfbuzz.github.io/opentype-shaping-models.html ["The Arabic shaping model supports Arabic, Mongolian, N'Ko, Syriac, and several other connected or cursive scripts." ]

Does it mean that Mongolian processing module is included in Arabic module? If so, how to make Arabic module support Mongolian layout?


Solution

  • Does it mean that Mongolian processing module is included in Arabic module? If so, how to make Arabic module support Mongolian layout?

    Yes because logic of Mongolian script was similar to Arabic that's why it is handled on the same code path.

    But that is just a detail, clients shouldn't care about the way harfbuzz works and organized internally and if you have something that works in Windows or macOS shaper but not in HarfBuzz, or you just believe your expectations is what should a shaper do, just file a bug about it in HarfBuzz repo.

    Does it mean that Mongolian processing module is included in Arabic module? If so, how to make Arabic module support Mongolian layout?

    Not differently from creating a text render for any other script which is the point of creating unified shapers. Maybe libraqm, works on top of HarfBuzz, can provide what you need eventually, I remember it had supporting for top to bottom writing mode also, have a look it at I suggest.

    Thanks!