refactor(i18n): date 중복 버그 수정 + 고아 키 967건 삭제 (WS4)

- date.today/yesterday 중복 정의(uppercase 잔해 "TODAY"/"YESTERDAY")
  삭제 (ko/en) -> 한국어 사용자에게 잘못된 대문자 표시 버그 해소.
- 고아 키 967건 삭제: ko/en 109건 + 타 10 locale 858건.
- P1 재검증으로 20건 KEEP 전환 (camelCase license.feature 15 +
  nav 5) -- 동적 보간/프로퍼티 패스스루 참조로, typecheck가 잡지
  못하는 런타임 버그 15건 예방.
정책: docs/REFACTOR_POLICY.md DP3, DP9, 이식 인사이트 P1
This commit is contained in:
Yun Chan 2026-07-22 01:54:51 +09:00
parent 078304dda9
commit 87f2dac9e5
12 changed files with 0 additions and 864 deletions

View file

@ -18,32 +18,23 @@
"login.google": "Mit Google fortfahren",
"login.github": "Mit GitHub fortfahren",
"login.terms": "Durch Fortfahren stimmen Sie den Nutzungsbedingungen und der Datenschutzrichtlinie zu.",
"dashboard.sessionOverview": "Sitzungsübersicht",
"dashboard.systemStatus": "Systemstatus",
"dashboard.sessionsToday": "Sitzungen heute",
"dashboard.pressToRecord": "Drücke {{key}}, um die Aufnahme zu starten",
"dashboard.hotkeyNotSet": "Tastenkürzel nicht festgelegt",
"dashboard.words": "Wörter",
"dashboard.total": "gesamt",
"dashboard.streak": "Serie",
"dashboard.days": "Tage",
"dashboard.recording": "Aufnahme",
"dashboard.sessions": "Sitzungen",
"dashboard.today": "heute",
"dashboard.recentTranscriptions": "Letzte Transkriptionen",
"dashboard.noHistory": "Kein Verlauf — drücke das Tastenkürzel, um die Aufnahme zu starten",
"dashboard.copy": "Kopieren",
"dashboard.entries": "{{count}} Einträge",
"dashboard.stat": "Statistiken",
"dashboard.sys": "System",
"dashboard.currentBackend": "Aktuelles Backend",
"dashboard.backendLocal": "Lokal (Ollama)",
"dashboard.backendPremium": "Premium (Claude)",
"dashboard.loginRequired": "Anmeldung erforderlich",
"history.title": "Transkriptionsverlauf",
"history.search": "Suchen...",
"history.entries": "{{count}} Einträge",
"history.loading": "Laden...",
"history.noResults": "Keine Ergebnisse",
"history.noHistory": "Kein Verlauf — starte eine Aufnahme",
"history.count": "{{count}} Einträge",
@ -51,7 +42,6 @@
"dictionary.words": "{{count}} Wörter",
"dictionary.add": "Hinzufügen",
"dictionary.search": "Suchen...",
"dictionary.loading": "Laden...",
"dictionary.noResults": "Keine Ergebnisse",
"dictionary.noWords": "Keine Wörter — füge benutzerdefinierte Wörter hinzu, um die STT-Genauigkeit zu verbessern",
"dictionary.used": "{{count}} Mal verwendet",
@ -64,7 +54,6 @@
"commands.add": "Hinzufügen",
"commands.activeCommand": "Aktiver Befehl",
"commands.none": "Keiner",
"commands.loading": "Laden...",
"commands.noCommands": "Keine Befehle — klicke auf Hinzufügen, um einen zu erstellen",
"commands.editTitle": "Befehl bearbeiten",
"commands.addTitle": "Befehl hinzufügen",
@ -138,31 +127,9 @@
"settings.about.voiceEngineValue": "STT: faster-whisper (lokal) / LLM: Ollama (lokal)",
"settings.about.description": "Vollständig lokaler KI-Sprachassistent, basierend auf Reverse Engineering von Speakly. Funktioniert ohne Cloud-Abhängigkeiten.",
"settings.about.restartOnboarding": "Einrichtungsanleitung erneut anzeigen",
"status.ollama": "OLLAMA",
"status.offline": "OFFLINE",
"status.nudge.title": "Ollama läuft nicht",
"status.nudge.desc": "Ollama wird für die LLM-Nachbearbeitung (Übersetzung, Zusammenfassung usw.) benötigt.",
"status.nudge.guide": "Installationsanleitung anzeigen →",
"onboarding.welcome.title": "D3RO-VOICE",
"onboarding.welcome.desc": "Ohne Tippen, per Sprache. Dein lokaler KI-Sprachassistent.",
"onboarding.welcome.start": "Loslegen",
"onboarding.mic.title": "Mikrofon einrichten",
"onboarding.mic.desc": "Wähle das Mikrofon aus, das du verwenden möchtest. Du kannst es später in den Einstellungen ändern.",
"onboarding.hotkey.title": "Tastenkürzel einrichten",
"onboarding.hotkey.desc": "Lege das Diktat-Tastenkürzel fest. Die Aufnahme läuft, solange du die Taste gedrückt hältst.",
"onboarding.hotkey.notSet": "Kein Tastenkürzel festgelegt",
"onboarding.hotkey.change": "Tastenkürzel ändern",
"onboarding.hotkey.set": "Tastenkürzel festlegen",
"onboarding.ollama.title": "Ollama installieren (optional)",
"onboarding.ollama.desc": "Ollama wird für die LLM-Nachbearbeitung wie Übersetzung oder Zusammenfassung benötigt. Die Sprachdiktierung funktioniert ohne Ollama.",
"onboarding.ollama.download": "Ollama herunterladen",
"onboarding.ollama.modelHint": "Lade nach der Installation ein Modell über das Terminal herunter",
"onboarding.done.title": "Einrichtung abgeschlossen!",
"onboarding.done.descWithKey": "Halte {{key}} gedrückt und sprich, um deine Stimme in Text umzuwandeln.",
"onboarding.done.descNoKey": "Lege in den Einstellungen ein Tastenkürzel fest, um mit der Spracheingabe zu beginnen.",
"onboarding.done.start": "Loslegen",
"onboarding.back": "Zurück",
"onboarding.next": "Weiter",
"hotkey.title": "Tastenkürzel einrichten",
"hotkey.dictationTitle": "Diktat-Tastenkürzel einrichten",
"hotkey.oneTouchTitle": "Tastenkürzel für Ein-Tasten-Modus einrichten",
@ -195,8 +162,6 @@
"common.cancel": "Abbrechen",
"common.save": "Speichern",
"common.delete": "Löschen",
"common.add": "Hinzufügen",
"common.edit": "Bearbeiten",
"common.close": "Schließen",
"common.confirm": "Bestätigen",
"common.loading": "Laden...",
@ -217,30 +182,16 @@
"nav.meeting": "Meeting",
"meeting.title": "Meeting-Modus",
"meeting.newMeeting": "Neues Meeting",
"meeting.startRecording": "Aufnahme starten",
"meeting.stopRecording": "Aufnahme beenden",
"meeting.recording": "Aufnahme läuft",
"meeting.processing": "Protokoll wird erstellt...",
"meeting.completed": "Abgeschlossen",
"meeting.error": "Fehler",
"meeting.elapsed": "Vergangen",
"meeting.memoPlaceholder": "Memo eingeben (Enter zum Hinzufügen)",
"meeting.memoAdded": "Memo hinzugefügt",
"meeting.noSessions": "Keine Meeting-Aufnahmen",
"meeting.noSessionsDesc": "Drücke «Neues Meeting», um die Aufnahme zu starten",
"meeting.summary": "Zusammenfassung",
"meeting.decisions": "Beschlüsse",
"meeting.actionItems": "Aufgaben",
"meeting.timeline": "Zeitlinie",
"meeting.transcript": "Rohtranskript",
"meeting.memos": "Memos",
"meeting.exportPdf": "Als PDF exportieren",
"meeting.exportMarkdown": "Als Markdown exportieren",
"meeting.delete": "Löschen",
"meeting.deleteConfirm": "Diesen Meeting-Eintrag löschen?",
"meeting.backToList": "Zurück zur Liste",
"meeting.notificationTitle": "Protokoll fertig",
"meeting.notificationBody": "Das Meeting-Protokoll wurde erstellt.",
"meeting.sessions": "{{count}} Sitzungen",
"meeting.duration": "{{minutes}} Min.",
"meeting.editTitle": "Titel bearbeiten",
@ -266,24 +217,13 @@
"meeting.customPrompt": "Benutzerdefinierter Prompt",
"meeting.templateName": "Vorlagenname",
"meeting.templatePrompt": "KI-Prompt",
"meeting.templateSave": "Vorlage speichern",
"meeting.documentDeleted": "Dokument gelöscht",
"meeting.autoSaved": "Automatisch gespeichert",
"meeting.minutesTemplate": "Besprechungsprotokoll",
"meeting.reportTemplate": "Bericht",
"meeting.ideaNoteTemplate": "Ideennotiz",
"meeting.customTemplate": "Benutzerdefiniert",
"meeting.downloadTranscript": "Transkript herunterladen",
"meeting.polish": "KI Glätten",
"meeting.polishing": "KI glättet Transkript...",
"meeting.polished": "KI Glättung abgeschlossen",
"meeting.mindmapTemplate": "Mindmap",
"meeting.chat": "KI-Chat",
"meeting.chatPlaceholder": "Fragen Sie zum Meeting...",
"meeting.chatSend": "Senden",
"meeting.chatClear": "Chat löschen",
"meeting.copyToClipboard": "In Zwischenablage kopieren",
"meeting.copied": "Kopiert",
"meeting.chatCollapse": "Chat einklappen",
"meeting.chatExpand": "Chat ausklappen",
"meeting.chatReasoning": "Denkt nach…",
@ -294,8 +234,6 @@
"meeting.startRecordingError": "Aufnahme konnte nicht gestartet werden",
"meeting.diarize": "Sprecher trennen",
"meeting.diarizing": "Sprecher werden identifiziert...",
"meeting.diarizeComplete": "Sprechertrennung abgeschlossen",
"meeting.speaker": "Sprecher",
"settings.hfToken": "HuggingFace Token",
"settings.hfTokenHint": "Ein HuggingFace Token wird für die Sprechertrennung benötigt",
"settings.diarization": "Sprechertrennung",
@ -310,11 +248,9 @@
"theme.dracula": "Dracula",
"license.signInRequired": "Sign in to manage your subscription",
"license.signInToUpgrade": "Sign in to upgrade",
"license.subscriptionActive": "Subscription active",
"license.subscriptionManage": "Manage subscription",
"license.upgradeToProDesc": "Unlock Premium AI models, cloud sync, and more",
"license.currentPlanActive": "Your current plan",
"license.openBillingPage": "Open billing page",
"license.premiumQuota": "Premium Quota",
"license.modelHaiku": "Haiku",
"license.modelSonnet": "Sonnet",