"language.system" = "Follow System";
"language.zhHans" = "中文";
"language.en" = "English";
"language.ja" = "日本語";
"language.ko" = "한국어";
"language.de" = "Deutsch";
"language.fr" = "Français";
"interfaceFontSize.small" = "Small";
"interfaceFontSize.standard" = "Standard";
"interfaceFontSize.large" = "Large";

"shift.any" = "Any ⇧ Shift";
"shift.left" = "Left ⇧ Shift";
"shift.right" = "Right ⇧ Shift";

"key2.control.any" = "Any ⌃ Control";
"key2.control.left" = "Left ⌃ Control";
"key2.control.right" = "Right ⌃ Control";
"key2.command.any" = "Any ⌘ Command";
"key2.command.left" = "Left ⌘ Command";
"key2.command.right" = "Right ⌘ Command";
"key2.option.any" = "Any ⌥ Option";
"key2.option.left" = "Left ⌥ Option";
"key2.option.right" = "Right ⌥ Option";

"menu.about" = "About Arasaka LangSwitch";
"menu.diagnostics" = "Open Diagnostics";
"menu.preferences" = "Preferences…";
"menu.support" = "Support Us";
"menu.support.coffee" = "Buy the Author a Coffee";
"menu.support.keyboardReviews" = "Keyboard Picks and Reviews";
"menu.support.feedback" = "Feedback and Suggestions";
"menu.quit" = "Quit Arasaka LangSwitch";
"about.title" = "About Arasaka LangSwitch";
"about.version" = "Version %@";
"about.author" = "Author: %@";
"about.summary" = "A direct-distribution macOS menu bar utility for system-level input source switching. The most compatible path is Simulation mode, which listens for your global shortcut and sends the system input-source shortcut, so it needs Accessibility permission.";

"status.tooltip" = "%@ switches input methods";

"preferences.title" = "Arasaka LangSwitch Preferences";
"preferences.section.interface" = "Interface";
"preferences.section.launch" = "Launch";
"preferences.section.hotkeys" = "Input Switching";
"preferences.section.hud" = "Input Method Switch Panel";
"preferences.language" = "Interface Language";
"preferences.interfaceFontSize" = "Interface Font Size";
"preferences.key1" = "Key1";
"preferences.key2" = "Key2";
"preferences.switchTiming" = "Trigger Condition";
"preferences.switchMode" = "Input Method Switching Mode";
"preferences.enableHotkeys" = "Use a key combo to switch input methods";
"preferences.keyOrder" = "Key Press Order";
"preferences.orderInsensitive" = "Ignore key press order";
"preferences.keyOrder.either" = "Any order";
"preferences.keyOrder.key1First" = "Hold Key1, then press Key2";
"preferences.keyOrder.key2First" = "Hold Key2, then press Key1";
"preferences.switchMode.simulation" = "Simulation mode (simulates sending the key combo to the system for better compatibility. Requires permission in \"System Settings > Privacy & Security > Accessibility\")";
"preferences.switchMode.api" = "API mode (uses the system API and does not require \"Accessibility\" permission, but is slightly less compatible with third-party input methods outside Apple's own)";
"preferences.switchMode.simulationHint" = "If the key combo does not respond, check permission in \"System Settings > Privacy & Security > Accessibility\".";
"preferences.switchMode.context.disabled" = "Arasaka LangSwitch is a system-level input switching tool. Turn hotkeys on to use the global shortcut path.";
"preferences.switchMode.context.simulationReady" = "Simulation mode is ready. Your global shortcut can listen system-wide and use the most compatible switching path.";
"preferences.switchMode.context.simulationNeedsPermission" = "Simulation mode is selected, but Accessibility permission is still missing. Global shortcut switching may not respond until you allow this app in System Settings > Privacy & Security > Accessibility.";
"preferences.switchMode.context.api" = "API mode avoids Accessibility permission and can still switch input sources, but compatibility may be weaker with some third-party input methods.";
"preferences.showInputSourceHUD" = "Show input method switch panel";
"preferences.hudDisplayDuration" = "Display Duration";
"preferences.allowHUDInputSourceClickSelection" = "Allow mouse selection in the input method panel";
"preferences.launchAtLogin" = "Launch at login";
"preferences.inputMonitoringHint" = "If the key combo does not respond, check permission in \"System Settings > Privacy & Security > Input Monitoring\".";

"hudDisplayDuration.halfSecond" = "0.5 sec";
"hudDisplayDuration.oneSecond" = "1 sec";
"hudDisplayDuration.onePointFiveSeconds" = "1.5 sec";
"hudDisplayDuration.twoSeconds" = "2 sec";
"hudDisplayDuration.threeSeconds" = "3 sec";

"switchTiming.afterAllReleased" = "After releasing all keys";
"switchTiming.onSecondKeyDown" = "When pressing the second key";
"switchTiming.whileHoldingOneKey" = "After pressing and releasing the second key";

"diagnostics.title" = "Arasaka LangSwitch Diagnostics";
"diagnostics.instructions" = "Press the key combo to view the current status above:";
"diagnostics.inputMonitoringHint" = "If the key combo does not respond, check permission in \"System Settings > Privacy & Security > Input Monitoring\".";
"diagnostics.currentShortcut" = "Current key combo: %@";
"diagnostics.currentInputSource" = "Current input source: %@";
"diagnostics.accessibilityStatus" = "Accessibility permission: %@";
"diagnostics.executablePath" = "Current executable: %@";
"diagnostics.permission.granted" = "Granted";
"diagnostics.permission.denied" = "Not granted";
"diagnostics.permission.denied.nonBundle" = "Not granted (currently not running from an .app bundle)";
"diagnostics.comboStatusTitle" = "Input Method Switch Status:";
"diagnostics.leftShift" = "Left Shift: %@";
"diagnostics.rightShift" = "Right Shift: %@";
"diagnostics.leftControl" = "Left Control: %@";
"diagnostics.rightControl" = "Right Control: %@";
"diagnostics.leftCommand" = "Left Command: %@";
"diagnostics.rightCommand" = "Right Command: %@";
"diagnostics.leftOption" = "Left Option: %@";
"diagnostics.rightOption" = "Right Option: %@";
"diagnostics.comboStatus" = "Switch Status: %@";
"diagnostics.testButton.api" = "Switch Input Method via API";
"diagnostics.testButton.simulation" = "Switch Input Method via Simulation";
"diagnostics.manualTestHint" = "The two buttons below bypass the current input switching method and directly test the API and simulation paths.";
"diagnostics.keepOnTop" = "Keep diagnostics window on top";
"diagnostics.manualTestStatus.api" = "Testing API path...";
"diagnostics.manualTestStatus.api.success" = "API path test completed.";
"diagnostics.manualTestStatus.api.failed" = "API path test failed.";
"diagnostics.manualTestStatus.simulation" = "Testing simulation path...";
"diagnostics.manualTestStatus.simulation.confirming" = "Confirming simulation result...";
"diagnostics.manualTestStatus.simulation.success" = "Simulation path test completed.";
"diagnostics.manualTestStatus.simulation.noVisibleChange" = "Simulation sent but input source did not visibly change.";
"diagnostics.manualTestStatus.simulation.failedPermission" = "Simulation test failed: grant Accessibility permission in System Settings > Privacy & Security > Accessibility.";
"diagnostics.manualTestStatus.failedEventCreation" = "Test failed: unable to create synthetic keyboard events.";
"diagnostics.lastTestResult.idle" = "Last test result: not run yet.";
"diagnostics.lastTestResult.api.success" = "Last test result: API path succeeded.";
"diagnostics.lastTestResult.api.failed" = "Last test result: API path failed.";
"diagnostics.lastTestResult.simulation.success" = "Last test result: simulation path succeeded.";
"diagnostics.lastTestResult.simulation.failed" = "Last test result: simulation path failed.";
"diagnostics.lastTestResult.simulation.confirming" = "Last test result: confirming simulation result...";
"diagnostics.lastTestResult.simulation.noVisibleChange" = "Last test result: simulation sent but no visible input source change.";
"diagnostics.lastTestResult.simulation.failedPermission" = "Last test result: simulation path failed due to missing Accessibility permission.";
"diagnostics.exportLogButton" = "Export Log";
"diagnostics.exportDialogTitle" = "Export Diagnostics Log";
"diagnostics.exportStatus.success" = "Diagnostics log exported: %@";
"diagnostics.exportStatus.failed" = "Diagnostics log export failed.";
"diagnostics.logTitle" = "Diagnostic Log:";

"common.openSystemSettings" = "Open System Settings";
"common.close" = "Close";

"state.pressed" = "Pressed";
"state.notPressed" = "Not Pressed";
"combo.active" = "Triggered";
"combo.inactive" = "Not triggered";

"tooltip.launchAtLoginEnabled" = "Launch Arasaka LangSwitch automatically after login";
"tooltip.launchAtLoginRequiresApp" = "Run via dist/Arasaka LangSwitch.app before changing launch-at-login";

"reason.diagnosticsButton.api" = "Diagnostics API test button";
"reason.diagnosticsButton.simulation" = "Diagnostics simulation test button";
"reason.orderInsensitive" = "%@ (ignore key press order)";
"reason.order.either" = "%@ (either key order)";
"reason.order.key1First" = "%@ (Key1 first)";
"reason.order.key2First" = "%@ (Key2 first)";

"log.launchAtLoginRequiresApp" = "Launch-at-login failed: run via dist/Arasaka LangSwitch.app.";
"log.launchAtLoginEnabled" = "Launch at login enabled.";
"log.launchAtLoginDisabled" = "Launch at login disabled.";
"log.launchAtLoginFailed" = "Launch-at-login failed: %@";
"log.launchAtLoginDefaultRequiresApp" = "Launch-at-login defaults to enabled, but the app is not running from a .app bundle.";
"log.inputSourcesUnavailable" = "Input source switch failed: unable to fetch input source list.";
"log.noTextInputSources" = "Input source switch failed: no text input sources available.";
"log.inputSourceSwitched" = "Switched input source via API: %@";
"log.inputSourcePostSwitchState" = "Post-switch current input source: %@";
"log.inputSourceVerification" = "Switch verification: target=%@ current=%@";
"log.inputSourceVerificationRetry" = "Switch verification mismatch, retrying: targetID=%@ currentID=%@";
"log.inputSourceRetryIssued" = "Issued retry selection for input source: %@";
"log.inputSourceRetryFailed" = "Retry selection failed: unable to reselect input source ID %@";
"log.inputSourceSwitchFailed" = "Input source switch failed: TISSelectInputSource returned %@";
"log.ignoreDuplicateSwitch" = "Ignoring duplicate switch request: %@ %@";
"log.requestSwitch" = "Requesting input method switch: %@ %@ current=%@";
"log.inputSwitchMode" = "Current input switch mode: %@";
"log.switchPlan" = "Switch plan: current={%@} target={%@} candidates=%@";
"log.simulationSwitchIssued" = "Simulation switch issued via Control+Option+Space: before=%@ backend=%@";
"log.simulationSwitchResult" = "Simulation switch result: before=%@ current=%@ backend=%@";
"log.simulationHUDOrderUpdated" = "Simulation HUD order updated: observed=%@ anchoredABC=%@";
"log.simulationSwitchFallback" = "Simulation switch produced no visible change via the current advanced backend, falling back to the next backend: before=%@";
"log.simulationSwitchFailedPermission" = "Simulation switch failed: Accessibility permission is required to send Control+Option+Space.";
"log.simulationSwitchFailedEventCreation" = "Simulation switch failed: unable to create synthetic keyboard events.";
"log.simulationControlHoldBegan" = "Simulation control hold began: backend=%@ flags=%@";
"log.simulationControlHoldEnded" = "Simulation control hold ended: flags=%@";
"log.simulationSpacePressed" = "Simulation Space down sent: backend=%@ flags=%@";
"log.simulationSpaceReleased" = "Simulation Space up sent: backend=%@ flags=%@";
"log.pendingSwitchQueued" = "Queued pending switch: source=%@ reason=%@ current=%@";
"log.pendingSwitchScheduling" = "Scheduling pending switch after trigger key release: current=%@";
"log.pendingSwitchExecuting" = "Executing pending switch: source=%@ reason=%@ current=%@";
"log.pendingSwitchCleared" = "Cleared pending switch request.";
"log.state" = "State: %@";
"log.hotkeysDisabledIgnore" = "Hotkeys are disabled, ignoring combo: %@ source=%@";
"log.comboDetectedFlexibleOrder" = "Combo detected (either key order): %@ source=%@";
"log.comboEndedFlexibleOrder" = "Combo ended (either key order): %@ source=%@";
"log.comboDetectedOrderInsensitive" = "Combo detected (ignore key order): %@ source=%@";
"log.comboEndedOrderInsensitive" = "Combo ended (ignore key order): %@ source=%@";
"log.comboCancelledExtraModifier" = "Combo cancelled (extra modifier detected): %@ source=%@";
"log.comboEntered" = "Combo entered: %@ source=%@";
"log.comboEnteredReverseOrder" = "Combo entered (Key2 first): %@ source=%@";
"log.key1TappedReleased" = "Key1 tapped and released: %@ source=%@";
"log.key2TappedReleased" = "Key2 tapped and released: %@ source=%@";
"log.hudHiddenByTyping" = "Switch panel hidden by typing: keyCode=%@ source=%@";
"log.diagnosticsStarted" = "Diagnostics started. Current key combo: %@";
"log.manualTest" = "Manual test: calling input source switch API";
"log.diagnosticsAPITestRequested" = "Diagnostics API test requested: current=%@";
"log.diagnosticsSimulationTestRequested" = "Diagnostics simulation test requested: current=%@";
"log.diagnosticsSimulationTestPermissionHint" = "Diagnostics simulation test blocked: grant Accessibility permission in System Settings > Privacy & Security > Accessibility.";
"log.diagnosticsLogExportSucceeded" = "Diagnostics log exported to: %@";
"log.diagnosticsLogExportFailed" = "Diagnostics log export failed: %@";
"log.hudSelectionRequested" = "Switch panel selection requested: current=%@ target=%@";
"log.hudSelectionSucceeded" = "Switch panel selection succeeded: %@";
"log.hudSelectionFailed" = "Switch panel selection failed: unable to select input source ID %@";
"log.hudSelectionAlreadyActive" = "Switch panel selection ignored: input source is already active: %@";
"log.didWake" = "System woke from sleep: current=%@";
"log.postWakeInputSourceRefresh" = "Post-wake input source refresh: current=%@ expectedID=%@ attempt=%@";
"log.postWakeInputSourceRefreshSkipped" = "Post-wake input source refresh skipped: current=%@ expectedID=%@ attempt=%@";
"log.postWakeInputSourceRefreshFailed" = "Post-wake input source refresh failed: expectedID=%@ attempt=%@";
"log.postWakeInputSourceRefreshResult" = "Post-wake input source refresh result: current=%@ expectedID=%@ attempt=%@";
"log.postWakeSwitchStabilizing" = "Post-wake switch stabilization requested: target=%@";
"log.inputMonitoringHint" = "If the key combo does not respond, allow Input Monitoring for this app or its host terminal in System Settings, then restart the app.";
"log.eventTapReenabled" = "Event tap was disabled by macOS and has been re-enabled automatically.";
"log.globalMonitorStarted" = "Global monitor started (GlobalMonitor).";
"log.globalMonitorFailed" = "Global monitor failed to start (GlobalMonitor).";
"log.eventTapCreateFailed" = "Failed to create EventTap; GlobalMonitor only will be used.";
"log.eventTapStarted" = "EventTap started.";
"log.inputMonitoringPermissionAlert" = "EventTap was unavailable at launch, so the user was warned that global monitoring may be limited and Input Monitoring should be checked if needed.";
"log.appStarted" = "Arasaka LangSwitch is running. Current key combo: %@.";

"alert.accessibilityRequired.title" = "Simulation Mode Needs Accessibility";
"alert.accessibilityRequired.message" = "Arasaka LangSwitch is a direct-distribution system utility. To use global hotkeys and the most compatible Simulation mode, allow this app in System Settings > Privacy & Security > Accessibility. If you don't want to grant permission yet, you can switch to API mode later, but compatibility may be weaker with some third-party input methods.";
"error.runLoopSource" = "Unable to create run loop source.\n";
