mirror of
https://github.com/sipeed/NanoKVM-USB.git
synced 2026-11-09 17:04:27 -06:00
Merge pull request #108 from SingleCores/main
fix: right Shift key not working on Japanese keyboards + add Japanese localization
This commit is contained in:
@@ -46,7 +46,11 @@ export const Keyboard = (): ReactElement => {
|
|||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
event.stopPropagation()
|
event.stopPropagation()
|
||||||
|
|
||||||
const code = event.code
|
// Fallback for Japanese keyboards with Microsoft IME where event.code is empty for right Shift
|
||||||
|
let code = event.code
|
||||||
|
if (!code && event.key === 'Shift') {
|
||||||
|
code = 'ShiftRight'
|
||||||
|
}
|
||||||
if (pressedKeys.current.has(code)) {
|
if (pressedKeys.current.has(code)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -78,7 +82,11 @@ export const Keyboard = (): ReactElement => {
|
|||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
event.stopPropagation()
|
event.stopPropagation()
|
||||||
|
|
||||||
const code = event.code
|
// Fallback for Japanese keyboards with Microsoft IME where event.code is empty for right Shift
|
||||||
|
let code = event.code
|
||||||
|
if (!code && event.key === 'Shift') {
|
||||||
|
code = 'ShiftRight'
|
||||||
|
}
|
||||||
|
|
||||||
// Handle AltGr state for Windows
|
// Handle AltGr state for Windows
|
||||||
if (altGrState.current?.active) {
|
if (altGrState.current?.active) {
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ const languages = [
|
|||||||
{ key: 'nl', name: 'Nederlands' },
|
{ key: 'nl', name: 'Nederlands' },
|
||||||
{ key: 'be', name: 'België' },
|
{ key: 'be', name: 'België' },
|
||||||
{ key: 'ko', name: '한국어' },
|
{ key: 'ko', name: '한국어' },
|
||||||
|
{ key: 'ja', name: '日本語' },
|
||||||
{ key: 'pt_br', name: 'Português (Brasil)' },
|
{ key: 'pt_br', name: 'Português (Brasil)' },
|
||||||
{ key: 'pl', name: 'Polski' }
|
{ key: 'pl', name: 'Polski' }
|
||||||
]
|
]
|
||||||
|
|||||||
114
desktop/src/renderer/src/i18n/locales/ja.ts
Normal file
114
desktop/src/renderer/src/i18n/locales/ja.ts
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
const ja = {
|
||||||
|
translation: {
|
||||||
|
camera: {
|
||||||
|
tip: '認証を待っています...',
|
||||||
|
denied: '認証に失敗しました',
|
||||||
|
authorize:
|
||||||
|
'リモートデスクトップにはカメラの許可が必要です。設定でカメラの許可を与えてください。',
|
||||||
|
failed: 'カメラへの接続に失敗しました。もう一度お試しください。'
|
||||||
|
},
|
||||||
|
modal: {
|
||||||
|
title: 'USBデバイスを選択',
|
||||||
|
selectVideo: 'ビデオ入力デバイスを選択してください',
|
||||||
|
selectSerial: 'シリアルデバイスを選択してください',
|
||||||
|
selectBaudRate: 'ボーレートを選択してください'
|
||||||
|
},
|
||||||
|
menu: {
|
||||||
|
serial: 'シリアル',
|
||||||
|
keyboard: 'キーボード',
|
||||||
|
mouse: 'マウス',
|
||||||
|
serialPort: {
|
||||||
|
device: 'シリアルデバイス',
|
||||||
|
baudRate: 'ボーレート',
|
||||||
|
noDeviceFound: 'シリアルデバイスが見つかりません',
|
||||||
|
clickToSelect: 'クリックしてシリアルポートを選択'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
video: {
|
||||||
|
resolution: '解像度',
|
||||||
|
scale: '拡大縮小',
|
||||||
|
customResolution: 'カスタム',
|
||||||
|
device: 'デバイス',
|
||||||
|
custom: {
|
||||||
|
title: 'カスタム解像度',
|
||||||
|
width: '幅',
|
||||||
|
height: '高さ',
|
||||||
|
confirm: 'OK',
|
||||||
|
cancel: 'キャンセル'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
keyboard: {
|
||||||
|
paste: '貼り付け',
|
||||||
|
virtualKeyboard: 'キーボード',
|
||||||
|
shortcut: {
|
||||||
|
title: 'ショートカット',
|
||||||
|
custom: 'カスタム',
|
||||||
|
capture: 'ここをクリックしてショートカットをキャプチャ',
|
||||||
|
clear: 'クリア',
|
||||||
|
save: '保存'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mouse: {
|
||||||
|
cursor: {
|
||||||
|
title: 'カーソル',
|
||||||
|
pointer: 'ポインター',
|
||||||
|
grab: 'グラブ',
|
||||||
|
cell: 'セル',
|
||||||
|
hide: '非表示'
|
||||||
|
},
|
||||||
|
mode: 'マウスモード',
|
||||||
|
absolute: '絶対モード',
|
||||||
|
relative: '相対モード',
|
||||||
|
direction: 'ホイール方向',
|
||||||
|
scrollUp: '上にスクロール',
|
||||||
|
scrollDown: '下にスクロール',
|
||||||
|
speed: 'ホイール速度',
|
||||||
|
fast: '速い',
|
||||||
|
slow: '遅い',
|
||||||
|
requestPointer: '相対モードを使用中です。マウスポインターを取得するにはデスクトップをクリックしてください。',
|
||||||
|
jiggler: {
|
||||||
|
title: 'マウスジグラー',
|
||||||
|
enable: '有効',
|
||||||
|
disable: '無効'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
settings: {
|
||||||
|
title: '設定',
|
||||||
|
appearance: {
|
||||||
|
title: '外観',
|
||||||
|
language: '言語',
|
||||||
|
menu: 'メニューバー',
|
||||||
|
menuTips: '起動時にメニューバーを開く'
|
||||||
|
},
|
||||||
|
update: {
|
||||||
|
title: '更新を確認',
|
||||||
|
latest: '最新バージョンを使用しています。',
|
||||||
|
outdated: '更新が利用可能です。今すぐ更新しますか?',
|
||||||
|
downloading: 'ダウンロード中...',
|
||||||
|
installing: 'インストール中...',
|
||||||
|
failed: '更新に失敗しました。もう一度お試しください。',
|
||||||
|
confirm: '確認',
|
||||||
|
cancel: 'キャンセル'
|
||||||
|
},
|
||||||
|
about: {
|
||||||
|
title: 'バージョン情報',
|
||||||
|
version: 'バージョン',
|
||||||
|
community: 'コミュニティ'
|
||||||
|
},
|
||||||
|
reset: {
|
||||||
|
title: '設定をリセット',
|
||||||
|
description: 'すべてのアプリケーション設定をデフォルト値にリセットします',
|
||||||
|
warning: '警告',
|
||||||
|
warningDescription: 'この操作は元に戻せません。すべてのカスタム設定が失われます。',
|
||||||
|
button: 'すべての設定をリセット',
|
||||||
|
confirmTitle: 'リセットの確認',
|
||||||
|
confirmMessage:
|
||||||
|
'すべての設定をリセットしてもよろしいですか?この操作は元に戻せません。',
|
||||||
|
confirm: 'リセット',
|
||||||
|
cancel: 'キャンセル'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ja
|
||||||
Reference in New Issue
Block a user