262 lines
14 KiB
JSON
262 lines
14 KiB
JSON
{
|
|
"nav.recording": "Recording",
|
|
"nav.hardware": "Hardware",
|
|
"nav.storage": "Storage",
|
|
"nav.calendar": "Calendar",
|
|
"nav.sync": "Sync",
|
|
"nav.ai": "AI",
|
|
"nav.mcp": "MCP server",
|
|
"nav.privacy": "Privacy",
|
|
"nav.about": "About",
|
|
"nav.language": "Language",
|
|
|
|
"settings.language.title": "Language",
|
|
"settings.language.display": "Display language",
|
|
"settings.language.display_hint": "The language of the app interface. Adding a language is as simple as dropping in one translation file.",
|
|
|
|
"settings.transcription.title": "Transcription Language",
|
|
"settings.transcription.label": "Language",
|
|
"settings.transcription.auto": "Auto-detect",
|
|
"settings.transcription.applies_hint": "Applies to the next recording. The language actually used is shown on each meeting afterward.",
|
|
"settings.transcription.english_only": "English only",
|
|
"settings.transcription.model_english_only": "\"{model}\" is English-only.",
|
|
"settings.transcription.no_model": "No model selected.",
|
|
"settings.transcription.switch_multilingual": "Switch to a multilingual model above to choose a language.",
|
|
|
|
"settings.hardware.title": "Hardware",
|
|
"settings.hardware.active_backend": "Active backend",
|
|
"settings.hardware.model_meta": "· model {size}",
|
|
"settings.hardware.preferred_backend": "Preferred backend",
|
|
"settings.hardware.auto_backend": "Auto (best available)",
|
|
"settings.hardware.not_available": "not available",
|
|
"settings.hardware.fallback_hint": "Falls back automatically (NPU → NVIDIA → AMD → Intel → CPU) if the chosen backend fails to load.",
|
|
"settings.hardware.audio_devices": "Audio Devices",
|
|
"settings.hardware.recording_device": "Recording device",
|
|
"settings.hardware.default_system_audio": "Default system audio",
|
|
"settings.hardware.recording_device_hint": "WhispAssist records whatever this device plays (loopback) — the other side of the call. Pick a specific output if you don't want it following Windows' system default.",
|
|
"settings.hardware.microphone": "Microphone",
|
|
"settings.hardware.mic_off": "Off — don't capture my microphone",
|
|
"settings.hardware.default_mic": "Default microphone",
|
|
"settings.hardware.mic_hint": "Adds your own voice to the live transcript so both sides of the meeting are captured. Stays on your device — nothing is uploaded. Choose “Off” to transcribe only the system audio above.",
|
|
"settings.hardware.npu_detected": "NPU accelerator detected",
|
|
"settings.hardware.ready": "Ready",
|
|
"settings.hardware.downloading": "Downloading…",
|
|
"settings.hardware.package_needed": "Package needed",
|
|
"settings.hardware.npu_hint": "Your NPU needs a one-time acceleration package (Whisper ONNX model{extra}). It downloads in the background; you can also start it now.",
|
|
"settings.hardware.plus_openvino": " + OpenVINO runtime",
|
|
"settings.hardware.download_npu": "Download NPU package",
|
|
"settings.hardware.dml_title": "GPU acceleration (DirectML)",
|
|
"settings.hardware.dml_hint": "Your GPU can be accelerated without Vulkan via DirectML — a one-time package (Whisper ONNX model{extra}).",
|
|
"settings.hardware.plus_directml": " + DirectML runtime",
|
|
"settings.hardware.download_dml": "Download DirectML package",
|
|
"settings.hardware.detection_unavailable": "Hardware detection unavailable.",
|
|
"settings.hardware.low_overhead": "Low overhead preset",
|
|
"settings.hardware.low_overhead_note": "CPU + smallest model, for battery/background use",
|
|
"settings.hardware.models": "Models",
|
|
"settings.hardware.downloading_model": "Downloading {name}",
|
|
"settings.hardware.active_badge": "Active",
|
|
"settings.hardware.installed": "Installed",
|
|
"settings.hardware.use": "Use",
|
|
"settings.hardware.remove": "Remove",
|
|
"settings.hardware.cant_remove_active": "Can't remove the active model",
|
|
"settings.hardware.download": "Download",
|
|
"settings.hardware.diarization": "Speaker diarization",
|
|
"settings.hardware.diarization_hint": "Install both models to have finished recordings separated by speaker (Speaker 1, Speaker 2, …) instead of one running transcript. Runs fully offline, once per meeting after it stops. Without them, every line is attributed to a single speaker.",
|
|
|
|
"app.tagline": "local · private",
|
|
"app.note_template": "Note template",
|
|
"app.no_template": "No template",
|
|
"app.add_meeting": "Add meeting",
|
|
"app.add_meeting_title": "Add a meeting from a file or URL",
|
|
"app.record": "Record",
|
|
"app.record_title": "Start recording (Ctrl+Shift+R)",
|
|
"app.stop": "Stop",
|
|
"app.stop_title": "Stop recording (Ctrl+Shift+R)",
|
|
"app.cancel": "Cancel",
|
|
"app.cancel_title": "Discard this recording and delete it",
|
|
"app.recording": "Recording…",
|
|
"app.backend_title": "Active transcription backend",
|
|
"app.retention_title": "Save audio as .wav for this meeting",
|
|
"app.saving": "saving",
|
|
"app.not_saved": "not saved",
|
|
"app.reconnecting": "reconnecting audio device…",
|
|
"app.settings": "Settings",
|
|
"app.settings_title": "Settings (Ctrl+,)",
|
|
"app.discard_confirm": "Discard this recording? Its audio and transcript will be deleted.",
|
|
"app.announce_started": "Recording started",
|
|
"app.announce_paused": "Recording paused",
|
|
"app.announce_stopped": "Recording stopped",
|
|
"app.consent_dialog": "Recording consent",
|
|
"app.vault_dialog": "Unlock encryption vault",
|
|
"app.vault_title": "Unlock encryption vault",
|
|
"app.vault_desc": "Your meetings are encrypted at rest. Enter your password to read them.",
|
|
"app.vault_password": "Vault password",
|
|
"app.vault_incorrect": "Incorrect password",
|
|
"app.unlock": "Unlock",
|
|
"app.continue_locked": "Continue locked",
|
|
"app.show_meetings": "Show meetings list",
|
|
"app.hide_meetings": "Hide meetings list",
|
|
"app.show_summary": "Show summary panel",
|
|
"app.hide_summary": "Hide summary panel",
|
|
"app.resize_meetings": "Resize meetings list",
|
|
"app.resize_summary": "Resize summary panel",
|
|
|
|
"meetings.search_placeholder": "Search meetings…",
|
|
"meetings.search_aria": "Search meetings",
|
|
"meetings.filter_tag_aria": "Filter by tag",
|
|
"meetings.all_tags": "All tags",
|
|
"meetings.from_date_aria": "From date",
|
|
"meetings.to_date_aria": "To date",
|
|
"meetings.bulk_format_aria": "Bulk export format",
|
|
"meetings.bulk_export": "Bulk export",
|
|
"meetings.bulk_export_title": "Export every meeting matching the tag/date filters above",
|
|
"meetings.exporting": "Exporting…",
|
|
"meetings.exported_one": "Exported {n} meeting.",
|
|
"meetings.exported_many": "Exported {n} meetings.",
|
|
"meetings.searching": "Searching…",
|
|
"meetings.loading": "Loading meetings…",
|
|
"meetings.no_matches": "No matches.",
|
|
"meetings.empty": "No meetings yet — click Record above to start.",
|
|
"meetings.status.recording": "recording",
|
|
"meetings.status.transcribing": "transcribing",
|
|
"meetings.status.recovering": "recovering",
|
|
"meetings.status.error": "error",
|
|
"meetings.resume": "Resume transcription",
|
|
"meetings.delete_aria": "Delete meeting",
|
|
"meetings.delete_confirm": "Delete this meeting? This removes its recording, transcript, and notes.",
|
|
|
|
"transcript.heading": "Transcript",
|
|
"transcript.title_aria": "Meeting title",
|
|
"transcript.lang_title": "Transcription language",
|
|
"transcript.lang_auto": "auto-detecting…",
|
|
"transcript.show": "Show transcript",
|
|
"transcript.hide": "Hide transcript",
|
|
"transcript.empty": "No transcript for this meeting.",
|
|
"transcript.will_appear": "Transcript will appear here as you record.",
|
|
"transcript.play_from_here": "Play from here",
|
|
"transcript.resize": "Resize transcript and notes",
|
|
"transcript.reprocess_placeholder": "Re-transcribe with…",
|
|
"transcript.reprocess_lang_aria": "Reprocess language",
|
|
"transcript.reprocess_keep_lang": "Keep current language",
|
|
"transcript.reprocess_go": "Go",
|
|
"transcript.retranscribing": "Re-transcribing…",
|
|
"transcript.has_note": "Has a note",
|
|
"transcript.note_placeholder": "Add a note for this moment…",
|
|
"transcript.note_aria": "Note for this transcript line",
|
|
"transcript.filter_md": "Markdown",
|
|
"transcript.filter_pdf": "PDF",
|
|
"transcript.filter_docx": "Word document",
|
|
"transcript.filter_obsidian": "Obsidian note",
|
|
|
|
"notes.heading": "Notes",
|
|
"notes.show": "Show notes",
|
|
"notes.hide": "Hide notes",
|
|
"notes.placeholder": "Notes…",
|
|
"notes.live_placeholder": "Type notes while you talk…",
|
|
"notes.toolbar_aria": "Notes formatting",
|
|
"notes.bold": "Bold",
|
|
"notes.italic": "Italic",
|
|
"notes.h1": "Heading 1",
|
|
"notes.h2": "Heading 2",
|
|
"notes.bullet": "Bullet list",
|
|
"notes.checkbox_title": "Checkbox",
|
|
"notes.checkbox_aria": "Checkbox list item",
|
|
"notes.edit_raw": "Edit the raw markdown",
|
|
"notes.render": "Render the markdown",
|
|
"notes.editor": "Editor",
|
|
"notes.preview": "Preview",
|
|
"notes.export_md_title": "Export notes as .md",
|
|
"notes.export_pdf_title": "Export notes as .pdf",
|
|
"notes.export_docx_title": "Export notes as .docx",
|
|
"notes.export_bundle_title": "Export audio + transcript + notes to a folder",
|
|
"notes.export_obsidian_title": "Export one Obsidian note (notes + summary + transcript, no audio)",
|
|
|
|
"summary.recording_heading": "Recording",
|
|
"summary.loading_recording": "Loading recording…",
|
|
"summary.sync_heading": "Sync",
|
|
"summary.uploading": "Uploading…",
|
|
"summary.upload_now": "Upload now",
|
|
"summary.no_uploads": "No uploads yet for this meeting.",
|
|
"summary.retry": "retry",
|
|
"summary.tags_heading": "Tags",
|
|
"summary.tags_select": "Select a meeting to tag it.",
|
|
"summary.tag_add_placeholder": "Add tag…",
|
|
"summary.tag_first_placeholder": "project, client, topic…",
|
|
"summary.generating": "Generating…",
|
|
"summary.generate_tags": "Generate tags",
|
|
"summary.saving": "Saving…",
|
|
"summary.save_tags": "Save tags",
|
|
"summary.summary_heading": "Summary",
|
|
"summary.ai_provider": "AI provider",
|
|
"summary.provider_off": "Off",
|
|
"summary.provider_custom": "Custom",
|
|
"summary.local": "local",
|
|
"summary.leaves_device": "leaves this device",
|
|
"summary.this_hosted_provider": "this hosted provider",
|
|
"summary.select_generate": "Select a meeting to generate a summary.",
|
|
"summary.decisions_heading": "Decisions",
|
|
"summary.regenerate": "Regenerate",
|
|
"summary.generated_hint": "Generated locally after the meeting (requires a local LLM provider).",
|
|
"summary.no_provider": "No AI provider configured — enable one in Settings.",
|
|
"summary.generate_summary": "Generate summary",
|
|
"summary.briefs_heading": "Feature briefs",
|
|
"summary.briefs_select": "Select a meeting to create or view feature briefs.",
|
|
"summary.briefs_desc": "Distills this meeting into an agent-ready spec (requires a local LLM provider) — hand it to a coding agent, or serve it over the MCP server once that's on.",
|
|
"summary.brief_repo_placeholder": "Target repo (optional), e.g. acme/reporting-web",
|
|
"summary.distilling": "Distilling…",
|
|
"summary.create_brief": "Create feature brief",
|
|
"summary.brief_mcp_title": "Available when the MCP server is on",
|
|
"summary.copied": "Copied",
|
|
"summary.copy_md": "Copy as Markdown",
|
|
"summary.copy_json": "Copy as JSON",
|
|
"summary.brief_problem": "Problem",
|
|
"summary.brief_outcome": "Desired outcome",
|
|
"summary.brief_criteria": "Acceptance criteria",
|
|
"summary.brief_none": "None captured.",
|
|
"summary.brief_context": "Context",
|
|
"summary.action_items_heading": "Action items",
|
|
"summary.ai_select": "Select a meeting to see its action items.",
|
|
"summary.ai_empty": "None yet — add one below, or generate a summary to extract them automatically.",
|
|
"summary.confirmed": "Confirmed",
|
|
"summary.ai_text_placeholder": "Action item…",
|
|
"summary.ai_text_aria": "Action item text",
|
|
"summary.owner": "Owner",
|
|
"summary.due_date": "Due date",
|
|
"summary.reminder_title": "Schedule a local reminder for this due date",
|
|
"summary.ai_delete_title": "Delete this action item",
|
|
"summary.ai_delete_aria": "Delete action item",
|
|
"summary.add_action_item": "Add action item",
|
|
"summary.save_action_items": "Save action items",
|
|
"summary.calendar_heading": "Calendar event",
|
|
"summary.cal_select": "Select a meeting to link it to a calendar event.",
|
|
"summary.event_search_placeholder": "Search event title…",
|
|
"summary.linked_event": "Linked event",
|
|
"summary.change_event": "Change event…",
|
|
"summary.link_event": "Link an event…",
|
|
"summary.untitled_event": "(untitled)",
|
|
"summary.no_events_1": "No events imported yet — import a",
|
|
"summary.no_events_2": "from Settings → Calendar.",
|
|
"summary.no_events_match": "No events match this search/date — try clearing one.",
|
|
"summary.organizer_label": "Organizer: {name}",
|
|
"summary.participants_heading": "Participants",
|
|
"summary.participants_hint": "Populated from the linked calendar event.",
|
|
"summary.speakers_heading": "Speakers",
|
|
"summary.speakers_select": "Select a meeting to name its speakers.",
|
|
"summary.no_speakers": "No speakers detected yet.",
|
|
"summary.speaker_name_placeholder": "Speaker name",
|
|
"summary.save": "Save",
|
|
"summary.cancel": "Cancel",
|
|
"summary.name_speaker": "Name this speaker…",
|
|
"summary.add_new_name": "+ Add new name…",
|
|
|
|
"settings.recording.title": "Recording",
|
|
"settings.recording.record_default": "Record meetings by default",
|
|
"settings.recording.save_audio_as": "save audio as",
|
|
"settings.recording.default_hint": "Off by default. When off, audio is used only to produce the transcript and is deleted when the meeting is finalized. You can also toggle recording per meeting.",
|
|
"settings.recording.consent_label": "Consent: {status}.",
|
|
"settings.recording.consent_ack": "acknowledged",
|
|
"settings.recording.consent_not": "not yet acknowledged",
|
|
"settings.recording.auto_label": "Auto-start recording when a calendar event begins",
|
|
"settings.recording.auto_hint": "Only while WhispAssist is open. When an imported calendar event's start time arrives, a recording begins automatically (using your default retention setting above). Nothing runs in the background — the timer is armed only while the app is running. Import events under Settings → Calendar."
|
|
}
|