Localization: All letters appear as empty squares, even with downloaded font.

I’m in big confusion. I try to localize my app to other languages. I started with Arabic. I downloaded and tried several fonts. The last font I tried was this one.
First the fonts supposed to be Arabic, but when I preview them in Windows all letters are in English


The same in Unity

Then when I try to use the font with Arabic writing all letters appear as empty squares in the UI

What am I doing wrong? How am I supposed to add foreign languages?

Every language or group of languages in the world are assigned a specific Unicode range.

The Unicode range for any given language can be found in the Unicode Chart.

When creating a font asset, you can specify a custom Unicode range in the Character Set options. This is where you would define for instance a range to include the Arabic character set. There are a few posts on the forum here that would include this range which can also be found in the Unicode Chart.

Alternatively, instead of creating a static font asset using the Font Asset Creator, you could create a dynamic font asset with Multi Atlas Texture enabled. As long as the source font file supports the desired language, the font asset will be able to potentially display every single character and glyph contained in the font file.

To learn more about dynamic font assets and localization please consider watching the following two videos.

https://www.youtube.com/watch?v=NY1xKqCIj3c

https://www.youtube.com/watch?v=pLW2B98W5AU

1 Like

Thank you. Those videos are great!

1 Like

These two videos were incredibly Helpful. The barely noticable “Multi Atlas” checkbox made a world of difference with Chinese and Hindi Localizations.

Side note. The whole “Multi Atlas” thing should just be a default behavior. It would have saved me 3-6 hours of troubleshooting and google searches that finally lead me here.