Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IME support for non-latin Unicode characters (CJK, Arabic, etc.) #29

Closed
greggman opened this issue Feb 11, 2014 · 24 comments
Closed

IME support for non-latin Unicode characters (CJK, Arabic, etc.) #29

greggman opened this issue Feb 11, 2014 · 24 comments

Comments

@greggman
Copy link

Trying to type Chinese, Japanese or Korean in OSX fails in the editor fails.

In other words, make a Button, click on the text field, try to type ロード. It doesn't work. Copying from somewhere else and trying to paste it in doesn't work either.

@reduz
Copy link
Member

reduz commented Feb 11, 2014

I suppose that in order for this to work, a CJK font should be provided. Do
you know of any good CJK font that could be bundled with Godot for this?

On Tue, Feb 11, 2014 at 8:29 AM, Greggman notifications@github.com wrote:

Trying to type Chinese, Japanese or Korean in OSX fails in the editor
fails.

In other words, make a Button, click on the text field, try to type ロード.
It doesn't work. Copying from somewhere else and trying to paste it in
doesn't work either.


Reply to this email directly or view it on GitHubhttps://github.com//issues/29
.

@greggman
Copy link
Author

Does it need to ship with a font? It seems like all the OSes Godot runs on have those fonts built in.

@reduz
Copy link
Member

reduz commented Feb 11, 2014

The UI is rendered using OpenGL, so getting the fonts from the host OS is
quite more work

On Tue, Feb 11, 2014 at 8:37 AM, Greggman notifications@github.com wrote:

Does it need to ship with a font? It seems like all the OSes Godot runs on
have those fonts built in.

Reply to this email directly or view it on GitHubhttps://github.com//issues/29#issuecomment-34746508
.

@greggman
Copy link
Author

That seems like it's going to be very problematic. The OS needs to be able to render the UI for entering Chinese, Japanese, Korean, etc... So, at a minimum you'll need OS specific code for each platform to talk to that platform's IME so tell it where to position itself and also to either feed it keystrokes or let it read the keyboard so it can correctly handle input in those languages.

I wonder if Sublime handles this since it also uses GL to render.... (checking)....Yes, it does. Hmmm. Maybe we can find another project that does this cross platform that is open source and see what they do

@antarktikali
Copy link

I experience the same issue for the Turkish characters ğ,ş,ı. However I think that the problem is only about showing the characters and can be fixed with just a font. When I type the special characters to a script file inside the editor they are added to the text but are invisible. If I highlight the invisible characters and copy them, I can paste them to an external text field without any problems.

@reduz
Copy link
Member

reduz commented Feb 11, 2014

Yes IME needs to be supported, that's likely the most diffuclt part.
Luckily, SDL2 supports IME and can be used as a reference I guess.

On Tue, Feb 11, 2014 at 8:47 AM, Greggman notifications@github.com wrote:

That seems like it's going to be very problematic. The OS needs to be able
to render the UI for entering Chinese, Japanese, Korean, etc... So, at a
minimum you'll need OS specific code for each platform to talk to that
platform's IME so tell it where to position itself and also to either feed
it keystrokes or let it read the keyboard so it can correctly handle input
in those languages.

I wonder if Sublime handles this since it also uses GL to render.

Reply to this email directly or view it on GitHubhttps://github.com//issues/29#issuecomment-34747134
.

@marynate
Copy link
Contributor

May I suggest DroidSansFallback as bundled font with CJK support.
https://github.com/android/platform_frameworks_base/blob/master/data/fonts/DroidSansFallback.ttf

It's licensed under Apache License, Version 2.0: https://github.com/android/platform_frameworks_base/blob/master/data/fonts/NOTICE

According to: http://www.droidfonts.com/droidfonts/
This font contains over 43,000 glyphs and includes support for Simplified Chinese (GB2312), Traditional Chinese (Big 5), Japanese (JIS 0208) and Korean (KSC 5601).

which should be enough for most tasks.

@Calinou
Copy link
Member

Calinou commented Apr 8, 2015

What about Noto Sans? http://www.google.com/get/noto/

We could even use it as the default Godot font, it's great as a system font. Very readable.

@michaeldesu
Copy link

Thanks Calinou - it's a nice font. As an experiment, I just tried one Japanese font at random (NotoSansJP-Medium), and found it to be a nice editor font.
image

@ghost
Copy link

ghost commented Jul 19, 2015

i'd go for GNU unifont as it has about 60k glyphs is monospaced and is bitmap pixel font http://unifoundry.com/unifont.html

@reduz
Copy link
Member

reduz commented Jul 19, 2015

Definitely want to add proper internationalization for 1.2, as the new site
will support it too

On Sun, Jul 19, 2015 at 12:04 AM, trollworkout notifications@github.com
wrote:

i'd go for GNU unifont as it has about 60k glyphs is monospaced and is
bitmap pixel font


Reply to this email directly or view it on GitHub
#29 (comment).

@ghost
Copy link

ghost commented Jul 19, 2015

At least add Korean and Japanese support as those 2 countries are the biggest consumers of games. If you guys could somehow even add Korean and Japanese input to engine (Godot interface and Godot games) would open up the engine and games to a huge market. I mean just saying. The interface (and games) can easily be internationalized and translated with the help of volunteers. Even a last step the ability to support unicode variables in GDScript like Python does would be nice too.

@reduz
Copy link
Member

reduz commented Jul 19, 2015

To avoid mistakes, Godot already supports displaying text in CJK, it's just
the editor that can't be internationalized

On Sun, Jul 19, 2015 at 5:59 AM, trollworkout notifications@github.com
wrote:

At least add Korean and Japanese support as those 2 countries are the
biggest consumers of games. If you guys could somehow even add Korean and
Japanese input to engine (Godot interface and Godot games) would open up
the engine and games to a huge market. I mean just saying. The interface
can easily be internationalized and translated with the help of volunteers.
Even a last step the ability to support unicode variables in GDScript like
Python does would be nice too.


Reply to this email directly or view it on GitHub
#29 (comment).

@akien-mga
Copy link
Member

@reduz mentioned wanting to fix this in 1.2 (now 2.0), but I'm not sure it's still in the planned roadmap for 2.0 as we're nearing to beta stage, so setting to "Later" for now.

To avoid mistakes, Godot already supports displaying text in CJK, it's just
the editor that can't be internationalized

Is it only about internationalizing the editor? From what I gathered it seems to be more about missing IME support, which prevents inputing CJK characters (regardless of whether the editor itself is in English or internationlized).

@akien-mga akien-mga changed the title Editor doesn't support CJK IME support for non-latin Unicode characters (CJK, Arabic, etc.) Nov 1, 2015
@akien-mga akien-mga removed this from the Later milestone Dec 15, 2015
@nunodonato
Copy link
Contributor

isn't this solved by the recent commits of new fonts and internationalization?

the issue mentions OSX specifically so I can't test...

@reduz
Copy link
Member

reduz commented Jun 1, 2016

I'm not sure if IME is working properly for those languages

On Wed, Jun 1, 2016 at 4:34 PM, Nuno Donato notifications@github.com
wrote:

isn't this solved by the recent commits of new fonts and
internationalization?

the issue mentions OSX specifically so I can't test...


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#29 (comment),
or mute the thread
https://github.com/notifications/unsubscribe/AF-Z2_ERaln0mdp_3GQIfEKADXzIEyGBks5qHd7AgaJpZM4Bg6Yj
.

@nunodonato
Copy link
Contributor

ah you're right, I just tested now in Linux and the problem persists with those characters in the editor

@yixiaoqingyuz
Copy link

yixiaoqingyuz commented Jun 3, 2016

+1

Trying to type Chinese, Japanese or Korean in OSX fails in the editor fails.

The version of godot is 2.0

@ghost
Copy link

ghost commented Jun 4, 2016

@yixiaoqingyuz try to copy chinese and paste in labels/strings. it wont be displayed in the script editor but works in the editor and in the game i u have the right font

@yixiaoqingyuz
Copy link

@trollworkout yes, the Japanese can be pasted in labels,but can't be typed

sowfelicity added a commit to sowfelicity/godot that referenced this issue Jun 29, 2017
    Request detectable auto-repeat (Require XKB extension) to support
    echo events and IME at the same time. Fixes godotengine#29, godotengine#7106 and godotengine#9381.
akien-mga added a commit that referenced this issue Jul 3, 2017
Workaround for IME and echo events on Linux (fixes #29 #7106 #9381):
groscalin pushed a commit to groscalin/godot that referenced this issue Jul 15, 2017
    Workaround for supporting input method frameworks like SCIM,
    IBus, Fcitx, etc.

    The locale is set when the application starts.

    Workaround for input when the input context within the specified
    input method is not available.
@akien-mga akien-mga added this to the 3.0 milestone Sep 18, 2017
hungrymonkey referenced this issue in hungrymonkey/godot Sep 30, 2017
lawnjelly added a commit to lawnjelly/godot that referenced this issue Apr 18, 2023
MisterPuma80 pushed a commit to MisterPuma80/just_a_game_engine that referenced this issue Oct 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants