How to support IME input in InpuText?

I encountered an issue when using GUI InputText.

My target users are Chinese speakers, and when using a Chinese IME, I found that the InputText do not support the IME.

I tried searching for a solution on the forum and found a discussion from 2020 with a corresponding GitHub issue.

I want to input Japanese with input text - Questions - Babylon.js (babylonjs.com)
Enable IME in inputtext · Issue #9428 · BabylonJS/Babylon.js (github.com)

In the issue, a developer mentioned that need to consider a more abstract solution.

The discussion has been ongoing for the past three years. I would like to inquire whether IME support will be implemented. Babylon.js, being a globally popular framework, I believe that supporting input for languages worldwide should be a feature of concern.

I’ll tag @RaananW so we can rehydrate the discussion :slight_smile: This would be certainly a good feature to have if we can dedicate the bandwidth for it

Clarifying the “more abstract solution” comment, I believe this is because currently, the inputText element processes inputs in a key by key fashion: Babylon.js/packages/dev/gui/src/2D/controls/inputText.ts at master · BabylonJS/Babylon.js (github.com), whereas for IME, it would probably have to process character by character, but I’m not sure how this would work generically (in a way that supports Babylon Native as well).

I can’t really explain why (i guess I don’t really know as well TBH), but this issue is dear to my heart :slight_smile:
Having said that - it is not trivially solved. We have an open issue for that on github - Enable IME in inputtext · Issue #9428 · BabylonJS/Babylon.js (github.com)

We can discuss prioritizing it, of course.