us.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. module.exports = function(locale, platform, userAgent) {
  2. // general
  3. locale.bindKeyCode(3, ['cancel']);
  4. locale.bindKeyCode(8, ['backspace']);
  5. locale.bindKeyCode(9, ['tab']);
  6. locale.bindKeyCode(12, ['clear']);
  7. locale.bindKeyCode(13, ['enter']);
  8. locale.bindKeyCode(16, ['shift']);
  9. locale.bindKeyCode(17, ['ctrl']);
  10. locale.bindKeyCode(18, ['alt', 'menu']);
  11. locale.bindKeyCode(19, ['pause', 'break']);
  12. locale.bindKeyCode(20, ['capslock']);
  13. locale.bindKeyCode(27, ['escape', 'esc']);
  14. locale.bindKeyCode(32, ['space', 'spacebar']);
  15. locale.bindKeyCode(33, ['pageup']);
  16. locale.bindKeyCode(34, ['pagedown']);
  17. locale.bindKeyCode(35, ['end']);
  18. locale.bindKeyCode(36, ['home']);
  19. locale.bindKeyCode(37, ['left']);
  20. locale.bindKeyCode(38, ['up']);
  21. locale.bindKeyCode(39, ['right']);
  22. locale.bindKeyCode(40, ['down']);
  23. locale.bindKeyCode(41, ['select']);
  24. locale.bindKeyCode(42, ['printscreen']);
  25. locale.bindKeyCode(43, ['execute']);
  26. locale.bindKeyCode(44, ['snapshot']);
  27. locale.bindKeyCode(45, ['insert', 'ins']);
  28. locale.bindKeyCode(46, ['delete', 'del']);
  29. locale.bindKeyCode(47, ['help']);
  30. locale.bindKeyCode(145, ['scrolllock', 'scroll']);
  31. locale.bindKeyCode(187, ['equal', 'equalsign', '=']);
  32. locale.bindKeyCode(188, ['comma', ',']);
  33. locale.bindKeyCode(190, ['period', '.']);
  34. locale.bindKeyCode(191, ['slash', 'forwardslash', '/']);
  35. locale.bindKeyCode(192, ['graveaccent', '`']);
  36. locale.bindKeyCode(219, ['openbracket', '[']);
  37. locale.bindKeyCode(220, ['backslash', '\\']);
  38. locale.bindKeyCode(221, ['closebracket', ']']);
  39. locale.bindKeyCode(222, ['apostrophe', '\'']);
  40. // 0-9
  41. locale.bindKeyCode(48, ['zero', '0']);
  42. locale.bindKeyCode(49, ['one', '1']);
  43. locale.bindKeyCode(50, ['two', '2']);
  44. locale.bindKeyCode(51, ['three', '3']);
  45. locale.bindKeyCode(52, ['four', '4']);
  46. locale.bindKeyCode(53, ['five', '5']);
  47. locale.bindKeyCode(54, ['six', '6']);
  48. locale.bindKeyCode(55, ['seven', '7']);
  49. locale.bindKeyCode(56, ['eight', '8']);
  50. locale.bindKeyCode(57, ['nine', '9']);
  51. // numpad
  52. locale.bindKeyCode(96, ['numzero', 'num0']);
  53. locale.bindKeyCode(97, ['numone', 'num1']);
  54. locale.bindKeyCode(98, ['numtwo', 'num2']);
  55. locale.bindKeyCode(99, ['numthree', 'num3']);
  56. locale.bindKeyCode(100, ['numfour', 'num4']);
  57. locale.bindKeyCode(101, ['numfive', 'num5']);
  58. locale.bindKeyCode(102, ['numsix', 'num6']);
  59. locale.bindKeyCode(103, ['numseven', 'num7']);
  60. locale.bindKeyCode(104, ['numeight', 'num8']);
  61. locale.bindKeyCode(105, ['numnine', 'num9']);
  62. locale.bindKeyCode(106, ['nummultiply', 'num*']);
  63. locale.bindKeyCode(107, ['numadd', 'num+']);
  64. locale.bindKeyCode(108, ['numenter']);
  65. locale.bindKeyCode(109, ['numsubtract', 'num-']);
  66. locale.bindKeyCode(110, ['numdecimal', 'num.']);
  67. locale.bindKeyCode(111, ['numdivide', 'num/']);
  68. locale.bindKeyCode(144, ['numlock', 'num']);
  69. // function keys
  70. locale.bindKeyCode(112, ['f1']);
  71. locale.bindKeyCode(113, ['f2']);
  72. locale.bindKeyCode(114, ['f3']);
  73. locale.bindKeyCode(115, ['f4']);
  74. locale.bindKeyCode(116, ['f5']);
  75. locale.bindKeyCode(117, ['f6']);
  76. locale.bindKeyCode(118, ['f7']);
  77. locale.bindKeyCode(119, ['f8']);
  78. locale.bindKeyCode(120, ['f9']);
  79. locale.bindKeyCode(121, ['f10']);
  80. locale.bindKeyCode(122, ['f11']);
  81. locale.bindKeyCode(123, ['f12']);
  82. // secondary key symbols
  83. locale.bindMacro('shift + `', ['tilde', '~']);
  84. locale.bindMacro('shift + 1', ['exclamation', 'exclamationpoint', '!']);
  85. locale.bindMacro('shift + 2', ['at', '@']);
  86. locale.bindMacro('shift + 3', ['number', '#']);
  87. locale.bindMacro('shift + 4', ['dollar', 'dollars', 'dollarsign', '$']);
  88. locale.bindMacro('shift + 5', ['percent', '%']);
  89. locale.bindMacro('shift + 6', ['caret', '^']);
  90. locale.bindMacro('shift + 7', ['ampersand', 'and', '&']);
  91. locale.bindMacro('shift + 8', ['asterisk', '*']);
  92. locale.bindMacro('shift + 9', ['openparen', '(']);
  93. locale.bindMacro('shift + 0', ['closeparen', ')']);
  94. locale.bindMacro('shift + -', ['underscore', '_']);
  95. locale.bindMacro('shift + =', ['plus', '+']);
  96. locale.bindMacro('shift + [', ['opencurlybrace', 'opencurlybracket', '{']);
  97. locale.bindMacro('shift + ]', ['closecurlybrace', 'closecurlybracket', '}']);
  98. locale.bindMacro('shift + \\', ['verticalbar', '|']);
  99. locale.bindMacro('shift + ;', ['colon', ':']);
  100. locale.bindMacro('shift + \'', ['quotationmark', '\'']);
  101. locale.bindMacro('shift + !,', ['openanglebracket', '<']);
  102. locale.bindMacro('shift + .', ['closeanglebracket', '>']);
  103. locale.bindMacro('shift + /', ['questionmark', '?']);
  104. //a-z and A-Z
  105. for (var keyCode = 65; keyCode <= 90; keyCode += 1) {
  106. var keyName = String.fromCharCode(keyCode + 32);
  107. var capitalKeyName = String.fromCharCode(keyCode);
  108. locale.bindKeyCode(keyCode, keyName);
  109. locale.bindMacro('shift + ' + keyName, capitalKeyName);
  110. locale.bindMacro('capslock + ' + keyName, capitalKeyName);
  111. }
  112. // browser caveats
  113. var semicolonKeyCode = userAgent.match('Firefox') ? 59 : 186;
  114. var dashKeyCode = userAgent.match('Firefox') ? 173 : 189;
  115. var leftCommandKeyCode;
  116. var rightCommandKeyCode;
  117. if (platform.match('Mac') && (userAgent.match('Safari') || userAgent.match('Chrome'))) {
  118. leftCommandKeyCode = 91;
  119. rightCommandKeyCode = 93;
  120. } else if(platform.match('Mac') && userAgent.match('Opera')) {
  121. leftCommandKeyCode = 17;
  122. rightCommandKeyCode = 17;
  123. } else if(platform.match('Mac') && userAgent.match('Firefox')) {
  124. leftCommandKeyCode = 224;
  125. rightCommandKeyCode = 224;
  126. }
  127. locale.bindKeyCode(semicolonKeyCode, ['semicolon', ';']);
  128. locale.bindKeyCode(dashKeyCode, ['dash', '-']);
  129. locale.bindKeyCode(leftCommandKeyCode, ['command', 'windows', 'win', 'super', 'leftcommand', 'leftwindows', 'leftwin', 'leftsuper']);
  130. locale.bindKeyCode(rightCommandKeyCode, ['command', 'windows', 'win', 'super', 'rightcommand', 'rightwindows', 'rightwin', 'rightsuper']);
  131. // kill keys
  132. locale.setKillKey('command');
  133. };