Skip to content

Latest commit

 

History

History
80 lines (49 loc) · 6.91 KB

README.md

File metadata and controls

80 lines (49 loc) · 6.91 KB

🍃 TalkingLeaves

TalkingLeaves is a GlyphsApp plugin to explore the world’s languages and writing systems. It also comes with useful features to show you what languages your font may already support, and which glyphs are needed to support more languages.

Screenshot of the TalkingLeaves plugin window

What does it mean to “support” a language?

For many languages, this simply means having the right set of Unicode characters, like A–Z and a–z for English. This is all that TalkingLeaves checks for at the moment – just character sets.

In the future, TalkingLeaves will help you learn what other features are needed for certain languages, such as additional unencoded glyphs including ligatures and alternate forms, mark attachments, and other positioning and substitution rules.

For example, you can read issue #16 to learn about plans to improve support for Arabic languages, which require unencoded “positional” glyphs that are contextually substituted depending whether they appear at the beginning, middle, or end of a word.

For now, do not rely on TalkingLeaves to confirm which languages your font already supports. This can realistically only be done by analyzing your exported font file, checking its glyph set and the behaviour of its OpenType features. A rigorous check to confirm language support would include running it through both Hyperglot and Shaperglot, and potentially more research for certain languages.

What else can it do?

TalkingLeaves can help you understand the range of writing systems and character sets used around the world at a high level, or it can help you find some interesting facts and outliers. Talking Leaves can answer questions like:

  • How many languages can a font support with only the 26 basic Latin letters? (Answer: 103)
  • Which writing system has the smallest population of native speakers? (Answer: Cherokee)
  • What are some minority scripts that are used by a relatively large number of languages? (Answer: Geʽez, also known as the Ethiopic script, is a great example of this)

Those answers, of course, may change and grow as more languages are added to the Hyperglot database, which powers TalkingLeaves.

What does “Talking Leaves” mean?

“Talking leaves” is a beautiful metaphor for written language – attributed to the famous Cherokee neographer Sequoyah, who was one of the only people in history to invent the first writing system for their own people. The Cherokee syllabary was enormously successful, and within a few decades Cherokee literacy went from zero to nearly 100%, surpassing the literacy rate of the surrounding European settlers. Sequoyah’s work went on to inspire many more indigenous peoples to develop their own writing systems.

Installation

TalkingLeaves requires some dependencies that need to be installed via Python’s pip package manager. This is currently tricky because most Glyphs users are using the GlyphsPython module, which is a Python framework that doesn’t come with a working copy of pip. So we’ll need to install Python first if you don’t already have it.

Install Python and pip

You can install Python via Python.org, or use a package manager such as Homebrew or MacPorts. Run pip3 or pip in your Terminal to ensure pip is working.

Install dependencies

Important

Make sure GlyphsPython is selected in Glyphs > Preferences > Addons, and take note of the GlyphsPython version number. Run the following command in Terminal, replacing 3.11.9 with your GlyphsPython version number.

pip3 install --python-version=3.11.9 --only-binary=:all: --target="/Users/$USER/Library/Application Support/Glyphs 3/Scripts/site-packages" --upgrade hyperglot pandas

Note

  • --python-version tells pip to find packages for the specified Python version that you’re using in Glyphs.
  • --only-binary disallows build-from-source packages and is required when using --python-version.
  • --target installs the packages in a Glyphs-only location, and keeps them out of your pip list.

Warning

I recommend sticking with GlyphsPython in Glyphs > Preferences > Addons, but if you need to use another Python, you may need to delete the contents of ~/Library/Application Support/Glyphs 3/Scripts/site-packages and then install the dependencies again with the new Python version number. You’ll also need to install pyobjc.

Install TalkingLeaves plugin

Drag TalkingLeaves.glyphsPlugin and drop it onto the Glyphs icon in your dock. Glyphs will ask you to confirm the install, then you can restart Glyphs to begin using TalkingLeaves. Open a font, then open TalkingLeaves via the Window menu or ⌥⌘T.

Roadmap

  • Make installing dependencies easier for less-technical users.
  • Add information about unencoded/alternate glyphs that may be required for some languages (complex scripts, local forms).
  • Build TalkingLeaves plugins for other font editors, and possibly a web interface (contact me if you’re interested in helping/supporting this!)
  • Add a “more data” toggle for the languages table that shows some additional data fields.
  • Highlight glyphs in the “Missing” column that are composites and are composable from the user’s existing glyph set.
  • Add more language data sources, such as shaperglot/gflanguages.
  • Consider other ways of visualizing and navigating through languages, instead of by script, such as by region or by language family.

Contributing

If you have any ideas, bug reports, or other requests, I would love to hear them! You can file an issue, or send me an email or a DM. You can find various ways to contact me at justinpenner.ca.

The database of languages that powers TalkingLeaves comes from Hyperglot, an open-source project by Rosetta Type. If you want to contribute, see https://github.com/rosettatype/hyperglot/

Related resources

  • Hyperglot: web interface to check fonts for language support, and explore Hyperglot’s database of languages and writing systems.
  • Hyperglot @ Github
  • Shaperglot: another tool for checking language support similar to Hyperglot, but was originally initiated with the intent of checking OpenType features for languages that need more than just a minimum character set. Now Hyperglot and Shaperglot both have some ability to check OpenType features.
  • gflanguages: the language database behind Shaperglot.