Overview#

Omniverse Language & Font extension [omni.kit.language.core]#

This extension has support for changing font.

omni.kit.language.core.register_language(("ja_JP", "Japanese", "日本語"),
                                         f"{extension_path}/data/fonts/NotoSansJP-SemiBold.ttf",
                                         1.2,
                                         [ f"{extension_path}/data/regions/japanese.txt", f"{extension_path}/data/regions/japanese_extended.txt" ],
                                         "いろはにほへと ちりぬるを わかよたれそ つねならむ うゐのおくやま けふこえて あさきゆめみし ゑひもせす",
                                         font_overresolution_size=66)

Change locale_id from python#

You can set current locale_id via setting “/persistent/app/locale_id”, EG.

carb.settings.get_settings().set("/persistent/app/locale_id", "de_DE")

But you will have to re-start kit or set in .kit file as this has to be used before the font is loaded.

Change locale_id from .kit file#

You can force current locale_id via setting “persistent.app.locale_id”, EG.

[settings.persistent]
app.locale_id = "ja_JP"

NOTE: This will be changeable in Language Preferences but .kit file will always reset the value when kit restarts.

Add language from .kit file#

[[settings.exts."omni.kit.language.core".language]]
name = "Japanese"
locale_info = ["ja_JP", "Japanese", "日本語"]
font_path = "${fonts}/NotoSansJP-SemiBold.ttf"
font_scale = 1.2
regions = ["${kit}/exts/omni.kit.renderer.imgui/data/regions/japanese.txt", "${kit}/exts/omni.kit.renderer.imgui/data/regions/japanese_extended.txt"]
pangram = "いろはにほへと ちりぬるを わかよたれそ つねならむ うゐのおくやま けふこえて あさきゆめみし ゑひもせす"

NOTE: For this to work, font and region paths have to be resolvable by kit. Which is why ${fonts} and ${kit} are used. Also note that NotoSansJP-SemiBold.ttf isn’t in currently in font resources and is shown for demonstration only, although it can be added.