on xenial help sign in
select correct Chinese input method for OSK in the wizard
ef2cf6cLukáš Tinkl
qml/Wizard/Pages/10-welcome.qml+17−4
@@ -61,6 +61,21 @@ LocalComponents.Page {
61 }
61 }
62 }
62 }
63
63
64+ function applyOSKSettings(locale) {
65+ var language = locale.split("_")[0].split(".")[0];
66+ var oskLanguage = language;
67+
68+ if (language === "zh") { // special case for Chinese, select either simplified or traditional
69+ if (locale.substr(0, 5) === "zh_CN" || locale.substr(0,5) === "zh_SG") {
70+ oskLanguage = "zh-hans"; // Chinese Simplified
71+ } else {
72+ oskLanguage = "zh-hant"; // Chinese Traditional
73+ }
74+ }
75+
76+ oskPlugin.setCurrentLayout(oskLanguage);
77+ }
78+
64 // splash screen (this has to be on the first page)
79 // splash screen (this has to be on the first page)
65 Image {
80 Image {
66 id: splashImage
81 id: splashImage
@@ -158,9 +173,8 @@ LocalComponents.Page {
158 onClicked: {
173 onClicked: {
159 if (plugin.currentLanguage !== languagesListView.currentIndex) {
174 if (plugin.currentLanguage !== languagesListView.currentIndex) {
160 var locale = plugin.languageCodes[languagesListView.currentIndex];
175 var locale = plugin.languageCodes[languagesListView.currentIndex];
161− var language = locale.split("_")[0].split(".")[0];
162 plugin.currentLanguage = languagesListView.currentIndex;
176 plugin.currentLanguage = languagesListView.currentIndex;
163− oskPlugin.setCurrentLayout(language);
177+ applyOSKSettings(locale);
164 System.updateSessionLocale(locale);
178 System.updateSessionLocale(locale);
165 }
179 }
166 i18n.language = plugin.languageCodes[plugin.currentLanguage]; // re-notify of change after above call (for qlocale change)
180 i18n.language = plugin.languageCodes[plugin.currentLanguage]; // re-notify of change after above call (for qlocale change)
@@ -169,8 +183,7 @@ LocalComponents.Page {
169 (root.simManager0.present && root.simManager0.ready) || (root.simManager1.present && root.simManager1.ready) ||
183 (root.simManager0.present && root.simManager0.ready) || (root.simManager1.present && root.simManager1.ready) ||
170 root.seenSIMPage) { // go to next page
184 root.seenSIMPage) { // go to next page
171 pageStack.next();
185 pageStack.next();
172− }
173− else {
186+ } else {
174 pageStack.load(Qt.resolvedUrl("sim.qml")); // show the SIM page
187 pageStack.load(Qt.resolvedUrl("sim.qml")); // show the SIM page
175 }
188 }
176 }
189 }
tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/MockLanguagePlugin.qml+3−2
@@ -17,7 +17,8 @@
17import QtQuick 2.4
17import QtQuick 2.4
18
18
19Item {
19Item {
20− property var languageNames: ["English (United States)", "French (France)", "Spanish (Spain)"]
20+ property var languageNames: ["English (United States)", "French (France)", "Spanish (Spain)", "Spanish (Mexico)",
21+ "German (Switzerland)", "Czech (Czechia)", "Chinese (Hongkong)", "Chinese (Singapore)", "Chinese (China)"]
21− property var languageCodes: ["en_US", "fr_FR", "es_ES"]
22+ property var languageCodes: ["en_US", "fr_FR", "es_ES", "es_MX", "de_CH", "cs_CZ", "zh_HK", "zh_SG", "zh_CN"]
22 property int currentLanguage: 0
23 property int currentLanguage: 0
23}
24}