Files
VibeCoding/webrtc_controller_flutter/lib/l10n/app_en.arb
TongTongStudio e1de4c8170 feat(remote): 修复键盘输入映射并重构连接流程
- Android端注入按键时显式设置SOURCE_KEYBOARD,修复IME丢弃事件导致输入框无法输入文字的问题
- Flutter端新增Flutter逻辑键到Android keyCode的转换映射,避免功能键误触发
- 重构RemoteController,分离信令连接与远程控制逻辑,支持设备列表选择与配对码兑换
- AuthRepository接口新增getBindings、getOnlineDevices、redeemPairingCode方法
- DioAuthRepository实现401自动刷新token重试机制
- ConnectionSessionState扩展设备列表、在线状态、配对码等状态字段
2026-08-03 20:22:29 +08:00

82 lines
3.8 KiB
Plaintext

{
"@@locale": "en",
"appTitle": "WebRTC Controller",
"login": "Login",
"logout": "Logout",
"registerAccount": "Create Account",
"registerSuccess": "Registered successfully, please log in",
"registerFailed": "Registration failed: {error}",
"loginSubtitle": "Log in to connect your bound devices",
"cancel": "Cancel",
"confirm": "OK",
"connect": "Connect",
"connecting": "Connecting...",
"loginAccount": "Login Account",
"connectDevice": "Connect Device",
"deviceId": "Device ID (assigned by server):",
"deviceIdPlaceholder": "Assigned by server",
"targetDeviceId": "Target Device ID:",
"targetDeviceIdPlaceholder": "Controlled device ID",
"username": "Username",
"password": "Password",
"loginFailed": "Login failed: {error}",
"usernamePasswordRequired": "Please enter username and password",
"targetRequired": "Please enter target device ID",
"authTitle": "Connection Auth",
"authNone": "Passwordless",
"authNoneDesc": "Manual confirmation on the controlled device",
"authCode": "Dynamic Code",
"authCodeDesc": "Use a one-time dynamic code",
"authPassword": "Fixed Password",
"authPasswordDesc": "Use a fixed connection password",
"authNonePlaceholder": "No value needed",
"authPasswordPlaceholder": "Enter fixed password",
"authCodePlaceholder": "Enter dynamic code",
"authValueRequired": "Please enter the code or password",
"statusStopped": "Status: Stopped",
"statusConnectingSignal": "Status: Connecting to signal server...",
"statusConnected": "Status: Connected - remote control active",
"statusDisconnected": "Status: Remote disconnected",
"statusSignalConnected": "Status: Signal connected, waiting for registration...",
"statusRegistered": "Status: Registered ({deviceId}), establishing...",
"statusAuthFailed": "Status: Auth failed - {error}",
"statusConnectError": "Status: Connection error - {error}",
"statusTargetAccept": "Status: Target accepted, establishing connection...",
"statusTokenRefreshFailed": "Status: Token refresh failed - {error}",
"statusForceLogout": "Status: Account logged in elsewhere, force logged out",
"connectedBindings": "Bound devices: {uids}",
"resolutionSwitch": "Switch Resolution",
"fpsSwitch": "Switch FPS",
"selfCodec": "SelfCodec",
"record": "Record",
"stop": "Stop",
"recording": "Recording...",
"recordSaved": "Saved: {path}",
"recordStopped": "Recording stopped",
"recordNoStream": "Not connected or no video stream available",
"recordSwitchToStd": "Switching back to standard mode to record...",
"recordStartFailed": "Failed to start recording: {error}",
"recordNoVideoTrack": "No remote video track received",
"selfCodecNotSupported": "Self-codec hardware decoding is not supported on this platform, fell back to WebRTC media stream.",
"iceDisconnected": "ICE connection disconnected",
"targetOffline": "Target device is offline. Please confirm it is powered on and connected.",
"connectionFailed": "Connection failed: {error}",
"tokenExpired": "Session expired. Please login again.",
"forceLogout": "Account logged in elsewhere, force logged out.",
"loginFirst": "Please login before connecting",
"pleaseFillAuth": "Please enter the code or password",
"streamModeSelfCodecDesc": "Self-codec hardware decoding is not supported on this platform.",
"boundDevices": "Bound Devices",
"online": "Online",
"offline": "Offline",
"noBoundDevices": "No bound devices yet",
"refreshDevices": "Refresh",
"redeemPairingCode": "Bind with Pairing Code",
"pairingCodeHint": "Enter the pairing code shown on the controlled device",
"bindingFailed": "Binding failed: {error}",
"deviceOfflineCannotConnect": "Device \"{name}\" is currently offline and cannot be connected",
"pleaseSelectDevice": "Please select a bound device first",
"bindSuccess": "Bound successfully"
}