3c10d73d7f
- Merge invitation, task, blessing, clarification, and empathy actions into a single Reply flow, with three fixed, clearly labeled stance choices whenever user intent must not be guessed. - Refine clipboard semantic routing with bilingual schedule, confirmation, and follow-up models, conservative language thresholds, and explicit-assignment guard for complaint-only text. - Persist Apple account refresh state, harden session recovery, and surface durable account diagnostics across keyboard and app. - Derive personal-style prompts through two-stage corpus evidence and apply real low-confidence ASR tendencies instead of neutral templates. - Localize the new reply center, clipboard semantics, and personal-style surfaces in both English and Simplified Chinese.
395 lines
21 KiB
Plaintext
395 lines
21 KiB
Plaintext
/* OSGKeyboard · English localization (development language) */
|
||
|
||
"OSGKeyboard" = "OSGKeyboard";
|
||
|
||
/* Onboarding */
|
||
"onboarding.welcome.subtitle" = "Tap the mic to speak, tap again to finish — polished text in any app.";
|
||
"onboarding.enable.title" = "Enable OSGKeyboard";
|
||
"onboarding.enable.step1" = "Settings → General → Keyboard → Keyboards";
|
||
"onboarding.enable.step2" = "Tap “Add New Keyboard…” and choose OSGKeyboard";
|
||
"onboarding.enable.step3" = "Tap OSGKeyboard and enable “Allow Full Access”";
|
||
"onboarding.enable.step4" = "Allow Full Access is required for the microphone and LLM calls.";
|
||
"onboarding.enable.openSettings" = "Open iOS Settings";
|
||
"onboarding.api.title" = "Choose engine";
|
||
"onboarding.api.subtitle" = "Local ASR needs no key; add an API key to enable AI polish.";
|
||
"onboarding.api.localReady.title" = "Local ASR is ready";
|
||
"onboarding.api.localReady.body" = "Recognition works on-device. Add an API key in Settings for AI polish.";
|
||
"keyboard.onboarding.practice.mic" = "Tap the mic, then tap again when done";
|
||
"keyboard.onboarding.practice.translate" = "Tap Translate, then insert the generated text";
|
||
"keyboard.onboarding.practice.reply" = "Tap Reply and let AI draft a response";
|
||
"keyboard.onboarding.practice.askAI" = "Hold the mic and ask your question";
|
||
|
||
/* Common navigation */
|
||
"common.back" = "Back";
|
||
"common.next" = "Next";
|
||
"common.done" = "Done";
|
||
"common.continue" = "Continue";
|
||
"common.reset" = "Reset";
|
||
"common.cancel" = "Cancel";
|
||
"common.delete" = "Delete";
|
||
"common.space" = "Space";
|
||
"common.newline" = "Return";
|
||
"common.send" = "Send";
|
||
"keyboard.return.go" = "Go";
|
||
"keyboard.return.search" = "Search";
|
||
"keyboard.return.join" = "Join";
|
||
"keyboard.return.next" = "Next";
|
||
"keyboard.return.route" = "Route";
|
||
"keyboard.return.google" = "Google";
|
||
"keyboard.return.yahoo" = "Yahoo";
|
||
"keyboard.return.emergencyCall" = "Emergency Call";
|
||
|
||
/* Privacy footnote (onboarding welcome page) */
|
||
"privacy.audio.title" = "On-device transcription";
|
||
"privacy.audio.body" = "Powered by the on-device iOS speech engine.";
|
||
"privacy.network.title" = "Automatic text polish";
|
||
"privacy.network.body" = "AI formats and polishes your text automatically.";
|
||
"privacy.universal.title" = "Works everywhere";
|
||
"privacy.universal.body" = "Chat, email, vibe coding — just speak.";
|
||
|
||
/* Home */
|
||
"home.status.ready" = "Ready";
|
||
"home.status.setupIncomplete" = "Setup incomplete";
|
||
"home.hero.label" = "Tap to configure";
|
||
"home.action.enableInSettings" = "Enable in iOS Settings";
|
||
"home.action.editApi" = "Edit API Configuration";
|
||
"home.action.keyboardPreview" = "Keyboard Preview (Debug)";
|
||
"home.action.openSettingsA11y" = "Open OSGKeyboard settings";
|
||
|
||
/* API settings */
|
||
"api.baseUrl" = "Base URL";
|
||
"api.model" = "Model";
|
||
"api.getKey" = "Get an API key";
|
||
"api.key" = "API Key";
|
||
"api.key.placeholder" = "sk-…";
|
||
"api.key.show" = "Show";
|
||
"api.key.hide" = "Hide";
|
||
"api.connection" = "Connection";
|
||
"api.test.idle" = "Test connection";
|
||
"api.test.running" = "Testing…";
|
||
"api.test.success" = "Success · Retry";
|
||
"api.test.failure" = "Failed · Retry";
|
||
"api.test.connected" = "Connected";
|
||
"api.test.missing" = "API key missing";
|
||
"api.test.rateLimited" = "Rate limited (429)";
|
||
"api.test.http" = "HTTP %d";
|
||
"api.test.network" = "Network error";
|
||
"api.test.connectedWith" = "“%@”";
|
||
"api.test.transportWith" = "%@";
|
||
|
||
/* Settings */
|
||
"settings.title" = "Settings";
|
||
"settings.reset.title" = "Reset all settings?";
|
||
"settings.reset.message" = "API key, model, and base URL will be cleared.";
|
||
"settings.reset.confirm" = "Reset all settings";
|
||
"settings.engine.title" = "Speech transcription method";
|
||
"settings.engine.subtitle" = "Local: built-in system transcription. Cloud: ASR transcription with optional LLM polish.";
|
||
"settings.engine.local.title" = "On-device transcription";
|
||
"settings.engine.local.ios26" = "Always on-device, no network.";
|
||
"settings.engine.local.legacy" = "Transcribe with the built-in system speech service";
|
||
"settings.engine.cloud.title" = "Cloud transcription";
|
||
"settings.engine.cloud.subtitle" = "Cloud ASR transcription, with optional LLM polish";
|
||
"settings.provider.title" = "Provider";
|
||
"settings.provider.subtitle" = "Pick the LLM that polishes your dictation.";
|
||
"settings.api.title" = "API";
|
||
"settings.language.title" = "Language";
|
||
"settings.language.subtitle.cloud" = "Recognition language and text processing mode.";
|
||
"settings.language.subtitle.local" = "Recognition language.";
|
||
"settings.mode.title" = "Mode";
|
||
"settings.mode.off" = "Off";
|
||
"settings.mode.transcribe" = "Transcribe";
|
||
"settings.mode.polish" = "Polish";
|
||
"settings.systemPrompt.title" = "System Prompt";
|
||
"settings.systemPrompt.reset" = "Reset";
|
||
"settings.asrLocale" = "ASR locale";
|
||
"settings.engineBadge.ios26" = "SpeechAnalyzer — always on-device";
|
||
"settings.engineRow.title" = "Recognition engine";
|
||
"settings.onDeviceOnly.title" = "On-device only";
|
||
"settings.onDeviceOnly.body" = "Disable cloud fallback. The keyboard reports an error instead of going online.";
|
||
"settings.legend.onDevice" = "On-device";
|
||
"settings.legend.cloudFallback" = "Cloud fallback";
|
||
|
||
/* App group error */
|
||
"appGroup.error.title" = "App Group not configured";
|
||
"appGroup.error.body" = "OSGKeyboard needs an App Group to share config between the main app and the keyboard extension.";
|
||
"appGroup.error.step1" = "Create group.com.osgkeyboard.shared in the Apple Developer portal";
|
||
"appGroup.error.step2" = "Enable it for both the main app and the keyboard extension";
|
||
"appGroup.error.step3" = "Re-generate the provisioning profile and download it";
|
||
|
||
/* Keyboard preview */
|
||
"preview.title" = "Keyboard Preview";
|
||
"preview.subtitle" = "Tap Start/Stop Recording to test here. On the real keyboard, press and hold the mic disc.";
|
||
"preview.placeholder" = "Type here or tap the record button";
|
||
"preview.clear" = "Clear text";
|
||
"preview.openSettingsA11y" = "Open OSGKeyboard settings";
|
||
"preview.modeChip.cycle" = "Cycle input mode";
|
||
"preview.localeChip.cycle" = "Cycle recognition language";
|
||
|
||
/* Keyboard (ext) */
|
||
"keyboard.tab.ai" = "AI";
|
||
"keyboard.tab.voice" = "Voice";
|
||
"keyboard.tab.chinese" = "中文";
|
||
"keyboard.tab.english" = "EN";
|
||
"keyboard.tab.ai.a11y" = "Switch to AI Q&A";
|
||
"keyboard.tab.voice.a11y" = "Switch to voice input";
|
||
"keyboard.tab.chinese.a11y" = "Switch to Chinese typing";
|
||
"keyboard.tab.english.a11y" = "Switch to English typing";
|
||
"keyboard.placeholder.idle" = "Tap to talk";
|
||
"keyboard.placeholder.preparing" = "Preparing";
|
||
"keyboard.placeholder.preparingRecording" = "Preparing mic…";
|
||
"keyboard.placeholder.processing" = "Processing";
|
||
"keyboard.placeholder.error" = "Polishing failed";
|
||
"keyboard.models.notDownloaded" = "On-device models not downloaded";
|
||
"keyboard.models.downloadHint" = "Open OSGKeyboard to download models";
|
||
"keyboard.rec" = "REC";
|
||
"keyboard.space" = "Space";
|
||
"keyboard.denied.mic" = "Mic denied";
|
||
"keyboard.denied.speech" = "Speech denied";
|
||
"keyboard.openSettingsA11y" = "Open OSGKeyboard settings";
|
||
"keyboard.deniedHint" = "Opens the OSGKeyboard settings page where you can grant microphone or speech recognition access.";
|
||
"keyboard.tapToTalkA11y" = "Tap to talk";
|
||
"keyboard.undoA11y" = "Undo last input";
|
||
"keyboard.redoA11y" = "Redo";
|
||
"keyboard.copyA11y" = "Copy";
|
||
"keyboard.cutA11y" = "Cut";
|
||
"keyboard.nextKeyboardA11y" = "Next keyboard";
|
||
"keyboard.nextKeyboardA11yHint" = "Tap to switch to the next keyboard. Touch and hold to see all keyboards.";
|
||
"keyboard.typing.setupA11yHint" = "Open OSGKeyboard to finish input method setup.";
|
||
"keyboard.typing.preparingA11y" = "Preparing Chinese input";
|
||
|
||
/* Flow session (keyboard) */
|
||
"keyboard.flow.sessionInactive" = "Voice session off";
|
||
"keyboard.flow.start" = "Start";
|
||
"keyboard.flow.startA11y" = "Start voice session";
|
||
"keyboard.flow.sessionExpired" = "Voice session ended. Open OSGKeyboard to restart.";
|
||
"keyboard.flow.startingSession" = "Starting voice session…";
|
||
"keyboard.flow.transcribing" = "Transcribing…";
|
||
"keyboard.flow.resultTimeout" = "Timed out waiting for transcription. Try again.";
|
||
"keyboard.flow.hostDisconnected" = "Voice session disconnected. Open OSGKeyboard to restart.";
|
||
"keyboard.flow.manualOpenHost" = "Could not auto-open the app. Open OSGKeyboard from the Home Screen, then return.";
|
||
|
||
/* Keyboard status badges */
|
||
"keyboard.status.rec" = "REC";
|
||
"keyboard.status.recWarning" = "REC";
|
||
"keyboard.status.processing" = "···";
|
||
"keyboard.status.error" = "!";
|
||
|
||
/* Keyboard errors */
|
||
"keyboard.error.appGroupUnavailable" = "App Group not configured";
|
||
"keyboard.error.appGroupCommunication" = "App Group not configured. Reinstall and check signing.";
|
||
"keyboard.error.fullAccessRequired" = "Enable Allow Full Access for OSGKeyboard in Settings to use voice input.";
|
||
"keyboard.error.fullAccessForJump" = "Allow Full Access is required before the keyboard can open the app.";
|
||
"keyboard.error.manualOpenSettings" = "System blocked the jump. Open OSGKeyboard manually to reach Settings.";
|
||
"keyboard.error.manualOpenForFlow" = "Voice session not running. Open OSGKeyboard, then tap the mic again.";
|
||
"keyboard.error.manualOpenDictateLocal" = "System blocked the jump. Open OSGKeyboard for on-device dictation, then return.";
|
||
"keyboard.error.manualOpenDictate" = "System blocked the jump. Open OSGKeyboard to record, then return.";
|
||
"keyboard.error.llm.noApiKey" = "API key missing · configure it in the main app";
|
||
"keyboard.mic.disabled.missingApiKey" = "Fill in API key in Settings first";
|
||
"keyboard.mic.hint.missingPolishApiKey" = "Add an API key in Settings to enable polish";
|
||
"keyboard.error.llm.localPolishUnavailable" = "API key missing · inserted raw text";
|
||
"keyboard.error.llm.unauthorized" = "Invalid API key (401) · check main app settings";
|
||
"keyboard.error.llm.rateLimited" = "Rate limited (429) · try again later";
|
||
|
||
/* Legacy dictation handoff progress */
|
||
"keyboard.dictation.opening" = "Opening OSGKeyboard…";
|
||
"keyboard.dictation.openingLocal" = "Opening OSGKeyboard (on-device)…";
|
||
"keyboard.dictation.recording" = "Recording in OSGKeyboard — return here when done";
|
||
"keyboard.dictation.recordingLocal" = "Recording on-device — return here when done";
|
||
"keyboard.dictation.transcribing" = "Transcribing — return here when ready";
|
||
"keyboard.dictation.transcribingLocal" = "On-device transcribing — return here when ready";
|
||
"keyboard.dictation.failed" = "Recording failed. Try again.";
|
||
"keyboard.dictation.resultTimeout" = "Timed out waiting for dictation. Finish in OSGKeyboard and retry.";
|
||
|
||
/* Translation menu */
|
||
"keyboard.translation.offMenu" = "Don't translate";
|
||
"keyboard.translation.a11y" = "Translation";
|
||
"keyboard.translation.a11yHint" = "Toggle translation or change the target language.";
|
||
"keyboard.clipboard.a11y" = "Clipboard";
|
||
"keyboard.clipboard.a11yHint" = "Open clipboard history or enable clipboard capture.";
|
||
"keyboard.clipboard.guide.body" = "Turn on clipboard history in Settings first.";
|
||
"keyboard.clipboard.guide.cta" = "Open Settings";
|
||
"keyboard.clipboard.panel.title" = "Clipboard";
|
||
"keyboard.clipboard.panel.empty" = "No history yet";
|
||
"keyboard.clipboard.panel.fullAccessHint" = "New copies are paused because Allow Full Access is off. Existing history remains available.";
|
||
"keyboard.clipboard.panel.delete" = "Delete";
|
||
"keyboard.clipboard.panel.close" = "Close clipboard";
|
||
"keyboard.clipboard.panel.closeHint" = "Return to the keyboard.";
|
||
"keyboard.clipboard.clear.title" = "Clear clipboard history?";
|
||
"keyboard.clipboard.clear.message" = "This permanently removes all saved clipboard items from this device. This cannot be undone.";
|
||
"keyboard.clipboard.clear.confirm" = "Clear history";
|
||
"keyboard.clipboard.suggestion.dismissA11y" = "Dismiss clipboard suggestion";
|
||
"keyboard.clipboard.suggestion.dismissHint" = "Hide this clipboard suggestion strip.";
|
||
"keyboard.voice.cancel" = "Cancel voice input";
|
||
"keyboard.voice.cancelHint" = "Discard the current recording, recognition, and polish result.";
|
||
"keyboard.scenario.a11y" = "Polish scenario";
|
||
"keyboard.scenario.a11yHint" = "Choose how dictation is polished.";
|
||
|
||
/* Mode chip labels (used in both ext + preview stub) */
|
||
"mode.off" = "Off";
|
||
"mode.transcribe" = "Transcribe";
|
||
"mode.polish" = "Polish";
|
||
|
||
/* Locale chip labels (preview stub) */
|
||
"locale.zh-Hans" = "ZH-Hans";
|
||
|
||
/* Locale menu items (settings) */
|
||
"locale.auto" = "Auto";
|
||
"locale.zh-Hans" = "Chinese (Simplified)";
|
||
"locale.zh-Hant" = "Chinese (Traditional)";
|
||
"locale.en-US" = "English (US)";
|
||
"locale.ja-JP" = "Japanese";
|
||
"locale.ko-KR" = "Korean";
|
||
|
||
/* Voice gated until host-app onboarding finishes */
|
||
"keyboard.hint.finishSetupInApp" = "Finish setup in OSGKeyboard to use voice input.";
|
||
|
||
/* v0.3.0: AppContext chip on the keyboard top bar */
|
||
"keyboard.appContext.a11y" = "Polish context";
|
||
"keyboard.appContext.a11yHint" = "Tap to override the auto-detected input context (code, email, chat, document).";
|
||
"keyboard.appContext.chip.code" = "Code";
|
||
"keyboard.appContext.chip.email" = "Email";
|
||
"keyboard.appContext.chip.chat" = "Chat";
|
||
"keyboard.appContext.chip.document" = "Document";
|
||
"keyboard.appContext.chip.unknown" = "General";
|
||
"keyboard.appContext.menu.code" = "Code — preserve identifiers, no natural-language wrap";
|
||
"keyboard.appContext.menu.email" = "Email — polite, professional, paragraph-broken";
|
||
"keyboard.appContext.menu.chat" = "Chat — short, casual, natural tone";
|
||
"keyboard.appContext.menu.document" = "Document — long-form, structured";
|
||
"keyboard.appContext.menu.unknown" = "General — neutral tone";
|
||
|
||
/* Long-press editing of the last insertion */
|
||
"keyboard.edit.hint.available" = "Hold to edit your last input";
|
||
"keyboard.edit.error.noTarget" = "No recent input is available to edit";
|
||
"keyboard.edit.error.llmUnavailable" = "Configure an AI service in the main app first";
|
||
"keyboard.edit.error.startTimeout" = "Microphone startup timed out. Tap to retry";
|
||
"keyboard.edit.error.processing" = "Editing failed. Try again";
|
||
"keyboard.edit.error.processingTimeout" = "Editing timed out. Try again";
|
||
"keyboard.edit.error.unchanged" = "Nothing changed. Try a different instruction";
|
||
"keyboard.edit.status.preparing" = "Starting microphone…";
|
||
"keyboard.edit.status.listening" = "Listening for your editing instruction";
|
||
"keyboard.edit.status.processing" = "Editing…";
|
||
"keyboard.edit.status.review" = "Swipe to compare the original and edited text";
|
||
"keyboard.edit.status.applying" = "Applying edit…";
|
||
"keyboard.edit.page.original" = "Original";
|
||
"keyboard.edit.page.edited" = "Edited";
|
||
"keyboard.edit.helper.speak" = "Speak to edit";
|
||
"keyboard.edit.helper.finish" = "Tap to finish";
|
||
"keyboard.edit.helper.compare" = "Swipe to compare";
|
||
"keyboard.edit.helper.apply" = "Tap to apply";
|
||
"keyboard.edit.helper.append" = "Insert at cursor";
|
||
"keyboard.edit.close" = "Close edit mode";
|
||
"keyboard.edit.closeHint" = "Discard this edit and return to voice input.";
|
||
"keyboard.edit.apply" = "Apply edit";
|
||
"keyboard.edit.append" = "Insert at cursor";
|
||
"keyboard.edit.stop" = "Finish editing instruction";
|
||
|
||
/* AI question mode */
|
||
"keyboard.ai.placeholder" = "Tap the microphone to ask AI";
|
||
"keyboard.ai.hintA11yPrefix" = "Suggestion: ";
|
||
"keyboard.ai.hint" = "Insert the AI answer, then tap Send";
|
||
"keyboard.ai.listening" = "Listening…";
|
||
"keyboard.ai.recognizing" = "Recognizing your question…";
|
||
"keyboard.ai.generating" = "AI is answering…";
|
||
"keyboard.ai.thinking" = "AI is thinking…";
|
||
"keyboard.ai.send" = "Send";
|
||
"keyboard.ai.insert" = "Insert";
|
||
"keyboard.ai.inserted" = "Inserted";
|
||
"keyboard.ai.sent" = "Sent";
|
||
"keyboard.ai.cancel" = "Cancel AI question";
|
||
"keyboard.ai.cancelHint" = "Cancel the current recording, recognition, or AI request.";
|
||
"keyboard.ai.sendA11y" = "Tap once to insert the AI answer, then tap again to send in supported fields";
|
||
"keyboard.ai.startA11y" = "Start asking AI";
|
||
"keyboard.ai.stopA11y" = "Finish the question and send it to AI";
|
||
"keyboard.assistant.longPressCoach" = "Tap to dictate · Hold to ask AI";
|
||
"keyboard.assistant.micA11y" = "Voice and AI";
|
||
"keyboard.assistant.micHint" = "Tap to dictate. Hold to ask AI.";
|
||
"keyboard.assistant.dictationAction" = "Start voice dictation";
|
||
"keyboard.assistant.aiAction" = "Ask AI";
|
||
"keyboard.assistant.space" = "Space";
|
||
"keyboard.assistant.delete" = "Delete";
|
||
"keyboard.assistant.sendHint" = "Performs the current field's Send, Search, Done, or Go action.";
|
||
"keyboard.assistant.insertPending" = "Insert retained AI answer";
|
||
"keyboard.assistant.discardPending" = "Discard AI answer";
|
||
"keyboard.assistant.discardPendingHint" = "Discard the answer retained because the cursor or input field changed.";
|
||
"keyboard.ai.replyVariant.ordinary" = "Ordinary";
|
||
"keyboard.ai.replyVariant.formal" = "Formal";
|
||
"keyboard.ai.replyVariant.playful" = "Relaxed & playful";
|
||
"keyboard.ai.replyVariant.invitationAccept" = "Accept";
|
||
"keyboard.ai.replyVariant.invitationDecline" = "Decline";
|
||
"keyboard.ai.replyVariant.invitationTentative" = "Decide later";
|
||
"keyboard.ai.replyVariant.taskAcknowledge" = "Acknowledge";
|
||
"keyboard.ai.replyVariant.taskClarify" = "Clarify";
|
||
"keyboard.ai.replyVariant.taskNegotiate" = "Negotiate";
|
||
"keyboard.ai.replyVariant.blessingReturn" = "Thank & return wish";
|
||
"keyboard.ai.replyVariant.blessingWarm" = "Warm";
|
||
"keyboard.ai.replyVariant.blessingPlayful" = "Lighthearted";
|
||
"keyboard.ai.replyVariant.clarificationDirect" = "Direct reply";
|
||
"keyboard.ai.replyVariant.clarificationQuestion" = "Ask key detail";
|
||
"keyboard.ai.replyVariant.clarificationConfirm" = "Confirm & ask";
|
||
"keyboard.ai.replyVariant.insertHint" = "Insert this complete reply.";
|
||
"keyboard.assistant.dismissClipboard" = "Dismiss clipboard suggestions";
|
||
"keyboard.assistant.dismissClipboardHint" = "Hide the current clipboard summary and skills.";
|
||
"keyboard.semantic.intent.assistantCommand" = "Assistant command";
|
||
"keyboard.semantic.intent.informationQuery" = "Information query";
|
||
"keyboard.semantic.intent.systemNotification" = "System notification";
|
||
"keyboard.semantic.domain.finance" = "Finance";
|
||
"keyboard.semantic.domain.travel" = "Travel";
|
||
"keyboard.semantic.domain.calendar" = "Calendar";
|
||
"keyboard.semantic.domain.communication" = "Communication";
|
||
"keyboard.semantic.domain.media" = "Media";
|
||
"keyboard.semantic.domain.smartHome" = "Smart home";
|
||
"keyboard.semantic.domain.shopping" = "Shopping";
|
||
"keyboard.semantic.domain.dining" = "Dining";
|
||
"keyboard.semantic.domain.health" = "Health";
|
||
"keyboard.semantic.domain.weather" = "Weather";
|
||
"keyboard.semantic.domain.accountService" = "Account & service";
|
||
"keyboard.semantic.domain.generalKnowledge" = "General knowledge";
|
||
"keyboard.ai.error.missingAPIKey" = "Configure an AI service in the main app first";
|
||
"keyboard.ai.error.pipelineBusy" = "Voice input is busy. Try again shortly";
|
||
"keyboard.ai.error.startTimeout" = "Microphone startup timed out. Try again";
|
||
"keyboard.ai.error.requestTimeout" = "AI response timed out. Try again";
|
||
"keyboard.ai.error.requestFailed" = "AI response failed. Try again";
|
||
"keyboard.ai.error.clipboardUnavailable" = "This clipboard suggestion expired. Copy the text again";
|
||
"keyboard.ai.skill.reply" = "Reply";
|
||
"keyboard.ai.skill.playfulReply" = "Playful";
|
||
"keyboard.ai.skill.replyInSourceLanguage" = "Reply";
|
||
"keyboard.ai.skill.summarize" = "Key points";
|
||
"keyboard.ai.skill.openLink" = "Open";
|
||
"keyboard.ai.skill.summarizeWebPage" = "Web summary";
|
||
"keyboard.ai.skill.callPhone" = "Call";
|
||
"keyboard.ai.skill.createContact" = "New contact";
|
||
"keyboard.ai.skill.extractConclusions" = "Conclusions";
|
||
"keyboard.ai.skill.translate" = "Translate";
|
||
"keyboard.ai.skill.acceptInvitation" = "Accept";
|
||
"keyboard.ai.skill.declineInvitation" = "Decline";
|
||
"keyboard.ai.skill.acceptTask" = "Acknowledge";
|
||
"keyboard.ai.skill.clarifyRequest" = "Clarify";
|
||
"keyboard.ai.skill.empathyReply" = "Empathize";
|
||
"keyboard.ai.skill.blessingReply" = "Reply to wishes";
|
||
"keyboard.ai.skill.askForDetails" = "Ask details";
|
||
"keyboard.ai.skill.businessReply" = "Business";
|
||
"keyboard.ai.skill.organizeList" = "Organize";
|
||
"keyboard.ai.skill.extractTodos" = "Tasks";
|
||
"keyboard.ai.skill.extractEvents" = "Events";
|
||
"keyboard.ai.skill.saveToNotes" = "Notes";
|
||
"keyboard.ai.skill.navigate" = "Navigate";
|
||
"keyboard.ai.skill.previewPolish" = "Polish";
|
||
"keyboard.ai.skill.previewIdeas" = "Ideas";
|
||
"keyboard.ai.skill.previewTone" = "Tone";
|
||
"keyboard.ai.skill.noTodos" = "No tasks in the clipboard";
|
||
"keyboard.ai.skill.noEvents" = "No date or time in the clipboard";
|
||
"keyboard.ai.skill.noAddress" = "No address in the clipboard";
|
||
"keyboard.ai.skill.noNote" = "Nothing to save to Notes";
|
||
"keyboard.ai.skill.noExportItems" = "Nothing to send to the Shortcut";
|
||
"keyboard.ai.skill.extracting" = "Finding tasks…";
|
||
"keyboard.ai.skill.extractingEvents" = "Finding events…";
|
||
"keyboard.ai.skill.extractingAddress" = "Finding an address…";
|
||
"keyboard.ai.skill.namingNote" = "Naming the note…";
|
||
"keyboard.ai.skill.runningShortcut" = "Running Shortcut…";
|
||
"keyboard.ai.skill.openingMaps" = "Opening Maps…";
|
||
"keyboard.ai.skill.shortcutMissing" = "Companion Shortcut not found. Reinstall it in Skills";
|
||
"keyboard.ai.skill.handoffFailed" = "Couldn’t open the app to run the Shortcut";
|
||
"keyboard.ai.skill.openLinkFailed" = "Couldn’t open this link";
|
||
"keyboard.ai.skill.callPhoneFailed" = "Couldn’t start this call";
|
||
"keyboard.ai.skill.createContactFailed" = "Couldn’t open the new contact form";
|