[GNC] Gnucash V3.x NSTextInputClient protocol non-compliance

KUSUMOTO Norio kusumoto at na.rim.or.jp
Thu Jan 2 08:44:57 EST 2020


Thank you for your replay, John!


(It is very difficult to draw attention to the issue of internationalization 
of text input. However, if you can imagine the practicality of accounting 
software that can not input virtually non-numeric text without copying and 
pasting from other applications, you will understand our disappointment.)



> 2020/01/02 13:21、John Ralls <jralls at ceridwen.us>のメール:
> 
> The known problem with Japanese and Chinese IMs is documented at https://bugs.gnucash.org/show_bug.cgi?id=797264. there's a work-around, though with Japanese it's a bit cumbersome than with Chinese especially on a desktop where you have to move your hands to get to the mouse or trackpad: Finish typing your string with a space, which may bring up a final selection box. Double-click on the selection in the box if it does. Regardless then double click in the field that you're filling in before tabbing to or clicking in another field. In Chinese one need simply end the string with a space bar before tabbing to the next field.


When we use IM to input Japanese, we use the cursor keys to specify where to separate 
the translations. Mouse actions cannot substitute for these actions.


> I just tried press-and-hold in Apple Mail with the Hiragana IM to see what's supposed to happen. Holding a letter key down does raise a window, but only after the key starts repeating. The same effect is achieved by typing the letter twice, so I don't think that there's a feature there.

You can select a variation of characters by long pressing only when you use the 'U.S.' 
keyboard, not when you select Hiragana IM.
I gave this example because I wanted to say that it is not a limited issue when using 
a language to input using IM, such as Japanese.



> The underlying problem is due to difficulty integrating IMs with our specialized tab, return, and arrow key handling for deciding when to commit transactions, look for accounts, and process calculations.

I worked on NSTextInputClient support for a programming language development environment 
last year. (It's not written in C.) It can do tab-driven completion, have the same key 
combinations as IM, or perform return based execution. I implemented it to suppress 
passing events to the IDE when I was interacting with IM.

I'm not familiar with the internationalization of GTK, but I think there should be a way 
to deal with similar situations because they should be a variety of applications.

--
KUSUMOTO Norio




More information about the gnucash-user mailing list