mirror of
https://github.com/sipeed/NanoKVM.git
synced 2026-09-11 00:22:56 -05:00
Add Korean and Japanese virtual keyboard layouts
This commit is contained in:
@@ -46,8 +46,10 @@ export const VirtualKeyboard = () => {
|
||||
const languages = [
|
||||
{ value: 'en', label: 'English' },
|
||||
{ value: 'fr', label: 'French' },
|
||||
{ value: 'de', label: 'Deutsch' },
|
||||
{ value: 'ru', label: 'Russian' }
|
||||
{ value: 'de', label: 'German' },
|
||||
{ value: 'ru', label: 'Russian' },
|
||||
{ value: 'ko', label: 'Korean' },
|
||||
{ value: 'ja', label: 'Japanese' }
|
||||
];
|
||||
|
||||
useEffect(() => {
|
||||
@@ -67,7 +69,9 @@ export const VirtualKeyboard = () => {
|
||||
['en', 'default'],
|
||||
['ru', 'rus'],
|
||||
['de', 'qwertz'],
|
||||
['fr', 'azerty']
|
||||
['fr', 'azerty'],
|
||||
['ko', 'ko'],
|
||||
['ja', 'ja']
|
||||
]);
|
||||
|
||||
if (keyboardLanguage === 'en' && keyboardSystem === 'mac') {
|
||||
@@ -141,6 +145,16 @@ export const VirtualKeyboard = () => {
|
||||
return getKeycode(base);
|
||||
}
|
||||
|
||||
if (keyboardLanguage === 'ko' && key.endsWith('_ko')) {
|
||||
const base = key.replace('_ko', '');
|
||||
return getKeycode(base);
|
||||
}
|
||||
|
||||
if (keyboardLanguage === 'ja' && key.endsWith('_ja')) {
|
||||
const base = key.replace('_ja', '');
|
||||
return getKeycode(base);
|
||||
}
|
||||
|
||||
const specialKey = specialKeyMap.get(key);
|
||||
if (specialKey) {
|
||||
return getKeycode(specialKey);
|
||||
|
||||
@@ -44,6 +44,22 @@ export const keyboardOptions = {
|
||||
'{capslock} KeyQ_azerty KeyS_azerty KeyD_azerty KeyF_azerty KeyG_azerty KeyH_azerty KeyJ_azerty KeyK_azerty KeyL_azerty Semicolon_azerty Quote_azerty {enter}',
|
||||
'{shiftleft} KeyW_azerty KeyX_azerty KeyC_azerty KeyV_azerty KeyB_azerty KeyN_azerty KeyM_azerty Comma_azerty Period_azerty Slash_azerty {shiftright}',
|
||||
'{controlleft} {winleft} {altleft} {space} {altright} {winright} {menu} {controlright}'
|
||||
],
|
||||
ko: [
|
||||
'{escape} F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12',
|
||||
'Backquote_ko Digit1_ko Digit2_ko Digit3_ko Digit4_ko Digit5_ko Digit6_ko Digit7_ko Digit8_ko Digit9_ko Digit0_ko Minus_ko Equal_ko {backspace}',
|
||||
'{tab} KeyQ_ko KeyW_ko KeyE_ko KeyR_ko KeyT_ko KeyY_ko KeyU_ko KeyI_ko KeyO_ko KeyP_ko BracketLeft_ko BracketRight_ko Backslash_ko',
|
||||
'{capslock} KeyA_ko KeyS_ko KeyD_ko KeyF_ko KeyG_ko KeyH_ko KeyJ_ko KeyK_ko KeyL_ko Semicolon_ko Quote_ko {enter}',
|
||||
'{shiftleft} KeyZ_ko KeyX_ko KeyC_ko KeyV_ko KeyB_ko KeyN_ko KeyM_ko Comma_ko Period_ko Slash_ko {shiftright}',
|
||||
'{controlleft} {winleft} {altleft} {space} {altright} {winright} {menu} {controlright}'
|
||||
],
|
||||
ja: [
|
||||
'{escape} F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12',
|
||||
'Backquote_ja Digit1_ja Digit2_ja Digit3_ja Digit4_ja Digit5_ja Digit6_ja Digit7_ja Digit8_ja Digit9_ja Digit0_ja Minus_ja Equal_ja {backspace}',
|
||||
'{tab} KeyQ_ja KeyW_ja KeyE_ja KeyR_ja KeyT_ja KeyY_ja KeyU_ja KeyI_ja KeyO_ja KeyP_ja BracketLeft_ja BracketRight_ja Backslash_ja',
|
||||
'{capslock} KeyA_ja KeyS_ja KeyD_ja KeyF_ja KeyG_ja KeyH_ja KeyJ_ja KeyK_ja KeyL_ja Semicolon_ja Quote_ja {enter}',
|
||||
'{shiftleft} KeyZ_ja KeyX_ja KeyC_ja KeyV_ja KeyB_ja KeyN_ja KeyM_ja Comma_ja Period_ja Slash_ja {shiftright}',
|
||||
'{controlleft} {winleft} {altleft} {space} {altright} {winright} {menu} {controlright}'
|
||||
]
|
||||
},
|
||||
display: {
|
||||
@@ -186,6 +202,110 @@ export const keyboardOptions = {
|
||||
RusPeriod: 'Ю',
|
||||
RusSlash: ',<br/>.',
|
||||
|
||||
// Korean (2-set) display
|
||||
Backquote_ko: '`',
|
||||
Digit1_ko: '1',
|
||||
Digit2_ko: '2',
|
||||
Digit3_ko: '3',
|
||||
Digit4_ko: '4',
|
||||
Digit5_ko: '5',
|
||||
Digit6_ko: '6',
|
||||
Digit7_ko: '7',
|
||||
Digit8_ko: '8',
|
||||
Digit9_ko: '9',
|
||||
Digit0_ko: '0',
|
||||
Minus_ko: '-',
|
||||
Equal_ko: '=',
|
||||
|
||||
KeyQ_ko: 'ㅂ',
|
||||
KeyW_ko: 'ㅈ',
|
||||
KeyE_ko: 'ㄷ',
|
||||
KeyR_ko: 'ㄱ',
|
||||
KeyT_ko: 'ㅅ',
|
||||
KeyY_ko: 'ㅛ',
|
||||
KeyU_ko: 'ㅕ',
|
||||
KeyI_ko: 'ㅑ',
|
||||
KeyO_ko: 'ㅐ',
|
||||
KeyP_ko: 'ㅔ',
|
||||
BracketLeft_ko: '[',
|
||||
BracketRight_ko: ']',
|
||||
Backslash_ko: '\\',
|
||||
|
||||
KeyA_ko: 'ㅁ',
|
||||
KeyS_ko: 'ㄴ',
|
||||
KeyD_ko: 'ㅇ',
|
||||
KeyF_ko: 'ㄹ',
|
||||
KeyG_ko: 'ㅎ',
|
||||
KeyH_ko: 'ㅗ',
|
||||
KeyJ_ko: 'ㅓ',
|
||||
KeyK_ko: 'ㅏ',
|
||||
KeyL_ko: 'ㅣ',
|
||||
Semicolon_ko: ';',
|
||||
Quote_ko: "'",
|
||||
|
||||
KeyZ_ko: 'ㅋ',
|
||||
KeyX_ko: 'ㅌ',
|
||||
KeyC_ko: 'ㅊ',
|
||||
KeyV_ko: 'ㅍ',
|
||||
KeyB_ko: 'ㅠ',
|
||||
KeyN_ko: 'ㅜ',
|
||||
KeyM_ko: 'ㅡ',
|
||||
Comma_ko: ',',
|
||||
Period_ko: '.',
|
||||
Slash_ko: '/',
|
||||
|
||||
// Japanese display (representative hiragana per key)
|
||||
Backquote_ja: '`',
|
||||
Digit1_ja: '1',
|
||||
Digit2_ja: '2',
|
||||
Digit3_ja: '3',
|
||||
Digit4_ja: '4',
|
||||
Digit5_ja: '5',
|
||||
Digit6_ja: '6',
|
||||
Digit7_ja: '7',
|
||||
Digit8_ja: '8',
|
||||
Digit9_ja: '9',
|
||||
Digit0_ja: '0',
|
||||
Minus_ja: '-',
|
||||
Equal_ja: '=',
|
||||
|
||||
KeyQ_ja: 'た',
|
||||
KeyW_ja: 'て',
|
||||
KeyE_ja: 'い',
|
||||
KeyR_ja: 'す',
|
||||
KeyT_ja: 'か',
|
||||
KeyY_ja: 'ん',
|
||||
KeyU_ja: 'な',
|
||||
KeyI_ja: 'に',
|
||||
KeyO_ja: 'ら',
|
||||
KeyP_ja: 'せ',
|
||||
BracketLeft_ja: '[',
|
||||
BracketRight_ja: ']',
|
||||
Backslash_ja: '\\',
|
||||
|
||||
KeyA_ja: 'ち',
|
||||
KeyS_ja: 'と',
|
||||
KeyD_ja: 'し',
|
||||
KeyF_ja: 'は',
|
||||
KeyG_ja: 'き',
|
||||
KeyH_ja: 'く',
|
||||
KeyJ_ja: 'ま',
|
||||
KeyK_ja: 'の',
|
||||
KeyL_ja: 'り',
|
||||
Semicolon_ja: ';',
|
||||
Quote_ja: "'",
|
||||
|
||||
KeyZ_ja: 'つ',
|
||||
KeyX_ja: 'さ',
|
||||
KeyC_ja: 'そ',
|
||||
KeyV_ja: 'ひ',
|
||||
KeyB_ja: 'こ',
|
||||
KeyN_ja: 'み',
|
||||
KeyM_ja: 'も',
|
||||
Comma_ja: ',',
|
||||
Period_ja: '.',
|
||||
Slash_ja: '/',
|
||||
|
||||
// AZERTY specific display keys
|
||||
// Row 1
|
||||
Backquote_azerty: '<<br/>>',
|
||||
|
||||
Reference in New Issue
Block a user