Merge pull request #108 from SingleCores/main

fix: right Shift key not working on Japanese keyboards + add Japanese localization
This commit is contained in:
wenjie
2026-01-23 18:08:51 +08:00
committed by GitHub
3 changed files with 125 additions and 2 deletions

View File

@@ -46,7 +46,11 @@ export const Keyboard = (): ReactElement => {
event.preventDefault()
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)) {
return
}
@@ -78,7 +82,11 @@ export const Keyboard = (): ReactElement => {
event.preventDefault()
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
if (altGrState.current?.active) {

View File

@@ -7,6 +7,7 @@ const languages = [
{ key: 'nl', name: 'Nederlands' },
{ key: 'be', name: 'België' },
{ key: 'ko', name: '한국어' },
{ key: 'ja', name: '日本語' },
{ key: 'pt_br', name: 'Português (Brasil)' },
{ key: 'pl', name: 'Polski' }
]

View 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