TextMeshPro multi language font support

Remove those square

The Problem

If you want to create a multi-language game in Unity and you are using TextMeshPro, you’ll discover that it’s hard/impossible to create a font for each language. Or if your game uses a TextMeshPro input text to get the user’s input, the user will most likely get squares in his input if he uses a non-ASCII character.

The Solution

To fix this problem you can use this simple plugin, just by dragging a prefab and putting in the first scene of your game, and assigning your main used TextMeshPro font asset to it. If you’re not using a custom font you can put the default TextMeshPro font LiberationSans SDF. And that’s it! All your TextMeshPro texts will display any languages from the devices you’re using after pressing the play button.

Requirements:

  • Unity Engine(Tested on Unity 2019 and 2021)
  • You need to have TextMeshPro installed in the project

Features:

  • Support all languages that are available on the installed device.
  • Works on every platform: Windows, Android, Mac OS, and IOS.
  • Works for TextMeshPro texts, Input Texts, and GameObject Texts.
  • Works in runtime useful for Text Inputs.
  • Can use filter to get only specific types of texts  (Bold, Italic, Regulat, etc) useful if you want the detect fonts to be similar to your main font.

Real-Life examples that use this plugin:

This Plugin does not work on IOS.

Share your love