- Tuning: fwd {{ controlTuning.forward.toFixed(2) }} m/s, strafe {{ controlTuning.strafe.toFixed(2) }} m/s, - turn {{ controlTuning.turn.toFixed(2) }} rad/s, turbo x{{ controlTuning.turbo.toFixed(2) }} + {{ tuningSummary }}
Keyboard
+{{ t('controlFeedback.keyboard') }}
{{ pressedKeysLabel }}Gamepad
- {{ gamepadConnected ? gamepadName : 'Waiting for controller' }} +{{ t('controlFeedback.gamepad') }}
+ {{ gamepadConnected ? gamepadName : t('controlFeedback.waitingForController') }}- {{ - gamepadConnected - ? `#${gamepadIndex} / mapping=${gamepadMapping || 'unknown'}` - : 'Left stick drives, right stick turns, RB boosts, A stops.' - }} + {{ gamepadMeta }}
- Outgoing command: {{ commandLabel }} + {{ outgoingCommandText }}
diff --git a/frontend/src/components/ControlPanel.vue b/frontend/src/components/ControlPanel.vue index b15e646..318455e 100644 --- a/frontend/src/components/ControlPanel.vue +++ b/frontend/src/components/ControlPanel.vue @@ -3,14 +3,16 @@ import { computed } from 'vue' import ControlFeedback from '@/components/ControlFeedback.vue' import { useControlInterface } from '@/composables/useControlInterface' +import { useLocale } from '@/lib/locale' const { controlInputMode, controlInputModeLabel, controlTuning, resetControlTuning, setControlInputMode, setControlTuning } = useControlInterface() +const { t } = useLocale() -const inputModes = [ - { id: 'keyboard', label: 'Keyboard', detail: 'Use W/S, A/D, Q/E, Shift, and Space.' }, - { id: 'gamepad', label: 'Gamepad', detail: 'Use the browser-detected controller only.' }, -] as const +const inputModes = computed(() => [ + { id: 'keyboard', label: t('common.keyboard'), detail: t('controlPanel.keyboardDetail') }, + { id: 'gamepad', label: t('common.gamepad'), detail: t('controlPanel.gamepadDetail') }, +] as const) const forwardSpeed = computed({ get: () => controlTuning.value.forward, @@ -37,24 +39,24 @@ const turboMultiplier = computed({Control
-Control Feedback
+{{ t('controlPanel.eyebrow') }}
+{{ t('controlPanel.title') }}
Input Mode
-Only one local input mode can control the page at a time.
+{{ t('controlPanel.inputModeEyebrow') }}
+{{ t('controlPanel.inputModeCopy') }}