Creating our own internationalization preset

This is the official documentation for ICU with regards to customizing internationalization data. There is an online tool, but additional steps are still required to unpackage the downloaded data as necessary and to add the preset to the project settings UI. For the online method, you’ll need to use one of ICU’s binary tools ( icupkg.exe ) in order to extract the contents of the *.dat file into individual files.

Manual Method:

  • The gist of it is that you want to look in Engine/Source/ThirdParty/ICU/icu4c-53_1/source/data. In that directory, there are various subdirectories containing files with names matching the pattern *files.mk or *local.mk, which specify the raw internationalization resources that should be built.
  • You must then configure ICU and make the data. For convenience, at least on Windows, you may use Config for Windows - Release.bat and Make on Windows.bat (or Make on Windows - Data.bat, subsequently) within Engine/Source/ThirdParty/ICU/icu4c-53_1.
  • Once executed, the icudt53l directory in Engine/Source/ThirdParty/ICU/icu4c-53_1/Win64/VS2013/data/out/build will contain the necessary data. That directory can be copied to a named directory in Engine/Content/Internationalization.
  • In ProjectPackagingSettings.h, you can add the named directories name to the EProjectPackagingInternationalizationPresets enum’s values. You should then be able to set your new preset in your project’s settings.

It’s not straight forward, but the hope was to make these steps unnecessary in the future and instead generate the presets as desired, on demand, in a user friendly manner. These presets are simply a stopgap measure that covers most cases with generic bundles of supported locales. In cases such as yours, generating custom presets are necessary.