I am trying to create an Arabic version of Unreal Editor like Japanese, Korean, and Chinese. If you are interested or want to get in details of the work, then join!
What is Arabic script
The Arabic script is written from right to left in a cursive style (so it’s complicated) letters change depending on their context (initial, medial, final, isolated).
Arabic script in Unicode
In Unicode the characters of the Arabic script are contained in four blocks:
Arabic (0600–06FF)
Arabic Supplement (0750–077F)
Arabic Presentation Forms-A (FB50–FDFF)
Arabic Presentation Forms-B (FE70–FEFF)
Unreal Engine 4 supports UTF-8 which is good.
What I have done so far?
I started prototyping Slate UI which is off-the-shelf UI solution, and rendered some Arabic text in help menu as an example.
Number substitution bug
I actually found that if your OS language is set to Arabic you will get empty square glyph instead of numbers.
Ok. Here’s a few steps to get you started on translating the editor into a language we don’t currently support.
If you go to your editor settings you can change your language to be Arabic specific. You’ll find it under the Appearance section in your build, I believe.
Next you need to go to UE4\Engine\Config\Localization and open up the Editor.ini and Engine.ini. In there you’ll find a CulturesToGenerate array, you should add Arabic to both of these.You should consider removing the other language so as to not corrupt your content and iterate faster.
Next you should run the editor with the following cmdline:
This will create the Arabic archive files. You’ll find them under UE4\Engine\Content\Localization. You can then enter translations into your archive files and re-run the above cmdlines. They will create/update your locres.
Your editor will automatically load the Arabic locres if your editor language is set to Arabic.
Be aware that there is a bug in the Language/Region settings that makes the setting only apply to the currently open project. So the splash screen won’t appear in Arabic since that appears before the project is loaded. You can get around this by changing your OS language/region to Arabic.
This should get you well on your way.
Unfortunately, we don’t have much support for your current goal. Good luck! Let me know how it goes!
In order to get the engine to properly fallback to an Arabic supported TTF you’ll need to translate (“Slate”, “FallbackFont”) in the archive. The translation should be the name of a TTF font under Engine/Content/Slate/Fonts.
For example, the default translation for this is “DroidSansFallback”, but the Korean archives translate it to “NanumGothic”.
I realize this is pretty terrible solution. In the near future we’ll be implementing something similar to composite fonts which will better resolve problems like this.
Are you sure I don’t need to add anything to ResourceFileGen.ini? GenerateGlobalizationFiles.bat useful? How do I gather text from source code? What the initial size of an empty archive?
You don’t need to add anything to the ResourceFileGen.ini unless you want to just build loc resource files. The current Engine/Editor .ini handle all phases of the text gathering, updating manifest/archives and the locres generating for you already. If you crack them open you’ll see [GatherTextStep0], [GatherTextStep1], etc… above each step is a comment about what it is doing.
I’m not sure what you mean regarding the initial size of an empty archive and why that would be important information, but running the Engine/Editor .ini through the commandlet I specified will update/create your archives. They should be pre-populated with blank translation entries.
Sorry the system is not well documented yet and is largely managed through cmdlets. In the future we hope to integrate this through the editor so things are much easier to work with, though the cmdlets will still be necessary in the future for automation.