none
Japanese OSK not working RRS feed

  • Question

  • When I switch languages in my application using the following code

    string l; switch (_language) { case Language.ENGLISH: l = "en-US"; break; case Language.FRENCH: l = "fr-FR"; break; case Language.GERMAN: l = "de-DE"; break; case Language.SPANISH: l = "es-ES"; break; case Language.CHINESE: l = "zh-CN"; break; case Language.JAPANESE: l = "ja-JP"; break; case Language.PORTUGUESE: l = "pt-BR"; break; case Language.RUSSIAN: l = "ru-RU"; break; default: throw new NotImplementedException(); } Culture = new CultureInfo(l); ApplicationLanguages.PrimaryLanguageOverride = l; #if ARM try { //Set the Region GlobalizationPreferences.TrySetHomeGeographicRegion(l.Substring(3)); GlobalizationPreferences.TrySetLanguages(new string[] { l, "en-US"}); Windows.Globalization.Language.TrySetInputMethodLanguageTag(l); } catch (InvalidCastException ex) { Log.Info("Can't set geographic region (because this is a desktop?)", ex); } catch (Exception ex) { Log.Info("Can't set geographic region", ex); }

    #endif

    The OSK works fine in all my supported languages except Japanese. It displays the languages I was using previously, even through reboots. For example, if I switch to French, then Japanese, the OSK loads in French until I switch to another language.

    I do have <Language>ja-JP</Language> in both UserInterface and Keyboard in my *OEMInput.xml

    Using applyupdates.exe -getinstalledpackages I verified that Microsoft-OneCore-IoTUAP-Shell-OnScreenKeyboard-Feature-Package_ja-jp,mainos,10.0.17763.678 is present.

    Thursday, September 5, 2019 1:57 PM

Answers

  • Thanks Michael, I may give that a try at some point. For now, I used one of my support tickets on this issue and they instructed me to delete registry value [HKLM\Software\Microsoft\Input\Locales\loc_0411\inputmethods\1] Invisible="1" and restart the service "inputservice". This seems to be working.

    I greatly appreciate your assistance.

    Update: in further testing, it appears I have to reboot after removing the registry value. Stopping and starting inputservice does not do the job.

    • Marked as answer by matelich Monday, September 23, 2019 12:57 PM
    • Edited by matelich Monday, September 23, 2019 2:00 PM
    Monday, September 23, 2019 12:57 PM

All replies

  • Which OS are you using? Windows 10 IoT Core or Windows 10 Enterprise LTSC?

    If Enterprise, what language packages did you include in the image?


    Sean Liming - Book Author: Starter Guide Windows 10 IoT Enterprise - www.annabooks.com / www.seanliming.com


    Thursday, September 5, 2019 6:12 PM
  • Windows 10 IoT Core v.10.0.17763.678
    Thursday, September 5, 2019 6:14 PM
  • Hello matelich,

    Windows IoT Core supports Japanese language.Have you tried to show the property GlobalizationPreferences.Languages ? This property will list the set of languages that are preferred by the user. You can also get the uilanguages via command 'IotSettings -get uilanguage'. It seems that you should set the Japanese language with 'ja' instead of 'ja-JP'.

    Best Regards,

    Michael 


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.





    Friday, September 6, 2019 6:09 AM
    Moderator
  • Thank you for the response, Michael. I do want to make clear that all the other languages I've tried with my code work. It's only Japanese which doesn't.

    Here is the output of IoTSettings when toggling between English and Japanese.

    [192.168.29.179]: PS C:\Data\Users\Administrator\Documents> IoTSettings.exe -get uilanguage
    en-US
    [192.168.29.179]: PS C:\Data\Users\Administrator\Documents> IoTSettings.exe -get uilanguage
    ja;en-US

    I also verified that IoTCoreDefaultApp passes in ja-JP when setting the input language to Language.TrySetInputMethodLanguageTag. When I set the input language to Japanese, then go to the cmd prompt and back to the system settings page, the language has reverted to English. Same if I change the language, then go to set the admin password or try to edit the RGB of a tile background. I also added this to SystemSettings.xaml to better test and the Japanese keyboard does not work.

                        <TextBlock>Test your keyboard</TextBlock>
                        <TextBox/>
    

    My best guess is that the Japanese keyboard is crashing and the system is automatically reverting to the prior language. If someone could confirm that they are able to enter text in Japanese, that would be so helpful.

    Friday, September 6, 2019 1:58 PM
  • Hello matelich,

    Have you enable on-screen keyboard on your device? I have debugged the IoTDefaultApp, if i remove the feature of on-screen keyboard, it works when i set the tag as ja-JP for Japanese.

    Best Regards,

    Michael


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    Monday, September 9, 2019 2:48 AM
    Moderator
  • Hi Michael,

    I don't understand what you're suggesting I try. In my test FFU, if I turn off the "Show the on-screen keyboard when text input controls have focus" checkbox on the portal, I don't get an OSK at all. Or are you referring to  

          <Feature>IOT_SHELL_ONSCREEN_KEYBOARD</Feature>
          <Feature>IOT_SHELL_ONSCREEN_KEYBOARD_FOLLOWFOCUS</Feature>

    Monday, September 16, 2019 5:51 PM
  • Hello matelich,

    Yes. You may try to remove the OSK feature through building a custom image without IOT_SHELL_ONSCREEN_KEYBOARD.

    Best Regard,

    Michael


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Monday, September 23, 2019 5:56 AM
    Moderator
  • Thanks Michael, I may give that a try at some point. For now, I used one of my support tickets on this issue and they instructed me to delete registry value [HKLM\Software\Microsoft\Input\Locales\loc_0411\inputmethods\1] Invisible="1" and restart the service "inputservice". This seems to be working.

    I greatly appreciate your assistance.

    Update: in further testing, it appears I have to reboot after removing the registry value. Stopping and starting inputservice does not do the job.

    • Marked as answer by matelich Monday, September 23, 2019 12:57 PM
    • Edited by matelich Monday, September 23, 2019 2:00 PM
    Monday, September 23, 2019 12:57 PM