|
4 | 4 | "dictation": "Dictation", |
5 | 5 | "history": "History", |
6 | 6 | "dictionary": "Dictionary", |
7 | | - "settings": "Settings", |
8 | | - "feedback": "Feedback", |
9 | | - "words": "words" |
| 7 | + "settings": "Settings" |
10 | 8 | }, |
11 | 9 | "dashboard": { |
12 | | - "title": "Voice Dictation", |
13 | | - "subtitle": "Speak naturally, get polished text", |
14 | | - "thisWeek": "This week", |
15 | 10 | "timeSaved": "Time saved", |
16 | | - "styleMatch": "Style match", |
17 | 11 | "wordsUnit": "words", |
18 | | - "minUnit": "min", |
19 | 12 | "clickToStart": "Click to start dictation", |
20 | 13 | "recording": "Recording", |
21 | 14 | "processing": "Processing...", |
22 | 15 | "transcribing": "Transcribing & polishing your text", |
23 | | - "autoDetect": "Auto-detect language", |
24 | | - "outputSameAsInput": "Output: same as input", |
25 | | - "outputLang": "Output: {lang}", |
26 | | - "noSpeech": "No speech detected", |
27 | 16 | "avgSpeed": "Avg Speed", |
28 | 17 | "heroTitle": "Speak naturally, write perfectly — in any app", |
29 | 18 | "heroSubtitle": "Press {hotkey} to start and stop voice input. Or hold to say something brief.", |
|
55 | 44 | }, |
56 | 45 | "dictation": { |
57 | 46 | "title": "Voice Dictation", |
58 | | - "subtitle": "Speak naturally, get polished text", |
59 | | - "clickOrPress": "Click to start or press", |
60 | | - "hotkeyHint": "Or use the global shortcut", |
61 | | - "recent": "Recent", |
62 | | - "statTranscriptions": "Transcriptions", |
63 | | - "statWords": "Words", |
64 | | - "statTimeSaved": "Time saved" |
| 47 | + "clickOrPress": "Click to start or press" |
65 | 48 | }, |
66 | 49 | "history": { |
67 | 50 | "title": "History", |
68 | | - "transcriptionCount": "{count} transcription | {count} transcriptions", |
69 | 51 | "clearAll": "Clear all", |
70 | 52 | "searchPlaceholder": "Search transcriptions...", |
71 | 53 | "noMatches": "No matches found", |
72 | 54 | "noHistory": "No history yet", |
73 | 55 | "tryDifferent": "Try a different search term", |
74 | 56 | "willAppearHere": "Your transcriptions will appear here", |
75 | | - "polished": "Polished", |
76 | | - "raw": "Raw", |
77 | 57 | "justNow": "Just now", |
78 | 58 | "mAgo": "{n}m ago", |
79 | 59 | "hAgo": "{n}h ago", |
80 | 60 | "today": "Today", |
81 | 61 | "yesterday": "Yesterday", |
82 | 62 | "retry": "Retry", |
83 | | - "delete": "Delete", |
84 | | - "hasContext": "Context", |
85 | 63 | "downloadAudio": "Download audio", |
86 | 64 | "detailTitle": "Transcription Detail", |
87 | 65 | "finalOutput": "Final Output", |
|
91 | 69 | "sttStage": "Speech-to-Text", |
92 | 70 | "llmStage": "LLM Post-processing", |
93 | 71 | "systemPrompt": "System Prompt", |
94 | | - "audio": "Audio Recording", |
95 | | - "audioAvailable": "Audio file available for download", |
96 | 72 | "noOutput": "No output", |
97 | 73 | "activeWindow": "Active Window", |
98 | | - "bundleId": "Bundle ID", |
99 | | - "browserUrl": "URL", |
100 | 74 | "focusedField": "Focused Input Field", |
101 | 75 | "selectedText": "Selected Text", |
102 | 76 | "fieldContent": "Field Content", |
|
106 | 80 | "contextNotSaved": "No context data saved", |
107 | 81 | "showMore": "Show more", |
108 | 82 | "showLess": "Show less", |
109 | | - "provider": "Provider", |
110 | | - "model": "Model", |
111 | 83 | "clipboard": "Clipboard", |
112 | | - "clipboardContent": "Clipboard content at capture time", |
113 | 84 | "recentTranscriptions": "Recent Transcriptions", |
114 | | - "recentTranscriptionsDesc": "Previous transcriptions for continuity context", |
115 | | - "sttDuration": "STT Duration", |
116 | | - "llmDuration": "LLM Duration", |
117 | 85 | "cursorAt": "Cursor at position", |
118 | 86 | "line": "line", |
119 | 87 | "chars": "chars", |
120 | 88 | "selectedRange": "Selection", |
121 | | - "ocrDuration": "OCR Duration", |
122 | | - "skipped": "No speech detected", |
123 | | - "duration": "Duration" |
| 89 | + "ocrDuration": "OCR Duration" |
124 | 90 | }, |
125 | 91 | "dictionary": { |
126 | 92 | "title": "Personal Dictionary", |
127 | | - "subtitle": "Add specialized terms, brand names, or abbreviations to improve accuracy", |
128 | 93 | "addPlaceholder": "Add terms (comma-separated, e.g. Kubernetes, gRPC, OpenType)", |
129 | 94 | "add": "Add", |
130 | 95 | "noTerms": "No custom terms yet", |
131 | 96 | "noTermsHint": "Words here help the AI spell domain-specific vocabulary correctly", |
132 | | - "howItWorks": "How it works", |
133 | | - "howItWorksDesc": "Dictionary terms are injected into the LLM context during post-processing. This helps correctly spell brand names, technical jargon, abbreviations, and domain-specific vocabulary that standard speech recognition might miss.", |
134 | 97 | "newWord": "New Word", |
135 | 98 | "search": "Search terms...", |
136 | 99 | "filterAll": "All", |
|
164 | 127 | "errorServerDetail": "The API service is temporarily down. Please try again later." |
165 | 128 | }, |
166 | 129 | "overlay": { |
167 | | - "listening": "Listening...", |
168 | 130 | "processing": "Processing...", |
169 | | - "transcribing": "Transcribing & polishing", |
170 | | - "pressHotkey": "Press hotkey to start", |
171 | 131 | "copiedToClipboard": "Copied to clipboard", |
172 | 132 | "tapToCopy": "Tap text to copy" |
173 | 133 | }, |
174 | 134 | "settings": { |
175 | 135 | "title": "Settings", |
176 | | - "subtitle": "Configure API providers, models, and preferences", |
177 | 136 | "tabs": { |
178 | 137 | "providers": "API Providers", |
179 | 138 | "general": "General", |
180 | 139 | "hotkey": "Hotkeys", |
181 | | - "audio": "Audio", |
182 | 140 | "tones": "Tone Rules", |
183 | 141 | "privacy": "Privacy", |
184 | 142 | "context": "Context", |
|
199 | 157 | "vlmModel": "VLM Model", |
200 | 158 | "vlmModelDesc": "Accepts image + text input, used for understanding screen content.", |
201 | 159 | "testConnection": "Test Connection", |
202 | | - "testSuccess": "Test passed", |
203 | 160 | "testError": "Test failed", |
204 | 161 | "clickToCopy": "Copy", |
205 | 162 | "copied": "Copied", |
|
209 | 166 | "sttTitle": "Speech Recognition", |
210 | 167 | "sttTooltip": "Converts your voice into raw text. This is the first step — choose a provider that supports your language.", |
211 | 168 | "llmTitle": "LLM", |
212 | | - "llmTooltip": "Polishes transcriptions, removes fillers, applies tone rules, and powers screen context understanding (VLM).", |
213 | | - "vlmTitle": "Vision Language Model", |
214 | | - "vlmTooltip": "Reads your screen to understand what you're working on, providing better context for transcription.", |
215 | | - "vlmNote": "Uses the same API credentials as your LLM provider. Only active when Screen OCR is enabled in Context settings.", |
216 | | - "sharedCredentials": "Shares credentials with STT (same provider selected)" |
| 169 | + "llmTooltip": "Polishes transcriptions, removes fillers, applies tone rules, and powers screen context understanding (VLM)." |
217 | 170 | }, |
218 | 171 | "general": { |
219 | 172 | "description": "Appearance, startup behavior, and input/output preferences.", |
|
222 | 175 | "dark": "Dark", |
223 | 176 | "light": "Light", |
224 | 177 | "system": "System", |
225 | | - "startup": "Startup", |
226 | 178 | "launchOnStartup": "Launch on startup", |
227 | 179 | "launchDesc": "Automatically start OpenType when you log in", |
228 | 180 | "inputMode": "Input Mode", |
|
244 | 196 | "pasteLastHint": "Quickly paste the most recent transcription result" |
245 | 197 | }, |
246 | 198 | "audio": { |
247 | | - "description": "Microphone selection, sound feedback, and recording behavior.", |
248 | 199 | "microphone": "Microphone", |
249 | | - "inputDevice": "Input Device", |
250 | 200 | "micHint": "Select your preferred microphone. Leave empty to use the system default.", |
251 | | - "micPlaceholder": "Default system microphone", |
252 | | - "autoDetect": "Auto-detect (system default)", |
253 | | - "soundEffects": "Sound Effects", |
254 | | - "startSound": "Recording start sound", |
255 | | - "startSoundDesc": "Play a sound when recording begins", |
256 | | - "endSound": "Recording end sound", |
257 | | - "endSoundDesc": "Play a sound when recording ends", |
258 | | - "autoMute": "Auto-Mute", |
259 | | - "autoMuteToggle": "Mute system audio during recording", |
260 | | - "autoMuteDesc": "Automatically mute other audio while recording to reduce background noise interference" |
| 201 | + "autoDetect": "Auto-detect (system default)" |
261 | 202 | }, |
262 | 203 | "tones": { |
263 | 204 | "description": "Control the writing style of your dictation output. Set a default tone for all apps, or add rules so specific apps get a different style automatically.", |
|
277 | 218 | "customPlaceholder": "Custom tone instruction..." |
278 | 219 | }, |
279 | 220 | "language": { |
280 | | - "description": "Interface language, voice input/output language, and translation settings.", |
281 | 221 | "uiLanguage": "Interface Language", |
282 | 222 | "uiLanguageHint": "Choose the language for the application interface", |
283 | | - "auto": "Auto (System)", |
284 | | - "voiceInput": "Voice Input Language", |
285 | | - "voiceInputHint": "Auto-detect works well for most languages. Set manually for improved accuracy.", |
286 | | - "textOutput": "Text Output Language", |
287 | | - "textOutputHint": "Set a different language to enable real-time translation (e.g., speak Chinese → output English)", |
288 | | - "autoDetect": "Auto-detect", |
289 | | - "sameAsInput": "Same as input", |
290 | | - "multiLang": "Multi-language Mixing", |
291 | | - "multiLangDesc": "Allow mixing multiple languages in a single dictation. The AI will handle code-switching automatically.", |
292 | | - "translationMode": "Translation mode", |
293 | | - "translationModeDesc": "When input and output languages differ, OpenType performs real-time translation. The output uses natural, idiomatic phrasing — not mechanical word-for-word translation." |
| 223 | + "auto": "Auto (System)" |
294 | 224 | }, |
295 | 225 | "privacy": { |
296 | | - "privacyFirst": "Privacy-first design", |
297 | 226 | "privacyDesc": "OpenType stores all dictation history locally on your device. Audio is processed via API calls but is never stored by the service providers. We do not use your data to train any models.", |
298 | 227 | "saveHistory": "Save dictation history", |
299 | 228 | "saveHistoryDesc": "When enabled, all transcriptions are saved locally for review", |
|
304 | 233 | "7d": "7 days", |
305 | 234 | "24h": "24 hours", |
306 | 235 | "1h": "1 hour", |
307 | | - "dataManagement": "Data Management", |
308 | 236 | "clearAll": "Clear All Local Data", |
309 | 237 | "clearAllHint": "Deletes all history, personal dictionary entries, and learned preferences from this device.", |
310 | 238 | "clearConfirm": "Clear all local data? This cannot be undone." |
|
320 | 248 | "selfCorrection": "Self-Correction Detection", |
321 | 249 | "selfCorrectionDesc": "Recognize mid-sentence corrections (e.g., \"Monday—no, Tuesday\") and keep only the final intent", |
322 | 250 | "autoFormat": "Auto Formatting", |
323 | | - "autoFormatDesc": "Add punctuation, capitalization, and organize spoken lists into structured text", |
324 | | - "note": "Note", |
325 | | - "noteDesc": "Disabling these features means the LLM will do less post-processing. The output will be closer to raw transcription. Self-correction detection is the most impactful feature for natural dictation." |
| 251 | + "autoFormatDesc": "Add punctuation, capitalization, and organize spoken lists into structured text" |
326 | 252 | } |
327 | 253 | }, |
328 | 254 | "context": { |
329 | 255 | "description": "Context awareness helps OpenType understand what you're working on for better transcription results.", |
330 | | - "activeWindow": "Active Window Detection", |
331 | 256 | "activeWindowToggle": "Detect active application", |
332 | 257 | "activeWindowDesc": "Detect the active app (e.g. Slack, VS Code) and automatically match the writing tone to the context", |
333 | | - "selectedText": "Input Context", |
334 | 258 | "selectedTextToggle": "Input field awareness", |
335 | 259 | "selectedTextDesc": "Read selected text, field content, and cursor position to help the AI understand what you're editing. Requires accessibility permission.", |
336 | | - "screenOcr": "Screen OCR", |
337 | 260 | "screenOcrToggle": "Capture screen context", |
338 | 261 | "screenOcrDesc": "Capture your screen and use a vision model (VLM) to understand what you're working on. Requires screen recording permission and a VLM model configured in provider settings.", |
339 | | - "vlmModel": "VLM Model", |
340 | | - "accessibilityPermission": "Accessibility Permission", |
341 | | - "screenPermission": "Screen Recording Permission", |
342 | | - "permissionGranted": "Permission granted", |
343 | | - "grantPermission": "Grant Permission", |
344 | 262 | "accessibilityGranted": "Accessibility permission granted", |
345 | 263 | "accessibilityNeeded": "Accessibility permission required — click to grant", |
346 | 264 | "screenGranted": "Screen recording permission granted", |
347 | 265 | "screenNeeded": "Screen recording permission required — click to open settings", |
348 | | - "accessibilityHelp": "Open System Preferences → Privacy & Security → Accessibility, then add OpenType", |
349 | | - "screenHelp": "Open System Preferences → Privacy & Security → Screen Recording, then add OpenType", |
350 | | - "autoLearn": "Auto-Learn Dictionary", |
351 | 266 | "autoLearnToggle": "Auto-learn terms from transcriptions", |
352 | 267 | "autoLearnDesc": "Detect proper nouns, brand names, and technical terms from transcriptions and add them to your dictionary automatically" |
353 | 268 | }, |
354 | 269 | "update": { |
355 | | - "title": "Software Update", |
356 | 270 | "checkNow": "Check for Updates", |
357 | 271 | "checking": "Checking...", |
358 | 272 | "upToDate": "You're up to date!", |
|
372 | 286 | "blocked": "This combination is reserved" |
373 | 287 | }, |
374 | 288 | "common": { |
375 | | - "ok": "OK", |
376 | | - "cancel": "Cancel", |
377 | | - "save": "Save", |
378 | | - "delete": "Delete", |
379 | | - "edit": "Edit", |
380 | 289 | "close": "Close", |
381 | | - "done": "Done", |
382 | | - "loading": "Loading...", |
383 | | - "error": "Error", |
384 | | - "success": "Success", |
385 | | - "clickToSet": "Click to set", |
386 | | - "pressKeyCombination": "Press a key combination..." |
| 290 | + "clickToSet": "Click to set" |
387 | 291 | } |
388 | 292 | } |
0 commit comments