diff options
author | wnwen <wnwen@chromium.org> | 2015-02-04 05:29:42 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-04 13:30:56 +0000 |
commit | d3dd7390552c77952ed24a6f3e9100728cef1191 (patch) | |
tree | 04c6d977d9ea37170903de5dedabf340cabb3e35 | |
parent | ae8232dfef2a097fef675e4ec855c1a65e9f7a82 (diff) | |
download | chromium_src-d3dd7390552c77952ed24a6f3e9100728cef1191.zip chromium_src-d3dd7390552c77952ed24a6f3e9100728cef1191.tar.gz chromium_src-d3dd7390552c77952ed24a6f3e9100728cef1191.tar.bz2 |
Uprev Google Input Tools.
BUG=450050
Review URL: https://codereview.chromium.org/899673003
Cr-Commit-Position: refs/heads/master@{#314553}
115 files changed, 4536 insertions, 280 deletions
diff --git a/third_party/google_input_tools/README.chromium b/third_party/google_input_tools/README.chromium index 026f2a6..3ae0a96 100644 --- a/third_party/google_input_tools/README.chromium +++ b/third_party/google_input_tools/README.chromium @@ -2,7 +2,7 @@ Name: Google Input Tools Short Name: google_input_tools URL: https://github.com/googlei18n/google-input-tools.git Version: 1.0.6.0 -Revision: @9682ab568163879e00499bd94937016426afddfb +Revision: @30ffaf3940d79fe88160fa2d3eccb5134953481a License: Apache 2.0 License File: LICENSE Security Critical: yes diff --git a/third_party/google_input_tools/inputview.gypi b/third_party/google_input_tools/inputview.gypi index 3c27b66..82a68ac 100644 --- a/third_party/google_input_tools/inputview.gypi +++ b/third_party/google_input_tools/inputview.gypi @@ -25,6 +25,7 @@ 'src/chrome/os/inputview/direction.js', 'src/chrome/os/inputview/dom.js', 'src/chrome/os/inputview/elements/content/altdataview.js', + 'src/chrome/os/inputview/elements/content/backspacekey.js', 'src/chrome/os/inputview/elements/content/candidate.js', 'src/chrome/os/inputview/elements/content/candidatebutton.js', 'src/chrome/os/inputview/elements/content/candidateview.js', @@ -50,10 +51,13 @@ 'src/chrome/os/inputview/elements/content/menuview.js', 'src/chrome/os/inputview/elements/content/modifierkey.js', 'src/chrome/os/inputview/elements/content/morekeysshiftoperation.js', + 'src/chrome/os/inputview/elements/content/selectview.js', 'src/chrome/os/inputview/elements/content/softkey.js', 'src/chrome/os/inputview/elements/content/spacekey.js', + 'src/chrome/os/inputview/elements/content/swipeview.js', 'src/chrome/os/inputview/elements/content/switcherkey.js', 'src/chrome/os/inputview/elements/content/tabbarkey.js', + 'src/chrome/os/inputview/elements/content/toolbarbutton.js', 'src/chrome/os/inputview/elements/content/voiceview.js', 'src/chrome/os/inputview/elements/element.js', 'src/chrome/os/inputview/elements/elementtype.js', @@ -66,6 +70,7 @@ 'src/chrome/os/inputview/emojitype.js', 'src/chrome/os/inputview/events.js', 'src/chrome/os/inputview/events/keycodes.js', + 'src/chrome/os/inputview/globalflags.js', 'src/chrome/os/inputview/globalsettings.js', 'src/chrome/os/inputview/handler/pointeractionbundle.js', 'src/chrome/os/inputview/handler/pointerhandler.js', @@ -92,8 +97,6 @@ 'src/chrome/os/inputview/readystate.js', 'src/chrome/os/inputview/settings.js', 'src/chrome/os/inputview/sizespec.js', - 'src/chrome/os/inputview/soundcontroller.js', - 'src/chrome/os/inputview/sounds.js', 'src/chrome/os/inputview/specnodename.js', 'src/chrome/os/inputview/statemanager.js', 'src/chrome/os/inputview/statetype.js', @@ -109,6 +112,8 @@ 'src/chrome/os/message/event.js', 'src/chrome/os/message/name.js', 'src/chrome/os/message/type.js', + 'src/chrome/os/soundcontroller.js', + 'src/chrome/os/sounds.js', 'src/chrome/os/statistics.js', 'third_party/closure_library/closure/goog/a11y/aria/announcer.js', 'third_party/closure_library/closure/goog/a11y/aria/aria.js', diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/am/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/am/messages.json index 6b7399c..8bde55a 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/am/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/am/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u12c8\u12f0 \u12e8\u130d\u120d \u1218\u12dd\u1308\u1260 \u1243\u120b\u1275 \u12a0\u12ad\u120d" + }, "advanced": { "message": "\u12e8\u120b\u1240" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u12e8\u1235\u1353\u1292\u123d\u129b \u1241\u120d\u134d \u1230\u120c\u12f3 \u1245\u1295\u1265\u122e\u127d \u1308\u133d" }, + "expand": { + "message": "\u12d8\u122d\u130b" + }, + "expand_candidates": { + "message": "\u12e8\u12d5\u1329 \u12dd\u122d\u12dd\u122d\u1295 \u12d8\u122d\u130b" + }, "fi_fin_settings_page": { "message": "\u12e8\u134a\u1295\u120b\u1295\u12f5\u129b \u1241\u120d\u134d \u1230\u120c\u12f3 \u1245\u1295\u1265\u122e\u127d \u1308\u133d" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u12e8\u1264\u120b\u1229\u1235\u129b \u1241\u120d\u134d \u1230\u120c\u12f3 \u1245\u1295\u1265\u122e\u127d \u1308\u133d" }, + "ignore_correction": { + "message": "\u1208\u121a\u12a8\u1270\u1208\u12cd \u12a5\u122d\u121b\u1276\u127d\u1295 \u127d\u120b \u1260\u120d" + }, "il_heb_settings_page": { "message": "\u12e8\u12a5\u1265\u122b\u12ed\u1235\u1325 \u1241\u120d\u134d \u1230\u120c\u12f3 \u1245\u1295\u1265\u122e\u127d \u1308\u133d" }, @@ -2847,7 +2859,7 @@ "message": "\u12e8\u122e\u121b\u1292\u12eb\u129b \u1241\u120d\u134d \u1230\u120c\u12f3" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u12e8\u122e\u121b\u1292\u12eb \u1218\u12f0\u1260\u129b \u12e8\u1241\u120d\u134d \u1230\u120c\u12f3" }, "keyboard_russian": { "message": "\u12e8\u1229\u1232\u12eb\u129b \u1241\u120d\u134d \u1230\u120c\u12f3" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u12e8\u1235\u12ca\u12f2\u1295\u129b \u1241\u120d\u134d \u1230\u120c\u12f3 \u1245\u1295\u1265\u122e\u127d \u1308\u133d" }, + "settings": { + "message": "\u1245\u1295\u1265\u122e\u127d" + }, "shift": { "message": "\u1218\u1240\u12e8\u122a\u12eb" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u12e8Hangul \u12a0\u1235\u1270\u12eb\u12e8\u1275 \u1325\u1246\u121b\u12ce\u127d\u1295 \u12a0\u1233\u12ed" }, + "shrink_candidates": { + "message": "\u12e8\u12d5\u1329 \u12dd\u122d\u12dd\u122d\u1295 \u12d8\u122d\u130b" + }, "si_slv_settings_page": { "message": "\u12e8\u1235\u120e\u126b\u1295\u12eb\u129b \u1241\u120d\u134d \u1230\u120c\u12f3 \u1245\u1295\u1265\u122e\u127d \u1308\u133d" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u12e8\u1270\u1218\u1228\u1321\u1275\u1295 \u12a0\u1235\u12c8\u130d\u12f5" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u12a0\u1235\u1240\u121d\u1325" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ar/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ar/messages.json index 090167f..39b778e 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ar/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ar/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u0627\u0644\u0625\u0636\u0627\u0641\u0629 \u0625\u0644\u0649 \u0627\u0644\u0642\u0627\u0645\u0648\u0633 \u0627\u0644\u0634\u062e\u0635\u064a" + }, "advanced": { "message": "\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0645\u062a\u0642\u062f\u0645\u0629" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u0635\u0641\u062d\u0629 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d \u0627\u0644\u0625\u0633\u0628\u0627\u0646\u064a\u0629" }, + "expand": { + "message": "\u062a\u0648\u0633\u064a\u0639" + }, + "expand_candidates": { + "message": "\u062a\u0648\u0633\u064a\u0639 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0645\u0631\u0634\u062d\u064a\u0646" + }, "fi_fin_settings_page": { "message": "\u0635\u0641\u062d\u0629 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d \u0627\u0644\u0642\u0637\u0627\u0644\u0648\u0646\u064a\u0629" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0635\u0641\u062d\u0629 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d \u0627\u0644\u0623\u064a\u0631\u0644\u0646\u062f\u064a\u0629" }, + "ignore_correction": { + "message": "\u062a\u062c\u0627\u0647\u0644 \u062a\u0635\u062d\u064a\u062d \u0644\u0640" + }, "il_heb_settings_page": { "message": "\u0635\u0641\u062d\u0629 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d \u0627\u0644\u0639\u0628\u0631\u064a\u0629" }, @@ -2847,7 +2859,7 @@ "message": "\u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d \u0627\u0644\u0631\u0648\u0645\u0627\u0646\u064a\u0629" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d \u0627\u0644\u0631\u0648\u0645\u0627\u0646\u064a\u0629 \u0627\u0644\u0642\u064a\u0627\u0633\u064a\u0629" }, "keyboard_russian": { "message": "\u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d \u0627\u0644\u0631\u0648\u0633\u064a\u0629" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0635\u0641\u062d\u0629 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d \u0627\u0644\u0633\u0648\u064a\u062f\u064a\u0629" }, + "settings": { + "message": "\u0625\u0639\u062f\u0627\u062f\u0627\u062a" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u0639\u0631\u0636 \u0627\u0642\u062a\u0631\u0627\u062d\u0627\u062a \u0627\u0644\u0647\u0627\u0646\u063a\u0648\u0644" }, + "shrink_candidates": { + "message": "\u062a\u0642\u0644\u064a\u0635 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0645\u0631\u0634\u062d\u064a\u0646" + }, "si_slv_settings_page": { "message": "\u0635\u0641\u062d\u0629 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d \u0627\u0644\u0633\u0644\u0648\u0641\u0627\u0646\u064a\u0629" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0645\u062e\u062a\u0627\u0631\u0629" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u062d\u0641\u0638" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/bg/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/bg/messages.json index 3fc8910..7c23209 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/bg/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/bg/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043a\u044a\u043c \u043b\u0438\u0447\u043d\u0438\u044f \u0440\u0435\u0447\u043d\u0438\u043a" + }, "advanced": { "message": "\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u0438\u0441\u043f\u0430\u043d\u0441\u043a\u0430\u0442\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430" }, + "expand": { + "message": "\u0420\u0430\u0437\u0433\u044a\u0432\u0430\u043d\u0435" + }, + "expand_candidates": { + "message": "\u0440\u0430\u0437\u0433\u044a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u043f\u0438\u0441\u044a\u043a\u0430 \u0441 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f" + }, "fi_fin_settings_page": { "message": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u0444\u0438\u043d\u043b\u0430\u043d\u0434\u0441\u043a\u0430\u0442\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0430\u0442\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430" }, + "ignore_correction": { + "message": "\u041f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u0440\u0435\u043a\u0446\u0438\u044f\u0442\u0430 \u0437\u0430" + }, "il_heb_settings_page": { "message": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430\u0442\u0430 \u043d\u0430 \u0438\u0432\u0440\u0438\u0442" }, @@ -2847,7 +2859,7 @@ "message": "\u0420\u0443\u043c\u044a\u043d\u0441\u043a\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u0420\u0443\u043c\u044a\u043d\u0441\u043a\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430" }, "keyboard_russian": { "message": "\u0420\u0443\u0441\u043a\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u0448\u0432\u0435\u0434\u0441\u043a\u0430\u0442\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430" }, + "settings": { + "message": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0445\u0430\u043d\u0433\u044a\u043b" }, + "shrink_candidates": { + "message": "\u0441\u0432\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0441\u043f\u0438\u0441\u044a\u043a\u0430 \u0441 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f" + }, "si_slv_settings_page": { "message": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430 \u0441\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0430\u0442\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u0431\u0440\u0430\u043d\u043e\u0442\u043e" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u0417\u0430\u043f\u0430\u0437\u0432\u0430\u043d\u0435" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/bn/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/bn/messages.json index 600d640..d1fbac5 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/bn/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/bn/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u09ac\u09cd\u09af\u0995\u09cd\u09a4\u09bf\u0997\u09a4 \u0985\u09ad\u09bf\u09a7\u09be\u09a8\u09c7 \u09af\u09cb\u0997 \u0995\u09b0\u09c1\u09a8" + }, "advanced": { "message": "\u0989\u09a8\u09cd\u09a8\u09a4" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u09b8\u09cd\u09aa\u09cd\u09af\u09be\u09a8\u09bf\u09b6 \u0995\u09c0\u09ac\u09cb\u09b0\u09cd\u09a1 \u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be" }, + "expand": { + "message": "\u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8" + }, + "expand_candidates": { + "message": "\u09aa\u09cd\u09b0\u09be\u09b0\u09cd\u09a5\u09c0 \u09a4\u09be\u09b2\u09bf\u0995\u09be \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8" + }, "fi_fin_settings_page": { "message": "\u09ab\u09bf\u09a8\u09bf\u09b6 \u0995\u09c0\u09ac\u09cb\u09b0\u09cd\u09a1 \u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0986\u0987\u09b0\u09bf\u09b6 \u0995\u09c0\u09ac\u09cb\u09b0\u09cd\u09a1 \u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be" }, + "ignore_correction": { + "message": "\u098f\u09b0 \u099c\u09a8\u09cd\u09af \u0995\u09b0\u09be \u09b8\u0982\u09b6\u09cb\u09a7\u09a8 \u0989\u09aa\u09c7\u0995\u09cd\u09b7\u09be \u0995\u09b0\u09c1\u09a8" + }, "il_heb_settings_page": { "message": "\u09b9\u09bf\u09ac\u09cd\u09b0\u09c1 \u0995\u09c0\u09ac\u09cb\u09b0\u09cd\u09a1 \u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be" }, @@ -2847,7 +2859,7 @@ "message": "\u09b0\u09cb\u09ae\u09be\u09a8\u09bf\u09df \u0995\u09c0\u09ac\u09cb\u09b0\u09cd\u09a1" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u09b0\u09cb\u09ae\u09be\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u0986\u09a6\u09b0\u09cd\u09b6 \u0995\u09c0\u09ac\u09cb\u09b0\u09cd\u09a1" }, "keyboard_russian": { "message": "\u09b0\u09be\u09b6\u09bf\u09df\u09be\u09a8 \u0995\u09c0\u09ac\u09cb\u09b0\u09cd\u09a1" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u09b8\u09c1\u0987\u09a1\u09bf\u09b6 \u0995\u09c0\u09ac\u09cb\u09b0\u09cd\u09a1 \u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be" }, + "settings": { + "message": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u09b9\u09be\u0999\u09cd\u0997\u09c1\u09b2 \u09aa\u09cd\u09b0\u09b8\u09cd\u09a4\u09be\u09ac\u09a8\u09be\u0997\u09c1\u09b2\u09bf \u09a6\u09c7\u0996\u09be\u09a8" }, + "shrink_candidates": { + "message": "\u09aa\u09cd\u09b0\u09be\u09b0\u09cd\u09a5\u09c0 \u09a4\u09be\u09b2\u09bf\u0995\u09be \u09b8\u0999\u09cd\u0995\u09c1\u099a\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8" + }, "si_slv_settings_page": { "message": "\u09b8\u09cd\u09b2\u09cb\u09ad\u09c7\u09a8\u09bf\u09af\u09bc \u0995\u09c0\u09ac\u09cb\u09b0\u09cd\u09a1 \u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u09a8\u09bf\u09b0\u09cd\u09ac\u09be\u099a\u09bf\u09a4 \u09b8\u09b0\u09be\u09a8" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09a3 \u0995\u09b0\u09c1\u09a8" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ca/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ca/messages.json index 72ad907..5af81f0 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ca/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ca/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Afegeix al diccionari personal" + }, "advanced": { "message": "Avan\u00e7ada" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "P\u00e0gina de configuraci\u00f3 del teclat espanyol" }, + "expand": { + "message": "Amplia" + }, + "expand_candidates": { + "message": "amplia la llista de candidats" + }, "fi_fin_settings_page": { "message": "P\u00e0gina de configuraci\u00f3 del teclat fin\u00e8s" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "P\u00e0gina de configuraci\u00f3 del teclat irland\u00e8s" }, + "ignore_correction": { + "message": "Ignora la correcci\u00f3 de" + }, "il_heb_settings_page": { "message": "P\u00e0gina de configuraci\u00f3 del teclat hebreu" }, @@ -2847,7 +2859,7 @@ "message": "Teclat roman\u00e8s" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Teclat est\u00e0ndard roman\u00e8s" }, "keyboard_russian": { "message": "Teclat rus" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "P\u00e0gina de configuraci\u00f3 del teclat suec" }, + "settings": { + "message": "Configuraci\u00f3" + }, "shift": { "message": "maj" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Mostra suggeriments d'hangul" }, + "shrink_candidates": { + "message": "redueix la llista de candidats" + }, "si_slv_settings_page": { "message": "P\u00e0gina de configuraci\u00f3 del teclat eslov\u00e8" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Suprimeix les seleccionades" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Desa" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/cs/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/cs/messages.json index 2c689a8..72dffcc 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/cs/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/cs/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "P\u0159idat do osobn\u00edho slovn\u00edku" + }, "advanced": { "message": "Roz\u0161\u00ed\u0159en\u00e1 nastaven\u00ed" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Str\u00e1nka nastaven\u00ed \u0161pan\u011blsk\u00e9 kl\u00e1vesnice" }, + "expand": { + "message": "Rozbalit" + }, + "expand_candidates": { + "message": "rozbalit seznam kandid\u00e1t\u016f" + }, "fi_fin_settings_page": { "message": "Str\u00e1nka nastaven\u00ed finsk\u00e9 kl\u00e1vesnice" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Str\u00e1nka nastaven\u00ed irsk\u00e9 kl\u00e1vesnice" }, + "ignore_correction": { + "message": "Ignorovat opravu pro" + }, "il_heb_settings_page": { "message": "Str\u00e1nka nastaven\u00ed hebrejsk\u00e9 kl\u00e1vesnice" }, @@ -2847,7 +2859,7 @@ "message": "Rumunsk\u00e1 kl\u00e1vesnice" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Standardn\u00ed rumunsk\u00e1 kl\u00e1vesnice" }, "keyboard_russian": { "message": "Rusk\u00e1 kl\u00e1vesnice" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Str\u00e1nka nastaven\u00ed \u0161v\u00e9dsk\u00e9 kl\u00e1vesnice" }, + "settings": { + "message": "Nastaven\u00ed" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Zobrazovat n\u00e1vrhy korejsk\u00e9ho p\u00edsma" }, + "shrink_candidates": { + "message": "sbalit seznam kandid\u00e1t\u016f" + }, "si_slv_settings_page": { "message": "Str\u00e1nka nastaven\u00ed slovinsk\u00e9 kl\u00e1vesnice" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Odstranit vybran\u00e9" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Ulo\u017eit" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/da/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/da/messages.json index 8543fe3..f928550 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/da/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/da/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "F\u00f8j til personlig ordbog" + }, "advanced": { "message": "Avanceret" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Side med indstillinger for spansk tastatur" }, + "expand": { + "message": "Udvid" + }, + "expand_candidates": { + "message": "udvid kandidatlisten" + }, "fi_fin_settings_page": { "message": "Side med indstillinger for finsk tastatur" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Side med indstillinger for irsk tastatur" }, + "ignore_correction": { + "message": "Ignorer rettelsen af" + }, "il_heb_settings_page": { "message": "Side med indstillinger for hebraisk tastatur" }, @@ -2847,7 +2859,7 @@ "message": "Rum\u00e6nsk tastatur" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Rum\u00e6nsk standardtastatur" }, "keyboard_russian": { "message": "Russisk tastatur" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Side med indstillinger for svensk tastatur" }, + "settings": { + "message": "Indstillinger" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Vis forslag p\u00e5 hangul" }, + "shrink_candidates": { + "message": "g\u00f8r kandidatlisten mindre" + }, "si_slv_settings_page": { "message": "Side med indstillinger for slovensk tastatur" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Fjern markering" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Gem" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/de/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/de/messages.json index 22eda94..9d8bf65 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/de/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/de/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "In pers\u00f6nliches W\u00f6rterbuch aufnehmen" + }, "advanced": { "message": "Erweitert" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Seite mit Einstellungen f\u00fcr spanische Tastatur" }, + "expand": { + "message": "Maximieren" + }, + "expand_candidates": { + "message": "Kandidatenliste maximieren" + }, "fi_fin_settings_page": { "message": "Seite mit Einstellungen f\u00fcr finnische Tastatur" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Seite mit Einstellungen f\u00fcr irische Tastatur" }, + "ignore_correction": { + "message": "Korrektur ignorieren f\u00fcr" + }, "il_heb_settings_page": { "message": "Seite mit Einstellungen f\u00fcr hebr\u00e4ische Tastatur" }, @@ -2847,7 +2859,7 @@ "message": "Rum\u00e4nische Tastatur" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Rum\u00e4nische Standardtastatur" }, "keyboard_russian": { "message": "Russische Tastatur" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Seite mit Einstellungen f\u00fcr schwedische Tastatur" }, + "settings": { + "message": "Einstellungen" + }, "shift": { "message": "Umschalttaste" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Hangul-Vorschl\u00e4ge anzeigen" }, + "shrink_candidates": { + "message": "Kandidatenliste minimieren" + }, "si_slv_settings_page": { "message": "Seite mit Einstellungen f\u00fcr slowenische Tastatur" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Auswahl entfernen" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Speichern" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/el/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/el/messages.json index f274d42..58b4d65 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/el/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/el/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03c3\u03c4\u03bf \u03c0\u03c1\u03bf\u03c3\u03c9\u03c0\u03b9\u03ba\u03cc \u03bb\u03b5\u03be\u03b9\u03ba\u03cc" + }, "advanced": { "message": "\u03a3\u03cd\u03bd\u03b8\u03b5\u03c4\u03b5\u03c2" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u03a3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd \u03c0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03bf\u03b3\u03af\u03bf\u03c5 \u03b9\u03c3\u03c0\u03b1\u03bd\u03b9\u03ba\u03ce\u03bd \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03c9\u03bd" }, + "expand": { + "message": "\u0391\u03bd\u03ac\u03c0\u03c4\u03c5\u03be\u03b7" + }, + "expand_candidates": { + "message": "\u03b1\u03bd\u03ac\u03c0\u03c4\u03c5\u03be\u03b7 \u03bb\u03af\u03c3\u03c4\u03b1\u03c2 \u03c5\u03c0\u03bf\u03c8\u03ae\u03c6\u03b9\u03c9\u03bd" + }, "fi_fin_settings_page": { "message": "\u03a3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd \u03c0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03bf\u03b3\u03af\u03bf\u03c5 \u03c6\u03b9\u03bd\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ce\u03bd \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03c9\u03bd" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u03a3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd \u03c0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03bf\u03b3\u03af\u03bf\u03c5 \u03b9\u03c1\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ce\u03bd \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03c9\u03bd" }, + "ignore_correction": { + "message": "\u03a0\u03b1\u03c1\u03ac\u03b2\u03bb\u03b5\u03c8\u03b7 \u03b4\u03b9\u03cc\u03c1\u03b8\u03c9\u03c3\u03b7\u03c2 \u03b3\u03b9\u03b1" + }, "il_heb_settings_page": { "message": "\u03a3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd \u03c0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03bf\u03b3\u03af\u03bf\u03c5 \u03b5\u03b2\u03c1\u03b1\u03ca\u03ba\u03ce\u03bd \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03c9\u03bd" }, @@ -2847,7 +2859,7 @@ "message": "\u03a0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03cc\u03b3\u03b9\u03bf \u03bc\u03b5 \u03c1\u03bf\u03c5\u03bc\u03b1\u03bd\u03b9\u03ba\u03bf\u03cd\u03c2 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u03a4\u03c5\u03c0\u03b9\u03ba\u03cc \u03c0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03cc\u03b3\u03b9\u03bf \u03a1\u03bf\u03c5\u03bc\u03b1\u03bd\u03b9\u03ba\u03ce\u03bd" }, "keyboard_russian": { "message": "\u03a0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03cc\u03b3\u03b9\u03bf \u03bc\u03b5 \u03c1\u03c9\u03c3\u03b9\u03ba\u03bf\u03cd\u03c2 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b5\u03c2" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u03a3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd \u03c0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03bf\u03b3\u03af\u03bf\u03c5 \u03c3\u03bf\u03c5\u03b7\u03b4\u03b9\u03ba\u03ce\u03bd \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03c9\u03bd" }, + "settings": { + "message": "\u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c0\u03c1\u03bf\u03c4\u03ac\u03c3\u03b5\u03c9\u03bd \u03a7\u03b1\u03bd\u03b3\u03ba\u03bf\u03cd\u03bb" }, + "shrink_candidates": { + "message": "\u03c3\u03cd\u03bc\u03c0\u03c4\u03c5\u03be\u03b7 \u03bb\u03af\u03c3\u03c4\u03b1\u03c2 \u03c5\u03c0\u03bf\u03c8\u03ae\u03c6\u03b9\u03c9\u03bd" + }, "si_slv_settings_page": { "message": "\u03a3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03c9\u03bd \u03c0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03bf\u03b3\u03af\u03bf\u03c5 \u03c3\u03bb\u03bf\u03b2\u03b5\u03bd\u03b9\u03ba\u03ce\u03bd \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03c9\u03bd" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u039a\u03b1\u03c4\u03ac\u03c1\u03b3\u03b7\u03c3\u03b7 \u03b5\u03c0\u03b9\u03bb\u03b5\u03b3\u03bc\u03ad\u03bd\u03c9\u03bd" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/en/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/en/messages.json index 564113a..724c42c 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/en/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/en/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Add to personal dictionary" + }, "advanced": { "message": "Advanced" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Spanish Keyboard Settings Page" }, + "expand": { + "message": "Expand" + }, + "expand_candidates": { + "message": "expand candidate list" + }, "fi_fin_settings_page": { "message": "Finnish Keyboard Settings Page" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Irish Keyboard Settings Page" }, + "ignore_correction": { + "message": "Ignore correction for" + }, "il_heb_settings_page": { "message": "Hebrew Keyboard Settings Page" }, @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Swedish Keyboard Settings Page" }, + "settings": { + "message": "Settings" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Show Hangul suggestions" }, + "shrink_candidates": { + "message": "shrink candidate list" + }, "si_slv_settings_page": { "message": "Slovenian Keyboard Settings Page" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Remove Selected" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Save" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/en_GB/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/en_GB/messages.json index ecec283..90bf918 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/en_GB/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/en_GB/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Add to personal dictionary" + }, "advanced": { "message": "Advanced" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Spanish Keyboard Settings Page" }, + "expand": { + "message": "Expand" + }, + "expand_candidates": { + "message": "expand candidate list" + }, "fi_fin_settings_page": { "message": "Finnish Keyboard Settings Page" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Irish Keyboard Settings Page" }, + "ignore_correction": { + "message": "Ignore correction for" + }, "il_heb_settings_page": { "message": "Hebrew Keyboard Settings Page" }, @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Swedish Keyboard Settings Page" }, + "settings": { + "message": "Settings" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Show Hangul suggestions" }, + "shrink_candidates": { + "message": "shrink candidate list" + }, "si_slv_settings_page": { "message": "Slovenian Keyboard Settings Page" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Remove Selected" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Save" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/es/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/es/messages.json index 112ab83..767ae62 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/es/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/es/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "A\u00f1adir a diccionario personal" + }, "advanced": { "message": "Avanzada" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "P\u00e1gina de configuraci\u00f3n del teclado espa\u00f1ol" }, + "expand": { + "message": "Ampliar" + }, + "expand_candidates": { + "message": "mostrar lista de candidatos" + }, "fi_fin_settings_page": { "message": "P\u00e1gina de configuraci\u00f3n del teclado fin\u00e9s" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "P\u00e1gina de configuraci\u00f3n del teclado irland\u00e9s" }, + "ignore_correction": { + "message": "Ignorar correcci\u00f3n de" + }, "il_heb_settings_page": { "message": "P\u00e1gina de configuraci\u00f3n del teclado hebreo" }, @@ -2847,7 +2859,7 @@ "message": "Teclado rumano" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Teclado rumano est\u00e1ndar" }, "keyboard_russian": { "message": "Teclado ruso" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "P\u00e1gina de configuraci\u00f3n del teclado sueco" }, + "settings": { + "message": "Configuraci\u00f3n" + }, "shift": { "message": "may\u00fas" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Mostrar sugerencias de hangul" }, + "shrink_candidates": { + "message": "contraer lista de candidatos" + }, "si_slv_settings_page": { "message": "P\u00e1gina de configuraci\u00f3n del teclado esloveno" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Eliminar selecci\u00f3n" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Guardar" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/es_419/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/es_419/messages.json index 84eabf2..ab90857 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/es_419/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/es_419/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Agregar a diccionario personal" + }, "advanced": { "message": "Configuraci\u00f3n avanzada" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "P\u00e1gina de configuraci\u00f3n del teclado espa\u00f1ol" }, + "expand": { + "message": "Expandir" + }, + "expand_candidates": { + "message": "ampliar lista de candidatos" + }, "fi_fin_settings_page": { "message": "P\u00e1gina de configuraci\u00f3n del teclado fin\u00e9s" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "P\u00e1gina de configuraci\u00f3n del teclado irland\u00e9s" }, + "ignore_correction": { + "message": "Ignorar correcci\u00f3n de" + }, "il_heb_settings_page": { "message": "P\u00e1gina de configuraci\u00f3n del teclado hebreo" }, @@ -2847,7 +2859,7 @@ "message": "Teclado rumano" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Teclado est\u00e1ndar rumano" }, "keyboard_russian": { "message": "Teclado ruso" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "P\u00e1gina de configuraci\u00f3n del teclado sueco" }, + "settings": { + "message": "Configuraci\u00f3n" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Mostrar sugerencias en hangul" }, + "shrink_candidates": { + "message": "reducir lista de candidatos" + }, "si_slv_settings_page": { "message": "P\u00e1gina de configuraci\u00f3n del teclado esloveno" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Eliminar selecci\u00f3n" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Guardar" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/et/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/et/messages.json index 7fd017e..d45b93f 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/et/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/et/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Isiklikku s\u00f5nastikku lisamine" + }, "advanced": { "message": "T\u00e4psemad" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Hispaania klaviatuuri seadete leht" }, + "expand": { + "message": "Laienda" + }, + "expand_candidates": { + "message": "laienda kandidaatide loendit" + }, "fi_fin_settings_page": { "message": "Soome klaviatuuri seadete leht" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Iiri klaviatuuri seadete leht" }, + "ignore_correction": { + "message": "Ignoreeri parandust:" + }, "il_heb_settings_page": { "message": "Heebrea klaviatuuri seadete leht" }, @@ -2847,7 +2859,7 @@ "message": "Rumeenia klaviatuur" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Rumeenia standardne klaviatuur" }, "keyboard_russian": { "message": "Vene klaviatuur" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Rootsi klaviatuuri seadete leht" }, + "settings": { + "message": "Seaded" + }, "shift": { "message": "t\u00f5stuklahv" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Kuva hanguli soovitused" }, + "shrink_candidates": { + "message": "kahanda kandidaatide loendit" + }, "si_slv_settings_page": { "message": "Sloveenia klaviatuuri seadete leht" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Eemalda valitud" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Salvesta" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/fa/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/fa/messages.json index 9d6f584..ee2afa3 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/fa/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/fa/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u0627\u0641\u0632\u0648\u062f\u0646 \u0628\u0647 \u0641\u0631\u0647\u0646\u06af \u0644\u063a\u062a \u0634\u062e\u0635\u06cc" + }, "advanced": { "message": "\u067e\u06cc\u0634\u0631\u0641\u062a\u0647" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u0635\u0641\u062d\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0627\u0633\u067e\u0627\u0646\u06cc\u0627\u06cc\u06cc" }, + "expand": { + "message": "\u0628\u0632\u0631\u06af \u06a9\u0631\u062f\u0646" + }, + "expand_candidates": { + "message": "\u0628\u0632\u0631\u06af \u06a9\u0631\u062f\u0646 \u0641\u0647\u0631\u0633\u062a \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u0627\u062a" + }, "fi_fin_settings_page": { "message": "\u0635\u0641\u062d\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0641\u0646\u0644\u0627\u0646\u062f\u06cc" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0635\u0641\u062d\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0627\u06cc\u0631\u0644\u0646\u062f\u06cc" }, + "ignore_correction": { + "message": "\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 \u062a\u0635\u062d\u06cc\u062d \u0628\u0631\u0627\u06cc" + }, "il_heb_settings_page": { "message": "\u0635\u0641\u062d\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0639\u0628\u0631\u06cc" }, @@ -2847,7 +2859,7 @@ "message": "\u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0631\u0648\u0645\u0627\u0646\u06cc\u0627\u06cc\u06cc" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0631\u0648\u0645\u0627\u0646\u06cc\u0627\u06cc\u06cc" }, "keyboard_russian": { "message": "\u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0631\u0648\u0633\u06cc" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0635\u0641\u062d\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0633\u0648\u0626\u062f\u06cc" }, + "settings": { + "message": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u0646\u0645\u0627\u06cc\u0634 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u0627\u062a \u0647\u0627\u0646\u06af\u0648\u0644" }, + "shrink_candidates": { + "message": "\u06a9\u0648\u0686\u06a9 \u06a9\u0631\u062f\u0646 \u0641\u0647\u0631\u0633\u062a \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u0627\u062a" + }, "si_slv_settings_page": { "message": "\u0635\u0641\u062d\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0635\u0641\u062d\u0647\u200c\u06a9\u0644\u06cc\u062f \u0627\u0633\u0644\u0648\u0648\u0646\u06cc\u0627\u06cc\u06cc" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u062d\u0630\u0641 \u0627\u0646\u062a\u062e\u0627\u0628\u200c\u0634\u062f\u0647\u200c\u0647\u0627" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u0630\u062e\u06cc\u0631\u0647" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/fi/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/fi/messages.json index 4303d5f..3fd2327 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/fi/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/fi/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Lis\u00e4\u00e4 omaan sanakirjaan" + }, "advanced": { "message": "Lis\u00e4asetukset" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Espanjan n\u00e4pp\u00e4imist\u00f6n asetukset" }, + "expand": { + "message": "Laajenna" + }, + "expand_candidates": { + "message": "laajenna vaihtoehtoluettelo" + }, "fi_fin_settings_page": { "message": "Suomen n\u00e4pp\u00e4imist\u00f6n asetukset" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Irlannin iirinkielisen n\u00e4pp\u00e4imist\u00f6n asetukset" }, + "ignore_correction": { + "message": "\u00c4l\u00e4 korjaa:" + }, "il_heb_settings_page": { "message": "Hepreankielisen n\u00e4pp\u00e4imist\u00f6n asetukset" }, @@ -2847,7 +2859,7 @@ "message": "N\u00e4pp\u00e4imist\u00f6: romania" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Romanialainen vakion\u00e4pp\u00e4imist\u00f6" }, "keyboard_russian": { "message": "N\u00e4pp\u00e4imist\u00f6: ven\u00e4j\u00e4" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Ruotsin n\u00e4pp\u00e4imist\u00f6n asetukset" }, + "settings": { + "message": "Asetukset" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "N\u00e4yt\u00e4 Hangul-ehdotukset" }, + "shrink_candidates": { + "message": "pienenn\u00e4 vaihtoehtoluettelo" + }, "si_slv_settings_page": { "message": "Slovenian n\u00e4pp\u00e4imist\u00f6n asetukset" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Poista valitut" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Tallenna" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/fil/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/fil/messages.json index d15aad8d6..e7a294a 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/fil/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/fil/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Idagdag sa personal na diksyunaryo" + }, "advanced": { "message": "Advanced" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Page ng Mga Setting ng Spanish na Keyboard" }, + "expand": { + "message": "Palawakin" + }, + "expand_candidates": { + "message": "palawakin ang listahan ng kandidato" + }, "fi_fin_settings_page": { "message": "Page ng Mga Setting ng Finnish na Keyboard" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Page ng Mga Setting ng Irish na Keyboard" }, + "ignore_correction": { + "message": "Huwag pansinin ang pagwawasto para sa" + }, "il_heb_settings_page": { "message": "Page ng Mga Setting ng Hebrew na Keyboard" }, @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Page ng Mga Setting ng Swedish na Keyboard" }, + "settings": { + "message": "Mga Setting" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Ipakita ang mga suhestyon sa Hangul" }, + "shrink_candidates": { + "message": "paliitin ang listahan ng kandidato" + }, "si_slv_settings_page": { "message": "Page ng Mga Setting ng Slovenian na Keyboard" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Alisin ang Napili" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "I-save" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/fr/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/fr/messages.json index 59f4cd2..b8dcbab 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/fr/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/fr/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Ajouter au dictionnaire personnel" + }, "advanced": { "message": "Param\u00e8tres avanc\u00e9s" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Page des param\u00e8tres du clavier espagnol" }, + "expand": { + "message": "D\u00e9velopper" + }, + "expand_candidates": { + "message": "d\u00e9velopper la liste des propositions" + }, "fi_fin_settings_page": { "message": "Page des param\u00e8tres du clavier finnois" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Page des param\u00e8tres du clavier irlandais" }, + "ignore_correction": { + "message": "Ignorer la correction pour" + }, "il_heb_settings_page": { "message": "Page des param\u00e8tres du clavier h\u00e9breu" }, @@ -2847,7 +2859,7 @@ "message": "Clavier roumain" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Clavier roumain standard" }, "keyboard_russian": { "message": "Clavier russe" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Page des param\u00e8tres du clavier su\u00e9dois" }, + "settings": { + "message": "Param\u00e8tres" + }, "shift": { "message": "maj" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Afficher les suggestions en hang\u00fbl" }, + "shrink_candidates": { + "message": "r\u00e9duire la liste des propositions" + }, "si_slv_settings_page": { "message": "Page des param\u00e8tres du clavier slov\u00e8ne" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Supprimer la s\u00e9lection" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Enregistrer" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/gu/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/gu/messages.json index 2173ddb..dc80c64 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/gu/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/gu/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u0ab5\u0acd\u0aaf\u0a95\u0acd\u0aa4\u0abf\u0a97\u0aa4 \u0ab6\u0aac\u0acd\u0aa6\u0a95\u0acb\u0ab6\u0aae\u0abe\u0a82 \u0a89\u0aae\u0ac7\u0ab0\u0acb" + }, "advanced": { "message": "\u0ab5\u0abf\u0a97\u0aa4\u0ab5\u0abe\u0ab0" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u0ab8\u0acd\u0aaa\u0ac7\u0aa8\u0abf\u0ab6 \u0a95\u0ac0\u0aac\u0acb\u0ab0\u0acd\u0aa1 \u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8 \u0aaa\u0ac3\u0ab7\u0acd\u0aa0" }, + "expand": { + "message": "\u0ab5\u0abf\u0ab8\u0acd\u0aa4\u0ac3\u0aa4 \u0a95\u0ab0\u0acb" + }, + "expand_candidates": { + "message": "\u0a89\u0aae\u0ac7\u0aa6\u0ab5\u0abe\u0ab0\u0acb\u0aa8\u0ac0 \u0ab8\u0ac2\u0a9a\u0abf \u0ab5\u0abf\u0ab8\u0acd\u0aa4\u0ac3\u0aa4 \u0a95\u0ab0\u0acb" + }, "fi_fin_settings_page": { "message": "\u0aab\u0abf\u0aa8\u0abf\u0ab6 \u0a95\u0ac0\u0aac\u0acb\u0ab0\u0acd\u0aa1 \u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8 \u0aaa\u0ac3\u0ab7\u0acd\u0aa0" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0a86\u0a87\u0ab0\u0abf\u0ab6 \u0a95\u0ac0\u0aac\u0acb\u0ab0\u0acd\u0aa1 \u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8 \u0aaa\u0ac3\u0ab7\u0acd\u0aa0" }, + "ignore_correction": { + "message": "\u0a86 \u0aae\u0abe\u0a9f\u0ac7\u0aa8\u0abe \u0ab8\u0ac1\u0aa7\u0abe\u0ab0\u0aa8\u0ac7 \u0a85\u0ab5\u0a97\u0aa3\u0acb" + }, "il_heb_settings_page": { "message": "\u0ab9\u0ac0\u0aac\u0acd\u0ab0\u0ac1 \u0a95\u0ac0\u0aac\u0acb\u0ab0\u0acd\u0aa1 \u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8 \u0aaa\u0ac3\u0ab7\u0acd\u0aa0" }, @@ -2847,7 +2859,7 @@ "message": "\u0ab0\u0acb\u0aae\u0ac7\u0aa8\u0abf\u0aaf\u0aa8 \u0a95\u0ac0\u0aac\u0acb\u0ab0\u0acd\u0aa1" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u0ab0\u0acb\u0aae\u0abe\u0aa8\u0abf\u0aaf\u0aa8 \u0aae\u0abe\u0aa8\u0a95 \u0a95\u0ac0\u0aac\u0acb\u0ab0\u0acd\u0aa1" }, "keyboard_russian": { "message": "\u0ab0\u0ab6\u0abf\u0aaf\u0aa8 \u0a95\u0ac0\u0aac\u0acb\u0ab0\u0acd\u0aa1" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0ab8\u0acd\u0ab5\u0ac0\u0aa1\u0abf\u0ab6 \u0a95\u0ac0\u0aac\u0acb\u0ab0\u0acd\u0aa1 \u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8 \u0aaa\u0ac3\u0ab7\u0acd\u0aa0" }, + "settings": { + "message": "\u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u0ab9\u0a82\u0a97\u0ac1\u0ab2 \u0ab8\u0ac2\u0a9a\u0aa8\u0acb \u0aa6\u0ab0\u0acd\u0ab6\u0abe\u0ab5\u0acb" }, + "shrink_candidates": { + "message": "\u0a89\u0aae\u0ac7\u0aa6\u0ab5\u0abe\u0ab0\u0acb\u0aa8\u0ac0 \u0ab8\u0ac2\u0a9a\u0abf \u0ab8\u0a82\u0a95\u0acb\u0a9a\u0abf\u0aa4 \u0a95\u0ab0\u0acb" + }, "si_slv_settings_page": { "message": "\u0ab8\u0acd\u0ab2\u0acb\u0ab5\u0ac7\u0aa8\u0abf\u0aaf\u0aa8 \u0a95\u0ac0\u0aac\u0acb\u0ab0\u0acd\u0aa1 \u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8 \u0aaa\u0ac3\u0ab7\u0acd\u0aa0" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u0aaa\u0ab8\u0a82\u0aa6 \u0a95\u0ab0\u0ac7\u0ab2\u0ac1\u0a82 \u0aa6\u0ac2\u0ab0 \u0a95\u0ab0\u0acb" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u0ab8\u0abe\u0a9a\u0ab5\u0acb" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/hi/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/hi/messages.json index 1c88905..57e1f6c 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/hi/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/hi/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u0935\u094d\u092f\u0915\u094d\u0924\u093f\u0917\u0924 \u0936\u092c\u094d\u0926\u0915\u094b\u0936 \u092e\u0947\u0902 \u091c\u094b\u0921\u093c\u0947\u0902" + }, "advanced": { "message": "\u0909\u0928\u094d\u0928\u0924" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u0938\u094d\u200d\u092a\u0947\u0928\u093f\u0936 \u0915\u0940\u092c\u094b\u0930\u094d\u0921 \u0938\u0947\u091f\u093f\u0902\u0917 \u092a\u0943\u0937\u094d\u200d\u0920" }, + "expand": { + "message": "\u0935\u093f\u0938\u094d\u0924\u0943\u0924 \u0915\u0930\u0947\u0902" + }, + "expand_candidates": { + "message": "\u0909\u092e\u094d\u092e\u0940\u0926\u0935\u093e\u0930 \u0938\u0942\u091a\u0940 \u0935\u093f\u0938\u094d\u0924\u0943\u0924 \u0915\u0930\u0947\u0902" + }, "fi_fin_settings_page": { "message": "\u092b\u093c\u093f\u0928\u093f\u0936 \u0915\u0940\u092c\u094b\u0930\u094d\u0921 \u0938\u0947\u091f\u093f\u0902\u0917 \u092a\u0943\u0937\u094d\u200d\u0920" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0906\u092f\u0930\u093f\u0936 \u0915\u0940\u092c\u094b\u0930\u094d\u0921 \u0938\u0947\u091f\u093f\u0902\u0917 \u092a\u0943\u0937\u094d\u200d\u0920" }, + "ignore_correction": { + "message": "\u0907\u0938\u0915\u0947 \u0932\u093f\u090f \u0938\u0941\u0927\u093e\u0930 \u092a\u0930 \u0927\u094d\u092f\u093e\u0928 \u0928 \u0926\u0947\u0902" + }, "il_heb_settings_page": { "message": "\u0939\u093f\u092c\u094d\u0930\u0942 \u0915\u0940\u092c\u094b\u0930\u094d\u0921 \u0938\u0947\u091f\u093f\u0902\u0917 \u092a\u0943\u0937\u094d\u200d\u0920" }, @@ -2847,7 +2859,7 @@ "message": "\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u093e\u0908 \u0915\u0940\u092c\u094b\u0930\u094d\u0921" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u093e\u0908 \u092e\u093e\u0928\u0915 \u0915\u0940\u092c\u094b\u0930\u094d\u0921" }, "keyboard_russian": { "message": "\u0930\u0942\u0938\u0940 \u0915\u0940\u092c\u094b\u0930\u094d\u0921" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0938\u094d\u200d\u0935\u0940\u0921\u093f\u0936 \u0915\u0940\u092c\u094b\u0930\u094d\u0921 \u0938\u0947\u091f\u093f\u0902\u0917 \u092a\u0943\u0937\u094d\u200d\u0920" }, + "settings": { + "message": "\u0938\u0947\u091f\u093f\u0902\u0917" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u0939\u0902\u0917\u0941\u0932 \u0938\u0941\u091d\u093e\u0935 \u0926\u093f\u0916\u093e\u090f\u0902" }, + "shrink_candidates": { + "message": "\u0909\u092e\u094d\u092e\u0940\u0926\u0935\u093e\u0930 \u0938\u0942\u091a\u0940 \u091b\u094b\u091f\u0940 \u0915\u0930\u0947\u0902" + }, "si_slv_settings_page": { "message": "\u0938\u094d\u200d\u0932\u094b\u0935\u0947\u0928\u093f\u092f\u093e\u0908 \u0915\u0940\u092c\u094b\u0930\u094d\u0921 \u0938\u0947\u091f\u093f\u0902\u0917 \u092a\u0943\u0937\u094d\u200d\u0920" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u091a\u092f\u0928\u093f\u0924 \u0915\u094b \u0928\u093f\u0915\u093e\u0932\u0947\u0902" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u0938\u0939\u0947\u091c\u0947\u0902" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/hr/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/hr/messages.json index f2d5a57..20d6c0e 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/hr/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/hr/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Dodaj u osobni rje\u010dnik" + }, "advanced": { "message": "Napredno" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Stranica postavki \u0161panjolske tipkovnice" }, + "expand": { + "message": "Pro\u0161iri" + }, + "expand_candidates": { + "message": "pro\u0161iri popis kandidata" + }, "fi_fin_settings_page": { "message": "Stranica postavki finske tipkovnice" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Stranica postavki irske tipkovnice" }, + "ignore_correction": { + "message": "Zanemari ispravak za" + }, "il_heb_settings_page": { "message": "Stranica postavki hebrejske tipkovnice" }, @@ -2847,7 +2859,7 @@ "message": "Rumunjska tipkovnica" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Rumunjska standardna tipkovnica" }, "keyboard_russian": { "message": "Ruska tipkovnica" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Stranica postavki \u0161vedske tipkovnice" }, + "settings": { + "message": "Postavke" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Prika\u017ei prijedloge za hangul" }, + "shrink_candidates": { + "message": "smanji popis kandidata" + }, "si_slv_settings_page": { "message": "Stranica postavki slovenske tipkovnice" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Ukloni odabrano" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Spremi" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/hu/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/hu/messages.json index 4f49508..3bdb3d4 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/hu/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/hu/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Hozz\u00e1ad\u00e1s a szem\u00e9lyes sz\u00f3t\u00e1rhoz" + }, "advanced": { "message": "Halad\u00f3" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Spanyol billenty\u0171zet be\u00e1ll\u00edt\u00e1sainak oldala" }, + "expand": { + "message": "Kibont\u00e1s" + }, + "expand_candidates": { + "message": "javaslati lista kibont\u00e1sa" + }, "fi_fin_settings_page": { "message": "Finn billenty\u0171zet be\u00e1ll\u00edt\u00e1sainak oldala" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u00cdr billenty\u0171zet be\u00e1ll\u00edt\u00e1sainak oldala" }, + "ignore_correction": { + "message": "Jav\u00edt\u00e1s mell\u0151z\u00e9se enn\u00e9l a sz\u00f3n\u00e1l:" + }, "il_heb_settings_page": { "message": "H\u00e9ber billenty\u0171zet be\u00e1ll\u00edt\u00e1sainak oldala" }, @@ -2847,7 +2859,7 @@ "message": "Rom\u00e1n billenty\u0171zet" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Hagyom\u00e1nyos rom\u00e1n billenty\u0171zet" }, "keyboard_russian": { "message": "Orosz billenty\u0171zet" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Sv\u00e9d billenty\u0171zet be\u00e1ll\u00edt\u00e1sainak oldala" }, + "settings": { + "message": "Be\u00e1ll\u00edt\u00e1sok" + }, "shift": { "message": "Shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Hanguljavaslatok megjelen\u00edt\u00e9se" }, + "shrink_candidates": { + "message": "javaslati lista \u00f6sszecsuk\u00e1sa" + }, "si_slv_settings_page": { "message": "Szlov\u00e9n billenty\u0171zet be\u00e1ll\u00edt\u00e1sainak oldala" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Kijel\u00f6lt(ek) elt\u00e1vol\u00edt\u00e1sa" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Ment\u00e9s" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/id/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/id/messages.json index 45d5077..4623445 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/id/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/id/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Tambahkan ke kamus pribadi" + }, "advanced": { "message": "Lanjutan" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Laman Setelan Keyboard Spanyol" }, + "expand": { + "message": "Luaskan" + }, + "expand_candidates": { + "message": "luaskan daftar calon" + }, "fi_fin_settings_page": { "message": "Laman Setelan Keyboard Suomi" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Laman Setelan Keyboard Irlandia" }, + "ignore_correction": { + "message": "Abaikan koreksi untuk" + }, "il_heb_settings_page": { "message": "Laman Setelan Keyboard Ibrani" }, @@ -2847,7 +2859,7 @@ "message": "Keyboard Rumania" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Keyboard standar Rumania" }, "keyboard_russian": { "message": "Keyboard Rusia" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Laman Setelan Keyboard Swensk" }, + "settings": { + "message": "Setelan" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Tampilkan saran Hangul" }, + "shrink_candidates": { + "message": "ciutkan daftar calon" + }, "si_slv_settings_page": { "message": "Laman Setelan Keyboard Sloven" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Hapus yang Dipilih" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Simpan" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/it/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/it/messages.json index 654ee0e..b11c616 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/it/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/it/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Aggiungi al dizionario personale" + }, "advanced": { "message": "Avanzata" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Pagina Impostazioni tastiera Spagnolo" }, + "expand": { + "message": "Espandi" + }, + "expand_candidates": { + "message": "espandi elenco candidati" + }, "fi_fin_settings_page": { "message": "Pagina Impostazioni tastiera Finlandese" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Pagina Impostazioni tastiera Irlandese" }, + "ignore_correction": { + "message": "Ignora correzione di:" + }, "il_heb_settings_page": { "message": "Pagina Impostazioni tastiera Ebraico" }, @@ -2847,7 +2859,7 @@ "message": "Tastiera Rumeno" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Tastiera Rumeno standard" }, "keyboard_russian": { "message": "Tastiera Russo" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Pagina Impostazioni tastiera Svedese" }, + "settings": { + "message": "Impostazioni" + }, "shift": { "message": "maiusc" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Mostra suggerimenti in hangul" }, + "shrink_candidates": { + "message": "comprimi elenco candidati" + }, "si_slv_settings_page": { "message": "Pagina Impostazioni tastiera Sloveno" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Rimuovi selezionati" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Salva" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/iw/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/iw/messages.json index 5c2249f..205cc72 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/iw/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/iw/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u05d4\u05d5\u05e1\u05e3 \u05dc\u05de\u05d9\u05dc\u05d5\u05df \u05d4\u05d0\u05d9\u05e9\u05d9" + }, "advanced": { "message": "\u05de\u05ea\u05e7\u05d3\u05dd" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u05d3\u05e3 \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05e9\u05dc \u05de\u05e7\u05dc\u05d3\u05ea \u05e1\u05e4\u05e8\u05d3\u05d9\u05ea" }, + "expand": { + "message": "\u05d4\u05e8\u05d7\u05d1" + }, + "expand_candidates": { + "message": "\u05d4\u05e8\u05d7\u05d1 \u05d0\u05ea \u05e8\u05e9\u05d9\u05de\u05ea \u05d4\u05d4\u05e6\u05e2\u05d5\u05ea" + }, "fi_fin_settings_page": { "message": "\u05d3\u05e3 \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05e9\u05dc \u05de\u05e7\u05dc\u05d3\u05ea \u05e4\u05d9\u05e0\u05d9\u05ea" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u05d3\u05e3 \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05e9\u05dc \u05de\u05e7\u05dc\u05d3\u05ea \u05d0\u05d9\u05e8\u05d9\u05ea" }, + "ignore_correction": { + "message": "\u05d4\u05ea\u05e2\u05dc\u05dd \u05de\u05ea\u05d9\u05e7\u05d5\u05df \u05e9\u05dc" + }, "il_heb_settings_page": { "message": "\u05d3\u05e3 \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05e9\u05dc \u05de\u05e7\u05dc\u05d3\u05ea \u05e2\u05d1\u05e8\u05d9\u05ea" }, @@ -2847,7 +2859,7 @@ "message": "\u05de\u05e7\u05dc\u05d3\u05ea \u05e8\u05d5\u05de\u05e0\u05d9\u05ea" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u05de\u05e7\u05dc\u05d3\u05ea \u05e8\u05d5\u05de\u05e0\u05d9\u05ea \u05e8\u05d2\u05d9\u05dc\u05d4" }, "keyboard_russian": { "message": "\u05de\u05e7\u05dc\u05d3\u05ea \u05e8\u05d5\u05e1\u05d9\u05ea" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u05d3\u05e3 \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05e9\u05dc \u05de\u05e7\u05dc\u05d3\u05ea \u05e9\u05d5\u05d5\u05d3\u05d9\u05ea" }, + "settings": { + "message": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea" + }, "shift": { "message": "Shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u200f\u05d4\u05e6\u05d2\u05ea \u05d4\u05e6\u05e2\u05d5\u05ea \u05d1-Hangul" }, + "shrink_candidates": { + "message": "\u05db\u05d5\u05d5\u05e5 \u05d0\u05ea \u05e8\u05e9\u05d9\u05de\u05ea \u05d4\u05d4\u05e6\u05e2\u05d5\u05ea" + }, "si_slv_settings_page": { "message": "\u05d3\u05e3 \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05e9\u05dc \u05de\u05e7\u05dc\u05d3\u05ea \u05e1\u05dc\u05d5\u05d1\u05e0\u05d9\u05ea" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u05d4\u05e1\u05e8 \u05e2\u05e8\u05da \u05e0\u05d1\u05d7\u05e8" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u05e9\u05de\u05d5\u05e8" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ja/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ja/messages.json index eef51fb..a1beb42 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ja/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ja/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u30e6\u30fc\u30b6\u30fc\u8f9e\u66f8\u306b\u8ffd\u52a0" + }, "advanced": { "message": "\u8a73\u7d30\u8a2d\u5b9a" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u30b9\u30da\u30a4\u30f3\u8a9e\u30ad\u30fc\u30dc\u30fc\u30c9\u8a2d\u5b9a\u30da\u30fc\u30b8" }, + "expand": { + "message": "\u5c55\u958b" + }, + "expand_candidates": { + "message": "\u5019\u88dc\u306e\u6570\u3092\u5897\u3084\u3059" + }, "fi_fin_settings_page": { "message": "\u30d5\u30a3\u30f3\u30e9\u30f3\u30c9\u8a9e\u30ad\u30fc\u30dc\u30fc\u30c9\u8a2d\u5b9a\u30da\u30fc\u30b8" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9\u8a9e\u30ad\u30fc\u30dc\u30fc\u30c9\u8a2d\u5b9a\u30da\u30fc\u30b8" }, + "ignore_correction": { + "message": "\u6b21\u306e\u8a9e\u306f\u4fee\u6b63\u3057\u306a\u3044:" + }, "il_heb_settings_page": { "message": "\u30d8\u30d6\u30e9\u30a4\u8a9e\u30ad\u30fc\u30dc\u30fc\u30c9\u8a2d\u5b9a\u30da\u30fc\u30b8" }, @@ -2847,7 +2859,7 @@ "message": "\u30eb\u30fc\u30de\u30cb\u30a2\u8a9e\u30ad\u30fc\u30dc\u30fc\u30c9" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u30eb\u30fc\u30de\u30cb\u30a2\u8a9e\u6a19\u6e96\u30ad\u30fc\u30dc\u30fc\u30c9" }, "keyboard_russian": { "message": "\u30ed\u30b7\u30a2\u8a9e\u30ad\u30fc\u30dc\u30fc\u30c9" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3\u8a9e\u30ad\u30fc\u30dc\u30fc\u30c9\u8a2d\u5b9a\u30da\u30fc\u30b8" }, + "settings": { + "message": "\u8a2d\u5b9a" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u30cf\u30f3\u30b0\u30eb\u5019\u88dc\u8868\u793a" }, + "shrink_candidates": { + "message": "\u5019\u88dc\u306e\u6570\u3092\u6e1b\u3089\u3059" + }, "si_slv_settings_page": { "message": "\u30b9\u30ed\u30d9\u30cb\u30a2\u8a9e\u30ad\u30fc\u30dc\u30fc\u30c9\u8a2d\u5b9a\u30da\u30fc\u30b8" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u9078\u629e\u9805\u76ee\u3092\u524a\u9664" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u4fdd\u5b58" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/kn/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/kn/messages.json index f23a26a..d976d11 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/kn/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/kn/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u0cb5\u0cc6\u0cd6\u0caf\u0c95\u0ccd\u0ca4\u0cbf\u0c95 \u0ca8\u0cbf\u0c98\u0c82\u0c9f\u0cbf\u0c97\u0cc6 \u0cb8\u0cc6\u0cd5\u0cb0\u0cbf\u0cb8\u0cbf" + }, "advanced": { "message": "\u0cb8\u0cc1\u0ca7\u0cbe\u0cb0\u0cbf\u0ca4" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u0cb8\u0ccd\u0caa\u0ccd\u0caf\u0cbe\u0ca8\u0cbf\u0cb7\u0ccd \u0c95\u0cbf\u0cd5\u0cac\u0cc6\u0cc2\u0cd5\u0cb0\u0ccd\u0ca1\u0ccd \u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3 \u0caa\u0cc1\u0c9f" }, + "expand": { + "message": "\u0cb5\u0cbf\u0cb8\u0ccd\u0ca4\u0cb0\u0cbf\u0cb8\u0cbf" + }, + "expand_candidates": { + "message": "\u0c85\u0cad\u0ccd\u0caf\u0cb0\u0ccd\u0ca5\u0cbf \u0caa\u0c9f\u0ccd\u0c9f\u0cbf\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb5\u0cbf\u0cb8\u0ccd\u0ca4\u0cb0\u0cbf\u0cb8\u0cbf" + }, "fi_fin_settings_page": { "message": "\u0cab\u0cbf\u0ca8\u0ccd\u0ca8\u0cbf\u0cb6\u0ccd \u0c95\u0cbf\u0cd5\u0cac\u0cc6\u0cc2\u0cd5\u0cb0\u0ccd\u0ca1\u0ccd \u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3 \u0caa\u0cc1\u0c9f" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0c90\u0cb0\u0cbf\u0cb7\u0ccd \u0c95\u0cbf\u0cd5\u0cac\u0cc6\u0cc2\u0cd5\u0cb0\u0ccd\u0ca1\u0ccd \u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3 \u0caa\u0cc1\u0c9f" }, + "ignore_correction": { + "message": "\u0c87\u0ca6\u0c95\u0ccd\u0c95\u0cbe\u0c97\u0cbf \u0cb8\u0cb0\u0cbf\u0caa\u0ca1\u0cbf\u0cb8\u0cc1\u0cb5\u0cbf\u0c95\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cbf\u0cb0\u0ccd\u0cb2\u0c95\u0ccd\u0cb7\u0cbf\u0cb8\u0cbf" + }, "il_heb_settings_page": { "message": "\u0cb9\u0cbf\u0cac\u0ccd\u0cb0\u0cc2 \u0c95\u0cbf\u0cd5\u0cac\u0cc6\u0cc2\u0cd5\u0cb0\u0ccd\u0ca1\u0ccd \u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3 \u0caa\u0cc1\u0c9f" }, @@ -2847,7 +2859,7 @@ "message": "\u0cb0\u0cca\u0cae\u0cc7\u0ca8\u0cbf\u0caf\u0ca8\u0ccd \u0c95\u0cc0\u0cac\u0ccb\u0cb0\u0ccd\u0ca1\u0ccd" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u0cb0\u0cc6\u0cc2\u0cae\u0cc6\u0cd5\u0ca8\u0cbf\u0caf\u0ca8\u0ccd \u0caa\u0ccd\u0cb0\u0cae\u0cbe\u0ca3\u0cbf\u0ca4 \u0c95\u0cbf\u0cd5\u0cac\u0cc6\u0cc2\u0cd5\u0cb0\u0ccd\u0ca1\u0ccd" }, "keyboard_russian": { "message": "\u0cb0\u0cb7\u0ccd\u0caf\u0ca8\u0ccd \u0c95\u0cc0\u0cac\u0ccb\u0cb0\u0ccd\u0ca1\u0ccd" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0cb8\u0ccd\u0cb5\u0cbf\u0cd5\u0ca1\u0cbf\u0cb6\u0ccd \u0c95\u0cbf\u0cd5\u0cac\u0cc6\u0cc2\u0cd5\u0cb0\u0ccd\u0ca1\u0ccd \u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3 \u0caa\u0cc1\u0c9f" }, + "settings": { + "message": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3\u0cc1" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u0cb9\u0c82\u0c97\u0cc1\u0cb2\u0ccd \u0cb8\u0cb2\u0cb9\u0cc6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca4\u0cc6\u0cc2\u0cd5\u0cb0\u0cbf\u0cb8\u0cbf" }, + "shrink_candidates": { + "message": "\u0c85\u0cad\u0ccd\u0caf\u0cb0\u0ccd\u0ca5\u0cbf \u0caa\u0c9f\u0ccd\u0c9f\u0cbf\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0c95\u0cc1\u0c97\u0ccd\u0c97\u0cbf\u0cb8\u0cbf" + }, "si_slv_settings_page": { "message": "\u0cb8\u0ccd\u0cb2\u0cc6\u0cc2\u0cd5\u0cb5\u0cc6\u0cd5\u0ca8\u0cbf\u0caf\u0ca8\u0ccd \u0c95\u0cbf\u0cd5\u0cac\u0cc6\u0cc2\u0cd5\u0cb0\u0ccd\u0ca1\u0ccd \u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3 \u0caa\u0cc1\u0c9f" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u0c86\u0caf\u0ccd\u0c95\u0cc6\u0cae\u0cbe\u0ca1\u0cb2\u0cbe\u0c97\u0cbf\u0cb0\u0cc1\u0cb5\u0cc1\u0ca6\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca4\u0cc6\u0c97\u0cc6\u0ca6\u0cc1\u0cb9\u0cbe\u0c95\u0cbf" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u0c89\u0cb3\u0cbf\u0cb8\u0cc1" }, @@ -3282,7 +3303,7 @@ "message": "\u0ca7\u0ccd\u0cb5\u0ca8\u0cbf \u0c87\u0ca8\u0ccd\u200c\u0caa\u0cc1\u0c9f\u0ccd \u0c9f\u0cc2\u0cb2\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0c86\u0cab\u0ccd \u0cae\u0cbe\u0ca1\u0cbf" }, "voice_turn_on": { - "message": "\u0ca7\u0ccd\u0cb5\u0ca8\u0cbf \u0c87\u0ca8\u0ccd\u200c\u0caa\u0cc1\u0c9f\u0ccd \u0c9f\u0cc2\u0cb2\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0c86\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf" + "message": "\u0ca7\u0ccd\u0cb5\u0ca8\u0cbf \u0c87\u0ca8\u0ccd\u200c\u0caa\u0cc1\u0c9f\u0ccd \u0caa\u0cb0\u0cbf\u0c95\u0cb0\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0c86\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf" }, "wait": { "message": "\u0c95\u0cbe\u0caf\u0cbf\u0cb0\u0cbf" diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ko/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ko/messages.json index 9fe890d8..20a139d 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ko/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ko/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\uac1c\uc778 \uc0ac\uc804\uc5d0 \ucd94\uac00" + }, "advanced": { "message": "\uace0\uae09" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\uc2a4\ud398\uc778\uc5b4 \ud0a4\ubcf4\ub4dc \uc124\uc815 \ud398\uc774\uc9c0" }, + "expand": { + "message": "\ud3bc\uce58\uae30" + }, + "expand_candidates": { + "message": "\ud6c4\ubcf4 \ubaa9\ub85d \ud3bc\uce58\uae30" + }, "fi_fin_settings_page": { "message": "\ud540\ub780\ub4dc\uc5b4 \ud0a4\ubcf4\ub4dc \uc124\uc815 \ud398\uc774\uc9c0" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\uc544\uc77c\ub79c\ub4dc\uc5b4 \ud0a4\ubcf4\ub4dc \uc124\uc815 \ud398\uc774\uc9c0" }, + "ignore_correction": { + "message": "\uc790\ub3d9 \uc218\uc815 \uae30\ub2a5 \ubb34\uc2dc" + }, "il_heb_settings_page": { "message": "\ud788\ube0c\ub9ac\uc5b4 \ud0a4\ubcf4\ub4dc \uc124\uc815 \ud398\uc774\uc9c0" }, @@ -2847,7 +2859,7 @@ "message": "\ub8e8\ub9c8\ub2c8\uc544\uc5b4 \ud0a4\ubcf4\ub4dc" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\ub8e8\ub9c8\ub2c8\uc544 \ud45c\uc900 \ud0a4\ubcf4\ub4dc" }, "keyboard_russian": { "message": "\ub7ec\uc2dc\uc544\uc5b4 \ud0a4\ubcf4\ub4dc" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\uc2a4\uc6e8\ub374\uc5b4 \ud0a4\ubcf4\ub4dc \uc124\uc815 \ud398\uc774\uc9c0" }, + "settings": { + "message": "\uc124\uc815" + }, "shift": { "message": "Shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\ud55c\uae00 \ucd94\ucc9c \ud56d\ubaa9 \ud45c\uc2dc" }, + "shrink_candidates": { + "message": "\ud6c4\ubcf4 \ubaa9\ub85d \uc228\uae30\uae30" + }, "si_slv_settings_page": { "message": "\uc2ac\ub85c\ubca0\ub2c8\uc544\uc5b4 \ud0a4\ubcf4\ub4dc \uc124\uc815 \ud398\uc774\uc9c0" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\uc120\ud0dd \ud56d\ubaa9 \uc0ad\uc81c" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\uc800\uc7a5" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/lt/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/lt/messages.json index 60cdb5f..57ebfd7 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/lt/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/lt/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Prid\u0117ti prie asmeninio \u017eodyno" + }, "advanced": { "message": "I\u0161pl\u0117stiniai" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Ispani\u0161kos klaviat\u016bros nustatym\u0173 puslapis" }, + "expand": { + "message": "I\u0161skleisti" + }, + "expand_candidates": { + "message": "i\u0161skleisti variant\u0173 s\u0105ra\u0161\u0105" + }, "fi_fin_settings_page": { "message": "Suomi\u0161kos klaviat\u016bros nustatym\u0173 puslapis" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Airi\u0161kos klaviat\u016bros nustatym\u0173 puslapis" }, + "ignore_correction": { + "message": "Ignoruoti pataisym\u0105" + }, "il_heb_settings_page": { "message": "Hebraji\u0161kos klaviat\u016bros nustatym\u0173 puslapis" }, @@ -2847,7 +2859,7 @@ "message": "Rumuni\u0161ka klaviat\u016bra" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Rumun\u0173 k. standartin\u0117 klaviat\u016bra" }, "keyboard_russian": { "message": "Rusi\u0161ka klaviat\u016bra" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0160vedi\u0161kos klaviat\u016bros nustatym\u0173 puslapis" }, + "settings": { + "message": "Nustatymai" + }, "shift": { "message": "klavi\u0161as \u201eshift\u201c" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Rodyti hangul pasi\u016blymus" }, + "shrink_candidates": { + "message": "sutraukti variant\u0173 s\u0105ra\u0161\u0105" + }, "si_slv_settings_page": { "message": "Slov\u0117ni\u0161kos klaviat\u016bros nustatym\u0173 puslapis" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Pa\u0161alinti pasirinktus" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "I\u0161saugoti" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/lv/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/lv/messages.json index dc4b34f..7d90fc9 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/lv/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/lv/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Pievienot personiskajai v\u0101rdn\u012bcai" + }, "advanced": { "message": "Papildu" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Sp\u0101\u0146u valodas tastat\u016bras iestat\u012bjumu lapa" }, + "expand": { + "message": "Izv\u0113rst" + }, + "expand_candidates": { + "message": "papla\u0161in\u0101t kandid\u0101tu sarakstu" + }, "fi_fin_settings_page": { "message": "Somu valodas tastat\u016bras iestat\u012bjumu lapa" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u012aru valodas tastat\u016bras iestat\u012bjumu lapa" }, + "ignore_correction": { + "message": "Ignor\u0113t labojumu v\u0101rdam" + }, "il_heb_settings_page": { "message": "Ebreju valodas tastat\u016bras iestat\u012bjumu lapa" }, @@ -2847,7 +2859,7 @@ "message": "Rum\u0101\u0146u valodas tastat\u016bra" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Rum\u0101\u0146u standarta tastat\u016bra" }, "keyboard_russian": { "message": "Krievu valodas tastat\u016bra" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Zviedru valodas tastat\u016bras iestat\u012bjumu lapa" }, + "settings": { + "message": "Iestat\u012bjumi" + }, "shift": { "message": "tausti\u0146\u0161 Shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "R\u0101d\u012bt ieteikumus korejie\u0161u valod\u0101" }, + "shrink_candidates": { + "message": "sa\u0161aurin\u0101t kandid\u0101tu sarakstu" + }, "si_slv_settings_page": { "message": "Slov\u0113\u0146u valodas tastat\u016bras iestat\u012bjumu lapa" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "No\u0146emt atlas\u012btos" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Saglab\u0101t" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ml/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ml/messages.json index 2d2f356..5860bc5 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ml/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ml/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u0d35\u0d4d\u0d2f\u0d15\u0d4d\u0d24\u0d3f\u0d17\u0d24 \u0d28\u0d3f\u0d18\u0d23\u0d4d\u0d1f\u0d41\u0d35\u0d3f\u0d7d \u0d1a\u0d47\u0d7c\u0d15\u0d4d\u0d15\u0d41\u0d15" + }, "advanced": { "message": "\u0d35\u0d3f\u0d2a\u0d41\u0d32\u0d2e\u0d3e\u0d2f" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u0d38\u0d4d\u200c\u0d2a\u0d3e\u0d28\u0d3f\u0d37\u0d4d \u0d15\u0d40\u0d2c\u0d4b\u0d7c\u0d21\u0d4d \u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23 \u0d2a\u0d47\u0d1c\u0d4d" }, + "expand": { + "message": "\u0d35\u0d3f\u0d2a\u0d41\u0d32\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15" + }, + "expand_candidates": { + "message": "\u0d15\u0d3e\u0d7b\u0d21\u0d3f\u0d21\u0d47\u0d31\u0d4d\u0d31\u0d4d \u0d32\u0d3f\u0d38\u0d4d\u200c\u0d31\u0d4d\u0d31\u0d4d \u0d35\u0d3f\u0d2a\u0d41\u0d32\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15" + }, "fi_fin_settings_page": { "message": "\u0d2b\u0d3f\u0d28\u0d4d\u0d28\u0d3f\u0d37\u0d4d \u0d15\u0d40\u0d2c\u0d4b\u0d7c\u0d21\u0d4d \u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23 \u0d2a\u0d47\u0d1c\u0d4d" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0d10\u0d31\u0d3f\u0d37\u0d4d \u0d15\u0d40\u0d2c\u0d4b\u0d7c\u0d21\u0d4d \u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23 \u0d2a\u0d47\u0d1c\u0d4d" }, + "ignore_correction": { + "message": "\u0d0e\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d41\u0d33\u0d4d\u0d33 \u0d24\u0d3f\u0d30\u0d41\u0d24\u0d4d\u0d24\u0d7d \u0d05\u0d35\u0d17\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15" + }, "il_heb_settings_page": { "message": "\u0d39\u0d40\u0d2c\u0d4d\u0d30\u0d41 \u0d15\u0d40\u0d2c\u0d4b\u0d7c\u0d21\u0d4d \u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23 \u0d2a\u0d47\u0d1c\u0d4d" }, @@ -2847,7 +2859,7 @@ "message": "\u0d31\u0d4a\u0d2e\u0d3e\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d40\u0d2c\u0d4b\u0d30\u0d4d\u200d\u0d21\u0d4d" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u0d31\u0d4a\u0d2e\u0d3e\u0d28\u0d3f\u0d2f\u0d7b \u0d05\u0d1f\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28 \u0d15\u0d40\u0d2c\u0d4b\u0d7c\u0d21\u0d4d" }, "keyboard_russian": { "message": "\u0d31\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d40\u0d2c\u0d4b\u0d30\u0d4d\u200d\u0d21\u0d4d" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0d38\u0d4d\u0d35\u0d40\u0d21\u0d3f\u0d37\u0d4d \u0d15\u0d40\u0d2c\u0d4b\u0d7c\u0d21\u0d4d \u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23 \u0d2a\u0d47\u0d1c\u0d4d" }, + "settings": { + "message": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d02" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u0d39\u0d02\u0d17\u0d41\u0d7d \u0d28\u0d3f\u0d7c\u0d26\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d15\u0d3e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15" }, + "shrink_candidates": { + "message": "\u0d15\u0d3e\u0d7b\u0d21\u0d3f\u0d21\u0d47\u0d31\u0d4d\u0d31\u0d4d \u0d32\u0d3f\u0d38\u0d4d\u200c\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d41\u0d30\u0d41\u0d15\u0d4d\u0d15\u0d41\u0d15" + }, "si_slv_settings_page": { "message": "\u0d38\u0d4d\u200c\u0d32\u0d4b\u0d35\u0d47\u0d28\u0d3f\u0d2f\u0d7b \u0d15\u0d40\u0d2c\u0d4b\u0d7c\u0d21\u0d4d \u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23 \u0d2a\u0d47\u0d1c\u0d4d" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u0d24\u0d3f\u0d30\u0d1e\u0d4d\u0d1e\u0d46\u0d1f\u0d41\u0d24\u0d4d\u0d24\u0d35 \u0d28\u0d40\u0d15\u0d4d\u0d15\u0d02\u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u0d38\u0d02\u0d30\u0d15\u0d4d\u0d37\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/mr/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/mr/messages.json index 7728083..f1bd1ba 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/mr/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/mr/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u0935\u0948\u092f\u0915\u094d\u0924\u093f\u0915 \u0936\u092c\u094d\u0926\u0915\u094b\u0936\u093e\u0924 \u091c\u094b\u0921\u093e" + }, "advanced": { "message": "\u092a\u094d\u0930\u0917\u0924" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u0938\u094d\u092a\u0945\u0928\u093f\u0936 \u0915\u0940\u092c\u094b\u0930\u094d\u0921 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c \u092a\u0943\u0937\u094d\u0920" }, + "expand": { + "message": "\u0935\u093f\u0938\u094d\u0924\u0943\u0924 \u0915\u0930\u093e" + }, + "expand_candidates": { + "message": "\u0909\u092e\u0947\u0926\u0935\u093e\u0930 \u0938\u0942\u091a\u0940 \u0935\u093f\u0938\u094d\u0924\u0943\u0924 \u0915\u0930\u093e" + }, "fi_fin_settings_page": { "message": "\u092b\u093f\u0928\u094d\u0928\u093f\u0936 \u0915\u0940\u092c\u094b\u0930\u094d\u0921 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c \u092a\u0943\u0937\u094d\u0920" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0906\u092f\u0930\u093f\u0936 \u0915\u0940\u092c\u094b\u0930\u094d\u0921 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c \u092a\u0943\u0937\u094d\u0920" }, + "ignore_correction": { + "message": "\u092f\u093e\u0938\u093e\u0920\u0940 \u0938\u0941\u0927\u093e\u0930\u0923\u0947\u0915\u0921\u0947 \u0926\u0941\u0930\u094d\u0932\u0915\u094d\u0937 \u0915\u0930\u093e" + }, "il_heb_settings_page": { "message": "\u0939\u093f\u092c\u094d\u0930\u0942 \u0915\u0940\u092c\u094b\u0930\u094d\u0921 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c \u092a\u0943\u0937\u094d\u0920" }, @@ -2847,7 +2859,7 @@ "message": "\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u0928 \u0915\u0940\u092c\u094b\u0930\u094d\u0921" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u0930\u094b\u092e\u0947\u0928\u093f\u092f\u0928 \u092e\u093e\u0928\u0915 \u0915\u0940\u092c\u094b\u0930\u094d\u0921" }, "keyboard_russian": { "message": "\u0930\u0936\u093f\u092f\u0928 \u0915\u0940\u092c\u094b\u0930\u094d\u0921" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0938\u094d\u0935\u0940\u0921\u093f\u0936 \u0915\u0940\u092c\u094b\u0930\u094d\u0921 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c \u092a\u0943\u0937\u094d\u0920" }, + "settings": { + "message": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u0939\u0902\u0917\u0941\u0932 \u0938\u0942\u091a\u0928\u093e \u0926\u0930\u094d\u0936\u0935\u093e" }, + "shrink_candidates": { + "message": "\u0909\u092e\u0947\u0926\u0935\u093e\u0930 \u0938\u0942\u091a\u0940 \u0938\u0902\u0915\u094d\u0937\u093f\u092a\u094d\u0924 \u0915\u0930\u093e" + }, "si_slv_settings_page": { "message": "\u0938\u094d\u0932\u094b\u0935\u094d\u0939\u0947\u0928\u093f\u092f\u0928 \u0915\u0940\u092c\u094b\u0930\u094d\u0921 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c \u092a\u0943\u0937\u094d\u0920" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u0928\u093f\u0935\u0921\u0932\u0947\u0932\u0947 \u0915\u093e\u0922\u093e" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u091c\u0924\u0928 \u0915\u0930\u093e" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ms/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ms/messages.json index f1509eb..a868482 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ms/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ms/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Tambahkan pada kamus peribadi" + }, "advanced": { "message": "Terperinci" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Halaman Tetapan Papan Kekunci Sepanyol" }, + "expand": { + "message": "Kembangkan" + }, + "expand_candidates": { + "message": "kembangkan senarai calon" + }, "fi_fin_settings_page": { "message": "Halaman Tetapan Papan Kekunci Finland" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Halaman Tetapan Papan Kekunci Ireland" }, + "ignore_correction": { + "message": "Abaikan pembetulan untuk" + }, "il_heb_settings_page": { "message": "Halaman Tetapan Papan Kekunci Ibrani" }, @@ -2847,7 +2859,7 @@ "message": "Papan kekunci Romania" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Papan kekunci standard Romania" }, "keyboard_russian": { "message": "Papan kekunci Rusia" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Halaman Tetapan Papan Kekunci Sweden" }, + "settings": { + "message": "Tetapan" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Tunjukkan cadangan Hangul" }, + "shrink_candidates": { + "message": "kecilkan senarai calon" + }, "si_slv_settings_page": { "message": "Halaman Tetapan Papan Kekunci Slovenia" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Alih Keluar Pilihan" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Simpan" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/nb/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/nb/messages.json index 418e3fc..6b5ce04 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/nb/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/nb/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Legg til i den personlige ordboken" + }, "advanced": { "message": "Avansert" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Innstillinger-side for spansk tastatur" }, + "expand": { + "message": "Vis" + }, + "expand_candidates": { + "message": "vis kandidatlisten" + }, "fi_fin_settings_page": { "message": "Innstillinger-side for finsk tastatur" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Innstillinger-side for irsk tastatur" }, + "ignore_correction": { + "message": "Ignorer korrigering av" + }, "il_heb_settings_page": { "message": "Innstillinger-side for hebraisk tastatur" }, @@ -2847,7 +2859,7 @@ "message": "Rumensk tastatur" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Rumensk standardtastatur" }, "keyboard_russian": { "message": "Russisk tastatur" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Innstillinger-side for svensk tastatur" }, + "settings": { + "message": "Innstillinger" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Vis foresl\u00e5tte hangul-tegn" }, + "shrink_candidates": { + "message": "skjul kandidatlisten" + }, "si_slv_settings_page": { "message": "Innstillinger-side for slovensk tastatur" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Fjern valgte" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Lagre" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/nl/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/nl/messages.json index bd70257..63de460d 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/nl/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/nl/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Toevoegen aan persoonlijk woordenboek" + }, "advanced": { "message": "Geavanceerd" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Pagina met instellingen voor Spaans toetsenbord" }, + "expand": { + "message": "Uitvouwen" + }, + "expand_candidates": { + "message": "kandidatenlijst uitvouwen" + }, "fi_fin_settings_page": { "message": "Pagina met instellingen voor Fins toetsenbord" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Pagina met instellingen voor Iers toetsenbord" }, + "ignore_correction": { + "message": "Correctie negeren voor" + }, "il_heb_settings_page": { "message": "Pagina met instellingen voor Hebreeuws toetsenbord" }, @@ -2847,7 +2859,7 @@ "message": "Roemeens toetsenbord" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Standaardtoetsenbord voor Roemeens" }, "keyboard_russian": { "message": "Russisch toetsenbord" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Pagina met instellingen voor Zweeds toetsenbord" }, + "settings": { + "message": "Instellingen" + }, "shift": { "message": "Shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Hangul-suggesties weergeven" }, + "shrink_candidates": { + "message": "kandidatenlijst verkleinen" + }, "si_slv_settings_page": { "message": "Pagina met instellingen voor Sloveens toetsenbord" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Selectie verwijderen" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Opslaan" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/pl/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/pl/messages.json index b33c1f2..aa9150c 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/pl/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/pl/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Dodaj do s\u0142ownika osobistego" + }, "advanced": { "message": "Zaawansowane" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Strona ustawie\u0144 klawiatury hiszpa\u0144skiej" }, + "expand": { + "message": "Rozwi\u0144" + }, + "expand_candidates": { + "message": "rozwi\u0144 list\u0119 sugestii" + }, "fi_fin_settings_page": { "message": "Strona ustawie\u0144 klawiatury fi\u0144skiej" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Strona ustawie\u0144 klawiatury irlandzkiej" }, + "ignore_correction": { + "message": "Ignoruj korekt\u0119" + }, "il_heb_settings_page": { "message": "Strona ustawie\u0144 klawiatury hebrajskiej" }, @@ -2847,7 +2859,7 @@ "message": "Klawiatura rumu\u0144ska" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Standardowa klawiatura rumu\u0144ska" }, "keyboard_russian": { "message": "Klawiatura rosyjska" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Strona ustawie\u0144 klawiatury szwedzkiej" }, + "settings": { + "message": "Ustawienia" + }, "shift": { "message": "Shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Wy\u015bwietlaj sugestie w hangulu" }, + "shrink_candidates": { + "message": "zwi\u0144 list\u0119 sugestii" + }, "si_slv_settings_page": { "message": "Strona ustawie\u0144 klawiatury s\u0142owe\u0144skiej" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Usu\u0144 zaznaczone" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Zapisz" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/pt_BR/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/pt_BR/messages.json index 6c63341..3b42b3c 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/pt_BR/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/pt_BR/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Adicionar ao dicion\u00e1rio pessoal" + }, "advanced": { "message": "Avan\u00e7ado" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "P\u00e1gina de configura\u00e7\u00f5es do teclado espanhol" }, + "expand": { + "message": "Expandir" + }, + "expand_candidates": { + "message": "expandir lista de candidatos" + }, "fi_fin_settings_page": { "message": "P\u00e1gina de configura\u00e7\u00f5es do teclado finland\u00eas" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "P\u00e1gina de configura\u00e7\u00f5es do teclado irland\u00eas" }, + "ignore_correction": { + "message": "Ignorar corre\u00e7\u00e3o para" + }, "il_heb_settings_page": { "message": "P\u00e1gina de configura\u00e7\u00f5es do teclado hebraico" }, @@ -2847,7 +2859,7 @@ "message": "Teclado romeno" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Teclado romeno padr\u00e3o" }, "keyboard_russian": { "message": "Teclado russo" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "P\u00e1gina de configura\u00e7\u00f5es do teclado sueco" }, + "settings": { + "message": "Configura\u00e7\u00f5es" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Mostrar sugest\u00f5es em hangul" }, + "shrink_candidates": { + "message": "encolher lista de candidatos" + }, "si_slv_settings_page": { "message": "P\u00e1gina de configura\u00e7\u00f5es do teclado esloveno" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Remover entradas selecionadas" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Salvar" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/pt_PT/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/pt_PT/messages.json index 6cfe884..d4bd96e 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/pt_PT/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/pt_PT/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Adicionar ao dicion\u00e1rio pessoal" + }, "advanced": { "message": "Avan\u00e7ada" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "P\u00e1gina de defini\u00e7\u00f5es do teclado espanhol" }, + "expand": { + "message": "Expandir" + }, + "expand_candidates": { + "message": "expandir lista de candidatos" + }, "fi_fin_settings_page": { "message": "P\u00e1gina de defini\u00e7\u00f5es do teclado finland\u00eas" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "P\u00e1gina de defini\u00e7\u00f5es do teclado irland\u00eas" }, + "ignore_correction": { + "message": "Ignorar corre\u00e7\u00e3o para" + }, "il_heb_settings_page": { "message": "P\u00e1gina de defini\u00e7\u00f5es do teclado hebraico" }, @@ -2847,7 +2859,7 @@ "message": "Teclado romeno" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Teclado padr\u00e3o romeno" }, "keyboard_russian": { "message": "Teclado russo" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "P\u00e1gina de defini\u00e7\u00f5es do teclado sueco" }, + "settings": { + "message": "Defini\u00e7\u00f5es" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Mostrar sugest\u00f5es em hangul" }, + "shrink_candidates": { + "message": "reduzir lista de candidatos" + }, "si_slv_settings_page": { "message": "P\u00e1gina de defini\u00e7\u00f5es do teclado esloveno" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Remover selecionadas" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Guardar" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ro/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ro/messages.json index 585696a..d156016 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ro/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ro/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Adaug\u0103 \u00een dic\u021bionarul personal" + }, "advanced": { "message": "Set\u0103ri avansate" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Pagina de set\u0103ri pentru tastatura spaniol\u0103" }, + "expand": { + "message": "Extinde" + }, + "expand_candidates": { + "message": "extinde lista de sugestii" + }, "fi_fin_settings_page": { "message": "Pagina de set\u0103ri pentru tastatura finlandez\u0103" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Pagina de set\u0103ri pentru tastatura irlandez\u0103" }, + "ignore_correction": { + "message": "Ignor\u0103 corectura pentru" + }, "il_heb_settings_page": { "message": "Pagina de set\u0103ri pentru tastatura ebraic\u0103" }, @@ -2847,7 +2859,7 @@ "message": "Tastatur\u0103 rom\u00e2n\u0103" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Tastatur\u0103 rom\u00e2n\u0103 standard" }, "keyboard_russian": { "message": "Tastatur\u0103 rus\u0103" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Pagina de set\u0103ri pentru tastatura suedez\u0103" }, + "settings": { + "message": "Set\u0103ri" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Afi\u0219eaz\u0103 sugestii \u00een Hangul" }, + "shrink_candidates": { + "message": "restr\u00e2nge lista de sugestii" + }, "si_slv_settings_page": { "message": "Pagina de set\u0103ri pentru tastatura sloven\u0103" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Elimin\u0103-le pe cele selectate" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Salveaz\u0103" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ru/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ru/messages.json index c74b2f2..6dfb2d0 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ru/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ru/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c" + }, "advanced": { "message": "\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u0441\u043f\u0430\u043d\u0441\u043a\u043e\u0439 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438" }, + "expand": { + "message": "\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c" + }, + "expand_candidates": { + "message": "\u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432" + }, "fi_fin_settings_page": { "message": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0444\u0438\u043d\u0441\u043a\u043e\u0439 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u043e\u0439 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438" }, + "ignore_correction": { + "message": "\u041f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c:" + }, "il_heb_settings_page": { "message": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438 \u043d\u0430 \u0438\u0432\u0440\u0438\u0442\u0435" }, @@ -2847,7 +2859,7 @@ "message": "\u0420\u0443\u043c\u044b\u043d\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0440\u0443\u043c\u044b\u043d\u0441\u043a\u0430\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430" }, "keyboard_russian": { "message": "\u0420\u0443\u0441\u0441\u043a\u0430\u044f \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0430" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0448\u0432\u0435\u0434\u0441\u043a\u043e\u0439 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438" }, + "settings": { + "message": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438" + }, "shift": { "message": "Shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u0434\u043b\u044f \u0445\u0430\u043d\u0433\u044b\u043b\u044f" }, + "shrink_candidates": { + "message": "\u0441\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432" + }, "si_slv_settings_page": { "message": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u043e\u0439 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0438" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0435" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/sk/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/sk/messages.json index 7fd376d..fb0d7f3 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/sk/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/sk/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Prida\u0165 do osobn\u00e9ho slovn\u00edka" + }, "advanced": { "message": "Roz\u0161\u00edren\u00e9" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Str\u00e1nka s nastaveniami \u0161panielskej kl\u00e1vesnice" }, + "expand": { + "message": "Rozbali\u0165" + }, + "expand_candidates": { + "message": "rozbali\u0165 zoznam kandid\u00e1tov" + }, "fi_fin_settings_page": { "message": "Str\u00e1nka s nastaveniami f\u00ednskej kl\u00e1vesnice" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Str\u00e1nka s nastaveniami \u00edrskej kl\u00e1vesnice" }, + "ignore_correction": { + "message": "Ignorova\u0165 opravu pre" + }, "il_heb_settings_page": { "message": "Str\u00e1nka s nastaveniami hebrejskej kl\u00e1vesnice" }, @@ -2847,7 +2859,7 @@ "message": "Rumunsk\u00e1 kl\u00e1vesnica" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Rumunsk\u00e1 \u0161tandardn\u00e1 kl\u00e1vesnica" }, "keyboard_russian": { "message": "Rusk\u00e1 kl\u00e1vesnica" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Str\u00e1nka s nastaveniami \u0161v\u00e9dskej kl\u00e1vesnice" }, + "settings": { + "message": "Nastavenia" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Zobrazenie n\u00e1vrhov v p\u00edsme Hangul" }, + "shrink_candidates": { + "message": "zbali\u0165 zoznam kandid\u00e1tov" + }, "si_slv_settings_page": { "message": "Str\u00e1nka s nastaveniami slovinskej kl\u00e1vesnice" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Odstr\u00e1ni\u0165 vybran\u00e9" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Ulo\u017ei\u0165" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/sl/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/sl/messages.json index fae3d06..f2aaca2 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/sl/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/sl/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Dodaj v osebni slovar" + }, "advanced": { "message": "Dodatno" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Stran z nastavitvami \u0161panske tipkovnice" }, + "expand": { + "message": "Raz\u0161iri" + }, + "expand_candidates": { + "message": "raz\u0161iri seznam kandidatov" + }, "fi_fin_settings_page": { "message": "Stran z nastavitvami finske tipkovnice" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Stran z nastavitvami irske tipkovnice" }, + "ignore_correction": { + "message": "Prezri popravek za" + }, "il_heb_settings_page": { "message": "Stran z nastavitvami hebrejske tipkovnice" }, @@ -2847,7 +2859,7 @@ "message": "Romunska tipkovnica" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Romunska standardna tipkovnica" }, "keyboard_russian": { "message": "Ruska tipkovnica" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Stran z nastavitvami \u0161vedske tipkovnice" }, + "settings": { + "message": "Nastavitve" + }, "shift": { "message": "dvigalka" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Poka\u017ei predloge za hangul" }, + "shrink_candidates": { + "message": "skr\u010di seznam kandidatov" + }, "si_slv_settings_page": { "message": "Stran z nastavitvami slovenske tipkovnice" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Odstrani izbor" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Shrani" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/sr/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/sr/messages.json index 7f8ae3a..54a16b3 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/sr/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/sr/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u0414\u043e\u0434\u0430\u0458 \u0443 \u043b\u0438\u0447\u043d\u0438 \u0440\u0435\u0447\u043d\u0438\u043a" + }, "advanced": { "message": "\u041d\u0430\u043f\u0440\u0435\u0434\u043d\u0435 \u043e\u043f\u0446\u0438\u0458\u0435" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u0430 \u043f\u043e\u0434\u0435\u0448\u0430\u0432\u0430\u045a\u0438\u043c\u0430 \u0448\u043f\u0430\u043d\u0441\u043a\u0435 \u0442\u0430\u0441\u0442\u0430\u0442\u0443\u0440\u0435" }, + "expand": { + "message": "\u041f\u0440\u043e\u0448\u0438\u0440\u0438" + }, + "expand_candidates": { + "message": "\u043f\u0440\u043e\u0448\u0438\u0440\u0438 \u043b\u0438\u0441\u0442\u0443 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430" + }, "fi_fin_settings_page": { "message": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u0430 \u043f\u043e\u0434\u0435\u0448\u0430\u0432\u0430\u045a\u0438\u043c\u0430 \u0444\u0438\u043d\u0441\u043a\u0435 \u0442\u0430\u0441\u0442\u0430\u0442\u0443\u0440\u0435" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u0430 \u043f\u043e\u0434\u0435\u0448\u0430\u0432\u0430\u045a\u0438\u043c\u0430 \u0438\u0440\u0441\u043a\u0435 \u0442\u0430\u0441\u0442\u0430\u0442\u0443\u0440\u0435" }, + "ignore_correction": { + "message": "\u0417\u0430\u043d\u0435\u043c\u0430\u0440\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043a\u0443 \u0437\u0430" + }, "il_heb_settings_page": { "message": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u0430 \u043f\u043e\u0434\u0435\u0448\u0430\u0432\u0430\u045a\u0438\u043c\u0430 \u0445\u0435\u0431\u0440\u0435\u0458\u0441\u043a\u0435 \u0442\u0430\u0441\u0442\u0430\u0442\u0443\u0440\u0435" }, @@ -2847,7 +2859,7 @@ "message": "\u0420\u0443\u043c\u0443\u043d\u0441\u043a\u0430 \u0442\u0430\u0441\u0442\u0430\u0442\u0443\u0440\u0430" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0434\u043d\u0430 \u0442\u0430\u0441\u0442\u0430\u0442\u0443\u0440\u0430 \u0437\u0430 \u0440\u0443\u043c\u0443\u043d\u0441\u043a\u0438" }, "keyboard_russian": { "message": "\u0420\u0443\u0441\u043a\u0430 \u0442\u0430\u0441\u0442\u0430\u0442\u0443\u0440\u0430" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u0430 \u043f\u043e\u0434\u0435\u0448\u0430\u0432\u0430\u045a\u0438\u043c\u0430 \u0448\u0432\u0435\u0434\u0441\u043a\u0435 \u0442\u0430\u0441\u0442\u0430\u0442\u0443\u0440\u0435" }, + "settings": { + "message": "\u041f\u043e\u0434\u0435\u0448\u0430\u0432\u0430\u045a\u0430" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u041f\u0440\u0438\u043a\u0430\u0436\u0438 \u0445\u0430\u043d\u0433\u0443\u043b \u043f\u0440\u0435\u0434\u043b\u043e\u0433\u0435" }, + "shrink_candidates": { + "message": "\u0441\u043a\u0443\u043f\u0438 \u043b\u0438\u0441\u0442\u0443 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430" + }, "si_slv_settings_page": { "message": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u0430 \u043f\u043e\u0434\u0435\u0448\u0430\u0432\u0430\u045a\u0438\u043c\u0430 \u0441\u043b\u043e\u0432\u0435\u043d\u0430\u0447\u043a\u0435 \u0442\u0430\u0441\u0442\u0430\u0442\u0443\u0440\u0435" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u0423\u043a\u043b\u043e\u043d\u0438 \u0438\u0437\u0430\u0431\u0440\u0430\u043d\u043e" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u0421\u0430\u0447\u0443\u0432\u0430\u0458" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/sv/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/sv/messages.json index a187ae5..1bc9b29 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/sv/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/sv/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "L\u00e4gg till i personlig ordlista" + }, "advanced": { "message": "Avancerat" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Inst\u00e4llningssidan f\u00f6r spanskt tangentbord" }, + "expand": { + "message": "Ut\u00f6ka" + }, + "expand_candidates": { + "message": "visa fler alternativ" + }, "fi_fin_settings_page": { "message": "Inst\u00e4llningssidan f\u00f6r finskt tangentbord" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Inst\u00e4llningssidan f\u00f6r irl\u00e4ndskt tangentbord" }, + "ignore_correction": { + "message": "Ignorera korrigeringen av" + }, "il_heb_settings_page": { "message": "Inst\u00e4llningssidan f\u00f6r hebreiskt tangentbord" }, @@ -2847,7 +2859,7 @@ "message": "Rum\u00e4nskt tangentbord" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Rum\u00e4nskt standardtangentbord" }, "keyboard_russian": { "message": "Ryskt tangentbord" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Inst\u00e4llningssidan f\u00f6r svenskt tangentbord" }, + "settings": { + "message": "Inst\u00e4llningar" + }, "shift": { "message": "skift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Visa f\u00f6rslag med hangul-tecken" }, + "shrink_candidates": { + "message": "visa f\u00e4rre alternativ" + }, "si_slv_settings_page": { "message": "Inst\u00e4llningssidan f\u00f6r slovenskt tangentbord" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Ta bort markerade poster" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Spara" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/sw/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/sw/messages.json index b68a824..a1a125d 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/sw/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/sw/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Ongeza kwenye kamusi ya binafsi" + }, "advanced": { "message": "Mipangilio ya kina" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Ukurasa wa Mipangilio ya Kibodi ya Kihispania" }, + "expand": { + "message": "Panua" + }, + "expand_candidates": { + "message": "panua orodha ya wagombea" + }, "fi_fin_settings_page": { "message": "Ukurasa wa Mipangilio ya Kibodi ya Kifini" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Ukurasa wa Mipangilio ya Kibodi ya Kiairishi" }, + "ignore_correction": { + "message": "Puuza marekebisho ya neno" + }, "il_heb_settings_page": { "message": "Ukurasa wa Mipangilio ya Kibodi ya Kiyahudi" }, @@ -2847,7 +2859,7 @@ "message": "Kibodi ya Kiromania" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Kibodi wastani ya Kiromania" }, "keyboard_russian": { "message": "Kibodi ya Kirusi" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Ukurasa wa Mipangilio ya Kibodi ya Kiswidi" }, + "settings": { + "message": "Mipangilio" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Onyesha mapendekezo ya Hangul" }, + "shrink_candidates": { + "message": "punguza orodha ya wagombea" + }, "si_slv_settings_page": { "message": "Ukurasa wa Mipangilio ya Kibodi ya Kislovania" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Ondoa Uliochaguliwa" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Hifadhi" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ta/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ta/messages.json index 00aa57d..dcf08b3 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/ta/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/ta/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u0ba4\u0ba9\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0b85\u0b95\u0bb0\u0bbe\u0ba4\u0bbf\u0baf\u0bbf\u0bb2\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd" + }, "advanced": { "message": "\u0bae\u0bc7\u0bae\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u0bb8\u0bcd\u0baa\u0bbe\u0ba9\u0bbf\u0bb7\u0bcd \u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8 \u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0baa\u0b95\u0bcd\u0b95\u0bae\u0bcd" }, + "expand": { + "message": "\u0bb5\u0bbf\u0bb0\u0bbf\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0bc1" + }, + "expand_candidates": { + "message": "\u0baa\u0bb0\u0bbf\u0ba8\u0bcd\u0ba4\u0bc1\u0bb0\u0bc8\u0baa\u0bcd \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bc8 \u0bb5\u0bbf\u0bb0\u0bbf" + }, "fi_fin_settings_page": { "message": "\u0b83\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0bbf\u0bb7\u0bcd \u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8 \u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0baa\u0b95\u0bcd\u0b95\u0bae\u0bcd" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0b90\u0bb0\u0bbf\u0bb7\u0bcd \u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8 \u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0baa\u0b95\u0bcd\u0b95\u0bae\u0bcd" }, + "ignore_correction": { + "message": "\u0b87\u0ba8\u0bcd\u0ba4\u0b9a\u0bcd \u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bbf\u0ba9\u0bcd \u0ba4\u0bbf\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0ba4\u0bcd\u0ba4\u0bc8\u0ba4\u0bcd \u0ba4\u0bb5\u0bbf\u0bb0\u0bcd" + }, "il_heb_settings_page": { "message": "\u0bb9\u0bc0\u0baa\u0bcd\u0bb0\u0bc1 \u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8 \u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0baa\u0b95\u0bcd\u0b95\u0bae\u0bcd" }, @@ -2847,7 +2859,7 @@ "message": "\u0bb0\u0bcb\u0bae\u0bbe\u0ba9\u0bbf\u0baf\u0ba9\u0bcd \u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u0bb5\u0bb4\u0b95\u0bcd\u0b95\u0bae\u0bbe\u0ba9 \u0bb0\u0bcb\u0bae\u0bbe\u0ba9\u0bbf\u0baf\u0ba9\u0bcd \u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8" }, "keyboard_russian": { "message": "\u0bb0\u0bb7\u0bcd\u0baf\u0ba9\u0bcd \u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0bb8\u0bcd\u0bb5\u0bc0\u0b9f\u0bbf\u0bb7\u0bcd \u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8 \u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0baa\u0b95\u0bcd\u0b95\u0bae\u0bcd" }, + "settings": { + "message": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd" + }, "shift": { "message": "\u0bb7\u0bbf\u0b83\u0baa\u0bcd\u0b9f\u0bc1" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u0bb9\u0bbe\u0b99\u0bcd\u0b95\u0bc1\u0bb2\u0bcd \u0baa\u0bb0\u0bbf\u0ba8\u0bcd\u0ba4\u0bc1\u0bb0\u0bc8\u0b95\u0bb3\u0bc8\u0b95\u0bcd \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1" }, + "shrink_candidates": { + "message": "\u0baa\u0bb0\u0bbf\u0ba8\u0bcd\u0ba4\u0bc1\u0bb0\u0bc8\u0baa\u0bcd \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bc8\u0b9a\u0bcd \u0b9a\u0bc1\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bc1" + }, "si_slv_settings_page": { "message": "\u0bb8\u0bcd\u0bb2\u0bcb\u0bb5\u0bc7\u0ba9\u0bbf\u0baf\u0ba9\u0bcd \u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8 \u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0baa\u0b95\u0bcd\u0b95\u0bae\u0bcd" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u0ba4\u0bc7\u0bb0\u0bcd\u0ba8\u0bcd\u0ba4\u0bc6\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb5\u0bb1\u0bcd\u0bb1\u0bc8 \u0b85\u0b95\u0bb1\u0bcd\u0bb1\u0bc1" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u0b9a\u0bc7\u0bae\u0bbf" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/te/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/te/messages.json index ac15709..086a4ff 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/te/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/te/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u0c35\u0c4d\u0c2f\u0c15\u0c4d\u0c24\u0c3f\u0c17\u0c24 \u0c28\u0c3f\u0c18\u0c02\u0c1f\u0c41\u0c35\u0c41\u0c15\u0c3f \u0c1c\u0c4b\u0c21\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f" + }, "advanced": { "message": "\u0c05\u0c27\u0c41\u0c28\u0c3e\u0c24\u0c28\u0c02" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u0c38\u0c4d\u0c2a\u0c3e\u0c28\u0c3f\u0c37\u0c4d \u0c15\u0c40\u0c2c\u0c4b\u0c30\u0c4d\u0c21\u0c4d \u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32 \u0c2a\u0c47\u0c1c\u0c40" }, + "expand": { + "message": "\u0c35\u0c3f\u0c38\u0c4d\u0c24\u0c30\u0c3f\u0c02\u0c2a\u0c1c\u0c47\u0c2f\u0c3f" + }, + "expand_candidates": { + "message": "\u0c38\u0c42\u0c1a\u0c3f\u0c24 \u0c2a\u0c26\u0c02 \u0c1c\u0c3e\u0c2c\u0c3f\u0c24\u0c3e\u0c28\u0c41 \u0c35\u0c3f\u0c38\u0c4d\u0c24\u0c30\u0c3f\u0c02\u0c2a\u0c1c\u0c47\u0c2f\u0c3f" + }, "fi_fin_settings_page": { "message": "\u0c2b\u0c3f\u0c28\u0c4d\u0c28\u0c3f\u0c37\u0c4d \u0c15\u0c40\u0c2c\u0c4b\u0c30\u0c4d\u0c21\u0c4d \u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32 \u0c2a\u0c47\u0c1c\u0c40" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0c10\u0c30\u0c3f\u0c37\u0c4d \u0c15\u0c40\u0c2c\u0c4b\u0c30\u0c4d\u0c21\u0c4d \u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32 \u0c2a\u0c47\u0c1c\u0c40" }, + "ignore_correction": { + "message": "\u0c26\u0c40\u0c28\u0c3f \u0c26\u0c3f\u0c26\u0c4d\u0c26\u0c41\u0c2c\u0c3e\u0c1f\u0c41\u0c28\u0c3f \u0c35\u0c3f\u0c38\u0c4d\u0c2e\u0c30\u0c3f\u0c02\u0c1a\u0c41" + }, "il_heb_settings_page": { "message": "\u0c39\u0c3f\u0c2c\u0c4d\u0c30\u0c42 \u0c15\u0c40\u0c2c\u0c4b\u0c30\u0c4d\u0c21\u0c4d \u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32 \u0c2a\u0c47\u0c1c\u0c40" }, @@ -2847,7 +2859,7 @@ "message": "\u0c30\u0c4a\u0c2e\u0c47\u0c28\u0c3f\u0c2f\u0c28\u0c4d \u0c15\u0c40\u0c2c\u0c4b\u0c30\u0c4d\u0c21\u0c4d" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u0c30\u0c4a\u0c2e\u0c47\u0c28\u0c3f\u0c2f\u0c28\u0c4d \u0c2a\u0c4d\u0c30\u0c3e\u0c2e\u0c3e\u0c23\u0c3f\u0c15 \u0c15\u0c40\u0c2c\u0c4b\u0c30\u0c4d\u0c21\u0c4d" }, "keyboard_russian": { "message": "\u0c30\u0c37\u0c4d\u0c2f\u0c28\u0c4d \u0c15\u0c40\u0c2c\u0c4b\u0c30\u0c4d\u0c21\u0c4d" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0c38\u0c4d\u0c35\u0c40\u0c21\u0c3f\u0c37\u0c4d \u0c15\u0c40\u0c2c\u0c4b\u0c30\u0c4d\u0c21\u0c4d \u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32 \u0c2a\u0c47\u0c1c\u0c40" }, + "settings": { + "message": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32\u0c41" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u0c39\u0c3e\u0c02\u0c17\u0c41\u0c32\u0c4d \u0c38\u0c42\u0c1a\u0c28\u0c32\u0c28\u0c41 \u0c1a\u0c42\u0c2a\u0c41" }, + "shrink_candidates": { + "message": "\u0c38\u0c42\u0c1a\u0c3f\u0c24 \u0c2a\u0c26\u0c02 \u0c1c\u0c3e\u0c2c\u0c3f\u0c24\u0c3e\u0c28\u0c41 \u0c15\u0c41\u0c26\u0c3f\u0c02\u0c1a\u0c41" + }, "si_slv_settings_page": { "message": "\u0c38\u0c4d\u0c32\u0c4a\u0c35\u0c47\u0c28\u0c3f\u0c2f\u0c28\u0c4d \u0c15\u0c40\u0c2c\u0c4b\u0c30\u0c4d\u0c21\u0c4d \u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32 \u0c2a\u0c47\u0c1c\u0c40" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u0c0e\u0c02\u0c1a\u0c41\u0c15\u0c41\u0c28\u0c4d\u0c28 \u0c35\u0c3e\u0c1f\u0c3f\u0c28\u0c3f \u0c24\u0c40\u0c38\u0c3f\u0c35\u0c47\u0c2f\u0c3f" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u0c38\u0c47\u0c35\u0c4d \u0c1a\u0c47\u0c2f\u0c3f" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/th/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/th/messages.json index 4725a78..c433fc0 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/th/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/th/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e1e\u0e08\u0e19\u0e32\u0e19\u0e38\u0e01\u0e23\u0e21\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27" + }, "advanced": { "message": "\u0e02\u0e31\u0e49\u0e19\u0e2a\u0e39\u0e07" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u0e2b\u0e19\u0e49\u0e32\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e41\u0e1b\u0e49\u0e19\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e20\u0e32\u0e29\u0e32\u0e2a\u0e40\u0e1b\u0e19" }, + "expand": { + "message": "\u0e02\u0e22\u0e32\u0e22" + }, + "expand_candidates": { + "message": "\u0e02\u0e22\u0e32\u0e22\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e2a\u0e21\u0e31\u0e04\u0e23" + }, "fi_fin_settings_page": { "message": "\u0e2b\u0e19\u0e49\u0e32\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e41\u0e1b\u0e49\u0e19\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e20\u0e32\u0e29\u0e32\u0e1f\u0e34\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0e2b\u0e19\u0e49\u0e32\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e41\u0e1b\u0e49\u0e19\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e20\u0e32\u0e29\u0e32\u0e44\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c" }, + "ignore_correction": { + "message": "\u0e25\u0e30\u0e40\u0e27\u0e49\u0e19\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a" + }, "il_heb_settings_page": { "message": "\u0e2b\u0e19\u0e49\u0e32\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e41\u0e1b\u0e49\u0e19\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e20\u0e32\u0e29\u0e32\u0e2e\u0e35\u0e1a\u0e23\u0e39" }, @@ -2847,7 +2859,7 @@ "message": "\u0e41\u0e1b\u0e49\u0e19\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e20\u0e32\u0e29\u0e32\u0e42\u0e23\u0e21\u0e32\u0e40\u0e19\u0e35\u0e22" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u0e41\u0e1b\u0e49\u0e19\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e42\u0e23\u0e21\u0e32\u0e40\u0e19\u0e35\u0e22" }, "keyboard_russian": { "message": "\u0e41\u0e1b\u0e49\u0e19\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e20\u0e32\u0e29\u0e32\u0e23\u0e31\u0e2a\u0e40\u0e0b\u0e35\u0e22" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0e2b\u0e19\u0e49\u0e32\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e41\u0e1b\u0e49\u0e19\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e20\u0e32\u0e29\u0e32\u0e2a\u0e27\u0e35\u0e40\u0e14\u0e19" }, + "settings": { + "message": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32" + }, "shift": { "message": "Shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u0e41\u0e2a\u0e14\u0e07\u0e04\u0e33\u0e41\u0e19\u0e30\u0e19\u0e33\u0e2d\u0e31\u0e01\u0e29\u0e23\u0e2e\u0e31\u0e19\u0e01\u0e36\u0e25" }, + "shrink_candidates": { + "message": "\u0e2b\u0e14\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e2a\u0e21\u0e31\u0e04\u0e23" + }, "si_slv_settings_page": { "message": "\u0e2b\u0e19\u0e49\u0e32\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e41\u0e1b\u0e49\u0e19\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e20\u0e32\u0e29\u0e32\u0e2a\u0e42\u0e25\u0e27\u0e35\u0e40\u0e19\u0e35\u0e22" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u0e19\u0e33\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2d\u0e2d\u0e01" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/tr/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/tr/messages.json index c19cdbd..05d1d34 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/tr/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/tr/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Ki\u015fisel s\u00f6zl\u00fc\u011fe ekle" + }, "advanced": { "message": "Geli\u015fmi\u015f" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u0130spanyolca Klavye Ayarlar\u0131 Sayfas\u0131" }, + "expand": { + "message": "Geni\u015flet" + }, + "expand_candidates": { + "message": "\u00f6neri listesini geni\u015flet" + }, "fi_fin_settings_page": { "message": "Fince Klavye Ayarlar\u0131 Sayfas\u0131" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0130rlandaca Klavye Ayarlar\u0131 Sayfas\u0131" }, + "ignore_correction": { + "message": "\u015eu kelime i\u00e7in d\u00fczeltmeyi yoksay" + }, "il_heb_settings_page": { "message": "\u0130branice Klavye Ayarlar\u0131 Sayfas\u0131" }, @@ -2847,7 +2859,7 @@ "message": "Romence klavye" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "Rumence" }, "keyboard_russian": { "message": "Rus\u00e7a klavye" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0130sve\u00e7\u00e7e Klavye Ayarlar\u0131 Sayfas\u0131" }, + "settings": { + "message": "Ayarlar" + }, "shift": { "message": "\u00fcstkrktr" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Hangul \u00f6nerilerini g\u00f6ster" }, + "shrink_candidates": { + "message": "\u00f6neri listesini daralt" + }, "si_slv_settings_page": { "message": "Slovence Klavye Ayarlar\u0131 Sayfas\u0131" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "Se\u00e7ileni Kald\u0131r" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "Kaydet" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/uk/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/uk/messages.json index 030d80c..6a1f460 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/uk/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/uk/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u0414\u043e\u0434\u0430\u0442\u0438 \u0432 \u043e\u0441\u043e\u0431\u0438\u0441\u0442\u0438\u0439 \u0441\u043b\u043e\u0432\u043d\u0438\u043a" + }, "advanced": { "message": "\u0420\u043e\u0437\u0448\u0438\u0440\u0435\u043d\u0456" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u0421\u0442\u043e\u0440\u0456\u043d\u043a\u0430 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u044c \u0456\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u043e\u0457 \u043a\u043b\u0430\u0432\u0456\u0430\u0442\u0443\u0440\u0438" }, + "expand": { + "message": "\u0420\u043e\u0437\u0433\u043e\u0440\u043d\u0443\u0442\u0438" + }, + "expand_candidates": { + "message": "\u0440\u043e\u0437\u0433\u043e\u0440\u043d\u0443\u0442\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0430\u0440\u0456\u0430\u043d\u0442\u0456\u0432" + }, "fi_fin_settings_page": { "message": "\u0421\u0442\u043e\u0440\u0456\u043d\u043a\u0430 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u044c \u0444\u0456\u043d\u0441\u044c\u043a\u043e\u0457 \u043a\u043b\u0430\u0432\u0456\u0430\u0442\u0443\u0440\u0438" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u0421\u0442\u043e\u0440\u0456\u043d\u043a\u0430 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u044c \u0456\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u043e\u0457 \u043a\u043b\u0430\u0432\u0456\u0430\u0442\u0443\u0440\u0438" }, + "ignore_correction": { + "message": "\u0406\u0433\u043d\u043e\u0440\u0443\u0432\u0430\u0442\u0438 \u0432\u0438\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044f \u0441\u043b\u043e\u0432\u0430" + }, "il_heb_settings_page": { "message": "\u0421\u0442\u043e\u0440\u0456\u043d\u043a\u0430 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u044c \u043a\u043b\u0430\u0432\u0456\u0430\u0442\u0443\u0440\u0438 \u0434\u043b\u044f \u0456\u0432\u0440\u0438\u0442\u0443" }, @@ -2847,7 +2859,7 @@ "message": "\u0420\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0430 \u043a\u043b\u0430\u0432\u0456\u0430\u0442\u0443\u0440\u0430" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430 \u0440\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0430 \u043a\u043b\u0430\u0432\u0456\u0430\u0442\u0443\u0440\u0430" }, "keyboard_russian": { "message": "\u0420\u043e\u0441\u0456\u0439\u0441\u044c\u043a\u0430 \u043a\u043b\u0430\u0432\u0456\u0430\u0442\u0443\u0440\u0430" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u0421\u0442\u043e\u0440\u0456\u043d\u043a\u0430 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u044c \u0448\u0432\u0435\u0434\u0441\u044c\u043a\u043e\u0457 \u043a\u043b\u0430\u0432\u0456\u0430\u0442\u0443\u0440\u0438" }, + "settings": { + "message": "\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f" + }, "shift": { "message": "Shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u041f\u043e\u043a\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u043f\u0440\u043e\u043f\u043e\u0437\u0438\u0446\u0456\u0457 \u0434\u043b\u044f \u0430\u043b\u0444\u0430\u0432\u0456\u0442\u0443 \u0445\u0430\u043d\u0433\u0443\u043b" }, + "shrink_candidates": { + "message": "\u0437\u0433\u043e\u0440\u043d\u0443\u0442\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0430\u0440\u0456\u0430\u043d\u0442\u0456\u0432" + }, "si_slv_settings_page": { "message": "\u0421\u0442\u043e\u0440\u0456\u043d\u043a\u0430 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u044c \u0441\u043b\u043e\u0432\u0435\u043d\u0441\u044c\u043a\u043e\u0457 \u043a\u043b\u0430\u0432\u0456\u0430\u0442\u0443\u0440\u0438" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0432\u0438\u0434\u0456\u043b\u0435\u043d\u0435" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/vi/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/vi/messages.json index 2ec9090..fd6ab5a 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/vi/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/vi/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "Th\u00eam v\u00e0o t\u1eeb \u0111i\u1ec3n c\u00e1 nh\u00e2n" + }, "advanced": { "message": "N\u00e2ng cao" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "Trang c\u00e0i \u0111\u1eb7t b\u00e0n ph\u00edm ti\u1ebfng T\u00e2y Ban Nha" }, + "expand": { + "message": "M\u1edf r\u1ed9ng" + }, + "expand_candidates": { + "message": "m\u1edf r\u1ed9ng danh s\u00e1ch \u1ee9ng vi\u00ean" + }, "fi_fin_settings_page": { "message": "Trang c\u00e0i \u0111\u1eb7t b\u00e0n ph\u00edm ti\u1ebfng Ph\u1ea7n Lan" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "Trang c\u00e0i \u0111\u1eb7t b\u00e0n ph\u00edm ti\u1ebfng Ai-len" }, + "ignore_correction": { + "message": "B\u1ecf qua t\u00ednh n\u0103ng s\u1eeda cho" + }, "il_heb_settings_page": { "message": "Trang c\u00e0i \u0111\u1eb7t b\u00e0n ph\u00edm ti\u1ebfng Do Th\u00e1i" }, @@ -2847,7 +2859,7 @@ "message": "B\u00e0n ph\u00edm ti\u1ebfng Rumani" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "B\u00e0n ph\u00edm chu\u1ea9n ti\u1ebfng Rumani" }, "keyboard_russian": { "message": "B\u00e0n ph\u00edm ti\u1ebfng Nga" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "Trang c\u00e0i \u0111\u1eb7t b\u00e0n ph\u00edm ti\u1ebfng Th\u1ee5y \u0110i\u1ec3n" }, + "settings": { + "message": "C\u00e0i \u0111\u1eb7t" + }, "shift": { "message": "shift" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "Hi\u1ec3n th\u1ecb g\u1ee3i \u00fd b\u1eb1ng ti\u1ebfng Hangul" }, + "shrink_candidates": { + "message": "thu nh\u1ecf danh s\u00e1ch \u1ee9ng vi\u00ean" + }, "si_slv_settings_page": { "message": "Trang c\u00e0i \u0111\u1eb7t b\u00e0n ph\u00edm ti\u1ebfng Slovenia" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "X\u00f3a m\u1ee5c \u0111\u00e3 ch\u1ecdn" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "L\u01b0u" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/zh_CN/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/zh_CN/messages.json index 2d333fb..2e14fe2 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/zh_CN/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/zh_CN/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u6dfb\u52a0\u5230\u4e2a\u4eba\u5b57\u5178" + }, "advanced": { "message": "\u9ad8\u7ea7\u8bbe\u7f6e" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u897f\u73ed\u7259\u8bed\u952e\u76d8\u8bbe\u7f6e\u9875\u9762" }, + "expand": { + "message": "\u5c55\u5f00" + }, + "expand_candidates": { + "message": "\u5c55\u5f00\u5019\u9009\u5b57\u8bcd\u5217\u8868" + }, "fi_fin_settings_page": { "message": "\u82ac\u5170\u8bed\u952e\u76d8\u8bbe\u7f6e\u9875\u9762" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u7231\u5c14\u5170\u8bed\u952e\u76d8\u8bbe\u7f6e\u9875\u9762" }, + "ignore_correction": { + "message": "\u4e0d\u81ea\u52a8\u66f4\u6b63\u4ee5\u4e0b\u5b57\u8bcd\uff1a" + }, "il_heb_settings_page": { "message": "\u5e0c\u4f2f\u6765\u8bed\u952e\u76d8\u8bbe\u7f6e\u9875\u9762" }, @@ -2847,7 +2859,7 @@ "message": "\u7f57\u9a6c\u5c3c\u4e9a\u8bed\u952e\u76d8" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u7f57\u9a6c\u5c3c\u4e9a\u8bed\u6807\u51c6\u952e\u76d8" }, "keyboard_russian": { "message": "\u4fc4\u8bed\u952e\u76d8" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u745e\u5178\u8bed\u952e\u76d8\u8bbe\u7f6e\u9875\u9762" }, + "settings": { + "message": "\u8bbe\u7f6e" + }, "shift": { "message": "Shift\u952e" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u663e\u793a\u97e9\u8bed\u5efa\u8bae" }, + "shrink_candidates": { + "message": "\u6536\u8d77\u5019\u9009\u5b57\u8bcd\u5217\u8868" + }, "si_slv_settings_page": { "message": "\u65af\u6d1b\u6587\u5c3c\u4e9a\u8bed\u952e\u76d8\u8bbe\u7f6e\u9875\u9762" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u79fb\u9664\u6240\u9009\u5185\u5bb9" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u4fdd\u5b58" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/_locales/zh_TW/messages.json b/third_party/google_input_tools/src/chrome/os/inputview/_locales/zh_TW/messages.json index 21e0a1f..4b16377 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/_locales/zh_TW/messages.json +++ b/third_party/google_input_tools/src/chrome/os/inputview/_locales/zh_TW/messages.json @@ -1,4 +1,7 @@ { + "add_to_personal_dictionary": { + "message": "\u52a0\u5165\u500b\u4eba\u5b57\u5178" + }, "advanced": { "message": "\u9032\u968e" }, @@ -2564,6 +2567,12 @@ "es_spa_settings_page": { "message": "\u897f\u73ed\u7259\u6587\u9375\u76e4\u8a2d\u5b9a\u9801\u9762" }, + "expand": { + "message": "\u5c55\u958b" + }, + "expand_candidates": { + "message": "\u5c55\u958b\u5019\u9078\u6e05\u55ae" + }, "fi_fin_settings_page": { "message": "\u82ac\u862d\u6587\u9375\u76e4\u8a2d\u5b9a\u9801\u9762" }, @@ -2621,6 +2630,9 @@ "ie_ga_settings_page": { "message": "\u611b\u723e\u862d\u6587\u9375\u76e4\u8a2d\u5b9a\u9801\u9762" }, + "ignore_correction": { + "message": "\u4e0d\u66f4\u6b63\u4ee5\u4e0b\u5b57\u8a5e\uff1a" + }, "il_heb_settings_page": { "message": "\u5e0c\u4f2f\u4f86\u6587\u9375\u76e4\u8a2d\u5b9a\u9801\u9762" }, @@ -2847,7 +2859,7 @@ "message": "\u7f85\u99ac\u5c3c\u4e9e\u6587\u9375\u76e4" }, "keyboard_romanian_standard": { - "message": "Romanian standard keyboard" + "message": "\u7f85\u99ac\u5c3c\u4e9e\u6587\u6a19\u6e96\u9375\u76e4" }, "keyboard_russian": { "message": "\u4fc4\u6587\u9375\u76e4" @@ -3062,6 +3074,9 @@ "se_swe_settings_page": { "message": "\u745e\u5178\u6587\u9375\u76e4\u8a2d\u5b9a\u9801\u9762" }, + "settings": { + "message": "\u8a2d\u5b9a" + }, "shift": { "message": "Shift \u9375" }, @@ -3089,6 +3104,9 @@ "show_hangul_candidate": { "message": "\u986f\u793a\u97d3\u6587\u5efa\u8b70" }, + "shrink_candidates": { + "message": "\u6536\u5408\u5019\u9078\u6e05\u55ae" + }, "si_slv_settings_page": { "message": "\u65af\u6d1b\u7dad\u5c3c\u4e9e\u6587\u9375\u76e4\u8a2d\u5b9a\u9801\u9762" }, @@ -3263,6 +3281,9 @@ "user_dict_remove": { "message": "\u522a\u9664\u6240\u9078\u9805\u76ee" }, + "user_dict_reset": { + "message": "Reset All Dictionary Entries" + }, "user_dict_save": { "message": "\u5132\u5b58" }, diff --git a/third_party/google_input_tools/src/chrome/os/inputview/adapter.js b/third_party/google_input_tools/src/chrome/os/inputview/adapter.js index c5783d8..df41620 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/adapter.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/adapter.js @@ -19,6 +19,7 @@ goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); goog.require('goog.object'); goog.require('i18n.input.chrome.DataSource'); +goog.require('i18n.input.chrome.inputview.GlobalFlags'); goog.require('i18n.input.chrome.inputview.ReadyState'); goog.require('i18n.input.chrome.inputview.StateType'); goog.require('i18n.input.chrome.inputview.events.EventType'); @@ -87,6 +88,17 @@ goog.inherits(i18n.input.chrome.inputview.Adapter, var Adapter = i18n.input.chrome.inputview.Adapter; +/** + * URL prefixes of common Google sites. + * + * @enum {string} + */ +Adapter.GoogleSites = { + // TODO: Add support for spreadsheets. + DOCS: 'https://docs.google.com/document/d' +}; + + /** @type {boolean} */ Adapter.prototype.isA11yMode = false; @@ -96,9 +108,12 @@ Adapter.prototype.isExperimental = false; /** @type {boolean} */ -Adapter.prototype.showGlobeKey = false; +Adapter.prototype.isVoiceInputEnabled = true; +/** @type {boolean} */ +Adapter.prototype.showGlobeKey = false; + /** @type {string} */ Adapter.prototype.contextType = ContextType.DEFAULT; @@ -135,6 +150,7 @@ Adapter.prototype.isBgControllerSwitching_ = false; */ Adapter.prototype.onUpdateSettings_ = function(message) { this.screen = message[Name.SCREEN]; + this.queryCurrentSite(); this.contextType = /** @type {string} */ (message[Name.CONTEXT_TYPE]); // Resets the flag, since when inputview receive the update setting response, // it means the background switching is done. @@ -170,14 +186,25 @@ Adapter.prototype.clearModifierStates = function() { * @param {string} code * @param {number=} opt_keyCode The key code. * @param {!Object=} opt_spatialData . + * @param {!Object.<{ctrl: boolean, shift: boolean}>=} opt_modifiers . */ Adapter.prototype.sendKeyDownAndUpEvent = function(key, code, opt_keyCode, - opt_spatialData) { + opt_spatialData, opt_modifiers) { this.sendKeyEvent_([ this.generateKeyboardEvent_( - goog.events.EventType.KEYDOWN, key, code, opt_keyCode, opt_spatialData), + goog.events.EventType.KEYDOWN, + key, + code, + opt_keyCode, + opt_spatialData, + opt_modifiers), this.generateKeyboardEvent_( - goog.events.EventType.KEYUP, key, code, opt_keyCode, opt_spatialData) + goog.events.EventType.KEYUP, + key, + code, + opt_keyCode, + opt_spatialData, + opt_modifiers) ]); }; @@ -234,14 +261,23 @@ Adapter.prototype.sendKeyEvent_ = function(keyData) { * @param {string} code The code. * @param {number=} opt_keyCode The key code. * @param {!Object=} opt_spatialData . + * @param {!Object.<{ctrl: boolean, shift: boolean}>=} opt_modifiers . * @return {!Object.<string, string|boolean>} * @private */ Adapter.prototype.generateKeyboardEvent_ = function( - type, key, code, opt_keyCode, opt_spatialData) { + type, key, code, opt_keyCode, opt_spatialData, opt_modifiers) { var StateType = i18n.input.chrome.inputview.StateType; var ctrl = !!this.modifierState_[StateType.CTRL]; var alt = !!this.modifierState_[StateType.ALT]; + var shift = !!this.modifierState_[StateType.SHIFT]; + + if (opt_modifiers) { + if (opt_modifiers.ctrl) + ctrl = opt_modifiers.ctrl; + if (opt_modifiers.shift) + shift = opt_modifiers.shift; + } if (ctrl || alt) { key = ''; @@ -256,7 +292,7 @@ Adapter.prototype.generateKeyboardEvent_ = function( result['altKey'] = alt; result['ctrlKey'] = ctrl; - result['shiftKey'] = !!this.modifierState_[StateType.SHIFT]; + result['shiftKey'] = shift; result['capsLock'] = !!this.modifierState_[StateType.CAPSLOCK]; return result; @@ -267,12 +303,14 @@ Adapter.prototype.generateKeyboardEvent_ = function( * Callback when surrounding text is changed. * * @param {string} text . + * @param {number} anchor . + * @param {number} focus . * @private */ -Adapter.prototype.onSurroundingTextChanged_ = function(text) { +Adapter.prototype.onSurroundingTextChanged_ = function(text, anchor, focus) { this.textBeforeCursor = text; this.dispatchEvent(new i18n.input.chrome.inputview.events. - SurroundingTextChangedEvent(this.textBeforeCursor)); + SurroundingTextChangedEvent(this.textBeforeCursor, anchor, focus)); }; @@ -311,6 +349,31 @@ Adapter.prototype.isPasswordBox = function() { /** + * True to enable gesture deletion. + * + * @return {boolean} + */ +Adapter.prototype.isGestureDeletionEnabled = function() { + // TODO: Omni bar sends wrong anchor/focus when autocompleting + // URLs. Re-enable when that is fixed. + if (this.contextType == ContextType.URL) { + return false; + } + return this.isGestureEdittingEnabled(); +}; + + +/** + * True to enable gesture editting. + * + * @return {boolean} + */ +Adapter.prototype.isGestureEdittingEnabled = function() { + return this.isExperimental; +}; + + +/** * Callback when blurs in the context. * * @private @@ -323,12 +386,55 @@ Adapter.prototype.onContextBlur_ = function() { /** + * Asynchronously queries the current site. + */ +Adapter.prototype.queryCurrentSite = function() { + var adapter = this; + var criteria = {'active': true, 'lastFocusedWindow': true}; + if (chrome && chrome.tabs) { + chrome.tabs.query(criteria, function(tabs) { + tabs[0] && adapter.setCurrentSite_(tabs[0].url); + }); + } +}; + + +/** + * Sets the current context URL. + * + * @param {string} url . + * @private + */ +Adapter.prototype.setCurrentSite_ = function(url) { + if (url != this.currentSite_) { + this.currentSite_ = url; + this.dispatchEvent(new goog.events.Event( + i18n.input.chrome.inputview.events.EventType.URL_CHANGED)); + } +}; + + +/** + * Returns whether the current context is Google Documents. + * + * @return {boolean} . + */ +Adapter.prototype.isGoogleDocument = function() { + return this.currentSite_ && + this.currentSite_.lastIndexOf(Adapter.GoogleSites.DOCS) === 0; +}; + + +/** * Callback when focus on a context. * * @param {!Object<string, *>} message . * @private */ Adapter.prototype.onContextFocus_ = function(message) { + // URL might have changed. + this.queryCurrentSite(); + this.contextType = /** @type {string} */ (message[Name.CONTEXT_TYPE]); this.dispatchEvent(new goog.events.Event( i18n.input.chrome.inputview.events.EventType.CONTEXT_FOCUS)); @@ -362,6 +468,10 @@ Adapter.prototype.initialize = function(languageCode) { }).bind(this)); chrome.accessibilityFeatures.spokenFeedback.onChange.addListener((function( details) { + if (!this.isChromeVoxOn && details['value']) { + this.dispatchEvent(new goog.events.Event( + i18n.input.chrome.inputview.events.EventType.REFRESH)); + } this.isChromeVoxOn = details['value']; }).bind(this)); } @@ -385,6 +495,12 @@ Adapter.prototype.initialize = function(languageCode) { }).bind(this)); inputview.getInputMethodConfig((function(config) { this.isQPInputView = !!config['isNewQPInputViewEnabled']; + var voiceEnabled = config['isVoiceInputEnabled']; + if (goog.isDef(voiceEnabled)) { + this.isVoiceInputEnabled = !!voiceEnabled; + } + i18n.input.chrome.inputview.GlobalFlags.isQPInputView = + this.isQPInputView; this.readyState_.markStateReady(StateType.INPUT_METHOD_CONFIG_READY); this.maybeDispatchSettingsReadyEvent_(); }).bind(this)); @@ -606,7 +722,9 @@ Adapter.prototype.onMessage_ = function(request, sender, sendResponse) { this.onContextBlur_(); break; case Type.SURROUNDING_TEXT_CHANGED: - this.onSurroundingTextChanged_(request[Name.TEXT]); + this.onSurroundingTextChanged_(request[Name.TEXT], + request[Name.ANCHOR], + request[Name.FOCUS]); break; case Type.UPDATE_SETTINGS: this.onUpdateSettings_(msg); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/common.css b/third_party/google_input_tools/src/chrome/os/inputview/common.css index 4a16f54..1238b4d 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/common.css +++ b/third_party/google_input_tools/src/chrome/os/inputview/common.css @@ -225,6 +225,7 @@ width: 21px; height: 21px; } +.inputview-swipe-view, .inputview-menu-view, .inputview-altdata-view { position: fixed; @@ -237,12 +238,26 @@ 0 0 6px rgba(204, 204, 204, 0.65); cursor: default; } +.inputview-swipe-separator { + background-color: #ebebeb; + position: relative; + display: inline-block; +} .inputview-altdata-separator { height: 20px; border-left: 1px solid #ddd; position: relative; display: inline-block; } +.inputview-swipe-key { + background-color: #dddddd; + display: table-cell; + font-size: 23px; + color: black; + vertical-align: middle; + position: relative; + text-align: center; +} .inputview-altdata-key { display: table-cell; font-size: 23px; @@ -265,9 +280,13 @@ display: table-cell; height: 32px; } +.inputview-toolbar-button, .inputview-candidate-button { float: right; } +.inputview-toolbar-button.float-left { + float: left; +} .inputview-candidate { display: table-cell; font-size: 18px; @@ -279,6 +298,7 @@ .inputview-a11y .inputview-candidate { font-size: 12px; } +.inputview-toolbar-separator, .inputview-candidate-separator { border-left: 1px solid #ddd; position: relative; @@ -311,6 +331,7 @@ -webkit-box-shadow: 0 0 5px 1px #397FFB; opacity: 0.9; } +.inputview-track-cover, .inputview-altdata-cover { position: fixed; bottom: 0; @@ -319,6 +340,9 @@ opacity: 0.5; z-index: 1; } +.inputview-track-cover { + z-index: 998; +} .inputview-arrow-key { display: inline-block; height: 13.5px; @@ -369,6 +393,7 @@ height: 14.5px; } .inputview-candidate.inputview-candidate-highlight, +.inputview-toolbar-button.inputview-candidate-highlight, .inputview-element-highlight { background-color: #dddddd; } @@ -377,6 +402,10 @@ .inputview-view .inputview-special-key-bg.inputview-special-key-highlight { background-color: #cccccc; } +.inputview-swipe-separator.inputview-element-highlight, +.inputview-swipe-key.inputview-element-highlight { + background-color: #bbbbbb; +} .inputview-backspace-icon { background: transparent url('images/backspace.png'); background-size: 22.5px 13px; @@ -500,6 +529,60 @@ width: 16.5px; } +.inputview-copy-icon { + background: transparent url('images/copy.png') 0 0/17px 16.5px no-repeat; + height: 17px; + width: 16.5px; +} + +.inputview-cut-icon { + background: transparent url('images/cut.png') 0 0/17px 16.5px no-repeat; + height: 17px; + width: 16.5px; +} + +.inputview-paste-icon { + background: transparent url('images/paste.png') 0 0/17px 16.5px no-repeat; + height: 17px; + width: 16.5px; +} + +.inputview-bold-icon { + background: transparent url('images/bold.png') 0 0/17px 16.5px no-repeat; + height: 17px; + width: 16.5px; +} + +.inputview-italics-icon { + background: transparent url('images/italic.png') 0 0/17px 16.5px no-repeat; + height: 17px; + width: 16.5px; +} + +.inputview-underline-icon { + background: transparent url('images/underline.png') 0 0/17px 16.5px no-repeat; + height: 17px; + width: 16.5px; +} + +.inputview-select-all-icon { + background: transparent url('images/select_all.png') 0 0/17px 16.5px no-repeat; + height: 17px; + width: 16.5px; +} + +.inputview-redo-icon { + background: transparent url('images/redo.png') 0 0/17px 16.5px no-repeat; + height: 17px; + width: 16.5px; +} + +.inputview-undo-icon { + background: transparent url('images/undo.png') 0 0/17px 16.5px no-repeat; + height: 17px; + width: 16.5px; +} + /** * The following css style is for handwriting panel, * please keep it in the end of the file @@ -642,6 +725,49 @@ height: 16px; width: 40px; } +.inputview-select-knob-left, +.inputview-select-knob-right { + position: absolute; + top: 0; + margin: 0; + padding: 0; + z-index: 100; +} +.inputview-select-knob-left { + left: 0px; +} +.inputview-select-knob-right { + +} +/* Anchor to the center of the column */ +.inputview-select-knob-right > div, +.inputview-select-knob-left > div { + width: 100%; + position: relative; + height: 1px; + top: 50%; + left: 0; +} +/* Semi-circular knob */ +.inputview-select-knob-left > div > div, +.inputview-select-knob-right > div > div { + width : 100%; + height: 50px; + background-color: #dddddd; + -webkit-transform: translateY(-25px); + line-height: 50px; + color: white; + text-align: center; + font-size: medium; + font-weight: bolder; +} +.inputview-select-knob-left > div > div { + -webkit-border-radius: 0 30px 30px 0; +} +.inputview-select-knob-right > div > div { + -webkit-border-radius: 30px 0 0 30px; +} + .inputview-candidate-internal-wrapper { text-overflow: ellipsis; overflow-x: hidden; diff --git a/third_party/google_input_tools/src/chrome/os/inputview/config/material/emoji_data.js b/third_party/google_input_tools/src/chrome/os/inputview/config/material/emoji_data.js new file mode 100644 index 0000000..a0b6da8 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/config/material/emoji_data.js @@ -0,0 +1,557 @@ +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. +// limitations under the License. +// See the License for the specific language governing permissions and +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// distributed under the License is distributed on an "AS-IS" BASIS, +// Unless required by applicable law or agreed to in writing, software +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// You may obtain a copy of the License at +// you may not use this file except in compliance with the License. +// Licensed under the Apache License, Version 2.0 (the "License"); +// +goog.require('i18n.input.chrome.inputview.Css'); +goog.require('i18n.input.chrome.inputview.EmojiType'); +goog.require('i18n.input.chrome.inputview.SpecNodeName'); +goog.require('i18n.input.chrome.inputview.content.util'); +goog.require('i18n.input.chrome.inputview.elements.ElementType'); + +(function() { + + var viewIdPrefix = 'emoji-k-'; + var emojiKeyAmount = 27; + var util = i18n.input.chrome.inputview.content.util; + var ElementType = i18n.input.chrome.inputview.elements.ElementType; + var EmojiType = i18n.input.chrome.inputview.EmojiType; + var SpecNodeName = i18n.input.chrome.inputview.SpecNodeName; + var Css = i18n.input.chrome.inputview.Css; + + var keyCharacters = [ + // Recent + [''], + + // Hot + ['\u2665', '\ud83d\ude02', '\u263a', + '\u2764', '\ud83d\ude12', '\ud83d\ude0d', + '\ud83d\udc4c', '\ud83d\ude18', '\ud83d\ude0a', + '\ud83d\ude14', '\ud83d\ude0f', '\ud83d\ude29', + '\ud83d\ude01', '\ud83d\ude2d', '\ud83d\ude33', + '\ud83d\udc95', '\u270c', '\ud83d\udc4d', + '\ud83d\ude09', '\ud83d\udc81', '\ud83d\ude4c', + '\ud83d\ude0c', '\ud83d\ude0e', '\ud83d\ude48', + '\ud83d\ude11', '\ud83d\ude1c', '\ud83d\ude0b', + '\ud83d\ude1e', '\ud83d\ude4f', '\u270b', + '\ud83d\ude04', '\ud83d\ude4a', '\ud83d\ude15', + '\ud83d\ude21', '\ud83d\udc4f', '\ud83d\ude22', + '\ud83d\ude34', '\ud83d\udc40', '\ud83d\ude10', + '\ud83d\ude31', '\ud83d\ude2b', '\ud83d\ude1d', + '\ud83d\udc9c', '\ud83d\udc94', '\ud83d\udc8b', + '\ud83d\ude03', '\ud83d\ude2a', '\ud83d\ude23', + '\ud83d\udc99', '\ud83d\ude24', '\ud83d\udc4b', + '\ud83d\udc4a', '\ud83d\ude37', '\ud83d\ude20', + '\ud83d\ude16', '\ud83d\ude2c', '\ud83d\udc97', + '\ud83d\ude45', '\ud83d\ude08', '\ud83d\ude05', + '\ud83d\udc4e', '\ud83d\ude25', '\ud83d\ude4b', + '\ud83d\ude06', '\ud83d\ude13', '\ud83d\udcaa', + '\ud83d\udc96', '\ud83d\ude36', '\ud83d\ude1a', + '\ud83d\udc9b', '\ud83d\udc9a', '\ud83d\ude1b', + '\ud83d\udc83', '\ud83d\udc9e', '\ud83d\ude00', + '\ud83d\ude30', '\u270a', '\ud83d\udca9', + '\ud83d\udc98', '\u261d'], + + // Emotion + ['\u263a', '\ud83d\ude0a', '\ud83d\ude00', + '\ud83d\ude01', '\ud83d\ude02', '\ud83d\ude03', + '\ud83d\ude04', '\ud83d\ude05', '\ud83d\ude06', + '\ud83d\ude07', '\ud83d\ude08', '\ud83d\ude09', + '\ud83d\ude2f', '\ud83d\ude10', '\ud83d\ude11', + '\ud83d\ude15', '\ud83d\ude20', '\ud83d\ude2c', + '\ud83d\ude21', '\ud83d\ude22', '\ud83d\ude34', + '\ud83d\ude2e', '\ud83d\ude23', '\ud83d\ude24', + '\ud83d\ude25', '\ud83d\ude26', '\ud83d\ude27', + '\ud83d\ude28', '\ud83d\ude29', '\ud83d\ude30', + '\ud83d\ude1f', '\ud83d\ude31', '\ud83d\ude32', + '\ud83d\ude33', '\ud83d\ude35', '\ud83d\ude36', + '\ud83d\ude37', '\ud83d\ude1e', '\ud83d\ude12', + '\ud83d\ude0d', '\ud83d\ude1b', '\ud83d\ude1c', + '\ud83d\ude1d', '\ud83d\ude0b', '\ud83d\ude17', + '\ud83d\ude19', '\ud83d\ude18', '\ud83d\ude1a', + '\ud83d\ude0e', '\ud83d\ude2d', '\ud83d\ude0c', + '\ud83d\ude16', '\ud83d\ude14', '\ud83d\ude2a', + '\ud83d\ude0f', '\ud83d\ude13', '\ud83d\ude2b', + '\ud83d\ude4b', '\ud83d\ude4c', '\ud83d\ude4d', + '\ud83d\ude45', '\ud83d\ude46' , '\ud83d\ude47', + '\ud83d\ude4e', '\ud83d\ude4f', '\ud83d\ude3a', + '\ud83d\ude3c', '\ud83d\ude38' , '\ud83d\ude39', + '\ud83d\ude3b', '\ud83d\ude3d', '\ud83d\ude3f', + '\ud83d\ude3e', '\ud83d\ude40', '\ud83d\ude48', + '\ud83d\ude49', '\ud83d\ude4a', '\ud83d\udca9', + '\ud83d\udc76', '\ud83d\udc66', '\ud83d\udc67', + '\ud83d\udc68', '\ud83d\udc69', '\ud83d\udc74', + '\ud83d\udc75', '\ud83d\udc8f', '\ud83d\udc91', + '\ud83d\udc6a', '\ud83d\udc6b', '\ud83d\udc6c', + '\ud83d\udc6d', '\ud83d\udc64', '\ud83d\udc65', + '\ud83d\udc6e', '\ud83d\udc77', '\ud83d\udc81', + '\ud83d\udc82', '\ud83d\udc6f', '\ud83d\udc70', + '\ud83d\udc78', '\ud83c\udf85', '\ud83d\udc7c', + '\ud83d\udc71', '\ud83d\udc72', '\ud83d\udc73', + '\ud83d\udc83', '\ud83d\udc86', '\ud83d\udc87', + '\ud83d\udc85', '\ud83d\udc7b', '\ud83d\udc79', + '\ud83d\udc7a', '\ud83d\udc7d', '\ud83d\udc7e', + '\ud83d\udc7f', '\ud83d\udc80', '\ud83d\udcaa', + '\ud83d\udc40', '\ud83d\udc42', '\ud83d\udc43', + '\ud83d\udc63', '\ud83d\udc44', '\ud83d\udc45', + '\ud83d\udc8b', '\u2764', '\ud83d\udc99', + '\ud83d\udc9a', '\ud83d\udc9b', '\ud83d\udc9c', + '\ud83d\udc93', '\ud83d\udc94', '\ud83d\udc95', + '\ud83d\udc96', '\ud83d\udc97', '\ud83d\udc98', + '\ud83d\udc9d', '\ud83d\udc9e', '\ud83d\udc9f', + '\ud83d\udc4d', '\ud83d\udc4e', '\ud83d\udc4c', + '\u270a', '\u270c', '\u270b', + '\ud83d\udc4a', '\u261d', '\ud83d\udc46', + '\ud83d\udc47', '\ud83d\udc48', '\ud83d\udc49', + '\ud83d\udc4b', '\ud83d\udc4f', '\ud83d\udc50'], + + // Items + ['\ud83d\udd30', '\ud83d\udc84', '\ud83d\udc5e', + '\ud83d\udc5f', '\ud83d\udc51', '\ud83d\udc52', + '\ud83c\udfa9', '\ud83c\udf93', '\ud83d\udc53', + '\u231a', '\ud83d\udc54', '\ud83d\udc55', + '\ud83d\udc56', '\ud83d\udc57', '\ud83d\udc58', + '\ud83d\udc59', '\ud83d\udc60', '\ud83d\udc61', + '\ud83d\udc62', '\ud83d\udc5a', '\ud83d\udc5c', + '\ud83d\udcbc', '\ud83c\udf92', '\ud83d\udc5d', + '\ud83d\udc5b', '\ud83d\udcb0', '\ud83d\udcb3', + '\ud83d\udcb2', '\ud83d\udcb5', '\ud83d\udcb4', + '\ud83d\udcb6', '\ud83d\udcb7', '\ud83d\udcb8', + '\ud83d\udcb1', '\ud83d\udcb9', '\ud83d\udd2b', + '\ud83d\udd2a', '\ud83d\udca3', '\ud83d\udc89', + '\ud83d\udc8a', '\ud83d\udeac', '\ud83d\udd14', + '\ud83d\udd15', '\ud83d\udeaa', '\ud83d\udd2c', + '\ud83d\udd2d', '\ud83d\udd2e', '\ud83d\udd26', + '\ud83d\udd0b', '\ud83d\udd0c', '\ud83d\udcdc', + '\ud83d\udcd7', '\ud83d\udcd8', '\ud83d\udcd9', + '\ud83d\udcda', '\ud83d\udcd4', '\ud83d\udcd2', + '\ud83d\udcd1', '\ud83d\udcd3', '\ud83d\udcd5', + '\ud83d\udcd6', '\ud83d\udcf0', '\ud83d\udcdb', + '\ud83c\udf83', '\ud83c\udf84', '\ud83c\udf80', + '\ud83c\udf81', '\ud83c\udf82', '\ud83c\udf88', + '\ud83c\udf86', '\ud83c\udf87', '\ud83c\udf89', + '\ud83c\udf8a', '\ud83c\udf8d', '\ud83c\udf8f', + '\ud83c\udf8c', '\ud83c\udf90', '\ud83c\udf8b', + '\ud83c\udf8e', '\ud83d\udcf1', '\ud83d\udcf2', + '\ud83d\udcdf', '\u260e', '\ud83d\udcde', + '\ud83d\udce0', '\ud83d\udce6', '\u2709', + '\ud83d\udce8', '\ud83d\udce9', '\ud83d\udcea', + '\ud83d\udceb', '\ud83d\udced', '\ud83d\udcec', + '\ud83d\udcee', '\ud83d\udce4', '\ud83d\udce5', + '\ud83d\udcef', '\ud83d\udce2', '\ud83d\udce3', + '\ud83d\udce1', '\ud83d\udcac', '\ud83d\udcad', + '\u2712', '\u270f', '\ud83d\udcdd', + '\ud83d\udccf', '\ud83d\udcd0', '\ud83d\udccd', + '\ud83d\udccc', '\ud83d\udcce', '\u2702', + '\ud83d\udcba', '\ud83d\udcbb', '\ud83d\udcbd', + '\ud83d\udcbe', '\ud83d\udcbf', '\ud83d\udcc6', + '\ud83d\udcc5', '\ud83d\udcc7', '\ud83d\udccb', + '\ud83d\udcc1', '\ud83d\udcc2', '\ud83d\udcc3', + '\ud83d\udcc4', '\ud83d\udcca', '\ud83d\udcc8', + '\ud83d\udcc9', '\u26fa', '\ud83c\udfa1', + '\ud83c\udfa2', '\ud83c\udfa0', '\ud83c\udfaa', + '\ud83c\udfa8', '\ud83c\udfac', '\ud83c\udfa5', + '\ud83d\udcf7', '\ud83d\udcf9', '\ud83c\udfa6', + '\ud83c\udfad', '\ud83c\udfab', '\ud83c\udfae', + '\ud83c\udfb2', '\ud83c\udfb0', '\ud83c\udccf', + '\ud83c\udfb4', '\ud83c\udc04', '\ud83c\udfaf', + '\ud83d\udcfa', '\ud83d\udcfb', '\ud83d\udcc0', + '\ud83d\udcfc', '\ud83c\udfa7', '\ud83c\udfa4', + '\ud83c\udfb5', '\ud83c\udfb6', '\ud83c\udfbc', + '\ud83c\udfbb', '\ud83c\udfb9', '\ud83c\udfb7', + '\ud83c\udfba', '\ud83c\udfb8', '\u303d'], + + // Nature + ['\ud83d\udc15', '\ud83d\udc36', '\ud83d\udc29', + '\ud83d\udc08', '\ud83d\udc31', '\ud83d\udc00', + '\ud83d\udc01', '\ud83d\udc2d', '\ud83d\udc39', + '\ud83d\udc22', '\ud83d\udc07', '\ud83d\udc30', + '\ud83d\udc13', '\ud83d\udc14', '\ud83d\udc23', + '\ud83d\udc24', '\ud83d\udc25', '\ud83d\udc26', + '\ud83d\udc0f', '\ud83d\udc11', '\ud83d\udc10', + '\ud83d\udc3a', '\ud83d\udc03', '\ud83d\udc02', + '\ud83d\udc04', '\ud83d\udc2e', '\ud83d\udc34', + '\ud83d\udc17', '\ud83d\udc16', '\ud83d\udc37', + '\ud83d\udc3d', '\ud83d\udc38', '\ud83d\udc0d', + '\ud83d\udc3c', '\ud83d\udc27', '\ud83d\udc18', + '\ud83d\udc28', '\ud83d\udc12', '\ud83d\udc35', + '\ud83d\udc06', '\ud83d\udc2f', '\ud83d\udc3b', + '\ud83d\udc2b', '\ud83d\udc2a', '\ud83d\udc0a', + '\ud83d\udc33', '\ud83d\udc0b', '\ud83d\udc1f', + '\ud83d\udc20', '\ud83d\udc21', '\ud83d\udc19', + '\ud83d\udc1a', '\ud83d\udc2c', '\ud83d\udc0c', + '\ud83d\udc1b', '\ud83d\udc1c', '\ud83d\udc1d', + '\ud83d\udc1e', '\ud83d\udc32', '\ud83d\udc09', + '\ud83d\udc3e', '\ud83c\udf78', '\ud83c\udf7a', + '\ud83c\udf7b', '\ud83c\udf77', '\ud83c\udf79', + '\ud83c\udf76', '\u2615', '\ud83c\udf75', + '\ud83c\udf7c', '\ud83c\udf74', '\ud83c\udf68', + '\ud83c\udf67', '\ud83c\udf66', '\ud83c\udf69', + '\ud83c\udf70', '\ud83c\udf6a', '\ud83c\udf6b', + '\ud83c\udf6c', '\ud83c\udf6d', '\ud83c\udf6e', + '\ud83c\udf6f', '\ud83c\udf73', '\ud83c\udf54', + '\ud83c\udf5f', '\ud83c\udf5d', '\ud83c\udf55', + '\ud83c\udf56', '\ud83c\udf57', '\ud83c\udf64', + '\ud83c\udf63', '\ud83c\udf71', '\ud83c\udf5e', + '\ud83c\udf5c', '\ud83c\udf59', '\ud83c\udf5a', + '\ud83c\udf5b', '\ud83c\udf72', '\ud83c\udf65', + '\ud83c\udf62', '\ud83c\udf61', '\ud83c\udf58', + '\ud83c\udf60', '\ud83c\udf4c', '\ud83c\udf4e', + '\ud83c\udf4f', '\ud83c\udf4a', '\ud83c\udf4b', + '\ud83c\udf44', '\ud83c\udf45', '\ud83c\udf46', + '\ud83c\udf47', '\ud83c\udf48', '\ud83c\udf49', + '\ud83c\udf50', '\ud83c\udf51', '\ud83c\udf52', + '\ud83c\udf53', '\ud83c\udf4d', '\ud83c\udf30', + '\ud83c\udf31', '\ud83c\udf32', '\ud83c\udf33', + '\ud83c\udf34', '\ud83c\udf35', '\ud83c\udf37', + '\ud83c\udf38', '\ud83c\udf39', '\ud83c\udf40', + '\ud83c\udf41', '\ud83c\udf42', '\ud83c\udf43', + '\ud83c\udf3a', '\ud83c\udf3b', '\ud83c\udf3c', + '\ud83c\udf3d', '\ud83c\udf3e', '\ud83c\udf3f', + '\u2600', '\ud83c\udf08', '\u26c5', + '\u2601', '\ud83c\udf01', '\ud83c\udf02', + '\u2614', '\ud83d\udca7', '\u26a1', + '\ud83c\udf00', '\u2744', '\u26c4', + '\ud83c\udf19', '\ud83c\udf1e', '\ud83c\udf1d', + '\ud83c\udf1a', '\ud83c\udf1b', '\ud83c\udf1c', + '\ud83c\udf11', '\ud83c\udf12', '\ud83c\udf13', + '\ud83c\udf14', '\ud83c\udf15', '\ud83c\udf16', + '\ud83c\udf17', '\ud83c\udf18', '\ud83c\udf91', + '\ud83c\udf04', '\ud83c\udf05', '\ud83c\udf07', + '\ud83c\udf06', '\ud83c\udf03', '\ud83c\udf0c', + '\ud83c\udf09', '\ud83c\udf0a', '\ud83c\udf0b', + '\ud83c\udf0e', '\ud83c\udf0f', '\ud83c\udf0d', + '\ud83c\udf10'], + + // Places of interests + ['\ud83c\udfe0', '\ud83c\udfe1', '\ud83c\udfe2', + '\ud83c\udfe3', '\ud83c\udfe4', '\ud83c\udfe5', + '\ud83c\udfe6', '\ud83c\udfe7', '\ud83c\udfe8', + '\ud83c\udfe9', '\ud83c\udfea', '\ud83c\udfeb', + '\u26ea', '\u26f2', '\ud83c\udfec', + '\ud83c\udfef', '\ud83c\udff0', '\ud83c\udfed', + '\ud83d\uddfb', '\ud83d\uddfc', '\ud83d\uddfd', + '\ud83d\uddfe', '\ud83d\uddff', '\u2693', + '\ud83c\udfee', '\ud83d\udc88', '\ud83d\udd27', + '\ud83d\udd28', '\ud83d\udd29', '\ud83d\udebf', + '\ud83d\udec1', '\ud83d\udec0', '\ud83d\udebd', + '\ud83d\udebe', '\ud83c\udfbd', '\ud83c\udfa3', + '\ud83c\udfb1', '\ud83c\udfb3', '\u26be', + '\u26f3', '\ud83c\udfbe', '\u26bd', + '\ud83c\udfbf', '\ud83c\udfc0', '\ud83c\udfc1', + '\ud83c\udfc2', '\ud83c\udfc3', '\ud83c\udfc4', + '\ud83c\udfc6', '\ud83c\udfc7', '\ud83d\udc0e', + '\ud83c\udfc8', '\ud83c\udfc9', '\ud83c\udfca', + '\ud83d\ude82', '\ud83d\ude83', '\ud83d\ude84', + '\ud83d\ude85', '\ud83d\ude86', '\ud83d\ude87', + '\u24c2', '\ud83d\ude88', '\ud83d\ude8a', + '\ud83d\ude8b', '\ud83d\ude8c', '\ud83d\ude8d', + '\ud83d\ude8e', '\ud83d\ude8f', '\ud83d\ude90', + '\ud83d\ude91', '\ud83d\ude92', '\ud83d\ude93', + '\ud83d\ude94', '\ud83d\ude95', '\ud83d\ude96', + '\ud83d\ude97', '\ud83d\ude98', '\ud83d\ude99', + '\ud83d\ude9a', '\ud83d\ude9b', '\ud83d\ude9c', + '\ud83d\ude9d', '\ud83d\ude9e', '\ud83d\ude9f', + '\ud83d\udea0', '\ud83d\udea1', '\ud83d\udea2', + '\ud83d\udea3', '\ud83d\ude81', '\u2708', + '\ud83d\udec2', '\ud83d\udec3', '\ud83d\udec4', + '\ud83d\udec5', '\u26f5', '\ud83d\udeb2', + '\ud83d\udeb3', '\ud83d\udeb4', '\ud83d\udeb5', + '\ud83d\udeb7', '\ud83d\udeb8', '\ud83d\ude89', + '\ud83d\ude80', '\ud83d\udea4', '\ud83d\udeb6', + '\u26fd', '\ud83c\udd7f', '\ud83d\udea5', + '\ud83d\udea6', '\ud83d\udea7', '\ud83d\udea8', + '\u2668', '\ud83d\udc8c', '\ud83d\udc8d', + '\ud83d\udc8e', '\ud83d\udc90', '\ud83d\udc92'], + + // Special characters + ['\ud83d\udd1d', '\ud83d\udd19', '\ud83d\udd1b', + '\ud83d\udd1c', '\ud83d\udd1a', '\u23f3', + '\u231b', '\u23f0', '\u2648', + '\u2649', '\u264a', '\u264b', + '\u264c', '\u264d', '\u264e', + '\u264f', '\u2650', '\u2651', + '\u2652', '\u2653', '\u26ce', + '\ud83d\udd31', '\ud83d\udd2f', '\ud83d\udebb', + '\ud83d\udeae', '\ud83d\udeaf', '\ud83d\udeb0', + '\ud83d\udeb1', '\ud83c\udd70', '\ud83c\udd71', + '\ud83c\udd8e', '\ud83c\udd7e', '\ud83d\udcae', + '\ud83d\udcaf', '\ud83d\udd20', '\ud83d\udd21', + '\ud83d\udd22', '\ud83d\udd23', '\ud83d\udd24', + '\u27bf', '\ud83d\udcf6', '\ud83d\udcf3', + '\ud83d\udcf4', '\ud83d\udcf5', '\ud83d\udeb9', + '\ud83d\udeba', '\ud83d\udebc', '\u267f', + '\u267b', '\ud83d\udead', '\ud83d\udea9', + '\u26a0', '\ud83c\ude01', '\ud83d\udd1e', + '\u26d4', '\ud83c\udd92', '\ud83c\udd97', + '\ud83c\udd95', '\ud83c\udd98', '\ud83c\udd99', + '\ud83c\udd93', '\ud83c\udd96', '\ud83c\udd9a', + '\ud83c\ude32', '\ud83c\ude33', '\ud83c\ude34', + '\ud83c\ude35', '\ud83c\ude36', '\ud83c\ude37', + '\ud83c\ude38', '\ud83c\ude39', '\ud83c\ude02', + '\ud83c\ude3a', '\ud83c\ude50', '\ud83c\ude51', + '\u3299', '\u00ae', '\u00a9', + '\u2122', '\ud83c\ude1a', '\ud83c\ude2f', + '\u3297', '\u2b55', '\u274c', + '\u274e', '\u2139', '\ud83d\udeab', + '\u2705', '\u2714', '\ud83d\udd17', + '\u2734', '\u2733', '\u2795', + '\u2796', '\u2716', '\u2797', + '\ud83d\udca0', '\ud83d\udca1', '\ud83d\udca4', + '\ud83d\udca2', '\ud83d\udd25', '\ud83d\udca5', + '\ud83d\udca8', '\ud83d\udca6', '\ud83d\udcab', + '\ud83d\udd5b', '\ud83d\udd67', '\ud83d\udd50', + '\ud83d\udd5c', '\ud83d\udd51', '\ud83d\udd5d', + '\ud83d\udd52', '\ud83d\udd5e', '\ud83d\udd53', + '\ud83d\udd5f', '\ud83d\udd54', '\ud83d\udd60', + '\ud83d\udd55', '\ud83d\udd61', '\ud83d\udd56', + '\ud83d\udd62', '\ud83d\udd57', '\ud83d\udd63', + '\ud83d\udd58', '\ud83d\udd64', '\ud83d\udd59', + '\ud83d\udd65', '\ud83d\udd5a', '\ud83d\udd66', + '\u2195', '\u2b06', '\u2197', + '\u27a1', '\u2198', '\u2b07', + '\u2199', '\u2b05', '\u2196', + '\u2194', '\u2934', '\u2935', + '\u23ea', '\u23eb', '\u23ec', + '\u23e9', '\u25c0', '\u25b6', + '\ud83d\udd3d', '\ud83d\udd3c', '\u2747', + '\u2728', '\ud83d\udd34', '\ud83d\udd35', + '\u26aa', '\u26ab', '\ud83d\udd33', + '\ud83d\udd32', '\u2b50', '\ud83c\udf1f', + '\ud83c\udf20', '\u25ab', '\u25aa', + '\u25fd', '\u25fe', '\u25fb', + '\u25fc', '\u2b1c', '\u2b1b', + '\ud83d\udd38', '\ud83d\udd39', '\ud83d\udd36', + '\ud83d\udd37', '\ud83d\udd3a', '\ud83d\udd3b', + '\u2754', '\u2753', '\u2755', + '\u2757', '\u203c', '\u2049', + '\u3030', '\u27b0', '\u2660', + '\u2665', '\u2663', '\u2666', + '\ud83c\udd94', '\ud83d\udd11', '\u21a9', + '\ud83c\udd91', '\ud83d\udd0d', '\ud83d\udd12', + '\ud83d\udd13', '\u21aa', '\ud83d\udd10', + '\u2611', '\ud83d\udd18', '\ud83d\udd0e', + '\ud83d\udd16', '\ud83d\udd0f', '\ud83d\udd03', + '\ud83d\udd00', '\ud83d\udd01', '\ud83d\udd02', + '\ud83d\udd04', '\ud83d\udce7', '\ud83d\udd05', + '\ud83d\udd06', '\ud83d\udd07', '\ud83d\udd08', + '\ud83d\udd09', '\ud83d\udd0a'], + + // Emoticon + [':)', + ';-)', + ':-D', + ':P', + ':-(', + ':\'(', + ':-)', + ':-*', + ':-$', + ':-\\', + ':-[', + ':-!', + ':S', + ':O', + ':-O', + 'B-)', + 'o_O', + 'O_o', + '^O^', + '-.-', + '^_^', + '^﹏^', + '^m^', + '^/^', + '~_~', + '-_-', + '-_-||', + '>_<', + '><', + '>﹏<', + '_#', + '\#_#', + '*-*', + '(^^)', + '(^_^)', + '(^.^)', + '(^!^)', + '(^J^)', + '(^m^)', + '(^\'^)', + '(^_-)', + '(^O^)', + '(^o^)', + '(^q^)', + '(^○^)', + '(^O^;)', + '(^m^;)', + '(^Q^)', + '!(^^)!', + 'T_T', + '(ToT)', + '(T_T)', + '\@_\@', + '=.=', + '=.=!', + '=_=', + '╰_╯', + '-_-z', + '^_-', + '囧rz', + 'Orz', + '→_→', + '←_←', + '≧◇≦', + '(x_x)', + '(′o`)', + '(′ェ`)', + '(?_?)', + '(′θ`)', + '(*_*)', + '(@@)', + '⊙▽⊙', + '⊙△⊙', + '⊙_⊙', + '⊙﹏⊙', + '◑﹏◐', + '◑︿◐', + '◑__◐', + '∩__∩', + '∩﹏∩', + '(ˇˍˇ)', + '(′▽`〃)', + '(′0ノ`*)', + '(^_^;)', + '(@_@)', + '(*^^*)', + '(´・ω・`)', + '(=θωθ=)', + '(°ο°)', + '^(oo)^', + '(#^.^#)', + '(*^_^*)', + '(¯(●●)¯)', + '>"<|||', + '(′~`;)', + '(=′?`=)', + '(○’ω’○)', + 'o(≧o≦)o', + '(??_??)?', + '└(^o^)┘', + '(︶^︶)', + '(>.<*)', + '(⊙o⊙)', + '(⊙﹏⊙)', + '=^_^=', + '::>_<::', + '↖(^ω^)↗', + '~w_w~'] + ]; + var keyList = []; + var mapping = {}; + keyList.push(util.createTabBarKey('Tabbar0', EmojiType.RECENT, + Css.EMOJI_TABBAR_RECENT)); + keyList.push(util.createTabBarKey('Tabbar1', EmojiType.HOT, + Css.EMOJI_TABBAR_HOT)); + keyList.push(util.createTabBarKey('Tabbar2', EmojiType.EMOTION, + Css.EMOJI_TABBAR_EMOTION)); + keyList.push(util.createTabBarKey('Tabbar3', EmojiType.ITEMS, + Css.EMOJI_TABBAR_ITEMS)); + keyList.push(util.createTabBarKey('Tabbar4', EmojiType.NATURE, + Css.EMOJI_TABBAR_NATURE)); + keyList.push(util.createTabBarKey('Tabbar5', EmojiType.PLACES_OF_INTERESTS, + Css.EMOJI_TABBAR_PLACES_OF_INTERESTS)); + keyList.push(util.createTabBarKey('Tabbar6', + EmojiType.SPECIAL_CHARACTERS, + Css.EMOJI_TABBAR_SPECIAL_CHARACTERS)); + keyList.push(util.createTabBarKey('Tabbar7', EmojiType.EMOTICON, + Css.EMOJI_TABBAR_EMOTICON)); + + var amount = 0; + var acturalLength = 0; + for (var i = 0, len = keyCharacters.length; i < len; i++) { + acturalLength = Math.ceil(keyCharacters[i].length / emojiKeyAmount) * + emojiKeyAmount; + for (var j = 0, lenJ = keyCharacters[i].length; j < lenJ; j++) { + var spec = {}; + spec[SpecNodeName.ID] = 'emojikey' + amount; + spec[SpecNodeName.TYPE] = ElementType.EMOJI_KEY; + spec[SpecNodeName.TEXT] = keyCharacters[i][j]; + spec[SpecNodeName.IS_EMOTICON] = (i == EmojiType.EMOTICON); + var key = i18n.input.chrome.inputview.content.util.createKey(spec); + keyList.push(key); + amount++; + } + for (var j = keyCharacters[i].length; j < acturalLength; j++) { + var spec = {}; + spec[SpecNodeName.ID] = 'emojikey' + amount; + spec[SpecNodeName.TYPE] = ElementType.EMOJI_KEY; + spec[SpecNodeName.TEXT] = ''; + spec[SpecNodeName.IS_EMOTICON] = (i == EmojiType.EMOTICON); + var key = i18n.input.chrome.inputview.content.util.createKey(spec); + keyList.push(key); + amount++; + } + } + keyList.push(util.createBackspaceKey()); + keyList.push(util.createEnterKey()); + keyList.push(util.createHideKeyboardKey()); + + var tabbarLength = 1 + keyCharacters.length; + var key = []; + + // Map the tabbars. + for (var i = 0, len = keyCharacters.length; i < len; i++) { + key = keyList[i]; + mapping[key['spec'][SpecNodeName.ID]] = viewIdPrefix + i; + } + + // Map the emoji keys. + amount = 0; + var offset = tabbarLength + 1; + for (var i = 0, len = keyCharacters.length; i < len; i++) { + acturalLength = Math.ceil(keyCharacters[i].length / emojiKeyAmount) * + emojiKeyAmount; + for (var j = 0, lenJ = acturalLength; j < lenJ; j++) { + key = keyList[amount + len]; + mapping[key['spec'][SpecNodeName.ID]] = viewIdPrefix + (amount + + offset); + amount++; + } + } + + // Map the side keys + for (var i = 0; i < 3; ++i) { + key = keyList[i + amount + keyCharacters.length]; + mapping[key['spec'][SpecNodeName.ID]] = viewIdPrefix + + (i + amount + offset); + } + + amount = amount + offset + 3; + //The space row. + var tmp = util.createBackToKeyboardKey(); + keyList.push(tmp); + mapping[tmp['spec'][SpecNodeName.ID]] = viewIdPrefix + amount++; + tmp = util.createSpaceKey(); + keyList.push(tmp); + mapping[tmp['spec'][SpecNodeName.ID]] = viewIdPrefix + amount++; + tmp = util.createHideKeyboardKey(); + keyList.push(tmp); + mapping[tmp['spec'][SpecNodeName.ID]] = viewIdPrefix + amount++; + + var result = []; + result[SpecNodeName.TEXT] = keyCharacters; + result[SpecNodeName.KEY_LIST] = keyList; + result[SpecNodeName.MAPPING] = mapping; + result[SpecNodeName.LAYOUT] = 'emoji'; + result['id'] = 'emoji'; + google.ime.chrome.inputview.onConfigLoaded(result); +}) (); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/config/material/hwt_data.js b/third_party/google_input_tools/src/chrome/os/inputview/config/material/hwt_data.js new file mode 100644 index 0000000..b266bb0 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/config/material/hwt_data.js @@ -0,0 +1,75 @@ +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. +// limitations under the License. +// See the License for the specific language governing permissions and +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// distributed under the License is distributed on an "AS-IS" BASIS, +// Unless required by applicable law or agreed to in writing, software +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// You may obtain a copy of the License at +// you may not use this file except in compliance with the License. +// Licensed under the Apache License, Version 2.0 (the "License"); +// +goog.require('i18n.input.chrome.inputview.Css'); +goog.require('i18n.input.chrome.inputview.SpecNodeName'); +goog.require('i18n.input.chrome.inputview.content.util'); +goog.require('i18n.input.chrome.inputview.elements.ElementType'); + +(function() { + var util = i18n.input.chrome.inputview.content.util; + var ElementType = i18n.input.chrome.inputview.elements.ElementType; + var SpecNodeName = i18n.input.chrome.inputview.SpecNodeName; + var Css = i18n.input.chrome.inputview.Css; + + var viewIdPrefix = 'handwriting-k-'; + + var spec = {}; + spec[SpecNodeName.ID] = 'SingleQuote'; + spec[SpecNodeName.TYPE] = ElementType.CHARACTER_KEY; + spec[SpecNodeName.CHARACTERS] = ['\'']; + var singleQuoteKey = util.createKey(spec); + + spec[SpecNodeName.ID] = 'Comma'; + spec[SpecNodeName.TYPE] = ElementType.CHARACTER_KEY; + spec[SpecNodeName.CHARACTERS] = [',']; + var commaKey = util.createKey(spec); + + spec = {}; + spec[SpecNodeName.ID] = 'Period'; + spec[SpecNodeName.TYPE] = ElementType.CHARACTER_KEY; + spec[SpecNodeName.CHARACTERS] = ['.']; + var periodKey = util.createKey(spec); + + spec = {}; + spec[SpecNodeName.TEXT] = ''; + spec[SpecNodeName.ICON_CSS_CLASS] = Css.SPACE_ICON; + spec[SpecNodeName.TYPE] = ElementType.SPACE_KEY; + spec[SpecNodeName.ID] = 'Space'; + var spaceKey = i18n.input.chrome.inputview.content.util.createKey(spec); + + var keyList = [ + singleQuoteKey, + commaKey, + periodKey, + util.createBackToKeyboardKey(), + util.createBackspaceKey(), + util.createEnterKey(), + spaceKey, + util.createHideKeyboardKey() + ]; + + var mapping = {}; + for (var i = 0; i < keyList.length; i++) { + var key = keyList[i]; + mapping[key['spec'][SpecNodeName.ID]] = viewIdPrefix + i; + } + + var result = []; + result[SpecNodeName.KEY_LIST] = keyList; + result[SpecNodeName.MAPPING] = mapping; + result[SpecNodeName.LAYOUT] = 'handwriting'; + result[SpecNodeName.HAS_ALTGR_KEY] = false; + result['id'] = 'hwt'; + google.ime.chrome.inputview.onConfigLoaded(result); +}) (); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/config/util.js b/third_party/google_input_tools/src/chrome/os/inputview/config/util.js index 560ba12..928fd8c 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/config/util.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/config/util.js @@ -153,6 +153,21 @@ i18n.input.chrome.inputview.content.util.createBackKey = function() { /** + * Create the key which leads to keyboard from emoji/hwt. + * + * @return {!Object} The back key. + */ +i18n.input.chrome.inputview.content.util.createBackToKeyboardKey = function() { + var spec = {}; + spec[SpecNodeName.ICON_CSS_CLASS] = + i18n.input.chrome.inputview.Css.BACK_TO_KEYBOARD_ICON; + spec[SpecNodeName.TYPE] = ElementType.BACK_TO_KEYBOARD; + spec[SpecNodeName.ID] = 'backToKeyboard'; + return i18n.input.chrome.inputview.content.util.createKey(spec); +}; + + +/** * Creates a ctrl key. * * @return {!Object} The ctrl key. diff --git a/third_party/google_input_tools/src/chrome/os/inputview/controller.js b/third_party/google_input_tools/src/chrome/os/inputview/controller.js index f0f49795..fecf7b0 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/controller.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/controller.js @@ -24,6 +24,7 @@ goog.require('goog.events.EventType'); goog.require('goog.i18n.bidi'); goog.require('goog.object'); goog.require('i18n.input.chrome.DataSource'); +goog.require('i18n.input.chrome.SoundController'); goog.require('i18n.input.chrome.Statistics'); goog.require('i18n.input.chrome.inputview.Adapter'); goog.require('i18n.input.chrome.inputview.CandidatesInfo'); @@ -36,7 +37,6 @@ goog.require('i18n.input.chrome.inputview.PerfTracker'); goog.require('i18n.input.chrome.inputview.ReadyState'); goog.require('i18n.input.chrome.inputview.Settings'); goog.require('i18n.input.chrome.inputview.SizeSpec'); -goog.require('i18n.input.chrome.inputview.SoundController'); goog.require('i18n.input.chrome.inputview.SpecNodeName'); goog.require('i18n.input.chrome.inputview.StateType'); goog.require('i18n.input.chrome.inputview.SwipeDirection'); @@ -76,7 +76,7 @@ var SizeSpec = i18n.input.chrome.inputview.SizeSpec; var SpecNodeName = i18n.input.chrome.inputview.SpecNodeName; var StateType = i18n.input.chrome.inputview.StateType; var content = i18n.input.chrome.inputview.elements.content; -var SoundController = i18n.input.chrome.inputview.SoundController; +var SoundController = i18n.input.chrome.SoundController; var Sounds = i18n.input.chrome.inputview.Sounds; var Type = i18n.input.chrome.message.Type; var util = i18n.input.chrome.inputview.util; @@ -116,6 +116,23 @@ i18n.input.chrome.inputview.Controller = function(keyset, languageCode, this.layoutDataMap_ = {}; /** + * The element map. + * + * @private {!Object.<ElementType, !KeyCodes>} + */ + this.elementTypeToKeyCode_ = goog.object.create( + ElementType.BOLD, KeyCodes.KEY_B, + ElementType.ITALICS, KeyCodes.KEY_I, + ElementType.UNDERLINE, KeyCodes.KEY_U, + ElementType.COPY, KeyCodes.KEY_C, + ElementType.PASTE, KeyCodes.KEY_V, + ElementType.CUT, KeyCodes.KEY_X, + ElementType.SELECT_ALL, KeyCodes.KEY_A, + ElementType.REDO, KeyCodes.KEY_Y, + ElementType.UNDO, KeyCodes.KEY_Z + ); + + /** * The keyset data map. * * @type {!Object.<string, !Object>} @@ -162,14 +179,14 @@ i18n.input.chrome.inputview.Controller = function(keyset, languageCode, /** @private {!i18n.input.chrome.inputview.Adapter} */ this.adapter_ = new i18n.input.chrome.inputview.Adapter(this.readyState_); + /** @private {!i18n.input.chrome.SoundController} */ + this.soundController_ = new SoundController(false); + /** @private {!i18n.input.chrome.inputview.KeyboardContainer} */ this.container_ = new i18n.input.chrome.inputview.KeyboardContainer( - this.adapter_); + this.adapter_, this.soundController_); this.container_.render(); - /** @private {!i18n.input.chrome.inputview.SoundController} */ - this.soundController_ = new SoundController(false); - /** * The context type and keyset mapping group by input method id. * key: input method id. @@ -359,6 +376,17 @@ Controller.CandidatesOperation = { /** + * A temporary list to track keysets have customized in material design. + * + * @private {!Array.<string>} + */ +Controller.MATERIAL_KEYSETS_ = [ + 'emoji', + 'hwt' +]; + + +/** * The active language code. * * @type {string} @@ -440,28 +468,21 @@ Controller.prototype.registerEventHandler_ = function() { ], this.onPointerEvent_). listen(window, goog.events.EventType.RESIZE, this.resize). listen(this.adapter_, - i18n.input.chrome.inputview.events.EventType. - SURROUNDING_TEXT_CHANGED, - this.onSurroundingTextChanged_). + EventType.SURROUNDING_TEXT_CHANGED, this.onSurroundingTextChanged_). listen(this.adapter_, i18n.input.chrome.DataSource.EventType.CANDIDATES_BACK, this.onCandidatesBack_). - listen(this.adapter_, - i18n.input.chrome.inputview.events.EventType.CONTEXT_FOCUS, - this.onContextFocus_). - listen(this.adapter_, - i18n.input.chrome.inputview.events.EventType.CONTEXT_BLUR, - this.onContextBlur_). - listen(this.adapter_, - i18n.input.chrome.inputview.events.EventType.VISIBILITY_CHANGE, + listen(this.adapter_, EventType.URL_CHANGED, this.onURLChanged_). + listen(this.adapter_, EventType.CONTEXT_FOCUS, this.onContextFocus_). + listen(this.adapter_, EventType.CONTEXT_BLUR, this.onContextBlur_). + listen(this.adapter_, EventType.VISIBILITY_CHANGE, this.onVisibilityChange_). - listen(this.adapter_, - i18n.input.chrome.inputview.events.EventType.SETTINGS_READY, - this.onSettingsReady_). + listen(this.adapter_, EventType.SETTINGS_READY, this.onSettingsReady_). listen(this.adapter_, Type.UPDATE_SETTINGS, this.onUpdateSettings_). listen(this.adapter_, Type.FRONT_TOGGLE_LANGUAGE_STATE, this.onUpdateToggleLanguateState_). - listen(this.adapter_, Type.VOICE_STATE_CHANGE, this.onVoiceStateChange_); + listen(this.adapter_, Type.VOICE_STATE_CHANGE, this.onVoiceStateChange_). + listen(this.adapter_, EventType.REFRESH, this.onRefresh_); }; @@ -482,6 +503,16 @@ Controller.prototype.onVoiceStateChange_ = function(e) { /** + * Handles the refresh event from adapter. + * + * @private + */ +Controller.prototype.onRefresh_ = function() { + window.location.reload(); +}; + + +/** * Sets the default keyset for context types. * * @param {string} newKeyset . @@ -536,6 +567,16 @@ Controller.prototype.onUpdateSettings_ = function(e) { /** + * Callback for url changed. + * + * @private + */ +Controller.prototype.onURLChanged_ = function() { + this.container_.candidateView.setToolbarVisible(this.shouldShowToolBar_()); +}; + + +/** * Callback for setting ready. * * @private @@ -561,6 +602,8 @@ Controller.prototype.onSettingsReady_ = function() { if (newKeyset) { this.setDefaultKeyset_(newKeyset); } + this.container_.selectView.setVisible( + this.adapter_.isGestureEdittingEnabled()); // Loads resources in case the default keyset is changed. this.loadAllResources_(); this.maybeCreateViews_(); @@ -695,6 +738,13 @@ Controller.prototype.handleSwipeAction_ = function(view, e) { this.container_.altDataView.highlightItem(e.x, e.y); return; } + if (view.type == ElementType.BACKSPACE_KEY) { + if (this.container_.swipeView.isVisible() || + this.container_.swipeView.isArmed()) { + this.stopBackspaceAutoRepeat_(); + return; + } + } if (view.type == ElementType.CHARACTER_KEY) { view = /** @type {!content.CharacterKey} */ (view); @@ -780,12 +830,13 @@ Controller.prototype.handlePointerAction_ = function(view, e) { 'InputMethod.VirtualKeyboard.TapCount', 1, 4095, 4096); } - if (e.type == i18n.input.chrome.inputview.events.EventType.SWIPE) { + if (e.type == EventType.SWIPE) { e = /** @type {!i18n.input.chrome.inputview.events.SwipeEvent} */ (e); this.handleSwipeAction_(view, e); } switch (view.type) { case ElementType.BACK_BUTTON: + case ElementType.BACK_TO_KEYBOARD: if (e.type == EventType.POINTER_OUT || e.type == EventType.POINTER_UP) { view.setHighlighted(false); } else if (e.type == EventType.POINTER_DOWN || @@ -897,7 +948,7 @@ Controller.prototype.handlePointerAction_ = function(view, e) { return; case ElementType.VOICE_BTN: - if (e.type == EventType.CLICK) { + if (e.type == EventType.POINTER_UP) { this.container_.candidateView.switchToIcon( CandidateView.IconType.VOICE, false); this.container_.voiceView.start(); @@ -913,7 +964,33 @@ Controller.prototype.handlePointerAction_ = function(view, e) { this.container_.voiceView.stop(); } return; - + case ElementType.SWIPE_VIEW: + this.stopBackspaceAutoRepeat_(); + if (e.type == EventType.POINTER_UP || + e.type == EventType.POINTER_OUT) { + this.clearUnstickyState_(); + } + return; + case ElementType.CUT: + case ElementType.COPY: + case ElementType.PASTE: + case ElementType.BOLD: + case ElementType.ITALICS: + case ElementType.UNDERLINE: + case ElementType.REDO: + case ElementType.UNDO: + case ElementType.SELECT_ALL: + view.setHighlighted(e.type == EventType.POINTER_DOWN || + e.type == EventType.POINTER_OVER); + if (e.type == EventType.POINTER_UP) { + this.adapter_.sendKeyDownAndUpEvent( + '', this.elementTypeToKeyCode_[view.type], undefined, undefined, { + ctrl: true, + alt: false, + shift: false + }); + } + return; case ElementType.SOFT_KEY_VIEW: // Delegates the events on the soft key view to its soft key. view = /** @type {!i18n.input.chrome.inputview.elements.layout. @@ -926,7 +1003,8 @@ Controller.prototype.handlePointerAction_ = function(view, e) { if (view.type != ElementType.MODIFIER_KEY && !this.container_.altDataView.isVisible() && - !this.container_.menuView.isVisible()) { + !this.container_.menuView.isVisible() && + !this.container_.swipeView.isVisible()) { // The highlight of the modifier key is depending on the state instead // of the key down or up. if (e.type == EventType.POINTER_OVER || e.type == EventType.POINTER_DOWN || @@ -1012,8 +1090,9 @@ Controller.prototype.handlePointerEventForSoftKey_ = function(softKey, e) { this.backspaceTick_(); } else if (e.type == EventType.POINTER_UP || e.type == EventType. POINTER_OUT) { - this.stopBackspaceAutoRepeat_(); - this.adapter_.sendKeyUpEvent('\u0008', KeyCodes.BACKSPACE); + if (!this.container_.swipeView.isVisible()) { + this.stopBackspaceAutoRepeat_(); + } } break; @@ -1075,7 +1154,8 @@ Controller.prototype.handlePointerEventForSoftKey_ = function(softKey, e) { case ElementType.SPACE_KEY: key = /** @type {!content.SpaceKey} */ (softKey); var doubleSpacePeriod = this.model_.settings.doubleSpacePeriod && - this.currentKeyset_ != Controller.HANDWRITING_VIEW_CODE_; + this.currentKeyset_ != Controller.HANDWRITING_VIEW_CODE_ && + this.currentKeyset_ != Controller.EMOJI_VIEW_CODE_; if (e.type == EventType.POINTER_UP || (!doubleSpacePeriod && e.type == EventType.DOUBLE_CLICK_END)) { this.adapter_.sendKeyDownAndUpEvent(key.getCharacter(), @@ -1286,11 +1366,24 @@ Controller.prototype.resetAll_ = function() { this.resize(); this.container_.expandedCandidateView.close(); this.container_.menuView.hide(); + this.container_.swipeView.reset(); this.container_.altDataView.hide(); }; /** + * Returns whether the toolbar should be shown. + * + * @return {boolean} + * @private + */ +Controller.prototype.shouldShowToolBar_ = function() { + return this.adapter_.isExperimental && this.adapter_.isGoogleDocument() && + this.adapter_.contextType == ContextType.DEFAULT; +}; + + +/** * Callback when the context is changed. * * @private @@ -1501,13 +1594,15 @@ Controller.prototype.clearCandidates_ = function() { if (this.container_.currentKeysetView) { this.container_.currentKeysetView.setVisible(true); } - if (this.currentKeyset_ == Controller.HANDWRITING_VIEW_CODE_) { - this.container_.candidateView.switchToIcon( - CandidateView.IconType.BACK, true); - } else { - this.container_.candidateView.switchToIcon(CandidateView.IconType.VOICE, - this.currentKeyset_ != Controller.EMOJI_VIEW_CODE_ && - this.adapter_.isExperimental); + if (!this.adapter_.isQPInputView) { + if (this.currentKeyset_ == Controller.HANDWRITING_VIEW_CODE_ || + this.currentKeyset_ == Controller.EMOJI_VIEW_CODE_) { + this.container_.candidateView.switchToIcon( + CandidateView.IconType.BACK, true); + } else { + this.container_.candidateView.switchToIcon(CandidateView.IconType.VOICE, + this.adapter_.isVoiceInputEnabled); + } } }; @@ -1636,7 +1731,12 @@ Controller.prototype.switchToKeyset = function(keyset) { this.contextTypeToKeysetMap_[this.currentInputMethod_][contextType] = keyset; } - this.loadResource_(keyset); + if (this.adapter_.isQPInputView && + goog.array.contains(Controller.MATERIAL_KEYSETS_, keyset)) { + this.loadResource_('m-' + keyset); + } else { + this.loadResource_(keyset); + } } }; @@ -1665,7 +1765,7 @@ Controller.prototype.onConfigLoaded_ = function(e) { } var layoutId = data[i18n.input.chrome.inputview.SpecNodeName.LAYOUT]; - if (this.adapter_.isQPInputView && layoutId == 'compactkbd-qwerty') { + if (this.adapter_.isQPInputView) { layoutId = 'm-' + layoutId; data[i18n.input.chrome.inputview.SpecNodeName.LAYOUT] = layoutId; } @@ -1733,6 +1833,7 @@ Controller.prototype.resize = function(opt_ignoreWindowResize) { this.container_.resize(screen.width, height, widthPercent, candidateViewHeight); + this.container_.candidateView.setToolbarVisible(this.shouldShowToolBar_()); if (this.container_.currentKeysetView) { this.isKeyboardReady = true; } diff --git a/third_party/google_input_tools/src/chrome/os/inputview/css.js b/third_party/google_input_tools/src/chrome/os/inputview/css.js index ca4c5da..d08b111 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/css.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/css.js @@ -28,6 +28,8 @@ i18n.input.chrome.inputview.Css = { ALTGR_CONTENT: goog.getCssName('inputview-ac'), ARROW_KEY: goog.getCssName('inputview-arrow-key'), BACKSPACE_ICON: goog.getCssName('inputview-backspace-icon'), + BACK_TO_KEYBOARD_ICON: goog.getCssName('inputview-back-to-keyboard'), + BOLD_ICON: goog.getCssName('inputview-bold-icon'), CANDIDATE: goog.getCssName('inputview-candidate'), CANDIDATES_LINE: goog.getCssName('inputview-candidates-line'), CANDIDATES_TOP_LINE: goog.getCssName('inputview-candidates-top-line'), @@ -52,6 +54,8 @@ i18n.input.chrome.inputview.Css = { CHECKED_MENU_LIST: goog.getCssName('inputview-checked-menu-list'), COMPACT_KEY: goog.getCssName('inputview-compact-key'), COMPACT_SWITCHER: goog.getCssName('inputview-compact-switcher'), + COPY_ICON: goog.getCssName('inputview-copy-icon'), + CUT_ICON: goog.getCssName('inputview-cut-icon'), CONTAINER: goog.getCssName('inputview-container'), DEFAULT_CONTENT: goog.getCssName('inputview-dc'), DIGIT_CHARACTER: goog.getCssName('inputview-digit-character'), @@ -90,6 +94,7 @@ i18n.input.chrome.inputview.Css = { EN_SWITCHER_ENGLISH: goog.getCssName('inputview-en-switcher-english'), EXPAND_CANDIDATES_ICON: goog.getCssName('inputview-expand-candidates-icon'), EXTENDED_LAYOUT_TRANSITION: goog.getCssName('inputview-extended-transition'), + FLOAT_LEFT: goog.getCssName('float-left'), FONT: goog.getCssName('inputview-font'), FONT_SMALL: goog.getCssName('inputview-font-small'), FUNCITONAL_KEY_STICKY: goog.getCssName('inputview-functional-key-sticky'), @@ -115,6 +120,7 @@ i18n.input.chrome.inputview.Css = { INDICATOR: goog.getCssName('inputview-indicator'), INDICATOR_BACKGROUND: goog.getCssName('inputview-indicator-background'), INLINE_DIV: goog.getCssName('inputview-inline-div'), + ITALICS_ICON: goog.getCssName('inputview-italics-icon'), JP_IME_SWITCH: goog.getCssName('inputview-jp-ime-switch'), KEY_HOLD: goog.getCssName('inputview-key-hold'), LANDSCAPE: goog.getCssName('inputview-landscape'), @@ -143,26 +149,42 @@ i18n.input.chrome.inputview.Css = { MODIFIER_STATE_ICON: goog.getCssName('inputview-modifier-state-icon'), PAGE_DOWN_ICON: goog.getCssName('inputview-page-down-icon'), PAGE_UP_ICON: goog.getCssName('inputview-page-up-icon'), + PASTE_ICON: goog.getCssName('inputview-paste-icon'), PINYIN: goog.getCssName('inputview-pinyin'), PORTRAIT: goog.getCssName('inputview-portrait'), + REDO_ICON: goog.getCssName('inputview-redo-icon'), REGULAR_SWITCHER: goog.getCssName('inputview-regular-switcher'), RIGHT_KEY: goog.getCssName('inputview-right-key'), + SELECT_ALL_ICON: goog.getCssName('inputview-select-all-icon'), + SELECT_KNOB_LEFT: goog.getCssName('inputview-select-knob-left'), + SELECT_KNOB_RIGHT: goog.getCssName('inputview-select-knob-right'), SHIFT_ICON: goog.getCssName('inputview-shift-icon'), SHRINK_CANDIDATES_ICON: goog.getCssName('inputview-shrink-candidates-icon'), SOFT_KEY: goog.getCssName('inputview-sk'), SOFT_KEY_VIEW: goog.getCssName('inputview-skv'), SPACE_ICON: goog.getCssName('inputview-space-icon'), SPACE_WRAPPER: goog.getCssName('inputview-space-wrapper'), + SPACE_GREY_BG: goog.getCssName('inputview-space-grey-bg'), SPECIAL_KEY_BG: goog.getCssName('inputview-special-key-bg'), SPECIAL_KEY_HIGHLIGHT: goog.getCssName('inputview-special-key-highlight'), SPECIAL_KEY_NAME: goog.getCssName('inputview-special-key-name'), + SWIPE_KEY: goog.getCssName('inputview-swipe-key'), + SWIPE_SEPARATOR: goog.getCssName('inputview-swipe-separator'), + SWIPE_VIEW: goog.getCssName('inputview-swipe-view'), SWITCHER_CHINESE: goog.getCssName('inputview-switcher-chinese'), SWITCHER_ENGLISH: goog.getCssName('inputview-switcher-english'), + SWITCHER_KEY_NAME: goog.getCssName('inputview-switcher-key-name'), TABLE_CELL: goog.getCssName('inputview-table-cell'), TAB_ICON: goog.getCssName('inputview-tab-icon'), THREE_CANDIDATES: goog.getCssName('inputview-three-candidates'), TITLE: goog.getCssName('inputview-title'), TITLE_BAR: goog.getCssName('inputview-title-bar'), + TOOLBAR_SEPARATOR: goog.getCssName('inputview-toolbar-separator'), + TOOLBAR_BUTTON: goog.getCssName('inputview-toolbar-button'), + TOOLBAR_CONTAINER: goog.getCssName('inputview-toolbar-container'), + TRACK_COVER: goog.getCssName('inputview-track-cover'), + UNDERLINE_ICON: goog.getCssName('inputview-underline-icon'), + UNDO_ICON: goog.getCssName('inputview-undo-icon'), UP_KEY: goog.getCssName('inputview-up-key'), VERTICAL_LAYOUT: goog.getCssName('inputview-vertical'), VIEW: goog.getCssName('inputview-view'), diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/backspacekey.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/backspacekey.js new file mode 100644 index 0000000..c81c3ab --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/backspacekey.js @@ -0,0 +1,46 @@ +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. +// limitations under the License. +// See the License for the specific language governing permissions and +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// distributed under the License is distributed on an "AS-IS" BASIS, +// Unless required by applicable law or agreed to in writing, software +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// You may obtain a copy of the License at +// you may not use this file except in compliance with the License. +// Licensed under the Apache License, Version 2.0 (the "License"); +// +goog.provide('i18n.input.chrome.inputview.elements.content.BackspaceKey'); + +goog.require('i18n.input.chrome.inputview.elements.content.FunctionalKey'); + + + +goog.scope(function() { + +/** + * The backspace key. + * + * @param {string} id The id. + * @param {!i18n.input.chrome.inputview.elements.ElementType} type The element + * type. + * @param {string} text The text. + * @param {string} iconCssClass The css class for the icon. + * @param {goog.events.EventTarget=} opt_eventTarget The event target. + * @param {string=} opt_textCssClass The css class for the text. + * @constructor + * @extends {i18n.input.chrome.inputview.elements.content.FunctionalKey} + */ +i18n.input.chrome.inputview.elements.content.BackspaceKey = function(id, type, + text, iconCssClass, opt_eventTarget, opt_textCssClass) { + goog.base(this, id, type, text, iconCssClass, opt_eventTarget, + opt_textCssClass); + + this.pointerConfig.longPressWithPointerUp = true; + this.pointerConfig.longPressDelay = 300; +}; +goog.inherits(i18n.input.chrome.inputview.elements.content.BackspaceKey, + i18n.input.chrome.inputview.elements.content.FunctionalKey); +}); // goog.scope + diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/candidateview.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/candidateview.js index 84ce75f..5ccc1e8 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/candidateview.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/candidateview.js @@ -20,10 +20,12 @@ goog.require('goog.dom.classlist'); goog.require('goog.object'); goog.require('goog.style'); goog.require('i18n.input.chrome.inputview.Css'); +goog.require('i18n.input.chrome.inputview.GlobalFlags'); goog.require('i18n.input.chrome.inputview.elements.Element'); goog.require('i18n.input.chrome.inputview.elements.ElementType'); goog.require('i18n.input.chrome.inputview.elements.content.Candidate'); goog.require('i18n.input.chrome.inputview.elements.content.CandidateButton'); +goog.require('i18n.input.chrome.inputview.elements.content.ToolbarButton'); goog.require('i18n.input.chrome.message.Name'); @@ -66,18 +68,46 @@ i18n.input.chrome.inputview.elements.content.CandidateView = function(id, */ this.iconButtons_ = []; - this.iconButtons_[CandidateView.IconType.BACK] = new content.CandidateButton( + this.iconButtons_[IconType.BACK] = new content.CandidateButton( '', ElementType.BACK_BUTTON, '', chrome.i18n.getMessage('HANDWRITING_BACK'), this); - this.iconButtons_[CandidateView.IconType.SHRINK_CANDIDATES] = new content. + this.iconButtons_[IconType.SHRINK_CANDIDATES] = new content. CandidateButton('', ElementType.SHRINK_CANDIDATES, Css.SHRINK_CANDIDATES_ICON, '', this); - this.iconButtons_[CandidateView.IconType.EXPAND_CANDIDATES] = new content. + + this.iconButtons_[IconType.EXPAND_CANDIDATES] = new content. CandidateButton('', ElementType.EXPAND_CANDIDATES, Css.EXPAND_CANDIDATES_ICON, '', this); - this.iconButtons_[CandidateView.IconType.VOICE] = new content. + + this.iconButtons_[IconType.VOICE] = new content. CandidateButton('', ElementType.VOICE_BTN, Css.VOICE_MIC_BAR, '', this, true); + + /** + * Toolbar buttons. + * + * @private {!Array.<!i18n.input.chrome.inputview.elements.Element>} + */ + this.toolbarButtons_ = []; + + this.toolbarButtons_.push(new content. + ToolbarButton('', ElementType.UNDO, Css.UNDO_ICON, '', this, true)); + this.toolbarButtons_.push(new content. + ToolbarButton('', ElementType.REDO, Css.REDO_ICON, '', this, true)); + this.toolbarButtons_.push(new content. + ToolbarButton('', ElementType.BOLD, Css.BOLD_ICON, '', this, true)); + this.toolbarButtons_.push(new content. + ToolbarButton('', ElementType.ITALICS, Css.ITALICS_ICON, '', this, true)); + this.toolbarButtons_.push(new content.ToolbarButton( + '', ElementType.UNDERLINE, Css.UNDERLINE_ICON, '', this, true)); + this.toolbarButtons_.push(new content. + ToolbarButton('', ElementType.CUT, Css.CUT_ICON, '', this)); + this.toolbarButtons_.push(new content. + ToolbarButton('', ElementType.COPY, Css.COPY_ICON, '', this)); + this.toolbarButtons_.push(new content. + ToolbarButton('', ElementType.PASTE, Css.PASTE_ICON, '', this)); + this.toolbarButtons_.push(new content. + ToolbarButton('', ElementType.SELECT_ALL, Css.SELECT_ALL_ICON, '', this)); }; goog.inherits(i18n.input.chrome.inputview.elements.content.CandidateView, i18n.input.chrome.inputview.elements.Element); @@ -85,7 +115,7 @@ var CandidateView = i18n.input.chrome.inputview.elements.content.CandidateView; /** - * The icon type at the right of the candiate view. + * The icon type at the right of the candidate view. * * @enum {number} */ @@ -95,6 +125,7 @@ CandidateView.IconType = { EXPAND_CANDIDATES: 2, VOICE: 3 }; +var IconType = CandidateView.IconType; /** @@ -132,7 +163,7 @@ CandidateView.prototype.showingCandidates = false; /** - * true if it is showing number row. + * True if it is showing number row. * * @type {boolean} */ @@ -140,6 +171,14 @@ CandidateView.prototype.showingNumberRow = false; /** + * True if showing the toolbar row. + * + * @type {boolean} + */ +CandidateView.prototype.showingToolbar = false; + + +/** * The width for a candidate when showing in THREE_CANDIDATE mode. * * @type {number} @@ -158,6 +197,14 @@ CandidateView.ICON_WIDTH_ = 120; /** + * The width of icons in the toolbar. + * + * @private {number} + */ +CandidateView.TOOLBAR_ICON_WIDTH_ = 40; + + +/** * The handwriting keyset code. * * @private {string} @@ -187,6 +234,13 @@ CandidateView.prototype.createDom = function() { var dom = this.getDomHelper(); var elem = this.getElement(); + + for (var i = 0; i < this.toolbarButtons_.length; i++) { + var button = this.toolbarButtons_[i]; + button.render(elem); + button.setVisible(false); + } + this.interContainer_ = dom.createDom(TagName.DIV, Css.CANDIDATE_INTER_CONTAINER); dom.appendChild(elem, this.interContainer_); @@ -196,10 +250,16 @@ CandidateView.prototype.createDom = function() { button.render(elem); button.setVisible(false); } + + goog.a11y.aria.setState(/** @type {!Element} */ + (this.iconButtons_[IconType.SHRINK_CANDIDATES].getElement()), + goog.a11y.aria.State.LABEL, + chrome.i18n.getMessage('SHRINK_CANDIDATES')); + goog.a11y.aria.setState(/** @type {!Element} */ - (this.iconButtons_[CandidateView.IconType.VOICE].getElement()), + (this.iconButtons_[IconType.EXPAND_CANDIDATES].getElement()), goog.a11y.aria.State.LABEL, - chrome.i18n.getMessage('VOICE_TURN_ON')); + chrome.i18n.getMessage('EXPAND_CANDIDATES')); }; @@ -248,12 +308,12 @@ CandidateView.prototype.showCandidates = function(candidates, if (candidates.length > 0) { if (showThreeCandidates) { this.addThreeCandidates_(candidates); - // Hide the voice icons. - this.switchToIcon(CandidateView.IconType.VOICE, false); } else { this.addFullCandidates_(candidates); - this.switchToIcon(CandidateView.IconType.EXPAND_CANDIDATES, - !!opt_expandable && this.candidateCount < candidates.length); + if (!this.iconButtons_[IconType.BACK].isVisible()) { + this.switchToIcon(IconType.EXPAND_CANDIDATES, + !!opt_expandable && this.candidateCount < candidates.length); + } } this.showingCandidates = true; this.showingNumberRow = false; @@ -272,10 +332,13 @@ CandidateView.prototype.addThreeCandidates_ = function(candidates) { i18n.input.chrome.inputview.Css.THREE_CANDIDATES); var num = Math.min(3, candidates.length); var dom = this.getDomHelper(); + var width = CandidateView.WIDTH_FOR_THREE_CANDIDATES_; + if (this.showingToolbar) { + width -= CandidateView.ICON_WIDTH_ / 3; + } for (var i = 0; i < num; i++) { var candidateElem = new Candidate(String(i), candidates[i], Type.CANDIDATE, - this.height, i == 1 || num == 1, CandidateView. - WIDTH_FOR_THREE_CANDIDATES_, this); + this.height, i == 1 || num == 1, width, this); candidateElem.render(this.interContainer_); } this.candidateCount = num; @@ -352,6 +415,10 @@ CandidateView.prototype.resize = function(width, height) { button.resize(CandidateView.ICON_WIDTH_, height); } + for (var i = 0; i < this.toolbarButtons_.length; i++) { + var button = this.toolbarButtons_[i]; + button.resize(CandidateView.TOOLBAR_ICON_WIDTH_, height); + } // Resets the candidates elements visibility. if (this.candidateCount > 0) { @@ -383,16 +450,34 @@ CandidateView.prototype.resize = function(width, height) { CandidateView.prototype.switchToIcon = function(type, visible) { for (var i = 0; i < this.iconButtons_.length; i++) { // Don't enable voice when focus in password box. - this.iconButtons_[i].setVisible(visible && type == i && - (type != CandidateView.IconType.VOICE || !this.candidateCount && - this.adapter_.contextType != 'password')); + this.iconButtons_[i].setVisible(false); } - // We need make default voice icon showed if the position doesn't show other - // icon. - if (!visible && this.adapter_.isExperimental && + if (visible) { + if (type != IconType.VOICE) { + this.iconButtons_[type].setVisible(true); + } else if (this.adapter_.isVoiceInputEnabled && + this.adapter_.contextType != 'password') { + this.iconButtons_[type].setVisible(true); + } + } else if (this.adapter_.isVoiceInputEnabled && + type != IconType.VOICE && this.adapter_.contextType != 'password') { - this.iconButtons_[CandidateView.IconType.VOICE].setVisible(true); + // Default to show voice icon. + this.iconButtons_[IconType.VOICE].setVisible(true); + } +}; + + +/** + * Changes the visibility of the toolbar and it's icons. + * + * @param {boolean} visible The target visibility. + */ +CandidateView.prototype.setToolbarVisible = function(visible) { + this.showingToolbar = visible; + for (var i = 0; i < this.toolbarButtons_.length; i++) { + this.toolbarButtons_[i].setVisible(visible); } }; @@ -406,12 +491,15 @@ CandidateView.prototype.switchToIcon = function(type, visible) { */ CandidateView.prototype.updateByKeyset = function( keyset, isPasswordBox, isRTL) { - if (keyset == CandidateView.HANDWRITING_VIEW_CODE_) { - this.switchToIcon(CandidateView.IconType.BACK, true); - } else if (keyset != CandidateView.EMOJI_VIEW_CODE_ && !this.candidateCount && - this.adapter_.isExperimental) { - // If candidates count is greater than 0, don't show voice icon. - this.switchToIcon(CandidateView.IconType.VOICE, true); + if (!i18n.input.chrome.inputview.GlobalFlags.isQPInputView) { + if (keyset == CandidateView.HANDWRITING_VIEW_CODE_ || + keyset == CandidateView.EMOJI_VIEW_CODE_) { + this.switchToIcon(IconType.BACK, true); + } else { + this.switchToIcon(IconType.VOICE, + this.adapter_.isVoiceInputEnabled && + this.adapter_.contextType != 'password'); + } } if (isPasswordBox && keyset.indexOf('compact') != -1) { @@ -421,4 +509,13 @@ CandidateView.prototype.updateByKeyset = function( } this.interContainer_.style.direction = isRTL ? 'rtl' : 'ltr'; }; + + +/** @override */ +CandidateView.prototype.disposeInternal = function() { + goog.disposeAll(this.toolbarButtons_); + goog.disposeAll(this.iconButtons_); + + goog.base(this, 'disposeInternal'); +}; }); // goog.scope diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/characterkey.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/characterkey.js index 6e6ec65..2c0c5f9 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/characterkey.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/characterkey.js @@ -50,6 +50,8 @@ var Character = i18n.input.chrome.inputview.elements.content.Character; * @param {boolean} enableShiftRendering Whether renders two letter vertically, * it means show shift letter when in letter state, shows default letter * when in shift state, same as the altgr state. + * @param {boolean} isQpInputView Temporary flag to indicate it is in material + * design. * @param {goog.events.EventTarget=} opt_eventTarget The event target. * @constructor * @extends {i18n.input.chrome.inputview.elements.content.SoftKey} @@ -57,7 +59,7 @@ var Character = i18n.input.chrome.inputview.elements.content.Character; i18n.input.chrome.inputview.elements.content.CharacterKey = function(id, keyCode, characters, isLetterKey, hasAltGrCharacterInTheKeyset, alwaysRenderAltGrCharacter, stateManager, isRTL, - enableShiftRendering, opt_eventTarget) { + enableShiftRendering, isQpInputView, opt_eventTarget) { goog.base(this, id, i18n.input.chrome.inputview.elements.ElementType. CHARACTER_KEY, opt_eventTarget); @@ -117,6 +119,9 @@ i18n.input.chrome.inputview.elements.content.CharacterKey = function(id, /** @private {boolean} */ this.enableShiftRendering_ = enableShiftRendering; + /** @private {boolean} */ + this.isQpInputView_ = isQpInputView; + this.pointerConfig.longPressWithPointerUp = true; this.pointerConfig.longPressDelay = 500; }; @@ -164,6 +169,7 @@ CharacterKey.prototype.createDom = function() { CharacterKey.STATE_LIST_[i], this.stateManager_, this.enableShiftRendering_, + this.isQpInputView_, this.getCapslockCharacter_(i)); var character = new Character(this.id + '-' + i, model, this.isRTL_); this.addChild(character, true); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/charactermodel.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/charactermodel.js index cc1aff0..01479fa 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/charactermodel.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/charactermodel.js @@ -36,13 +36,14 @@ var StateType = i18n.input.chrome.inputview.StateType; * @param {!i18n.input.chrome.inputview.StateManager} stateManager The state * manager. * @param {boolean} enableShiftRendering . + * @param {boolean} isQpInputView . * @param {string=} opt_capslockCharacter . * @constructor */ i18n.input.chrome.inputview.elements.content.CharacterModel = function( character, belongToLetterKey, hasAltGrCharacterInTheKeyset, alwaysRenderAltGrCharacter, stateType, stateManager, enableShiftRendering, - opt_capslockCharacter) { + isQpInputView, opt_capslockCharacter) { /** * The character. @@ -101,6 +102,9 @@ i18n.input.chrome.inputview.elements.content.CharacterModel = function( /** @private {boolean} */ this.enableShiftRendering_ = enableShiftRendering; + + /** @private {boolean} */ + this.isQpInputView_ = isQpInputView; }; var CharacterModel = i18n.input.chrome.inputview.elements.content. CharacterModel; @@ -149,10 +153,13 @@ CharacterModel.prototype.isHighlighted = function() { * @return {boolean} True if the character is visible. */ CharacterModel.prototype.isVisible = function() { - var enableShiftLetter = this.enableShiftRendering_ || - this.stateManager_.hasState(StateType.SHIFT); - var enableDefaultLetter = this.enableShiftRendering_ || !this.stateManager_. - hasState(StateType.SHIFT); + var hasShift = this.stateManager_.hasState(StateType.SHIFT); + var enableShiftLetter = !this.belongToLetterKey_ || hasShift; + var enableDefaultLetter = !this.belongToLetterKey_ || !hasShift; + if (this.isQpInputView_) { + enableShiftLetter = this.enableShiftRendering_ || hasShift; + enableDefaultLetter = this.enableShiftRendering_ || !hasShift; + } if (this.stateType_ == StateType.DEFAULT) { return !this.stateManager_.hasState(StateType.ALTGR) && enableDefaultLetter; } diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/emojiview.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/emojiview.js index 6c9c609..98d6624 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/emojiview.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/emojiview.js @@ -19,9 +19,11 @@ goog.require('goog.positioning.AnchoredViewportPosition'); goog.require('goog.positioning.Corner'); goog.require('goog.style'); goog.require('i18n.input.chrome.inputview.Css'); +goog.require('i18n.input.chrome.inputview.GlobalFlags'); goog.require('i18n.input.chrome.inputview.SpecNodeName'); goog.require('i18n.input.chrome.inputview.elements.ElementType'); goog.require('i18n.input.chrome.inputview.elements.content.KeysetView'); +goog.require('i18n.input.chrome.inputview.elements.content.PageIndicator'); goog.require('i18n.input.chrome.inputview.events.EventType'); goog.require('i18n.input.chrome.inputview.handler.PointerHandler'); @@ -172,6 +174,14 @@ EmojiView.prototype.isDragging = false; /** + * The width percent to used inside the emoji panel. + * + * @private {number} + */ +EmojiView.prototype.emojiWidthPercent_ = 1; + + +/** * Whether it is a drag event. * * @private {number} @@ -260,8 +270,37 @@ EmojiView.prototype.enterDocument = function() { /** @override */ -EmojiView.prototype.resize = function(outerWidth, outerHeight, opt_force) { - goog.base(this, 'resize', outerWidth, outerHeight, opt_force); +EmojiView.prototype.resize = function(outerWidth, outerHeight, widthPercent, + opt_force) { + if (i18n.input.chrome.inputview.GlobalFlags.isQPInputView) { + if (this.getElement() && (!!opt_force || this.outerHeight != outerHeight || + this.outerWidth != outerWidth || + this.emojiWidthPercent_ != widthPercent)) { + this.outerHeight = outerHeight; + this.outerWidth = outerWidth; + goog.style.setSize(this.getElement(), outerWidth, outerHeight); + this.emojiWidthPercent_ = widthPercent; + var marginOrPadding = Math.round((outerWidth - + outerWidth * widthPercent) / 2); + var w = outerWidth - 2 * marginOrPadding; + var tabBar = /** @type {!Element} */ ( + this.getChildViewById('tabBar').getElement()); + tabBar.style.paddingLeft = tabBar.style.paddingRight = + marginOrPadding + 'px'; + var rowsAndKeys = /** @type {!Element} */ ( + this.getChildViewById('rowsAndSideKeys').getElement()); + rowsAndKeys.style.marginLeft = rowsAndKeys.style.marginRight = + marginOrPadding + 'px'; + var spaceRow = /**@type {!Element} */ ( + this.getChildViewById('emojiSpaceRow').getElement()); + spaceRow.style.marginLeft = spaceRow.style.marginRight = + marginOrPadding + 'px'; + this.resizeRows(outerWidth, outerHeight); + } + } else { + goog.base(this, 'resize', outerWidth, outerHeight, widthPercent, + opt_force); + } // Reposition must happen before clear because it will set the width. this.repositionIndicator_(); this.clearEmojiStates(); @@ -510,8 +549,10 @@ EmojiView.prototype.repositionIndicator_ = function() { var emojiElement = this.emojiSlider_.getElement(); var elem = this.pageIndicator_.getElement(); elem.style.width = goog.style.getSize(emojiElement).width + 'px'; + var rowsAndSideKeys = /** @type {!Element} */ ( + this.getChildViewById('rowsAndSideKeys').getElement()); var position = new goog.positioning.AnchoredViewportPosition( - this.getElement(), goog.positioning.Corner.BOTTOM_START, true); + rowsAndSideKeys, goog.positioning.Corner.BOTTOM_START, true); position.reposition(this.pageIndicator_.getElement(), goog.positioning.Corner.BOTTOM_START); }; diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/keysetview.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/keysetview.js index 392cede..0174e0b 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/keysetview.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/keysetview.js @@ -22,6 +22,7 @@ goog.require('i18n.input.chrome.inputview.ConditionName'); goog.require('i18n.input.chrome.inputview.Css'); goog.require('i18n.input.chrome.inputview.SpecNodeName'); goog.require('i18n.input.chrome.inputview.elements.ElementType'); +goog.require('i18n.input.chrome.inputview.elements.content.BackspaceKey'); goog.require('i18n.input.chrome.inputview.elements.content.CandidateButton'); goog.require('i18n.input.chrome.inputview.elements.content.CanvasView'); goog.require('i18n.input.chrome.inputview.elements.content.CharacterKey'); @@ -238,19 +239,25 @@ KeysetView.prototype.spaceKey; /** * The outer height of the view. * - * @type {number} - * @private + * @protected {number} */ -KeysetView.prototype.outerHeight_ = 0; +KeysetView.prototype.outerHeight = 0; /** * The outer width of the view. * - * @type {number} - * @private + * @protected {number} + */ +KeysetView.prototype.outerWidth = 0; + + +/** + * The width percentage. + * + * @private {number} */ -KeysetView.prototype.outerWidth_ = 0; +KeysetView.prototype.widthPercent_ = 1; /** @override */ @@ -306,33 +313,65 @@ KeysetView.prototype.update = function() { /** + * @param {number} outerWidth . + * @param {number} outerHeight . + * @param {number} widthPercent . + * @param {boolean} force . + * @return {boolean} . + */ +KeysetView.prototype.shouldResize = function(outerWidth, outerHeight, + widthPercent, force) { + var needResize = force || (this.outerHeight != outerHeight || + this.outerWidth != outerWidth || this.widthPercent_ != widthPercent); + return !!this.getElement() && needResize; +}; + + +/** * Resizes the view. * * @param {number} outerWidth The width of the outer space. * @param {number} outerHeight The height of the outer space. + * @param {number} widthPercent The percentage of the width. * @param {boolean=} opt_force Forces to resize the view. */ -KeysetView.prototype.resize = function(outerWidth, outerHeight, opt_force) { - var needResize = !!opt_force || (this.outerHeight_ != outerHeight || - this.outerWidth_ != outerWidth); - if (this.getElement() && needResize) { - this.outerHeight_ = outerHeight; - this.outerWidth_ = outerWidth; +KeysetView.prototype.resize = function(outerWidth, outerHeight, widthPercent, + opt_force) { + if (this.shouldResize(outerWidth, outerHeight, widthPercent, !!opt_force)) { + this.outerHeight = outerHeight; + this.outerWidth = outerWidth; + this.widthPercent_ = widthPercent; var elem = this.getElement(); - goog.style.setSize(elem, outerWidth, outerHeight); - - var weightArray = []; - for (var i = 0; i < this.rows_.length; i++) { - var row = this.rows_[i]; - weightArray.push(row.getHeightInWeight()); + var margin = Math.round((outerWidth - outerWidth * widthPercent) / 2); + var w = outerWidth - 2 * margin; + if (margin > 0) { + elem.style.marginLeft = elem.style.marginRight = margin + 'px'; } + goog.style.setSize(elem, w, outerHeight); - var splitedHeight = i18n.input.chrome.inputview.util.splitValue(weightArray, - outerHeight); - for (var i = 0; i < this.rows_.length; i++) { - var row = this.rows_[i]; - row.resize(outerWidth, splitedHeight[i]); - } + this.resizeRows(w, outerHeight); + } +}; + + +/** + * Resizes the rows inside the keyset. + * + * @param {number} width . + * @param {number} height . + */ +KeysetView.prototype.resizeRows = function(width, height) { + var weightArray = []; + for (var i = 0; i < this.rows_.length; i++) { + var row = this.rows_[i]; + weightArray.push(row.getHeightInWeight()); + } + + var splitedHeight = i18n.input.chrome.inputview.util.splitValue(weightArray, + height); + for (var i = 0; i < this.rows_.length; i++) { + var row = this.rows_[i]; + row.resize(width, splitedHeight[i]); } }; @@ -413,7 +452,7 @@ KeysetView.prototype.updateCondition = function(name, value) { } this.conditions_[name] = value; this.applyConditions(this.conditions_); - this.resize(this.outerWidth_, this.outerHeight_, true); + this.resize(this.outerWidth, this.outerHeight, this.widthPercent_, true); this.update(); }; @@ -552,9 +591,6 @@ KeysetView.prototype.createKey_ = function(spec, hasAltGrCharacterInTheKeyset) { var name = spec[SpecNodeName.NAME]; var characters = spec[SpecNodeName.CHARACTERS]; var iconCssClass = spec[SpecNodeName.ICON_CSS_CLASS]; - if (this.adapter && this.adapter.isQPInputView && iconCssClass) { - iconCssClass = iconCssClass.replace(/inputview/, 'm-inputview'); - } var textCssClass = spec[SpecNodeName.TEXT_CSS_CLASS]; var toKeyset = spec[SpecNodeName.TO_KEYSET]; var toKeysetName = spec[SpecNodeName.TO_KEYSET_NAME]; @@ -583,6 +619,8 @@ KeysetView.prototype.createKey_ = function(spec, hasAltGrCharacterInTheKeyset) { Css.EN_SWITCHER_ENGLISH); break; case ElementType.BACKSPACE_KEY: + elem = new content.BackspaceKey(id, type, name, iconCssClass); + break; case ElementType.ENTER_KEY: case ElementType.TAB_KEY: case ElementType.ARROW_UP: @@ -591,6 +629,7 @@ KeysetView.prototype.createKey_ = function(spec, hasAltGrCharacterInTheKeyset) { case ElementType.ARROW_RIGHT: case ElementType.HIDE_KEYBOARD_KEY: case ElementType.GLOBE_KEY: + case ElementType.BACK_TO_KEYBOARD: elem = new content.FunctionalKey(id, type, name, iconCssClass); break; case ElementType.TAB_BAR_KEY: @@ -643,7 +682,8 @@ KeysetView.prototype.createKey_ = function(spec, hasAltGrCharacterInTheKeyset) { var isLetterKey = i18n.input.chrome.inputview.util.isLetterKey( characters); var enableShiftRendering = false; - if (this.adapter && this.adapter.isQPInputView) { + var isQpInputView = !!this.adapter && this.adapter.isQPInputView; + if (isQpInputView) { enableShiftRendering = !!spec[SpecNodeName.ENABLE_SHIFT_RENDERING]; } elem = new content.CharacterKey(id, keyCode || 0, @@ -651,7 +691,8 @@ KeysetView.prototype.createKey_ = function(spec, hasAltGrCharacterInTheKeyset) { this.dataModel_.settings.alwaysRenderAltGrCharacter, this.dataModel_.stateManager, goog.i18n.bidi.isRtlLanguage(this.languageCode), - enableShiftRendering); + enableShiftRendering, + isQpInputView); break; case ElementType.BACK_BUTTON: @@ -732,7 +773,8 @@ KeysetView.prototype.isHandwriting = function() { * @return {boolean} . */ KeysetView.prototype.isTabStyle = function() { - return this.keyboardCode_ == 'hwt' || this.keyboardCode_ == 'emoji'; + return !i18n.input.chrome.inputview.GlobalFlags.isQPInputView && ( + this.keyboardCode_ == 'hwt' || this.keyboardCode_ == 'emoji'); }; diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/material/spacekey.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/material/spacekey.js index 82363f5..a927fd4 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/material/spacekey.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/material/spacekey.js @@ -71,6 +71,9 @@ material.SpaceKey = function(id, stateManager, title, opt_characters, */ this.stateManager_ = stateManager; + /** @private {string} */ + this.iconCss_ = opt_iconCss || ''; + // Double click on space key may convert two spaces to a period followed by a // space. this.pointerConfig.dblClick = true; @@ -104,7 +107,13 @@ SpaceKey.prototype.createDom = function() { var dom = this.getDomHelper(); this.wrapper_ = dom.createDom(goog.dom.TagName.DIV, Css.SPACE_WRAPPER); dom.appendChild(this.getElement(), this.wrapper_); - goog.dom.setTextContent(this.wrapper_, this.title_); + if (this.iconCss_) { + var iconElem = dom.createDom(goog.dom.TagName.DIV, this.iconCss_); + dom.appendChild(this.wrapper_, iconElem); + } else { + goog.dom.classlist.add(this.wrapper_, Css.SPACE_GREY_BG); + goog.dom.setTextContent(this.wrapper_, this.title_); + } }; diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/menuview.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/menuview.js index dd5ed6b..c332665 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/menuview.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/menuview.js @@ -15,6 +15,7 @@ goog.provide('i18n.input.chrome.inputview.elements.content.MenuView'); goog.require('goog.a11y.aria'); goog.require('goog.a11y.aria.State'); +goog.require('goog.array'); goog.require('goog.dom.TagName'); goog.require('goog.dom.classlist'); goog.require('goog.style'); @@ -80,11 +81,20 @@ MenuView.MAXIMAL_VISIBLE_IMES_ = 3; /** * The width of the popup menu. + * The total width include padding is 300px, the padding left is 41px. * * @type {number} * @private */ -MenuView.WIDTH_ = 300; +MenuView.width_ = 300; + + +/** + * The padding-left of the menu item. + * + * @private {number} + */ +MenuView.paddingLeft_ = 0; /** @@ -150,6 +160,11 @@ MenuView.prototype.enterDocument = function() { MenuView.prototype.show = function(key, currentKeysetId, isCompact, enableCompactLayout, currentInputMethod, inputMethods, hasHwt, enableSettings, hasEmoji) { + if (i18n.input.chrome.inputview.GlobalFlags.isQPInputView) { + // Temporary overwrites the value for material design. + MenuView.width_ = 259; + MenuView.paddingLeft_ = 41; + } var ElementType = i18n.input.chrome.inputview.elements.ElementType; var dom = this.getDomHelper(); if (key.type != ElementType.MENU_KEY) { @@ -222,7 +237,7 @@ MenuView.prototype.addInputMethodItems_ = function(currentInputMethod, inputMethod['name']; if (currentInputMethod == inputMethod['id']) { ariaLabel = chrome.i18n.getMessage('CURRENT_KEYBOARD_PREFIX') + - inputMethod['name']; + inputMethod['name']; } var imeItem = new MenuItem(String(i), listItem, MenuItem.Type.LIST_ITEM, ariaLabel); @@ -230,14 +245,16 @@ MenuView.prototype.addInputMethodItems_ = function(currentInputMethod, if (currentInputMethod == inputMethod['id']) { imeItem.check(); } - goog.style.setSize(imeItem.getElement(), MenuView.WIDTH_, + goog.style.setSize(imeItem.getElement(), + (MenuView.width_ + MenuView.paddingLeft_), MenuView.LIST_ITEM_HEIGHT_); } var containerHeight = inputMethods.length > MenuView.MAXIMAL_VISIBLE_IMES_ ? MenuView.LIST_ITEM_HEIGHT_ * MenuView.MAXIMAL_VISIBLE_IMES_ : MenuView.LIST_ITEM_HEIGHT_ * inputMethods.length; - goog.style.setSize(container, MenuView.WIDTH_, containerHeight); + goog.style.setSize(container, MenuView.width_ + MenuView.paddingLeft_, + containerHeight); dom.appendChild(this.getElement(), container); return containerHeight; @@ -293,7 +310,7 @@ MenuView.prototype.addLayoutSwitcherItem_ = function(key, currentKeysetId, chrome.i18n.getMessage('SWITCH_TO_COMPACT_LAYOUT')); } layoutSwitcherItem.render(this.getElement()); - goog.style.setSize(layoutSwitcherItem.getElement(), MenuView.WIDTH_, + goog.style.setSize(layoutSwitcherItem.getElement(), MenuView.width_, MenuView.LIST_ITEM_HEIGHT_); return MenuView.LIST_ITEM_HEIGHT_; @@ -347,15 +364,17 @@ MenuView.prototype.addFooterItems_ = function(hasHwt, enableSettings, // Sets footer itmes' width. var elems = dom.getChildren(footer); var len = elems.length; - var subWidth = Math.ceil(MenuView.WIDTH_ / len); + var subWidth = Math.ceil((MenuView.width_ + MenuView.paddingLeft_) / len); var i = 0; for (; i < len - 1; i++) { elems[i].style.width = subWidth + 'px'; } - elems[i].style.width = (MenuView.WIDTH_ - subWidth * (len - 1)) + 'px'; + elems[i].style.width = (MenuView.width_ + MenuView.paddingLeft_ - + subWidth * (len - 1)) + 'px'; dom.appendChild(this.getElement(), footer); - goog.style.setSize(footer, MenuView.WIDTH_, MenuView.LIST_ITEM_HEIGHT_); + goog.style.setSize(footer, (MenuView.width_ + MenuView.paddingLeft_), + MenuView.LIST_ITEM_HEIGHT_); return MenuView.LIST_ITEM_HEIGHT_; }; diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/selectview.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/selectview.js new file mode 100644 index 0000000..50e8f64 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/selectview.js @@ -0,0 +1,126 @@ +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. +// limitations under the License. +// See the License for the specific language governing permissions and +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// distributed under the License is distributed on an "AS-IS" BASIS, +// Unless required by applicable law or agreed to in writing, software +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// You may obtain a copy of the License at +// you may not use this file except in compliance with the License. +// Licensed under the Apache License, Version 2.0 (the "License"); +// +goog.provide('i18n.input.chrome.inputview.elements.content.SelectView'); + +goog.require('goog.array'); +goog.require('goog.dom'); +goog.require('goog.dom.TagName'); +goog.require('goog.dom.classlist'); +goog.require('goog.math.Coordinate'); +goog.require('goog.style'); +goog.require('i18n.input.chrome.inputview.Accents'); +goog.require('i18n.input.chrome.inputview.Css'); +goog.require('i18n.input.chrome.inputview.elements.Element'); +goog.require('i18n.input.chrome.inputview.elements.ElementType'); +goog.require('i18n.input.chrome.inputview.util'); + + +goog.scope(function() { +var Css = i18n.input.chrome.inputview.Css; +var ElementType = i18n.input.chrome.inputview.elements.ElementType; +var TagName = goog.dom.TagName; + + +/** + * The view for triggering select mode. + * + * @param {goog.events.EventTarget=} opt_eventTarget The parent event target. + * @constructor + * @extends {i18n.input.chrome.inputview.elements.Element} + */ +i18n.input.chrome.inputview.elements.content.SelectView = function( + opt_eventTarget) { + goog.base(this, '', ElementType.SELECT_VIEW, opt_eventTarget); +}; +goog.inherits(i18n.input.chrome.inputview.elements.content.SelectView, + i18n.input.chrome.inputview.elements.Element); +var SelectView = i18n.input.chrome.inputview.elements.content.SelectView; + + +/** + * The window that shows the left knob. + * + * @private {!Element} + */ +SelectView.prototype.left_; + + +/** + * The window that shows the right knob. + * + * @private {!Element} + */ +SelectView.prototype.right_; + + +/** + * The distance between finger to track view which will cancel the track + * view. + * + * @private {number} + */ +SelectView.WIDTH_ = 25; + + +/** @override */ +SelectView.prototype.createDom = function() { + goog.base(this, 'createDom'); + + var dom = this.getDomHelper(); + var elem = this.getElement(); + var knob = dom.createDom(TagName.DIV, undefined, dom.createTextNode('>')); + var knobContainer = dom.createDom(TagName.DIV, undefined, knob); + this.left_ = dom.createDom(TagName.DIV, Css.SELECT_KNOB_LEFT, knobContainer); + dom.appendChild(this.getElement(), this.left_); + + knob = dom.createDom(TagName.DIV, undefined, dom.createTextNode('<')); + knobContainer = dom.createDom(TagName.DIV, undefined, knob); + this.right_ = + dom.createDom(TagName.DIV, Css.SELECT_KNOB_RIGHT, knobContainer); + dom.appendChild(this.getElement(), this.right_); +}; + + +/** @override */ +SelectView.prototype.resize = function(width, height) { + goog.base(this, 'resize', width, height); + this.left_ && goog.style.setStyle(this.left_, { + 'height': height + 'px', + 'width': SelectView.WIDTH_ + 'px' + }); + this.right_ && goog.style.setStyle(this.right_, { + 'height': height + 'px', + 'width': SelectView.WIDTH_ + 'px', + 'left': width - SelectView.WIDTH_ + 'px' + }); + +}; + + +/** @override */ +SelectView.prototype.disposeInternal = function() { + goog.dispose(this.left_); + goog.dispose(this.right_); + + goog.base(this, 'disposeInternal'); +}; + + +/** @override */ +SelectView.prototype.setVisible = function(visible) { + SelectView.base(this, 'setVisible', visible); + goog.style.setElementShown(this.left_, visible); + goog.style.setElementShown(this.right_, visible); +}; +}); // goog.scope diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/swipeview.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/swipeview.js new file mode 100644 index 0000000..903fd21 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/swipeview.js @@ -0,0 +1,788 @@ +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. +// limitations under the License. +// See the License for the specific language governing permissions and +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// distributed under the License is distributed on an "AS-IS" BASIS, +// Unless required by applicable law or agreed to in writing, software +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// You may obtain a copy of the License at +// you may not use this file except in compliance with the License. +// Licensed under the Apache License, Version 2.0 (the "License"); +// +goog.provide('i18n.input.chrome.inputview.elements.content.SwipeView'); + +goog.require('goog.array'); +goog.require('goog.dom'); +goog.require('goog.dom.TagName'); +goog.require('goog.dom.classlist'); +goog.require('goog.events.EventType'); +goog.require('goog.math.Coordinate'); +goog.require('goog.style'); +goog.require('i18n.input.chrome.inputview.Accents'); +goog.require('i18n.input.chrome.inputview.Css'); +goog.require('i18n.input.chrome.inputview.SwipeDirection'); +goog.require('i18n.input.chrome.inputview.elements.Element'); +goog.require('i18n.input.chrome.inputview.elements.ElementType'); +goog.require('i18n.input.chrome.inputview.events.EventType'); +goog.require('i18n.input.chrome.inputview.events.KeyCodes'); +goog.require('i18n.input.chrome.inputview.handler.PointerHandler'); +goog.require('i18n.input.chrome.inputview.util'); +goog.require('i18n.input.chrome.message.ContextType'); + + +goog.scope(function() { +var ContextType = i18n.input.chrome.message.ContextType; +var Css = i18n.input.chrome.inputview.Css; +var ElementType = i18n.input.chrome.inputview.elements.ElementType; +var EventType = i18n.input.chrome.inputview.events.EventType; +var KeyCodes = i18n.input.chrome.inputview.events.KeyCodes; +var content = i18n.input.chrome.inputview.elements.content; +var util = i18n.input.chrome.inputview.util; + + +/** + * The view for alt data. + * + * @param {!i18n.input.chrome.inputview.Adapter} adapter . + * @param {goog.events.EventTarget=} opt_eventTarget The parent event target. + * @constructor + * @extends {i18n.input.chrome.inputview.elements.Element} + */ +i18n.input.chrome.inputview.elements.content.SwipeView = function( + adapter, opt_eventTarget) { + i18n.input.chrome.inputview.elements.content.SwipeView.base( + this, 'constructor', '', ElementType.SWIPE_VIEW, opt_eventTarget); + + /** + * The inputview adapter. + * + * @private {!i18n.input.chrome.inputview.Adapter} + */ + this.adapter_ = adapter; + + + /** + * The swipe elements. + * + * @private {!Array.<!Element>} + */ + this.trackElements_ = []; + + /** + * The window that shows the swipe field. + * + * @private {Object} + */ + this.trackWindow_ = null; + + /** + * The text before the current focus. + * + * @private {string} + */ + this.surroundingText_ = ''; + + /** + * The index of focus in the surrounding text. + * + * @private {number} + */ + this.surroundingTextFocus_ = 0; + + /** + * The index of the anchor in the surrounding text. + * + * @private {number} + */ + this.surroundingTextAnchor_ = 0; + + /** + * Recent words that have been deleted. + * + * @private {Array.<string>} + */ + this.deletedWords_ = []; + + /** + * The pointer handler. + * + * @type {!i18n.input.chrome.inputview.handler.PointerHandler} + * @private + */ + this.pointerHandler_ = new i18n.input.chrome.inputview.handler. + PointerHandler(); + +}; +goog.inherits(i18n.input.chrome.inputview.elements.content.SwipeView, + i18n.input.chrome.inputview.elements.Element); +var SwipeView = i18n.input.chrome.inputview.elements.content.SwipeView; + + +/** + * The number of swipe elements. + * + * @type {number} + * @private + */ +SwipeView.LENGTH_ = 7; + + +/** + * Index of highlighted accent. Use this index to represent no highlighted + * accent. + * + * @type {number} + * @private + */ +SwipeView.INVALIDINDEX_ = -1; + + +/** + * The distance between finger to track view which will cancel the track + * view. + * + * @type {number} + * @private + */ +SwipeView.FINGER_DISTANCE_TO_CANCEL_SWIPE_ = 20; + + +/** + * The cover element. + * Note: The reason we use a separate cover element instead of the view is + * because of the opacity. We can not reassign the opacity in child element. + * + * @type {!Element} + * @private + */ +SwipeView.prototype.coverElement_; + + +/** + * The index of the alternative element which is highlighted. + * + * @type {number} + * @private + */ +SwipeView.prototype.highlightIndex_ = SwipeView.INVALIDINDEX_; + + +/** + * The key which trigger this alternative data view. + * + * @type {!i18n.input.chrome.inputview.elements.content.SoftKey} + */ +SwipeView.prototype.triggeredBy; + + +/** + * Whether finger movement is being tracked. + * + * @type {boolean} + * @private + */ +SwipeView.prototype.tracking_ = false; + + +/** + * Whether to deploy the tracker on swipe events. + * + * @type {boolean} + * @private + */ +SwipeView.prototype.armed_ = false; + + +/** + * Whether the tracker will be deployed on future swipe events. + * + * @return {boolean} + */ +SwipeView.prototype.isArmed = function() { + return this.armed_; +}; + + +/** + * Callback when surrounding text is changed. + * + * @param {!i18n.input.chrome.inputview.events.SurroundingTextChangedEvent} e . + * @private + */ +SwipeView.prototype.onSurroundingTextChanged_ = function(e) { + if (this.adapter_.isPasswordBox()) { + this.surroundingText_ = ''; + this.surroundingTextAnchor_ = this.surroundingTextFocus_ = 0; + return; + } + + this.surroundingTextAnchor_ = e.anchor; + this.surroundingTextFocus_ = e.focus; + + var text = e.text || ''; + var oldText = this.surroundingText_; + var diff = ''; + if (util.isLetterDelete(oldText, text)) { + diff = oldText.slice(-1); + } else if (util.isLetterRestore(oldText, text)) { + // Letter restore. + // Handle blink bug where ctrl+delete deletes a space and inserts + // a  . + // Convert   to ' ' and remove from delete words since blink + // did a minirestore for us. + var letter = text[text.length - 1]; + if (letter == String.fromCharCode(160) || letter == ' ') { + var lastDelete = this.deletedWords_.pop(); + var firstChar = lastDelete && lastDelete[0] || ''; + if (firstChar == String.fromCharCode(160) || firstChar == ' ') { + this.deletedWords_.push(lastDelete.slice(1)); + } + } + } else if (e.text.length == 100 || oldText.length == 100) { + // Check if a word was deleted from oldText. + var candidate = oldText.trim().split(' ').pop(); + if (util.isPossibleDelete(oldText, text, candidate)) { + var location = oldText.lastIndexOf(candidate); + var intersectingText = oldText.slice(0, location); + diff = oldText.slice(location); + } + } else { + diff = oldText.substring(text.length); + } + if (diff) { + this.deletedWords_.push(diff); + // Do not reset while swiping. + } else if (!this.isVisible()) { + this.deletedWords_ = []; + } + this.surroundingText_ = text; +}; + + +/** + * Handles the swipe action. + * + * @param {!i18n.input.chrome.inputview.events.SwipeEvent} e The swipe event. + * @private + */ +SwipeView.prototype.handleSwipeAction_ = function(e) { + var direction = e.direction; + if (this.isVisible()) { + if (e.view.type == ElementType.BACKSPACE_KEY) { + // Cache whether we were tracking. + var alreadyTracking = this.tracking_; + var changed = this.highlightItem(e.x, e.y); + // Did not move segments. + if (!changed) { + // First gesture. + if (!alreadyTracking) { + // All previous deletions count as one now. + this.deletedWords_.reverse(); + var word = this.deletedWords_.join(''); + this.deletedWords_ = [word]; + // Swiped right, cancel the deletion. + if (direction & i18n.input.chrome.inputview.SwipeDirection.RIGHT) { + word = this.deletedWords_.pop(); + if (word) + this.adapter_.commitText(word); + } + } + return; + } + + if (direction & i18n.input.chrome.inputview.SwipeDirection.LEFT) { + this.adapter_.sendKeyDownAndUpEvent( + '\u0008', KeyCodes.BACKSPACE, undefined, undefined, { + ctrl: true, + shift: false + }); + } else if (direction & i18n.input.chrome.inputview.SwipeDirection.RIGHT) { + var word = this.deletedWords_.pop(); + if (word) + this.adapter_.commitText(word); + // Restore text we deleted before the track came up, but part of the + // same gesture. + if (this.isAtOrigin()) { + word = this.deletedWords_.pop(); + if (word) + this.adapter_.commitText(word); + } + } + return; + } + if (e.view.type == ElementType.SELECT_VIEW) { + // Cache whether we were tracking as highlight may change this. + var alreadyTracking = this.tracking_; + var changed = this.highlightItem(e.x, e.y); + // First finger movement is onto the blank track. Ignore. + if (!alreadyTracking) + return; + if (!changed) + return; + var index = this.getTrackIndex(); + if (index == -1) { + console.error('Invalid track index.'); + return; + } + var selectWord = index % 2 == 1; + var code; + if (direction & i18n.input.chrome.inputview.SwipeDirection.LEFT) { + code = KeyCodes.ARROW_LEFT; + } else if (direction & i18n.input.chrome.inputview.SwipeDirection.RIGHT) { + code = KeyCodes.ARROW_RIGHT; + } else { + return; + } + // If anchor == focus we are either at the end or the start of the word + // and no selection is in place. + if (this.surroundingTextAnchor_ == this.surroundingTextFocus_) { + // Do not move carat at all, as this will either have no effect or cause + // us to splice the word. + if (!selectWord) { + return; + } + } + this.adapter_.sendKeyDownAndUpEvent( + '', code, undefined, undefined, { + ctrl: selectWord, + shift: selectWord + }); + return; + } + return; + } + + // User swiped on backspace key before swipeview was visible. + if (e.view.type == ElementType.BACKSPACE_KEY) { + if (!this.armed_) { + // Prevents reshowing the track after it is hidden as part of the same + // finger movement. + return; + } + if (e.direction & i18n.input.chrome.inputview.SwipeDirection.LEFT) { + var key = /** @type {!content.FunctionalKey} */ (e.view); + // Equiv to a longpress. + this.showDeletionTrack(key); + } + return; + } +}; + + +/** + * Handles the pointer action. + * + * @param {!i18n.input.chrome.inputview.events.PointerEvent} e . + * @private + */ +SwipeView.prototype.handlePointerAction_ = function(e) { + switch (e.view.type) { + case ElementType.BACKSPACE_KEY: + var key = /** @type {!content.FunctionalKey} */ (e.view); + if (e.type == EventType.POINTER_DOWN) { + if (this.adapter_.contextType != ContextType.URL) { + this.armed_ = true; + } + this.deletedWords_ = []; + } else if (e.type == EventType.POINTER_UP || e.type == EventType. + POINTER_OUT) { + if (!this.isVisible()) { + this.armed_ = false; + } + } else if (e.type == EventType.LONG_PRESS) { + if (this.adapter_.isGestureDeletionEnabled()) { + this.showDeletionTrack(key); + } + } + break; + case ElementType.SWIPE_VIEW: + if (e.type == EventType.POINTER_DOWN && + e.target == this.getCoverElement()) { + this.hide(); + } else if (e.type == EventType.POINTER_UP || + e.type == EventType.POINTER_OUT) { + this.hide(); + // Reset the deleted words. + this.deletedWords_ = []; + } + break; + case ElementType.SELECT_VIEW: + if (e.type == EventType.POINTER_DOWN) { + this.showSelectionTrack(e.x, e.y); + } + if (e.type == EventType.POINTER_UP) { + this.hide(); + } + break; + } +}; + +/** @override */ +SwipeView.prototype.createDom = function() { + goog.base(this, 'createDom'); + + var dom = this.getDomHelper(); + var elem = this.getElement(); + goog.dom.classlist.add(elem, i18n.input.chrome.inputview.Css.SWIPE_VIEW); + this.coverElement_ = dom.createDom(goog.dom.TagName.DIV, + i18n.input.chrome.inputview.Css.TRACK_COVER); + dom.appendChild(document.body, this.coverElement_); + goog.style.setElementShown(this.coverElement_, false); + + this.coverElement_['view'] = this; +}; + + +/** @override */ +SwipeView.prototype.enterDocument = function() { + goog.base(this, 'enterDocument'); + this.getHandler(). + listen(this.adapter_, + i18n.input.chrome.inputview.events.EventType. + SURROUNDING_TEXT_CHANGED, + this.onSurroundingTextChanged_). + listen(this.pointerHandler_, [ + EventType.SWIPE], this.handleSwipeAction_). + listen(this.pointerHandler_, [ + EventType.LONG_PRESS, + EventType.POINTER_UP, + EventType.POINTER_DOWN, + EventType.POINTER_OUT], this.handlePointerAction_); + goog.style.setElementShown(this.getElement(), false); +}; + + +/** + * Shows the swipe tracker. + * + * @param {number} x + * @param {number} y + * @param {number} width The width of a key. + * @param {number} height The height of a key. + * @param {number} firstTrackWidth The width of the first key. + * @param {number} firstSegmentWidth The width of the first buffer segment. + * @param {string=} opt_character Characters on each key. + * @param {Css=} opt_css Optional icon css class. + * @private + */ +SwipeView.prototype.showDeletionTrack_ = function(x, y, width, height, + firstTrackWidth, firstSegmentWidth, opt_character, opt_css) { + this.tracking_ = false; + goog.style.setElementShown(this.getElement(), true); + this.getDomHelper().removeChildren(this.getElement()); + // Each key except last has a separator. + var totalWidth = ((2 * SwipeView.LENGTH_) - 3) * width; + totalWidth += firstTrackWidth + firstSegmentWidth; + + this.ltr = true; + this.highlightIndex_ = 0; + if ((x + totalWidth) > screen.width) { + // If not enough space at the right, then make it to the left. + x -= totalWidth; + this.ltr = false; + this.highlightIndex_ = SwipeView.LENGTH_ - 1; + } + if (firstTrackWidth == 0) { + this.highlightIndex_ = SwipeView.INVALIDINDEX_; + } + var ltr = this.ltr; + var isFirstSegment = function(i) { + return ltr ? i == 0 : i == SwipeView.LENGTH_ - 2; + }; + var isFirstTrackPiece = function(i) { + return ltr ? i == 0 : i == SwipeView.LENGTH_ - 1; + }; + for (var i = 0; i < SwipeView.LENGTH_; i++) { + var trackWidth = isFirstTrackPiece(i) ? firstTrackWidth : width; + if (trackWidth != 0) { + var keyElem = this.addKey_(opt_character, opt_css); + goog.style.setSize(keyElem, trackWidth, height); + this.trackElements_.push(keyElem); + } + + if (i != (SwipeView.LENGTH_ - 1)) { + var segmentWidth = isFirstSegment(i) ? firstSegmentWidth : width; + this.addSeparator_(segmentWidth, height); + } + } + goog.style.setPosition(this.getElement(), x, y); + // Highlight selected element if it's index is valid. + if (this.highlightIndex_ != SwipeView.INVALIDINDEX_) { + var elem = this.trackElements_[this.highlightIndex_]; + this.setElementBackground_(elem, true); + } + goog.style.setElementShown(this.coverElement_, true); + this.triggeredBy && this.triggeredBy.setHighlighted(true); +}; + + +/** + * + * Shows the swipe tracker. + * @param {number} x + * @param {number} y + * @param {number} width The width of a key. + * @param {number} height The height of a key. + * @param {string} character Characters on each key. + * @private + */ +SwipeView.prototype.showSelectionTrack_ = function(x, y, width, height, + character) { + this.tracking_ = false; + goog.style.setElementShown(this.getElement(), true); + this.getDomHelper().removeChildren(this.getElement()); + // Each key has a separator. + var totalWidth = ((2 * SwipeView.LENGTH_)) * width; + + this.ltr = true; + this.highlightIndex_ = SwipeView.INVALIDINDEX_; + if ((x + totalWidth) > screen.width) { + // If not enough space at the right, then make it to the left. + x -= totalWidth; + this.ltr = false; + } + + for (var i = 0; i < SwipeView.LENGTH_; i++) { + var keyElem; + if (!this.ltr) { + keyElem = this.addKey_(character); + goog.style.setSize(keyElem, width, height); + this.trackElements_.push(keyElem); + } + + keyElem = this.addSeparator_(width, height); + goog.style.setSize(keyElem, width, height); + this.trackElements_.push(keyElem); + + if (this.ltr) { + keyElem = this.addKey_(character); + goog.style.setSize(keyElem, width, height); + this.trackElements_.push(keyElem); + } + } + goog.style.setPosition(this.getElement(), x, y); + goog.style.setElementShown(this.coverElement_, true); + this.triggeredBy && this.triggeredBy.setHighlighted(true); +}; + + +/** + * Shows the alt data view. + * + * @param {!i18n.input.chrome.inputview.elements.content.SoftKey} key + * The key triggered this track view. + */ +SwipeView.prototype.showDeletionTrack = function(key) { + this.triggeredBy = key; + var coordinate = goog.style.getClientPosition(key.getElement()); + if (key.type == ElementType.BACKSPACE_KEY) { + this.showDeletionTrack_( + coordinate.x + key.availableWidth, + coordinate.y, + 70, + key.availableHeight, + key.availableWidth, + 100, + undefined, + Css.BACKSPACE_ICON); + } +}; + + +/** + * Shows the selection track. + * + * @param {number} x + * @param {number} y + */ +SwipeView.prototype.showSelectionTrack = function(x, y) { + var ltr = x <= (screen.width / 2); + + this.showSelectionTrack_( + ltr ? 0 : screen.width, + Math.max(y - 35, 35), // Center track on finger press but force containment. + 70, + 70, + x > (screen.width / 2) ? '<' : '>'); +}; + + +/** + * Hides the alt data view. + */ +SwipeView.prototype.hide = function() { + this.armed_ = false; + this.trackElements_ = []; + this.tracking_ = false; + if (this.triggeredBy) + this.triggeredBy.setHighlighted(false); + goog.style.setElementShown(this.getElement(), false); + goog.style.setElementShown(this.coverElement_, false); + this.highlightIndex_ = SwipeView.INVALIDINDEX_; +}; + + +/** + * Whether the current track counter is at the first element. + * + * @return {boolean} + */ +SwipeView.prototype.isAtOrigin = function() { + return this.ltr ? this.highlightIndex_ == 0 : + this.highlightIndex_ == SwipeView.LENGTH_ - 1; +}; + + +/** + * Highlights the item according to the current coordinate of the finger. + * + * @param {number} x . + * @param {number} y . + * @return {boolean} Whether it passed into a new segment. + */ +SwipeView.prototype.highlightItem = function(x, y) { + var previousIndex = this.highlightIndex_; + for (var i = 0; i < this.trackElements_.length; i++) { + var elem = this.trackElements_[i]; + var coordinate = goog.style.getClientPosition(elem); + var size = goog.style.getSize(elem); + if (coordinate.x < x && (coordinate.x + size.width) > x) { + this.highlightIndex_ = i; + this.clearAllHighlights_(); + this.setElementBackground_(elem, true); + } + } + this.tracking_ = this.tracking_ || (previousIndex != this.highlightIndex_); + return (previousIndex != this.highlightIndex_); +}; + + +/** + * Clears all the highlights. + * + * @private + */ +SwipeView.prototype.clearAllHighlights_ = + function() { + for (var i = 0; i < this.trackElements_.length; i++) { + this.setElementBackground_(this.trackElements_[i], false); + } +}; + + +/** + * Sets the background style of the element. + * + * @param {!Element} element The element. + * @param {boolean} highlight True to highlight the element. + * @private + */ +SwipeView.prototype.setElementBackground_ = + function(element, highlight) { + if (highlight) { + goog.dom.classlist.add(element, i18n.input.chrome.inputview.Css. + ELEMENT_HIGHLIGHT); + } else { + goog.dom.classlist.remove(element, i18n.input.chrome.inputview.Css. + ELEMENT_HIGHLIGHT); + } +}; + + +/** + * Adds a alt data key into the view. + * + * @param {string=} opt_character The character. + * @param {Css=} opt_icon_css + * @return {!Element} The create key element. + * @private + */ +SwipeView.prototype.addKey_ = function(opt_character, opt_icon_css) { + var dom = this.getDomHelper(); + var character = opt_character && + i18n.input.chrome.inputview.util.getVisibleCharacter(opt_character); + var keyElem; + if (character) + keyElem = dom.createDom(goog.dom.TagName.DIV, Css.SWIPE_KEY, character); + else + keyElem = dom.createDom(goog.dom.TagName.DIV, Css.SWIPE_KEY); + if (opt_icon_css) { + var child = dom.createDom(goog.dom.TagName.DIV, opt_icon_css); + dom.appendChild(keyElem, child); + } + dom.appendChild(this.getElement(), keyElem); + return keyElem; +}; + + +/** + * Adds a separator. + * + * @param {number} width . + * @param {number} height . + * @return {Element} + * @private + */ +SwipeView.prototype.addSeparator_ = function(width, height) { + var dom = this.getDomHelper(); + var tableCell = dom.createDom(goog.dom.TagName.DIV, + i18n.input.chrome.inputview.Css.TABLE_CELL); + goog.style.setSize(tableCell, width + 'px', height + 'px'); + goog.dom.classlist.add(tableCell, Css.SWIPE_SEPARATOR); + dom.appendChild(this.getElement(), tableCell); + return tableCell; +}; + + +/** + * Gets the cover element. + * + * @return {!Element} The cover element. + */ +SwipeView.prototype.getCoverElement = function() { + return this.coverElement_; +}; + + +/** + * The current index. + * @return {number} + */ +SwipeView.prototype.getTrackIndex = function() { + if (this.highlightIndex_ == SwipeView.INVALIDINDEX_) + return SwipeView.INVALIDINDEX_; + if (this.ltr) + return this.highlightIndex_; + return this.trackElements_.length - this.highlightIndex_ - 1; +}; + + +/** @override */ +SwipeView.prototype.resize = function(width, height) { + goog.base(this, 'resize', width, height); + + goog.style.setSize(this.coverElement_, width, height); +}; + + +/** + * Resets the swipeview. + * + */ +SwipeView.prototype.reset = function() { + this.deletedWords_ = []; + this.surroundingText_ = ''; + this.hide(); +}; + + +/** @override */ +SwipeView.prototype.disposeInternal = function() { + goog.dispose(this.pointerHandler_); + + goog.base(this, 'disposeInternal'); +}; + +}); // goog.scope diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/switcherkey.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/switcherkey.js index 978887e..9aa0fed 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/switcherkey.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/switcherkey.js @@ -13,12 +13,14 @@ // goog.provide('i18n.input.chrome.inputview.elements.content.SwitcherKey'); +goog.require('goog.dom.classlist'); +goog.require('i18n.input.chrome.inputview.Css'); goog.require('i18n.input.chrome.inputview.elements.content.FunctionalKey'); - goog.scope(function() { var FunctionalKey = i18n.input.chrome.inputview.elements.content.FunctionalKey; +var Css = i18n.input.chrome.inputview.Css; @@ -72,6 +74,10 @@ SwitcherKey.prototype.createDom = function() { goog.base(this, 'createDom'); this.setAriaLabel(this.getChromeVoxMessage()); + + if (this.textElem) { + goog.dom.classlist.add(this.getElement(), Css.SWITCHER_KEY_NAME); + } }; diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/tabbarkey.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/tabbarkey.js index 4ee6846..84bb0b8 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/tabbarkey.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/tabbarkey.js @@ -91,7 +91,9 @@ TabBarKey.prototype.createDom = function() { goog.dom.classlist.remove(this.bgElem, Css.SPECIAL_KEY_BG); goog.dom.classlist.add(this.bgElem, Css.EMOJI_TABBAR_KEY); goog.dom.classlist.add(this.iconElem, Css.EMOJI_SWITCH); - this.createSeparator_(); + if (!i18n.input.chrome.inputview.GlobalFlags.isQPInputView) { + this.createSeparator_(); + } // Sets aria label. var ariaLabel = ''; @@ -133,9 +135,11 @@ TabBarKey.prototype.resize = function(width, this.tableCell.style.width = this.availableWidth + 'px'; this.tableCell.style.height = this.availableHeight - this.BORDER_HEIGHT_ + 'px'; - this.sepTableCell.style.height = this.availableHeight - - this.BORDER_HEIGHT_ + 'px'; - this.separator.style.height = this.availableHeight * 0.32 + 'px'; + if (!i18n.input.chrome.inputview.GlobalFlags.isQPInputView) { + this.sepTableCell.style.height = this.availableHeight - + this.BORDER_HEIGHT_ + 'px'; + this.separator.style.height = this.availableHeight * 0.32 + 'px'; + } }; diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/toolbarbutton.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/toolbarbutton.js new file mode 100644 index 0000000..dec8bb2 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/toolbarbutton.js @@ -0,0 +1,108 @@ +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. +// limitations under the License. +// See the License for the specific language governing permissions and +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// distributed under the License is distributed on an "AS-IS" BASIS, +// Unless required by applicable law or agreed to in writing, software +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// You may obtain a copy of the License at +// you may not use this file except in compliance with the License. +// Licensed under the Apache License, Version 2.0 (the "License"); +// +goog.provide('i18n.input.chrome.inputview.elements.content.ToolbarButton'); + +goog.require('goog.dom.TagName'); +goog.require('goog.dom.classlist'); +goog.require('goog.style'); +goog.require('i18n.input.chrome.inputview.Css'); +goog.require('i18n.input.chrome.inputview.elements.Element'); + + + +goog.scope(function() { +var ElementType = i18n.input.chrome.inputview.elements.ElementType; +var Css = i18n.input.chrome.inputview.Css; + + + +/** + * The icon button in the Toolbar view. + * + * @param {string} id . + * @param {ElementType} type . + * @param {string} iconCss . + * @param {string} text . + * @param {!goog.events.EventTarget=} opt_eventTarget . + * @param {boolean=} opt_alignLeft . + * @constructor + * @extends {i18n.input.chrome.inputview.elements.Element} + */ +i18n.input.chrome.inputview.elements.content.ToolbarButton = function( + id, type, iconCss, text, opt_eventTarget, opt_alignLeft) { + goog.base(this, id, type, opt_eventTarget); + + /** @type {string} */ + this.text = text; + + /** @type {string} */ + this.iconCss = iconCss; + + this.alignLeft = opt_alignLeft || false; +}; +var ToolbarButton = i18n.input.chrome.inputview.elements.content. + ToolbarButton; +goog.inherits(ToolbarButton, i18n.input.chrome.inputview.elements.Element); + + +/** @type {!Element} */ +ToolbarButton.prototype.iconCell; + + +/** @override */ +ToolbarButton.prototype.createDom = function() { + goog.base(this, 'createDom'); + + var dom = this.getDomHelper(); + var elem = this.getElement(); + var css = [Css.CANDIDATE_INTER_CONTAINER, + Css.TOOLBAR_BUTTON]; + if (this.alignLeft) { + css.push(Css.FLOAT_LEFT); + } + goog.dom.classlist.addAll(elem, css); + + this.iconCell = dom.createDom(goog.dom.TagName.DIV, Css.TABLE_CELL); + dom.appendChild(elem, this.iconCell); + + var iconElem = dom.createDom(goog.dom.TagName.DIV, Css.INLINE_DIV); + if (this.iconCss) { + goog.dom.classlist.add(iconElem, this.iconCss); + } + if (this.text) { + dom.setTextContent(iconElem, this.text); + } + dom.appendChild(this.iconCell, iconElem); +}; + +/** @override */ +ToolbarButton.prototype.setHighlighted = function(highlight) { + if (highlight) { + goog.dom.classlist.add(this.getElement(), Css.CANDIDATE_HIGHLIGHT); + } else { + goog.dom.classlist.remove(this.getElement(), Css.CANDIDATE_HIGHLIGHT); + } +}; + + +/** @override */ +ToolbarButton.prototype.resize = function(width, height) { + goog.style.setSize(this.iconCell, width, height); + + goog.base(this, 'resize', width, height); +}; + + +}); // goog.scope + diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/voiceview.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/voiceview.js index 14a63a8..4681268 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/voiceview.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/voiceview.js @@ -13,16 +13,13 @@ // goog.provide('i18n.input.chrome.inputview.elements.content.VoiceView'); -goog.require('goog.a11y.aria'); -goog.require('goog.a11y.aria.Announcer'); -goog.require('goog.a11y.aria.LivePriority'); -goog.require('goog.a11y.aria.State'); goog.require('goog.asserts'); goog.require('goog.async.Delay'); goog.require('goog.dom.TagName'); goog.require('goog.dom.classlist'); goog.require('goog.style'); goog.require('i18n.input.chrome.inputview.Css'); +goog.require('i18n.input.chrome.inputview.Sounds'); goog.require('i18n.input.chrome.inputview.elements.Element'); goog.require('i18n.input.chrome.inputview.elements.ElementType'); goog.require('i18n.input.chrome.inputview.elements.content.FunctionalKey'); @@ -31,12 +28,11 @@ goog.require('i18n.input.chrome.message.Type'); goog.scope(function() { -var Announcer = goog.a11y.aria.Announcer; var Css = i18n.input.chrome.inputview.Css; -var EventType = goog.events.EventType; var ElementType = i18n.input.chrome.inputview.elements.ElementType; var FunctionalKey = i18n.input.chrome.inputview.elements.content.FunctionalKey; var Name = i18n.input.chrome.message.Name; +var Sounds = i18n.input.chrome.inputview.Sounds; var TagName = goog.dom.TagName; var Type = i18n.input.chrome.message.Type; @@ -47,11 +43,12 @@ var Type = i18n.input.chrome.message.Type; * * @param {goog.events.EventTarget=} opt_eventTarget The parent event target. * @param {i18n.input.chrome.inputview.Adapter=} opt_adapter . + * @param {i18n.input.chrome.SoundController=} opt_soundController . * @constructor * @extends {i18n.input.chrome.inputview.elements.Element} */ i18n.input.chrome.inputview.elements.content.VoiceView = - function(opt_eventTarget, opt_adapter) { + function(opt_eventTarget, opt_adapter, opt_soundController) { VoiceView.base(this, 'constructor', '', ElementType.VOICE_VIEW, opt_eventTarget); @@ -62,11 +59,15 @@ i18n.input.chrome.inputview.elements.content.VoiceView = */ this.adapter_ = goog.asserts.assertObject(opt_adapter); + /** + * The sound controller. + * + * @private {!i18n.input.chrome.SoundController} + */ + this.soundController_ = goog.asserts.assertObject(opt_soundController); + /** @private {!goog.async.Delay} */ this.animator_ = new goog.async.Delay(this.animateMicrophoneLevel_, 0, this); - - /** @private {!Announcer} */ - this.announcer_ = new Announcer(); }; var VoiceView = i18n.input.chrome.inputview.elements.content.VoiceView; goog.inherits(VoiceView, i18n.input.chrome.inputview.elements.Element); @@ -120,23 +121,22 @@ VoiceView.prototype.createDom = function() { var elem = this.getElement(); goog.dom.classlist.add(elem, Css.VOICE_VIEW); this.voicePanel_ = dom.createDom(TagName.DIV, Css.VOICE_PANEL); - this.voiceMicElem_ = dom.createDom(goog.dom.TagName.DIV, + this.voiceMicElem_ = dom.createDom(TagName.DIV, Css.VOICE_OPACITY + ' ' + Css.VOICE_MIC_ING); + this.levelElement_ = dom.createDom( - goog.dom.TagName.DIV, Css.VOICE_LEVEL); + TagName.DIV, Css.VOICE_LEVEL); dom.append(/** @type {!Node} */ (this.voicePanel_), this.voiceMicElem_, this.levelElement_); - goog.a11y.aria.setState(this.voiceMicElem_, goog.a11y.aria.State.LABEL, - chrome.i18n.getMessage('VOICE_TURN_OFF')); this.maskElem_ = dom.createDom(TagName.DIV, [Css.VOICE_MASK, Css.VOICE_OPACITY_NONE]); dom.append(/** @type {!Node} */ (elem), this.maskElem_, this.voicePanel_); - this.privacyDiv_ = dom.createDom(goog.dom.TagName.DIV, + this.privacyDiv_ = dom.createDom(TagName.DIV, Css.VOICE_PRIVACY_INFO); - var textDiv = dom.createDom(goog.dom.TagName.DIV, Css.VOICE_PRIVACY_TEXT); + var textDiv = dom.createDom(TagName.DIV, Css.VOICE_PRIVACY_TEXT); dom.setTextContent(textDiv, chrome.i18n.getMessage('VOICE_PRIVACY_INFO')); dom.appendChild(this.privacyDiv_, textDiv); @@ -169,11 +169,13 @@ VoiceView.prototype.enterDocument = function() { * Start recognition. */ VoiceView.prototype.start = function() { + // visible -> invisible + if (!this.isVisible()) { + this.soundController_.playSound(Sounds.VOICE_RECOG_START, true); + } if (this.isPrivacyAllowed_) { this.adapter_.sendVoiceViewStateChange(true); this.animator_.start(); - this.announcer_.say(chrome.i18n.getMessage('VOICE_TURN_ON'), - goog.a11y.aria.LivePriority.ASSERTIVE); } this.setVisible(true); }; @@ -183,15 +185,18 @@ VoiceView.prototype.start = function() { * Stop recognition. */ VoiceView.prototype.stop = function() { + // invisible -> visible + if (this.isVisible()) { + this.soundController_.playSound(Sounds.VOICE_RECOG_END, true); + } this.animator_.stop(); - this.announcer_.say(chrome.i18n.getMessage('VOICE_TURN_OFF'), - goog.a11y.aria.LivePriority.ASSERTIVE); this.setVisible(false); }; /** @override */ VoiceView.prototype.setVisible = function(visible) { + VoiceView.base(this, 'setVisible', visible); if (visible) { goog.style.setElementShown(this.voicePanel_, true); goog.dom.classlist.add(this.maskElem_, Css.VOICE_MASK_OPACITY); @@ -246,8 +251,7 @@ VoiceView.prototype.onConfirmPrivacyInfo_ = function() { this.isPrivacyAllowed_ = true; this.adapter_.sendVoiceViewStateChange(true); this.animator_.start(); - this.announcer_.say(chrome.i18n.getMessage('VOICE_TURN_ON'), - goog.a11y.aria.LivePriority.ASSERTIVE); + this.soundController_.playSound(Sounds.VOICE_RECOG_START, true); goog.dom.classlist.add(this.privacyDiv_, Css.HANDWRITING_PRIVACY_INFO_HIDDEN); goog.dom.classlist.remove(this.maskElem_, Css.VOICE_OPACITY_NONE); }; diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/elementtype.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/elementtype.js index fdb6f37..035bfd9 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/elementtype.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/elementtype.js @@ -65,6 +65,18 @@ i18n.input.chrome.inputview.elements.ElementType = { EN_SWITCHER: 42, VOICE_BTN: 43, VOICE_VIEW: 44, - VOICE_PRIVACY_GOT_IT: 45 + VOICE_PRIVACY_GOT_IT: 45, + BACK_TO_KEYBOARD: 46, + BOLD: 47, + ITALICS: 48, + UNDERLINE: 49, + COPY: 50, + PASTE: 51, + CUT: 52, + SELECT_ALL: 53, + REDO: 54, + UNDO: 55, + SWIPE_VIEW: 56, + SELECT_VIEW: 57 }; diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/extendedlayout.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/extendedlayout.js index f13da37..b8aeac3 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/extendedlayout.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/extendedlayout.js @@ -143,7 +143,7 @@ ExtendedLayout.prototype.calculate_ = function() { if (this.heightInWeight_ < child.getHeightInWeight()) { this.heightInWeight_ = child.getHeightInWeight(); } - this.widthInWeight_ += child.getWidthInWeight(); + this.widthInWeight_ = child.getWidthInWeight(); } }; diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/handwritinglayout.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/handwritinglayout.js index eb24e72..1024ff6 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/handwritinglayout.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/handwritinglayout.js @@ -15,6 +15,7 @@ goog.provide('i18n.input.chrome.inputview.elements.layout.HandwritingLayout'); goog.require('goog.dom.classlist'); goog.require('i18n.input.chrome.inputview.Css'); +goog.require('i18n.input.chrome.inputview.GlobalFlags'); goog.require('i18n.input.chrome.inputview.elements.Element'); goog.require('i18n.input.chrome.inputview.elements.ElementType'); goog.require('i18n.input.chrome.inputview.elements.Weightable'); @@ -113,9 +114,11 @@ HandwritingLayout.prototype.resize = function(width, height) { child.resize( Math.ceil(width * child.getWidthInWeight() / this.widthInWeight_), Math.ceil(height * child.getHeightInWeight() / this.heightInWeight_)); - // 85/140 = 0.6 - child.getElement().style.top = - Math.ceil(height * 0.6 / this.heightInWeight_); + if (!i18n.input.chrome.inputview.GlobalFlags.isQPInputView) { + // 85/140 = 0.6 + child.getElement().style.top = + Math.ceil(height * 0.6 / this.heightInWeight_); + } } }; }); // goog.scope diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/linearlayout.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/linearlayout.js index f583c8e..ebcfebd 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/linearlayout.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/linearlayout.js @@ -119,6 +119,12 @@ LinearLayout.prototype.getWidthInWeight = function() { LinearLayout.prototype.resize = function(width, height) { goog.base(this, 'resize', width, height); + var elem = this.getElement(); + var borderBox = goog.style.getBorderBox(elem); + var paddingBox = goog.style.getPaddingBox(elem); + var marginBox = goog.style.getMarginBox(elem); + var w = width - borderBox.left - borderBox.right - paddingBox.left - + paddingBox.right - marginBox.left - marginBox.right; var weightArray = []; for (var i = 0; i < this.getChildCount(); i++) { var child = /** @type {i18n.input.chrome.inputview.elements.Weightable} */ ( @@ -126,7 +132,7 @@ LinearLayout.prototype.resize = function(width, height) { weightArray.push(child.getWidthInWeight()); } var splitedWidth = i18n.input.chrome.inputview.util.splitValue(weightArray, - width); + w); for (var i = 0; i < this.getChildCount(); i++) { var child = /** @type {i18n.input.chrome.inputview.elements.Element} */ ( this.getChildAt(i)); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/events.js b/third_party/google_input_tools/src/chrome/os/inputview/events.js index 558b60d..01dccb2 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/events.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/events.js @@ -44,8 +44,9 @@ events.EventType = { LONG_PRESS_END: goog.events.getUniqueId('lpe'), POINTER_DOWN: goog.events.getUniqueId('pd'), POINTER_UP: goog.events.getUniqueId('pu'), - POINTER_OVER: goog.events.getUniqueId('po'), + POINTER_OVER: goog.events.getUniqueId('pv'), POINTER_OUT: goog.events.getUniqueId('po'), + REFRESH: goog.events.getUniqueId('rf'), SETTINGS_READY: goog.events.getUniqueId('sr'), SURROUNDING_TEXT_CHANGED: goog.events.getUniqueId('stc'), SWIPE: goog.events.getUniqueId('s'), @@ -53,7 +54,8 @@ events.EventType = { CONTEXT_FOCUS: goog.events.getUniqueId('cf'), CONTEXT_BLUR: goog.events.getUniqueId('cb'), VISIBILITY_CHANGE: goog.events.getUniqueId('vc'), - MODEL_UPDATE: goog.events.getUniqueId('mu') + MODEL_UPDATE: goog.events.getUniqueId('mu'), + URL_CHANGED: goog.events.getUniqueId('uc') }; @@ -218,14 +220,20 @@ goog.inherits(events.DragEvent, events.PointerEvent); * The event when the surrounding text is changed. * * @param {string} text The surrounding text. + * @param {number} anchor . + * @param {number} focus . * @constructor * @extends {goog.events.Event} */ -events.SurroundingTextChangedEvent = function(text) { +events.SurroundingTextChangedEvent = function(text, anchor, focus) { goog.base(this, events.EventType.SURROUNDING_TEXT_CHANGED); /** @type {string} */ this.text = text; + /** @type {number} */ + this.anchor = anchor; + /** @type {number} */ + this.focus = focus; }; goog.inherits(events.SurroundingTextChangedEvent, goog.events.Event); diff --git a/third_party/google_input_tools/src/chrome/os/message/contenttype.js b/third_party/google_input_tools/src/chrome/os/inputview/globalflags.js index ff20b05..b6e5876 100644 --- a/third_party/google_input_tools/src/chrome/os/message/contenttype.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/globalflags.js @@ -1,4 +1,4 @@ -// Copyright 2014 The ChromeOS IME Authors. All Rights Reserved. +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. // limitations under the License. // See the License for the specific language governing permissions and // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -11,22 +11,12 @@ // you may not use this file except in compliance with the License. // Licensed under the Apache License, Version 2.0 (the "License"); // -goog.provide('i18n.input.chrome.message.ContextType'); +goog.provide('i18n.input.chrome.inputview.GlobalFlags'); /** - * The message type. + * Whether input view keyboards of material design is enabled. * - * @enum {string} + * @type {boolean} */ -i18n.input.chrome.message.ContextType = { - DEFAULT: 'text', - EMAIL: 'email', - PASSWORD: 'password', - URL: 'url', - NUMBER: 'number', - PHONE: 'tel' -}; - - - +i18n.input.chrome.inputview.GlobalFlags.isQPInputView = false; diff --git a/third_party/google_input_tools/src/chrome/os/inputview/handler/pointerhandler.js b/third_party/google_input_tools/src/chrome/os/inputview/handler/pointerhandler.js index c89434e..b2fceab 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/handler/pointerhandler.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/handler/pointerhandler.js @@ -18,6 +18,7 @@ goog.require('goog.events.EventHandler'); goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); goog.require('goog.math.Coordinate'); +goog.require('i18n.input.chrome.inputview.events.PointerEvent'); goog.require('i18n.input.chrome.inputview.handler.PointerActionBundle'); goog.scope(function() { @@ -184,8 +185,8 @@ PointerHandler.prototype.onPointerUp_ = function(e) { if (pointerActionBundle) { pointerActionBundle.handlePointerUp(e); } + e.preventDefault(); } - e.preventDefault(); if (pointerActionBundle && pointerActionBundle.view && pointerActionBundle.view.pointerConfig.stopEventPropagation) { e.stopPropagation(); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/images/bold.png b/third_party/google_input_tools/src/chrome/os/inputview/images/bold.png Binary files differnew file mode 100644 index 0000000..8753bbd --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/images/bold.png diff --git a/third_party/google_input_tools/src/chrome/os/inputview/images/copy.png b/third_party/google_input_tools/src/chrome/os/inputview/images/copy.png Binary files differnew file mode 100644 index 0000000..074ea88 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/images/copy.png diff --git a/third_party/google_input_tools/src/chrome/os/inputview/images/cut.png b/third_party/google_input_tools/src/chrome/os/inputview/images/cut.png Binary files differnew file mode 100644 index 0000000..cd27ee1 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/images/cut.png diff --git a/third_party/google_input_tools/src/chrome/os/inputview/images/italic.png b/third_party/google_input_tools/src/chrome/os/inputview/images/italic.png Binary files differnew file mode 100644 index 0000000..38bc789 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/images/italic.png diff --git a/third_party/google_input_tools/src/chrome/os/inputview/images/material/arrow_down_for_floating.png b/third_party/google_input_tools/src/chrome/os/inputview/images/material/arrow_down_for_floating.png Binary files differindex b559e46e..3c0ccb2 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/images/material/arrow_down_for_floating.png +++ b/third_party/google_input_tools/src/chrome/os/inputview/images/material/arrow_down_for_floating.png diff --git a/third_party/google_input_tools/src/chrome/os/inputview/images/paste.png b/third_party/google_input_tools/src/chrome/os/inputview/images/paste.png Binary files differnew file mode 100644 index 0000000..3014ad6 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/images/paste.png diff --git a/third_party/google_input_tools/src/chrome/os/inputview/images/redo.png b/third_party/google_input_tools/src/chrome/os/inputview/images/redo.png Binary files differnew file mode 100644 index 0000000..6534b7b --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/images/redo.png diff --git a/third_party/google_input_tools/src/chrome/os/inputview/images/select_all.png b/third_party/google_input_tools/src/chrome/os/inputview/images/select_all.png Binary files differnew file mode 100644 index 0000000..02a62e4 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/images/select_all.png diff --git a/third_party/google_input_tools/src/chrome/os/inputview/images/underline.png b/third_party/google_input_tools/src/chrome/os/inputview/images/underline.png Binary files differnew file mode 100644 index 0000000..4a0e00f --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/images/underline.png diff --git a/third_party/google_input_tools/src/chrome/os/inputview/images/undo.png b/third_party/google_input_tools/src/chrome/os/inputview/images/undo.png Binary files differnew file mode 100644 index 0000000..818191c --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/images/undo.png diff --git a/third_party/google_input_tools/src/chrome/os/inputview/keyboardcontainer.js b/third_party/google_input_tools/src/chrome/os/inputview/keyboardcontainer.js index b7bc0fa..f66841b 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/keyboardcontainer.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/keyboardcontainer.js @@ -18,6 +18,7 @@ goog.require('goog.dom.classlist'); goog.require('goog.i18n.bidi'); goog.require('goog.ui.Container'); goog.require('i18n.input.chrome.inputview.Css'); +goog.require('i18n.input.chrome.inputview.GlobalFlags'); goog.require('i18n.input.chrome.inputview.elements.content.AltDataView'); goog.require('i18n.input.chrome.inputview.elements.content.CandidateView'); goog.require('i18n.input.chrome.inputview.elements.content.EmojiView'); @@ -25,6 +26,8 @@ goog.require('i18n.input.chrome.inputview.elements.content.ExpandedCandidateView goog.require('i18n.input.chrome.inputview.elements.content.HandwritingView'); goog.require('i18n.input.chrome.inputview.elements.content.KeysetView'); goog.require('i18n.input.chrome.inputview.elements.content.MenuView'); +goog.require('i18n.input.chrome.inputview.elements.content.SelectView'); +goog.require('i18n.input.chrome.inputview.elements.content.SwipeView'); goog.require('i18n.input.chrome.inputview.elements.content.VoiceView'); @@ -44,10 +47,12 @@ var content = i18n.input.chrome.inputview.elements.content; * The keyboard container. * * @param {!i18n.input.chrome.inputview.Adapter} adapter . + * @param {!i18n.input.chrome.SoundController} soundController . * @constructor * @extends {goog.ui.Container} */ -i18n.input.chrome.inputview.KeyboardContainer = function(adapter) { +i18n.input.chrome.inputview.KeyboardContainer = + function(adapter, soundController) { goog.base(this); /** @type {!content.CandidateView} */ @@ -57,11 +62,17 @@ i18n.input.chrome.inputview.KeyboardContainer = function(adapter) { /** @type {!content.AltDataView} */ this.altDataView = new content.AltDataView(this); + /** @type {!content.SwipeView} */ + this.swipeView = new content.SwipeView(adapter, this); + + /** @type {!content.SelectView} */ + this.selectView = new content.SelectView(this); + /** @type {!content.MenuView} */ this.menuView = new content.MenuView(this); /** @type {!content.VoiceView} */ - this.voiceView = new content.VoiceView(this, adapter); + this.voiceView = new content.VoiceView(this, adapter, soundController); /** @type {!content.ExpandedCandidateView} */ this.expandedCandidateView = new content.ExpandedCandidateView(this); @@ -126,6 +137,8 @@ KeyboardContainer.prototype.createDom = function() { this.candidateView.render(this.wrapperDiv_); this.getDomHelper().appendChild(elem, this.wrapperDiv_); this.altDataView.render(); + this.swipeView.render(); + this.selectView.render(); this.menuView.render(); this.voiceView.render(); this.voiceView.setVisible(false); @@ -276,15 +289,20 @@ KeyboardContainer.prototype.resize = function(width, height, widthPercent, this.candidateView.setWidthInWeight( this.currentKeysetView.getWidthInWeight()); - var candidateElem = this.candidateView.getElement(); - candidateElem.style.paddingLeft = candidateElem.style.paddingRight = - padding + 'px'; this.candidateView.resize(w, candidateViewHeight); - this.currentKeysetView.resize(w, h); - var currentKeysetViewElem = this.currentKeysetView.getElement(); - currentKeysetViewElem.style.paddingLeft = currentKeysetViewElem.style. - paddingRight = padding + 'px'; this.expandedCandidateView.resize(w, h); + if (i18n.input.chrome.inputview.GlobalFlags.isQPInputView) { + var candidateElem = this.candidateView.getElement(); + candidateElem.style.paddingLeft = candidateElem.style.paddingRight = + padding + 'px'; + this.currentKeysetView.resize(width, h, widthPercent); + var expandViewElem = this.expandedCandidateView.getElement(); + expandViewElem.style.marginLeft = expandViewElem.style.marginRight = + padding + 'px'; + } else { + this.currentKeysetView.resize(w, h, 1); + elem.style.paddingLeft = elem.style.paddingRight = padding + 'px'; + } if (this.expandedCandidateView.isVisible()) { // Closes the expanded candidate view if it's visible. // This is to avoid mis-layout issue for the expanded candidate when screen @@ -296,6 +314,8 @@ KeyboardContainer.prototype.resize = function(width, height, widthPercent, this.currentKeysetView.setVisible(true); } this.altDataView.resize(screen.width, height); + this.swipeView.resize(screen.width, height); + this.selectView.resize(screen.width, height); this.menuView.resize(screen.width, height); this.voiceView.resize(w + padding, height); }; @@ -305,6 +325,8 @@ KeyboardContainer.prototype.resize = function(width, height, widthPercent, KeyboardContainer.prototype.disposeInternal = function() { goog.dispose(this.candidateView); goog.dispose(this.altDataView); + goog.dispose(this.swipeView); + goog.dispose(this.selectView); goog.dispose(this.menuView); goog.dispose(this.voiceView); for (var key in this.keysetViewMap) { diff --git a/third_party/google_input_tools/src/chrome/os/inputview/layouts/emoji_layout.js b/third_party/google_input_tools/src/chrome/os/inputview/layouts/emoji_layout.js index 6bb6482..6b83866 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/layouts/emoji_layout.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/layouts/emoji_layout.js @@ -96,17 +96,13 @@ goog.require('i18n.input.chrome.inputview.layouts.util'); }); keySpec = { - 'widthInWeight': 42, - 'heightInWeight': 14 - }; - baseSpec = { - 'widthInWeight': 42, + 'widthInWeight': 1.42, 'heightInWeight': 14 }; var sideKeys = util.createVerticalLayout({ 'id': 'sideKeys', 'children': [util.createKey(keySpec), util.createKey(keySpec), - util.createKey(baseSpec)] + util.createKey(keySpec)] }); var rowsAndSideKeys = util.createLinearLayout({ diff --git a/third_party/google_input_tools/src/chrome/os/inputview/layouts/handwriting_layout.js b/third_party/google_input_tools/src/chrome/os/inputview/layouts/handwriting_layout.js index 53b8f72..1bb0753 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/layouts/handwriting_layout.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/layouts/handwriting_layout.js @@ -11,7 +11,6 @@ // you may not use this file except in compliance with the License. // Licensed under the Apache License, Version 2.0 (the "License"); // -goog.require('i18n.input.chrome.inputview.layouts.SpaceRow'); goog.require('i18n.input.chrome.inputview.layouts.util'); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/101kbd_layout.js b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/101kbd_layout.js index a5111ef..ece6e69 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/101kbd_layout.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/101kbd_layout.js @@ -40,7 +40,7 @@ var material = i18n.input.chrome.inputview.layouts.material; }); var data = { - 'layoutID': '101kbd', + 'layoutID': 'm-101kbd', 'widthInWeight': 15, 'children': [keyboardContainer] }; diff --git a/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/102kbd_layout.js b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/102kbd_layout.js index 8c9d914..e980db2 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/102kbd_layout.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/102kbd_layout.js @@ -40,7 +40,7 @@ var material = i18n.input.chrome.inputview.layouts.material; }); var data = { - 'layoutID': '102kbd', + 'layoutID': 'm-102kbd', 'widthInWeight': 15, 'children': [keyboardContainer] }; diff --git a/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_azerty_layout.js b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_azerty_layout.js new file mode 100644 index 0000000..ba2d726 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_azerty_layout.js @@ -0,0 +1,49 @@ +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. +// limitations under the License. +// See the License for the specific language governing permissions and +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// distributed under the License is distributed on an "AS-IS" BASIS, +// Unless required by applicable law or agreed to in writing, software +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// You may obtain a copy of the License at +// you may not use this file except in compliance with the License. +// Licensed under the Apache License, Version 2.0 (the "License"); +// +goog.require('i18n.input.chrome.inputview.layouts.CompactSpaceRow'); +goog.require('i18n.input.chrome.inputview.layouts.RowsOfCompactAzerty'); +goog.require('i18n.input.chrome.inputview.layouts.util'); + + +(function() { + i18n.input.chrome.inputview.layouts.util.setPrefix('compactkbd-k-'); + + var topThreeRows = + i18n.input.chrome.inputview.layouts.RowsOfCompactAzerty.create(); + var spaceRow = + i18n.input.chrome.inputview.layouts.CompactSpaceRow.create(false); + + // Keyboard view. + var keyboardView = i18n.input.chrome.inputview.layouts.util.createLayoutView({ + 'id': 'keyboardView', + 'children': [topThreeRows, spaceRow], + 'widthPercent': 100, + 'heightPercent': 100 + }); + + var keyboardContainer = i18n.input.chrome.inputview.layouts.util. + createLinearLayout({ + 'id': 'keyboardContainer', + 'children': [keyboardView] + }); + + var data = { + 'layoutID': 'm-compactkbd-azerty', + 'widthInWeight': 15, + 'children': [keyboardContainer] + }; + + google.ime.chrome.inputview.onLayoutLoaded(data); + +}) (); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_nordic_layout.js b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_nordic_layout.js new file mode 100644 index 0000000..586e920 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_nordic_layout.js @@ -0,0 +1,49 @@ +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. +// limitations under the License. +// See the License for the specific language governing permissions and +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// distributed under the License is distributed on an "AS-IS" BASIS, +// Unless required by applicable law or agreed to in writing, software +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// You may obtain a copy of the License at +// you may not use this file except in compliance with the License. +// Licensed under the Apache License, Version 2.0 (the "License"); +// +goog.require('i18n.input.chrome.inputview.layouts.CompactSpaceRow'); +goog.require('i18n.input.chrome.inputview.layouts.RowsOfCompactNordic'); +goog.require('i18n.input.chrome.inputview.layouts.util'); + + +(function() { + i18n.input.chrome.inputview.layouts.util.setPrefix('compactkbd-k-'); + + var topThreeRows = + i18n.input.chrome.inputview.layouts.RowsOfCompactNordic.create(); + var spaceRow = + i18n.input.chrome.inputview.layouts.CompactSpaceRow.create(true); + + // Keyboard view. + var keyboardView = i18n.input.chrome.inputview.layouts.util.createLayoutView({ + 'id': 'keyboardView', + 'children': [topThreeRows, spaceRow], + 'widthPercent': 100, + 'heightPercent': 100 + }); + + var keyboardContainer = i18n.input.chrome.inputview.layouts.util. + createLinearLayout({ + 'id': 'keyboardContainer', + 'children': [keyboardView] + }); + + var data = { + 'layoutID': 'm-compactkbd-nordic', + 'widthInWeight': 15, + 'children': [keyboardContainer] + }; + + google.ime.chrome.inputview.onLayoutLoaded(data); + +}) (); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_numberpad_layout.js b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_numberpad_layout.js new file mode 100644 index 0000000..503aecb --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_numberpad_layout.js @@ -0,0 +1,51 @@ +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. +// limitations under the License. +// See the License for the specific language governing permissions and +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// distributed under the License is distributed on an "AS-IS" BASIS, +// Unless required by applicable law or agreed to in writing, software +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// You may obtain a copy of the License at +// you may not use this file except in compliance with the License. +// Licensed under the Apache License, Version 2.0 (the "License"); +// +goog.require('i18n.input.chrome.inputview.layouts.RowsOfNumberpad'); +goog.require('i18n.input.chrome.inputview.layouts.util'); + + +(function() { + i18n.input.chrome.inputview.layouts.util.keyIdPrefix = 'compactkbd-k-'; + + var rows = i18n.input.chrome.inputview.layouts.RowsOfNumberpad.create(); + + // Keyboard view. + var keyboardView = i18n.input.chrome.inputview.layouts.util.createLayoutView({ + 'id': 'keyboardView', + 'children': [rows], + 'widthPercent': 50, + 'heightPercent': 100 + }); + + var keyboardContainer = i18n.input.chrome.inputview.layouts.util. + createLinearLayout({ + 'id': 'keyboardContainer', + 'children': [keyboardView] + }); + + var data = { + 'layoutID': 'm-compactkbd-numberpad', + 'widthInWeight': 6.45, + 'children': [keyboardContainer], + 'disableCandidateView': true, + 'disableLongpress': true, + 'widthPercent' : { + 'LANDSCAPE' : 0.56, + 'PORTRAIT' : 0.56, + 'LANDSCAPE_WIDE_SCREEN': 0.56 + }}; + + google.ime.chrome.inputview.onLayoutLoaded(data); + +}) (); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_zhuyin_layout.js b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_zhuyin_layout.js new file mode 100644 index 0000000..12f9394 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_zhuyin_layout.js @@ -0,0 +1,93 @@ +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. +// limitations under the License. +// See the License for the specific language governing permissions and +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// distributed under the License is distributed on an "AS-IS" BASIS, +// Unless required by applicable law or agreed to in writing, software +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// You may obtain a copy of the License at +// you may not use this file except in compliance with the License. +// Licensed under the Apache License, Version 2.0 (the "License"); +// +goog.require('i18n.input.chrome.inputview.layouts.CompactSpaceRow'); +goog.require('i18n.input.chrome.inputview.layouts.RowsOfCompact'); +goog.require('i18n.input.chrome.inputview.layouts.util'); + + +(function() { + i18n.input.chrome.inputview.layouts.util.setPrefix('compactkbd-k-'); + + var topRows = + i18n.input.chrome.inputview.layouts.RowsOfCompactZhuyin.create(); + + var digitSwitcher = i18n.input.chrome.inputview.layouts.util.createKey({ + 'widthInWeight': 1.1, + 'heightInWeight': 4 + }); + var globeOrSymbolKey = i18n.input.chrome.inputview.layouts.util.createKey({ + 'condition': i18n.input.chrome.inputview.ConditionName.SHOW_GLOBE_OR_SYMBOL, + 'widthInWeight': 1, + 'heightInWeight': 4 + }); + var menuKey = i18n.input.chrome.inputview.layouts.util.createKey({ + 'condition': i18n.input.chrome.inputview.ConditionName.SHOW_MENU, + 'widthInWeight': 1, + 'heightInWeight': 4 + }); + var comma = i18n.input.chrome.inputview.layouts.util.createKey({ + 'widthInWeight': 1, + 'heightInWeight': 4 + }); + var space = i18n.input.chrome.inputview.layouts.util.createKey({ + 'widthInWeight': 3, + 'heightInWeight': 4 + }); + var character = i18n.input.chrome.inputview.layouts.util.createKey({ + 'widthInWeight': 1, + 'heightInWeight': 4 + }); + var period = i18n.input.chrome.inputview.layouts.util.createKey({ + 'widthInWeight': 1, + 'heightInWeight': 4 + }); + var switcher = i18n.input.chrome.inputview.layouts.util.createKey({ + 'widthInWeight': 1, + 'heightInWeight': 4 + }); + var hide = i18n.input.chrome.inputview.layouts.util.createKey({ + 'widthInWeight': 1.1, + 'heightInWeight': 4 + }); + menuKey['spec']['giveWeightTo'] = space['spec']['id']; + globeOrSymbolKey['spec']['giveWeightTo'] = space['spec']['id']; + + var spaceRow = i18n.input.chrome.inputview.layouts.util. + createLinearLayout({ + 'id': 'spaceKeyrow', + 'children': [digitSwitcher, globeOrSymbolKey, menuKey, comma, + space, character, period, switcher, hide] + }); + + // Keyboard view. + var keyboardView = i18n.input.chrome.inputview.layouts.util.createLayoutView({ + 'id': 'keyboardView', + 'children': [topRows, spaceRow], + 'widthPercent': 100, + 'heightPercent': 100 + }); + + var keyboardContainer = i18n.input.chrome.inputview.layouts.util. + createLinearLayout({ + 'id': 'keyboardContainer', + 'children': [keyboardView] + }); + + var data = { + 'layoutID': 'm-compactkbd-zhuyin', + 'widthInWeight': 15, + 'children': [keyboardContainer] + }; + google.ime.chrome.inputview.onLayoutLoaded(data); +}) (); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/emoji_layout.js b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/emoji_layout.js new file mode 100644 index 0000000..a4fa8bc --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/emoji_layout.js @@ -0,0 +1,140 @@ +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. +// limitations under the License. +// See the License for the specific language governing permissions and +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// distributed under the License is distributed on an "AS-IS" BASIS, +// Unless required by applicable law or agreed to in writing, software +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// You may obtain a copy of the License at +// you may not use this file except in compliance with the License. +// Licensed under the Apache License, Version 2.0 (the "License"); +// +goog.require('i18n.input.chrome.inputview.Css'); +goog.require('i18n.input.chrome.inputview.elements.ElementType'); +goog.require('i18n.input.chrome.inputview.layouts.util'); + +(function() { + var util = i18n.input.chrome.inputview.layouts.util; + var ElementType = i18n.input.chrome.inputview.elements.ElementType; + util.setPrefix('emoji-k-'); + var ids = ['recent', 'favorits', 'faces', 'emoticon', + 'symbol', 'nature', 'places', 'objects']; + // TODO: we should avoid using hard-coded number. + var pages = [1, 3, 6, 4, 6, 7, 5, 8]; + var emojiPage = {}; + var emojiList = []; + // Tab Rows + var tabRows = []; + var baseKeySpec = { + 'widthInWeight': 1, + 'heightInWeight': 1 + }; + + // The top tabbar row. + var keySequenceOf9 = util.createKeySequence(baseKeySpec, 9); + var rightKey = util.createKey({ + 'widthInWeight': 1.037, + 'heightInWeight': 1 + }); + var tabBar = util.createLinearLayout({ + 'id': 'tabBar', + 'children': [keySequenceOf9, rightKey], + 'iconCssClass': i18n.input.chrome.inputview.Css.LINEAR_LAYOUT_BORDER + }); + + // The emoji pages. + baseKeySpec = { + 'widthInWeight': 1, + 'heightInWeight': 1.67 + }; + var totalPages = 0; + for (var i = 0; i < pages.length; i++) { + totalPages += pages[i]; + } + for (var i = 0; i < totalPages; i++) { + var rows = []; + for (var j = 0; j < 3; j++) { + keySequenceOf9 = util.createKeySequence(baseKeySpec, 9); + var row = util.createLinearLayout({ + 'id': 'page-' + i + '-row-' + j, + 'children': [keySequenceOf9], + 'iconCssClass': i18n.input.chrome.inputview.Css.LINEAR_LAYOUT_BORDER + }); + rows.push(row); + } + emojiPage = util.createVerticalLayout({ + 'id': 'page-' + i, + 'children': rows + }); + emojiList.push(emojiPage); + } + var emojiRows = util.createExtendedLayout({ + 'id': 'emojiRows', + 'children': emojiList + }); + var emojiSlider = util.createVerticalLayout({ + 'id': 'emojiSlider', + 'children': [emojiRows] + }); + + // The right side keys. + baseKeySpec = { + 'widthInWeight': 1.037, + 'heightInWeight': 1.67 + }; + var sideKeys = util.createVerticalLayout({ + 'id': 'sideKeys', + 'children': [util.createKeySequence(baseKeySpec, 3)] + }); + + var rowsAndSideKeys = util.createLinearLayout({ + 'id': 'rowsAndSideKeys', + 'children': [emojiSlider, sideKeys] + }); + + var backToKeyboardKey = util.createKey({ + 'widthInWeight': 2, + 'heightInWeight': 1.67 + }); + var spaceKey = util.createKey({ + 'widthInWeight': 7, + 'heightInWeight': 1.67 + }); + var hideKeyboardKey = util.createKey({ + 'widthInWeight': 1.037, + 'heightInWeight': 1.67 + }); + var spaceRow = util.createLinearLayout({ + 'id': 'emojiSpaceRow', + 'children': [backToKeyboardKey, spaceKey, hideKeyboardKey] + }); + + var emojiView = util.createVerticalLayout({ + 'id': 'emojiView', + 'children': [tabBar, rowsAndSideKeys, spaceRow] + }); + + // Keyboard view. + var keyboardView = util.createLayoutView({ + 'id': 'keyboardView', + 'children': [emojiView], + 'widthPercent': 100, + 'heightPercent': 100 + }); + + + var keyboardContainer = util.createLinearLayout({ + 'id': 'keyboardContainer', + 'children': [keyboardView] + }); + + var data = { + 'disableCandidateView': true, + 'layoutID': 'm-emoji', + 'children': [keyboardContainer] + }; + + google.ime.chrome.inputview.onLayoutLoaded(data); +}) (); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/handwriting_layout.js b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/handwriting_layout.js new file mode 100644 index 0000000..90f6ae2 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/handwriting_layout.js @@ -0,0 +1,79 @@ +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. +// limitations under the License. +// See the License for the specific language governing permissions and +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// distributed under the License is distributed on an "AS-IS" BASIS, +// Unless required by applicable law or agreed to in writing, software +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// You may obtain a copy of the License at +// you may not use this file except in compliance with the License. +// Licensed under the Apache License, Version 2.0 (the "License"); +// +goog.require('i18n.input.chrome.inputview.layouts.material.util'); + + +(function() { + var util = i18n.input.chrome.inputview.layouts.material.util; + util.setPrefix('handwriting-k-'); + + var verticalRows = []; + var baseKeySpec = { + 'widthInWeight': 1, + 'heightInWeight': 1 + }; + for (var i = 0; i < 4; i++) { + verticalRows.push(util.createKey(baseKeySpec)); + } + var leftSideColumn = util.createVerticalLayout({ + 'id': 'leftSideColumn', + 'children': verticalRows + }); + + verticalRows = []; + for (var i = 0; i < 4; i++) { + verticalRows.push(util.createKey(baseKeySpec)); + } + var rightSideColumn = util.createVerticalLayout({ + 'id': 'rightSideColumn', + 'children': verticalRows + }); + + var spec = { + 'id': 'canvasView', + 'widthInWeight': 11.2, + 'heightInWeight': 4 + }; + + var canvasView = util.createCanvasView(spec); + var panelView = util.createHandwritingLayout({ + 'id': 'panelView', + 'children': [canvasView, leftSideColumn, rightSideColumn] + }); + + // Keyboard view. + var keyboardView = util.createLayoutView({ + 'id': 'keyboardView', + 'children': [panelView], + 'widthPercent': 100, + 'heightPercent': 100 + }); + + + var keyboardContainer = util.createLinearLayout({ + 'id': 'keyboardContainer', + 'children': [keyboardView] + }); + + var data = { + 'layoutID': 'm-handwriting', + 'heightPercentOfWidth': 0.275, + 'minimumHeight': 350, + 'fullHeightInWeight': 5.6, + 'children': [keyboardContainer] + }; + + google.ime.chrome.inputview.onLayoutLoaded(data); + +}) (); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/jpkbd_layout.js b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/jpkbd_layout.js new file mode 100644 index 0000000..962dfb4 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/jpkbd_layout.js @@ -0,0 +1,101 @@ +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. +// limitations under the License. +// See the License for the specific language governing permissions and +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// distributed under the License is distributed on an "AS-IS" BASIS, +// Unless required by applicable law or agreed to in writing, software +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// You may obtain a copy of the License at +// you may not use this file except in compliance with the License. +// Licensed under the Apache License, Version 2.0 (the "License"); +// +goog.require('i18n.input.chrome.inputview.ConditionName'); +goog.require('i18n.input.chrome.inputview.layouts.RowsOfJP'); +goog.require('i18n.input.chrome.inputview.layouts.util'); + + +(function() { + var ConditionName = i18n.input.chrome.inputview.ConditionName; + var util = i18n.input.chrome.inputview.layouts.util; + i18n.input.chrome.inputview.layouts.util.setPrefix('jpkbd-k-'); + + var topFourRows = i18n.input.chrome.inputview.layouts.RowsOfJP.create(); + + // Creates the space row. + var globeKey = util.createKey({ + 'condition': ConditionName.SHOW_GLOBE_OR_SYMBOL, + 'widthInWeight': 1 + }); + var menuKey = util.createKey({ + 'condition': ConditionName.SHOW_MENU, + 'widthInWeight': 1 + }); + var ctrlKey = util.createKey({ + 'widthInWeight': 1 + }); + var altKey = util.createKey({ + 'widthInWeight': 1 + }); + + var leftIMEKey = util.createKey({'widthInWeight': 1}); + var spaceKey = util.createKey({'widthInWeight': 6}); + var rightIMEKey = util.createKey({'widthInWeight': 1}); + + // If globeKey or altGrKey is not shown, give its weight to space key. + globeKey['spec']['giveWeightTo'] = spaceKey['spec']['id']; + menuKey['spec']['giveWeightTo'] = spaceKey['spec']['id']; + + var leftKey = util.createKey({ + 'widthInWeight': 1 + }); + var rightKey = util.createKey({ + 'widthInWeight': 1 + }); + var hideKeyboardKey = util.createKey({ + 'widthInWeight': 1 + }); + + var keys = [ + globeKey, + menuKey, + ctrlKey, + altKey, + leftIMEKey, + spaceKey, + rightIMEKey, + leftKey, + rightKey, + hideKeyboardKey + ]; + + var spaceRow = util.createLinearLayout({ + 'id': 'spaceKeyrow', + 'children': keys + }); + + + // Keyboard view. + var keyboardView = i18n.input.chrome.inputview.layouts.util.createLayoutView({ + 'id': 'keyboardView', + 'children': [topFourRows, spaceRow], + 'widthPercent': 100, + 'heightPercent': 100 + }); + + var keyboardContainer = i18n.input.chrome.inputview.layouts.util. + createLinearLayout({ + 'id': 'keyboardContainer', + 'children': [keyboardView] + }); + + var data = { + 'layoutID': 'm-jpkbd', + 'widthInWeight': 15, + 'children': [keyboardContainer] + }; + + google.ime.chrome.inputview.onLayoutLoaded(data); + +}) (); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/kokbd_layout.js b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/kokbd_layout.js new file mode 100644 index 0000000..24869c4 --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/layouts/material/kokbd_layout.js @@ -0,0 +1,110 @@ +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. +// limitations under the License. +// See the License for the specific language governing permissions and +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// distributed under the License is distributed on an "AS-IS" BASIS, +// Unless required by applicable law or agreed to in writing, software +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// You may obtain a copy of the License at +// you may not use this file except in compliance with the License. +// Licensed under the Apache License, Version 2.0 (the "License"); +// + +goog.require('i18n.input.chrome.inputview.ConditionName'); +goog.require('i18n.input.chrome.inputview.layouts.RowsOf101'); +goog.require('i18n.input.chrome.inputview.layouts.util'); + + +(function() { + var ConditionName = i18n.input.chrome.inputview.ConditionName; + var util = i18n.input.chrome.inputview.layouts.util; + + util.setPrefix('kokbd-k-'); + + /** + * Creates the spaceKey row. + * + * @return {!Object} The spaceKey row. + */ + var createSpaceRow = function() { + var globeKey = util.createKey({ + 'condition': ConditionName.SHOW_GLOBE_OR_SYMBOL, + 'widthInWeight': 1 + }); + var menuKey = util.createKey({ + 'condition': ConditionName.SHOW_MENU, + 'widthInWeight': 1 + }); + var ctrlKey = util.createKey({ + 'widthInWeight': 1 + }); + var altKey = util.createKey({ + 'widthInWeight': 1 + }); + // Creates the Hangja switcher key in the end and insert it before the + // Space key. + var hangjaSwitcher = util.createKey({ + 'widthInWeight': 1 + }); + var spaceKey = util.createKey({ + 'widthInWeight': 4.87 + }); + var enSwitcher = util.createKey({ + 'widthInWeight': 1, + 'condition': ConditionName.SHOW_EN_SWITCHER_KEY + }); + var altGrKey = util.createKey({ + 'widthInWeight': 1.25, + 'condition': ConditionName.SHOW_ALTGR + }); + // If globeKey or altGrKey is not shown, give its weight to space key. + globeKey['spec']['giveWeightTo'] = spaceKey['spec']['id']; + menuKey['spec']['giveWeightTo'] = spaceKey['spec']['id']; + altGrKey['spec']['giveWeightTo'] = spaceKey['spec']['id']; + hangjaSwitcher['spec']['giveWeightTo'] = spaceKey['spec']['id']; + + var leftKey = util.createKey({ + 'widthInWeight': 1.08 + }); + var rightKey = util.createKey({ + 'widthInWeight': 1.08 + }); + var hideKeyboardKey = util.createKey({ + 'widthInWeight': 1.08 + }); + var spaceKeyRow = util.createLinearLayout({ + 'id': 'spaceKeyrow', + 'children': [globeKey, menuKey, ctrlKey, altKey, hangjaSwitcher, + spaceKey, enSwitcher, altGrKey, leftKey, rightKey, + hideKeyboardKey] + }); + return spaceKeyRow; + }; + + var topFourRows = i18n.input.chrome.inputview.layouts.RowsOf101.create(); + var spaceRow = createSpaceRow(); + + // Keyboard view. + var keyboardView = util.createLayoutView({ + 'id': 'keyboardView', + 'children': [topFourRows, spaceRow], + 'widthPercent': 100, + 'heightPercent': 100 + }); + + var keyboardContainer = util.createLinearLayout({ + 'id': 'keyboardContainer', + 'children': [keyboardView] + }); + + var data = { + 'layoutID': 'm-kokbd', + 'widthInWeight': 15, + 'children': [keyboardContainer] + }; + + google.ime.chrome.inputview.onLayoutLoaded(data); + +}) (); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/m17nmodel.js b/third_party/google_input_tools/src/chrome/os/inputview/m17nmodel.js index 3082006..645a32f 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/m17nmodel.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/m17nmodel.js @@ -17,6 +17,7 @@ goog.require('goog.events.EventHandler'); goog.require('goog.events.EventTarget'); goog.require('i18n.input.chrome.inputview.SpecNodeName'); goog.require('i18n.input.chrome.inputview.content.util'); +goog.require('i18n.input.chrome.inputview.events.ConfigLoadedEvent'); goog.require('i18n.input.chrome.vk.KeyCode'); goog.require('i18n.input.chrome.vk.Model'); diff --git a/third_party/google_input_tools/src/chrome/os/inputview/sounds/auto_correction.wav b/third_party/google_input_tools/src/chrome/os/inputview/sounds/auto_correction.wav Binary files differnew file mode 100644 index 0000000..aa54b4c --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/sounds/auto_correction.wav diff --git a/third_party/google_input_tools/src/chrome/os/inputview/sounds/voice_recog_end.wav b/third_party/google_input_tools/src/chrome/os/inputview/sounds/voice_recog_end.wav Binary files differnew file mode 100644 index 0000000..aa54b4c --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/sounds/voice_recog_end.wav diff --git a/third_party/google_input_tools/src/chrome/os/inputview/sounds/voice_recog_start.wav b/third_party/google_input_tools/src/chrome/os/inputview/sounds/voice_recog_start.wav Binary files differnew file mode 100644 index 0000000..aa54b4c --- /dev/null +++ b/third_party/google_input_tools/src/chrome/os/inputview/sounds/voice_recog_start.wav diff --git a/third_party/google_input_tools/src/chrome/os/inputview/util.js b/third_party/google_input_tools/src/chrome/os/inputview/util.js index e29accd..009f54e 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/util.js +++ b/third_party/google_input_tools/src/chrome/os/inputview/util.js @@ -329,4 +329,62 @@ util.getConfigName = function(keyboardCode) { return keyboardCode.replace(/\..*$/, ''); }; + +/** + * Checks that the word is a valid delete from the old to new context. + * + * @param {string} oldContext The old context. + * @param {string} newContext The new context. + * @param {string} deletionCandidate A possible word deletion. + * + * @return {boolean} Whether the deletion was valid. + */ +util.isPossibleDelete = function( + oldContext, newContext, deletionCandidate) { + // Check that deletionCandidate exists in oldContext. We don't check if it's a + // tail since our heuristic may have trimmed whitespace. + var rootEnd = oldContext.lastIndexOf(deletionCandidate); + if (rootEnd != -1) { + // Check that remaining text in root persisted in newContext. + var root = oldContext.slice(0, rootEnd); + return root == newContext.slice(-rootEnd); + } + return false; +}; + + +/** + * Checks whether a letter deletion would cause the observed context transform. + * + * @param {string} oldContext The old context. + * @param {string} newContext The new context. + * + * @return {boolean} Whether the transform is valid. + */ +util.isLetterDelete = function(oldContext, newContext) { + if (oldContext == '') { + return false; + } + // Handle buffer overflow. + if (oldContext.length == newContext.length) { + return util.isLetterDelete(oldContext, newContext.slice(1)); + } + return oldContext.length == newContext.length + 1 && + oldContext.indexOf(newContext) == 0; +}; + + +/** + * Checks whether a letter restoration would cause the observed context + * transform. + * + * @param {string} oldContext The old context. + * @param {string} newContext The new context. + * + * @return {boolean} Whether the transform is valid. + */ +util.isLetterRestore = function(oldContext, newContext) { + return util.isLetterDelete(newContext, oldContext); +}; + }); // goog.scope diff --git a/third_party/google_input_tools/src/chrome/os/message/name.js b/third_party/google_input_tools/src/chrome/os/message/name.js index 83bf379..42817612 100644 --- a/third_party/google_input_tools/src/chrome/os/message/name.js +++ b/third_party/google_input_tools/src/chrome/os/message/name.js @@ -21,6 +21,7 @@ goog.provide('i18n.input.chrome.message.Name'); */ i18n.input.chrome.message.Name = { ALT_KEY: 'altKey', + ANCHOR: 'anchor', CANDIDATE: 'candidate', CANDIDATES: 'candidates', CANDIDATE_ID: 'candidateID', @@ -31,6 +32,7 @@ i18n.input.chrome.message.Name = { CTRL_KEY: 'ctrlKey', CURSOR: 'cursor', ENGINE_ID: 'engineID', + FOCUS: 'focus', HEIGHT: 'height', ID: 'id', IS_AUTOCORRECT: 'isAutoCorrect', diff --git a/third_party/google_input_tools/src/chrome/os/inputview/soundcontroller.js b/third_party/google_input_tools/src/chrome/os/soundcontroller.js index 19b7024..7b57e3b 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/soundcontroller.js +++ b/third_party/google_input_tools/src/chrome/os/soundcontroller.js @@ -1,4 +1,4 @@ -// Copyright 2014 The ChromeOS IME Authors. All Rights Reserved. +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. // limitations under the License. // See the License for the specific language governing permissions and // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -11,7 +11,7 @@ // you may not use this file except in compliance with the License. // Licensed under the Apache License, Version 2.0 (the "License"); // -goog.provide('i18n.input.chrome.inputview.SoundController'); +goog.provide('i18n.input.chrome.SoundController'); goog.require('goog.Disposable'); goog.require('goog.dom'); @@ -25,40 +25,43 @@ var keyToSoundIdOnKeyUp = {}; var keyToSoundIdOnKeyRepeat = {}; + /** * Sound controller for the keyboard. * * @param {!boolean} enabled Whether sounds is enabled by default. - * @param {?number} opt_volume The default volume for sound tracks. + * @param {?number=} opt_volume The default volume for sound tracks. * @constructor * @extends {goog.Disposable} */ -i18n.input.chrome.inputview.SoundController = function(enabled, opt_volume) { +i18n.input.chrome.SoundController = function(enabled, opt_volume) { /** * Collection of all the sound pools. * - * @type {!Object.<string, !Object>} + * @private {!Object.<string, !Object>} */ this.sounds_ = {}; + /** @private {boolean} */ this.enabled_ = enabled; /** * The default volume for all audio tracks. Tracks with volume 0 will be * skipped. * - * @type {number} + * @private {number} */ this.volume_ = opt_volume || this.DEFAULT_VOLUME; - if (enabled) + if (enabled) { this.initialize(); + } }; -goog.inherits(i18n.input.chrome.inputview.SoundController, goog.Disposable); +goog.inherits(i18n.input.chrome.SoundController, goog.Disposable); -var Controller = i18n.input.chrome.inputview.SoundController; +var Controller = i18n.input.chrome.SoundController; /** @@ -73,17 +76,24 @@ Controller.prototype.POOL_SIZE = 10; Controller.prototype.DEFAULT_VOLUME = 0.6; +/** @private {boolean} */ +Controller.prototype.initialized_ = false; + + /** * Initializes the sound controller. */ Controller.prototype.initialize = function() { - for (var sound in Sounds) { + if (!this.initialized_) { + for (var sound in Sounds) { this.addSound_(Sounds[sound]); + } + keyToSoundIdOnKeyUp[ElementType.BACKSPACE_KEY] = Sounds.NONE; + keyToSoundIdOnKeyUp[ElementType.ENTER_KEY] = Sounds.RETURN; + keyToSoundIdOnKeyUp[ElementType.SPACE_KEY] = Sounds.SPACEBAR; + keyToSoundIdOnKeyRepeat[ElementType.BACKSPACE_KEY] = Sounds.DELETE; + this.initialized_ = true; } - keyToSoundIdOnKeyUp[ElementType.BACKSPACE_KEY] = Sounds.NONE; - keyToSoundIdOnKeyUp[ElementType.ENTER_KEY] = Sounds.RETURN; - keyToSoundIdOnKeyUp[ElementType.SPACE_KEY] = Sounds.SPACEBAR; - keyToSoundIdOnKeyRepeat[ElementType.BACKSPACE_KEY] = Sounds.DELETE; }; @@ -137,8 +147,19 @@ Controller.prototype.setVolume = function(soundId, volume) { */ Controller.prototype.setEnabled = function(enabled) { this.enabled_ = enabled; - if (this.enabled_) + if (this.enabled_) { this.initialize(); + } +}; + + +/** + * Gets the flag whether sound controller is enabled or not. + * + * @return {!boolean} + */ +Controller.prototype.getEnabled = function() { + return this.enabled_; }; @@ -159,12 +180,18 @@ Controller.prototype.setMasterVolume = function(volume) { * Plays the specified sound. * * @param {string} soundId The id of the audio tag. - * @private + * @param {boolean=} opt_force Force to play sound whatever the enabled flags is + * turned on. */ -Controller.prototype.playSound_ = function(soundId) { +Controller.prototype.playSound = function(soundId, opt_force) { + if (opt_force) { + this.initialize(); + } // If master volume is zero, ignore the request. - if (!this.enabled_ || this.volume_ == 0 || soundId == Sounds.NONE) + if (!opt_force && !this.enabled_ || this.volume_ == 0 || + soundId == Sounds.NONE) { return; + } var pool = this.sounds_[soundId]; if (!pool) { console.error('Cannot find sound: ' + soundId); @@ -185,25 +212,25 @@ Controller.prototype.playSound_ = function(soundId) { * * @param {ElementType} key The key released. */ - Controller.prototype.onKeyUp = function(key) { +Controller.prototype.onKeyUp = function(key) { var sound = keyToSoundIdOnKeyUp[key] || Sounds.STANDARD; - this.playSound_(sound); - }; + this.playSound(sound); +}; - /** +/** * On key repeat. * * @param {ElementType} key The key that is being repeated. */ - Controller.prototype.onKeyRepeat = function(key) { +Controller.prototype.onKeyRepeat = function(key) { var sound = keyToSoundIdOnKeyRepeat[key] || Sounds.NONE; - this.playSound_(sound); - }; + this.playSound(sound); +}; - /** @override */ - Controller.prototype.disposeInternal = function() { +/** @override */ +Controller.prototype.disposeInternal = function() { for (var soundId in this.sounds_) { var pool = this.sounds_[soundId]; for (var i = 0; i < pool.length; i++) { @@ -221,6 +248,6 @@ Controller.prototype.playSound_ = function(soundId) { keyToSoundIdOnKeyUp = {}; keyToSoundIdOnKeyRepeat = {}; goog.base(this, 'disposeInternal'); - }; +}; }); // goog.scope diff --git a/third_party/google_input_tools/src/chrome/os/inputview/sounds.js b/third_party/google_input_tools/src/chrome/os/sounds.js index ea47003..e98f10fe 100644 --- a/third_party/google_input_tools/src/chrome/os/inputview/sounds.js +++ b/third_party/google_input_tools/src/chrome/os/sounds.js @@ -1,4 +1,4 @@ -// Copyright 2014 The ChromeOS IME Authors. All Rights Reserved. +// Copyright 2015 The ChromeOS IME Authors. All Rights Reserved. // limitations under the License. // See the License for the specific language governing permissions and // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -24,6 +24,9 @@ i18n.input.chrome.inputview.Sounds = { RETURN: 'keypress-return', SPACEBAR: 'keypress-spacebar', STANDARD: 'keypress-standard', - NONE: 'none' + NONE: 'none', + VOICE_RECOG_START: 'voice_recog_start', + VOICE_RECOG_END: 'voice_recog_end', + AUTO_CORRECTION: 'auto_correction' }; diff --git a/third_party/google_input_tools/src/chrome/os/statistics.js b/third_party/google_input_tools/src/chrome/os/statistics.js index 59d3761..551f96e 100644 --- a/third_party/google_input_tools/src/chrome/os/statistics.js +++ b/third_party/google_input_tools/src/chrome/os/statistics.js @@ -80,6 +80,24 @@ Statistics.prototype.autoCorrectLevel_ = 0; /** + * Whether recording for physical keyboard specially. + * + * @private {boolean} + */ +Statistics.prototype.isPhysicalKeyboard_ = false; + + +/** + * Sets whether recording for physical keyboard. + * + * @param {boolean} isPhysicalKeyboard . + */ +Statistics.prototype.setPhysicalKeyboard = function(isPhysicalKeyboard) { + this.isPhysicalKeyboard_ = isPhysicalKeyboard; +}; + + +/** * Sets the current input method id. * * @param {string} inputMethodId . @@ -160,12 +178,15 @@ Statistics.prototype.recordCommit = function( return; } + // For latin transliteration, record the logs under the name with 'Pk' which + // means Physical Keyboard. + var name = this.isPhysicalKeyboard_ ? + 'InputMethod.PkCommit.' : 'InputMethod.Commit.'; + var self = this; var record = function(suffix) { - self.recordEnum('InputMethod.Commit.Index' + suffix, - targetIndex + 1, 20); - self.recordEnum('InputMethod.Commit.Type' + suffix, - commitType, CommitTypes.MAX); + self.recordEnum(name + 'Index' + suffix, targetIndex + 1, 20); + self.recordEnum(name + 'Type' + suffix, commitType, CommitTypes.MAX); }; record(''); |