Index: third_party/google_input_tools/src/chrome/os/inputview/config/jp_data.js |
diff --git a/third_party/google_input_tools/src/chrome/os/inputview/config/jp_data.js b/third_party/google_input_tools/src/chrome/os/inputview/config/jp_data.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9899cb5661213564f977927c37fac21d182ddad9 |
--- /dev/null |
+++ b/third_party/google_input_tools/src/chrome/os/inputview/config/jp_data.js |
@@ -0,0 +1,315 @@ |
+// Copyright 2014 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('goog.array'); |
+goog.require('i18n.input.chrome.inputview.Css'); |
+goog.require('i18n.input.chrome.inputview.Direction'); |
+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 Css = i18n.input.chrome.inputview.Css; |
+ var Direction = i18n.input.chrome.inputview.Direction; |
+ var ElementType = i18n.input.chrome.inputview.elements.ElementType; |
+ var SpecNodeName = i18n.input.chrome.inputview.SpecNodeName; |
+ var util = i18n.input.chrome.inputview.content.util; |
+ |
+ |
+ /** |
+ * The physical key codes for Japanese keyboard. |
+ * |
+ * @type {!Array.<string>} |
+ */ |
+ var keyIds = [ |
+ 'Digit1', |
+ 'Digit2', |
+ 'Digit3', |
+ 'Digit4', |
+ 'Digit5', |
+ 'Digit6', |
+ 'Digit7', |
+ 'Digit8', |
+ 'Digit9', |
+ 'Digit0', |
+ 'Minus', |
+ 'Equal', |
+ 'IntlYen', |
+ |
+ 'KeyQ', |
+ 'KeyW', |
+ 'KeyE', |
+ 'KeyR', |
+ 'KeyT', |
+ 'KeyY', |
+ 'KeyU', |
+ 'KeyI', |
+ 'KeyO', |
+ 'KeyP', |
+ 'BracketLeft', |
+ 'BracketRight', |
+ |
+ 'KeyA', |
+ 'KeyS', |
+ 'KeyD', |
+ 'KeyF', |
+ 'KeyG', |
+ 'KeyH', |
+ 'KeyJ', |
+ 'KeyK', |
+ 'KeyL', |
+ 'Semicolon', |
+ 'Quote', |
+ 'Backslash', |
+ |
+ 'KeyZ', |
+ 'KeyX', |
+ 'KeyC', |
+ 'KeyV', |
+ 'KeyB', |
+ 'KeyN', |
+ 'KeyM', |
+ 'Comma', |
+ 'Period', |
+ 'Slash', |
+ 'IntlRo' |
+ ]; |
+ |
+ |
+ /** |
+ * Creates the Japanese keyset data. |
+ * |
+ * @param {!Array.<!Array.<string>>} keyCharacters The key characters. |
+ * @param {string} viewIdPrefix The prefix of the view. |
+ * @param {!Array.<!Array.<number>>} keyCodes The key codes. |
+ * @return {!Object} The key data. |
+ */ |
+ var createData = function(keyCharacters, viewIdPrefix, keyCodes) { |
+ var keyList = []; |
+ keyList.push(util.createIMESwitchKey('Toggle', '英漢', Css.JP_IME_SWITCH)); |
+ goog.array.forEach(keyCharacters, function(c, i) { |
+ var spec = {}; |
+ spec[SpecNodeName.ID] = keyIds[i]; |
+ spec[SpecNodeName.TYPE] = ElementType.CHARACTER_KEY; |
+ spec[SpecNodeName.CHARACTERS] = c; |
+ spec[SpecNodeName.KEY_CODE] = keyCodes[i]; |
+ var key = util.createKey(spec); |
+ keyList.push(key); |
+ }); |
+ |
+ goog.array.insertAt(keyList, util.createBackspaceKey(), 14); |
+ goog.array.insertAt(keyList, util.createTabKey(), 15); |
+ goog.array.insertAt(keyList, util.createCapslockKey(), 28); |
+ goog.array.insertAt(keyList, util.createEnterKey(), 41); |
+ goog.array.insertAt(keyList, util.createShiftKey(true), 42); |
+ keyList.push(util.createShiftKey(false)); |
+ keyList.push(util.createGlobeKey()); |
+ keyList.push(util.createMenuKey()); |
+ keyList.push(util.createCtrlKey()); |
+ keyList.push(util.createAltKey()); |
+ keyList.push(util.createIMESwitchKey( |
+ 'NonConvert', '英数', Css.JP_IME_SWITCH)); |
+ keyList.push(util.createSpaceKey()); |
+ keyList.push(util.createIMESwitchKey('Convert', 'かな', Css.JP_IME_SWITCH)); |
+ keyList.push(util.createArrowKey(Direction.LEFT)); |
+ keyList.push(util.createArrowKey(Direction.RIGHT)); |
+ keyList.push(util.createHideKeyboardKey()); |
+ |
+ var mapping = {}; |
+ goog.array.forEach(keyList, function(key, i) { |
+ mapping[key['spec'][SpecNodeName.ID]] = viewIdPrefix + i; |
+ }); |
+ |
+ var result = []; |
+ result[SpecNodeName.KEY_LIST] = keyList; |
+ result[SpecNodeName.MAPPING] = mapping; |
+ result[SpecNodeName.LAYOUT] = 'jpkbd'; |
+ result[SpecNodeName.HAS_ALTGR_KEY] = false; |
+ result[SpecNodeName.HAS_COMPACT_KEYBOARD] = false; |
+ result[SpecNodeName.SHOW_MENU_KEY] = true; |
+ return result; |
+ }; |
+ |
+ var viewIdPrefix_ = 'jpkbd-k-'; |
+ var jpKeyCharacters = [ |
+ ['1', '!'], // AE01 |
+ ['2', '"'], // AE02 |
+ ['3', '#'], // AE03 |
+ ['4', '$'], // AE04 |
+ ['5', '%'], // AE05 |
+ ['6', '&'], // AE06 |
+ ['7', '\''],// AE07 |
+ ['8', '('], // AE08 |
+ ['9', ')'], // AE09 |
+ ['0', '0'], // AE10 |
+ ['-', '='], // AE11 |
+ ['^', '~'], // AE12 |
+ ['\\', '|'], // IntlYen |
+ |
+ ['q', 'Q'], // AD01 |
+ ['w', 'W'], // AD02 |
+ ['e', 'E'], // AD03 |
+ ['r', 'R'], // AD04 |
+ ['t', 'T'], // AD05 |
+ ['y', 'Y'], // AD06 |
+ ['u', 'U'], // AD07 |
+ ['i', 'I'], // AD08 |
+ ['o', 'O'], // AD09 |
+ ['p', 'P'], // AD10 |
+ ['@', '`'], // AD11 |
+ ['[', '{'], // AD12 |
+ |
+ ['a', 'A'], // AC01 |
+ ['s', 'S'], // AC02 |
+ ['d', 'D'], // AC03 |
+ ['f', 'F'], // AC04 |
+ ['g', 'G'], // AC05 |
+ ['h', 'H'], // AC06 |
+ ['j', 'J'], // AC07 |
+ ['k', 'K'], // AC08 |
+ ['l', 'L'], // AC09 |
+ [';', '+'], // AC10 |
+ [':', '*'], // AC11 |
+ [']', '}'], // BKSL |
+ |
+ ['z', 'Z'], // AB01 |
+ ['x', 'X'], // AB02 |
+ ['c', 'C'], // AB03 |
+ ['v', 'V'], // AB04 |
+ ['b', 'B'], // AB05 |
+ ['n', 'N'], // AB06 |
+ ['m', 'M'], // AB07 |
+ [',', '<'], // AB08 |
+ ['.', '>'], // AB09 |
+ ['/', '?'], // AB10 |
+ ['\\', '_'] // IntlRo |
+ ]; // 46 |
+ |
+ |
+ var keyCodes = [ |
+ 0x31, // AE01 |
+ 0x32, // AE02 |
+ 0x33, // AE03 |
+ 0x34, // AE04 |
+ 0x35, // AE05 |
+ 0x36, // AE06 |
+ 0x37, // AE07 |
+ 0x38, // AE08 |
+ 0x39, // AE09 |
+ 0x30, // AE10 |
+ 0xBD, // AE11 |
+ 0xBB, // AE12 |
+ 0xFF, // IntlYen |
+ |
+ 0x51, // AD01 |
+ 0x57, // AD02 |
+ 0x45, // AD03 |
+ 0x52, // AD04 |
+ 0x54, // AD05 |
+ 0x59, // AD06 |
+ 0x55, // AD07 |
+ 0x49, // AD08 |
+ 0x4F, // AD09 |
+ 0x50, // AD10 |
+ 0xDB, // AD11 |
+ 0xDD, // AD12 |
+ |
+ 0x41, // AC01 |
+ 0x53, // AC02 |
+ 0x44, // AC03 |
+ 0x46, // AC04 |
+ 0x47, // AC05 |
+ 0x48, // AC06 |
+ 0x4A, // AC07 |
+ 0x4B, // AC08 |
+ 0x4C, // AC09 |
+ 0xBA, // AC10 |
+ 0xDE, // AC11 |
+ 0xDC, // BKSL |
+ |
+ 0x5A, // AB01 |
+ 0x58, // AB02 |
+ 0x43, // AB03 |
+ 0x56, // AB04 |
+ 0x42, // AB05 |
+ 0x4E, // AB06 |
+ 0x4D, // AB07 |
+ 0xBC, // AB08 |
+ 0xBE, // AB09 |
+ 0xBF, // AB10 |
+ 0xC1 // IntlRo |
+ ]; // 46 |
+ var jpData = createData(jpKeyCharacters, viewIdPrefix_, keyCodes); |
+ jpData['id'] = 'jp'; |
+ google.ime.chrome.inputview.onConfigLoaded(jpData); |
+ |
+ |
+ // Creates kana keyset. |
+ var kanaKeyCharacters = [ |
+ ['\u306C'], // 'ぬ', AE01 |
+ ['\u3075'], // 'ふ', AE02 |
+ ['\u3042', '\u3041'], // 'あ', 'ぁ', AE03 |
+ ['\u3046', '\u3045'], // 'う', 'ぅ', AE04 |
+ ['\u3048', '\u3047'], // 'え', 'ぇ', AE05 |
+ ['\u304A', '\u3049'], // 'お', 'ぉ', AE06 |
+ ['\u3084', '\u3083'], // 'や', 'ゃ', AE07 |
+ ['\u3086', '\u3085'], // 'ゆ', 'ゅ', AE08 |
+ ['\u3088', '\u3087'], // 'よ', 'ょ', AE09 |
+ ['\u308F', '\u3092'], // 'わ', 'を', AE10 |
+ ['\u307B'], // 'ほ', AE11 |
+ ['\u3078'], // 'へ', AE12 |
+ ['\u30FC'], // 'ー', IntlYen |
+ |
+ ['\u305F'], // 'た', AD01 |
+ ['\u3066'], // 'て', AD02 |
+ ['\u3044', '\u3043'], // 'い', 'ぃ', AD03 |
+ ['\u3059'], // 'す', AD04 |
+ ['\u304B'], // 'か', AD05 |
+ ['\u3093'], // 'ん', AD06 |
+ ['\u306A'], // 'な', AD07 |
+ ['\u306B'], // 'に', AD08 |
+ ['\u3089'], // 'ら', AD09 |
+ ['\u305B'], // 'せ', AD10 |
+ ['\u309B'], // '゛', AD11 |
+ ['\u309C', '\u300C'], // '゜', '「', AD12 |
+ |
+ ['\u3061'], // 'ち', AC01 |
+ ['\u3068'], // 'と', AC02 |
+ ['\u3057'], // 'し', AC03 |
+ ['\u306F'], // 'は', AC04 |
+ ['\u304D'], // 'き', AC05 |
+ ['\u304F'], // 'く', AC06 |
+ ['\u307E'], // 'ま', AC07 |
+ ['\u306E'], // 'の', AC08 |
+ ['\u308A'], // 'り', AC09 |
+ ['\u308C'], // 'れ', AC10 |
+ ['\u3051'], // 'け', AC11 |
+ ['\u3080', '\u300D'], // 'む', '」', BKSL |
+ |
+ ['\u3064', '\u3063'], // 'つ', 'っ', AB01 |
+ ['\u3055'], // 'さ', AB02 |
+ ['\u305D'], // 'そ', AB03 |
+ ['\u3072'], // 'ひ', AB04 |
+ ['\u3053'], // 'こ', AB05 |
+ ['\u307F'], // 'み', AB06 |
+ ['\u3082'], // 'も', AB07 |
+ ['\u306D', '\u3001'], // 'ね', '、', AB08 |
+ ['\u308B', '\u3002'], // 'る', '。', AB09 |
+ ['\u3081', '\u30FB'], // 'め', '・', AB10 |
+ ['\u308D'] // 'ろ', IntlRo |
+ ]; // 46 |
+ |
+ var kanaData = createData(kanaKeyCharacters, viewIdPrefix_, keyCodes); |
+ kanaData['id'] = 'jp-kana'; |
+ google.ime.chrome.inputview.onConfigLoaded(kanaData); |
+})(); // goog.scope; |