summaryrefslogtreecommitdiffstats
path: root/third_party/google_input_tools
diff options
context:
space:
mode:
authorwnwen <wnwen@chromium.org>2015-02-04 05:29:42 -0800
committerCommit bot <commit-bot@chromium.org>2015-02-04 13:30:56 +0000
commitd3dd7390552c77952ed24a6f3e9100728cef1191 (patch)
tree04c6d977d9ea37170903de5dedabf340cabb3e35 /third_party/google_input_tools
parentae8232dfef2a097fef675e4ec855c1a65e9f7a82 (diff)
downloadchromium_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}
Diffstat (limited to 'third_party/google_input_tools')
-rw-r--r--third_party/google_input_tools/README.chromium2
-rw-r--r--third_party/google_input_tools/inputview.gypi9
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/am/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/ar/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/bg/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/bn/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/ca/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/cs/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/da/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/de/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/el/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/en/messages.json21
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/en_GB/messages.json21
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/es/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/es_419/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/et/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/fa/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/fi/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/fil/messages.json21
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/fr/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/gu/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/hi/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/hr/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/hu/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/id/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/it/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/iw/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/ja/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/kn/messages.json25
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/ko/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/lt/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/lv/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/ml/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/mr/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/ms/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/nb/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/nl/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/pl/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/pt_BR/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/pt_PT/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/ro/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/ru/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/sk/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/sl/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/sr/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/sv/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/sw/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/ta/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/te/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/th/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/tr/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/uk/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/vi/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/zh_CN/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/_locales/zh_TW/messages.json23
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/adapter.js136
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/common.css126
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/config/material/emoji_data.js557
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/config/material/hwt_data.js75
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/config/util.js15
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/controller.js175
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/css.js22
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/content/backspacekey.js46
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/content/candidateview.js151
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/content/characterkey.js8
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/content/charactermodel.js17
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/content/emojiview.js47
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/content/keysetview.js104
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/content/material/spacekey.js11
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/content/menuview.js35
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/content/selectview.js126
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/content/swipeview.js788
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/content/switcherkey.js8
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/content/tabbarkey.js12
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/content/toolbarbutton.js108
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/content/voiceview.js48
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/elementtype.js14
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/layout/extendedlayout.js2
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/layout/handwritinglayout.js9
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/elements/layout/linearlayout.js8
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/events.js14
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/globalflags.js (renamed from third_party/google_input_tools/src/chrome/os/message/contenttype.js)20
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/handler/pointerhandler.js3
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/images/bold.pngbin0 -> 393 bytes
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/images/copy.pngbin0 -> 258 bytes
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/images/cut.pngbin0 -> 669 bytes
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/images/italic.pngbin0 -> 282 bytes
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/images/material/arrow_down_for_floating.pngbin292 -> 299 bytes
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/images/paste.pngbin0 -> 333 bytes
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/images/redo.pngbin0 -> 480 bytes
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/images/select_all.pngbin0 -> 242 bytes
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/images/underline.pngbin0 -> 371 bytes
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/images/undo.pngbin0 -> 473 bytes
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/keyboardcontainer.js40
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/layouts/emoji_layout.js8
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/layouts/handwriting_layout.js1
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/layouts/material/101kbd_layout.js2
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/layouts/material/102kbd_layout.js2
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_azerty_layout.js49
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_nordic_layout.js49
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_numberpad_layout.js51
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/layouts/material/compactkbd_zhuyin_layout.js93
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/layouts/material/emoji_layout.js140
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/layouts/material/handwriting_layout.js79
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/layouts/material/jpkbd_layout.js101
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/layouts/material/kokbd_layout.js110
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/m17nmodel.js1
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/sounds/auto_correction.wavbin0 -> 21352 bytes
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/sounds/voice_recog_end.wavbin0 -> 21352 bytes
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/sounds/voice_recog_start.wavbin0 -> 21352 bytes
-rw-r--r--third_party/google_input_tools/src/chrome/os/inputview/util.js58
-rw-r--r--third_party/google_input_tools/src/chrome/os/message/name.js2
-rw-r--r--third_party/google_input_tools/src/chrome/os/soundcontroller.js (renamed from third_party/google_input_tools/src/chrome/os/inputview/soundcontroller.js)83
-rw-r--r--third_party/google_input_tools/src/chrome/os/sounds.js (renamed from third_party/google_input_tools/src/chrome/os/inputview/sounds.js)7
-rw-r--r--third_party/google_input_tools/src/chrome/os/statistics.js29
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 &nbsp.
+ // Convert &nbsp 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
new file mode 100644
index 0000000..8753bbd
--- /dev/null
+++ b/third_party/google_input_tools/src/chrome/os/inputview/images/bold.png
Binary files differ
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
new file mode 100644
index 0000000..074ea88
--- /dev/null
+++ b/third_party/google_input_tools/src/chrome/os/inputview/images/copy.png
Binary files differ
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
new file mode 100644
index 0000000..cd27ee1
--- /dev/null
+++ b/third_party/google_input_tools/src/chrome/os/inputview/images/cut.png
Binary files differ
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
new file mode 100644
index 0000000..38bc789
--- /dev/null
+++ b/third_party/google_input_tools/src/chrome/os/inputview/images/italic.png
Binary files differ
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
index 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
Binary files differ
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
new file mode 100644
index 0000000..3014ad6
--- /dev/null
+++ b/third_party/google_input_tools/src/chrome/os/inputview/images/paste.png
Binary files differ
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
new file mode 100644
index 0000000..6534b7b
--- /dev/null
+++ b/third_party/google_input_tools/src/chrome/os/inputview/images/redo.png
Binary files differ
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
new file mode 100644
index 0000000..02a62e4
--- /dev/null
+++ b/third_party/google_input_tools/src/chrome/os/inputview/images/select_all.png
Binary files differ
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
new file mode 100644
index 0000000..4a0e00f
--- /dev/null
+++ b/third_party/google_input_tools/src/chrome/os/inputview/images/underline.png
Binary files differ
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
new file mode 100644
index 0000000..818191c
--- /dev/null
+++ b/third_party/google_input_tools/src/chrome/os/inputview/images/undo.png
Binary files differ
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
new file mode 100644
index 0000000..aa54b4c
--- /dev/null
+++ b/third_party/google_input_tools/src/chrome/os/inputview/sounds/auto_correction.wav
Binary files differ
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
new file mode 100644
index 0000000..aa54b4c
--- /dev/null
+++ b/third_party/google_input_tools/src/chrome/os/inputview/sounds/voice_recog_end.wav
Binary files differ
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
new file mode 100644
index 0000000..aa54b4c
--- /dev/null
+++ b/third_party/google_input_tools/src/chrome/os/inputview/sounds/voice_recog_start.wav
Binary files differ
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('');