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": "Continuer avec Google",
"login.github": "Continuer avec GitHub",
"login.terms": "En continuant, vous acceptez les Conditions d'utilisation et la Politique de confidentialité.",
"dashboard.sessionOverview": "Aperçu de session",
"dashboard.systemStatus": "État du système",
"dashboard.sessionsToday": "Sessions aujourd'hui",
"dashboard.pressToRecord": "Appuyez sur {{key}} pour commencer l'enregistrement",
"dashboard.hotkeyNotSet": "Raccourci non configuré",
"dashboard.words": "mots",
"dashboard.total": "total",
"dashboard.streak": "série",
"dashboard.days": "jours",
"dashboard.recording": "enregistrement",
"dashboard.sessions": "sessions",
"dashboard.today": "aujourd'hui",
"dashboard.recentTranscriptions": "Transcriptions récentes",
"dashboard.noHistory": "Aucun historique — appuyez sur le raccourci pour commencer à enregistrer",
"dashboard.copy": "Copier",
"dashboard.entries": "{{count}} entrées",
"dashboard.stat": "statistiques",
"dashboard.sys": "système",
"dashboard.currentBackend": "Backend actuel",
"dashboard.backendLocal": "Local (Ollama)",
"dashboard.backendPremium": "Premium (Claude)",
"dashboard.loginRequired": "Connexion requise",
"history.title": "Historique des transcriptions",
"history.search": "Rechercher...",
"history.entries": "{{count}} entrées",
"history.loading": "Chargement...",
"history.noResults": "Aucun résultat",
"history.noHistory": "Aucun historique — commencez à enregistrer",
"history.count": "{{count}} entrées",
@ -51,7 +42,6 @@
"dictionary.words": "{{count}} mots",
"dictionary.add": "Ajouter",
"dictionary.search": "Rechercher...",
"dictionary.loading": "Chargement...",
"dictionary.noResults": "Aucun résultat",
"dictionary.noWords": "Aucun mot — ajoutez des mots personnalisés pour améliorer la précision du STT",
"dictionary.used": "utilisé {{count}} fois",
@ -64,7 +54,6 @@
"commands.add": "Ajouter",
"commands.activeCommand": "Commande active",
"commands.none": "Aucune",
"commands.loading": "Chargement...",
"commands.noCommands": "Aucune commande — cliquez sur ajouter pour en créer une",
"commands.editTitle": "Modifier la commande",
"commands.addTitle": "Ajouter une commande",
@ -138,31 +127,9 @@
"settings.about.voiceEngineValue": "STT : faster-whisper (local) / LLM : Ollama (local)",
"settings.about.description": "Assistant vocal IA entièrement local, basé sur l'ingénierie inverse de Speakly. Fonctionne sans dépendance au cloud.",
"settings.about.restartOnboarding": "Revoir le guide de configuration initiale",
"status.ollama": "OLLAMA",
"status.offline": "HORS LIGNE",
"status.nudge.title": "Ollama n'est pas en cours d'exécution",
"status.nudge.desc": "Ollama est nécessaire pour le post-traitement LLM (traduction, résumé, etc.).",
"status.nudge.guide": "Voir le guide d'installation →",
"onboarding.welcome.title": "D3RO-VOICE",
"onboarding.welcome.desc": "Sans taper, par la voix. Votre assistant vocal IA local.",
"onboarding.welcome.start": "Commencer",
"onboarding.mic.title": "Configuration du microphone",
"onboarding.mic.desc": "Sélectionnez le microphone que vous souhaitez utiliser. Vous pourrez le modifier plus tard dans les paramètres.",
"onboarding.hotkey.title": "Configuration du raccourci",
"onboarding.hotkey.desc": "Configurez le raccourci de dictée. L'enregistrement dure tant que vous maintenez la touche enfoncée.",
"onboarding.hotkey.notSet": "Aucun raccourci configuré",
"onboarding.hotkey.change": "Modifier le raccourci",
"onboarding.hotkey.set": "Configurer le raccourci",
"onboarding.ollama.title": "Installer Ollama (facultatif)",
"onboarding.ollama.desc": "Ollama est nécessaire pour le post-traitement LLM comme la traduction ou le résumé. La dictée vocale fonctionne sans Ollama.",
"onboarding.ollama.download": "Télécharger Ollama",
"onboarding.ollama.modelHint": "Après l'installation, téléchargez un modèle depuis le terminal",
"onboarding.done.title": "Configuration terminée !",
"onboarding.done.descWithKey": "Maintenez {{key}} enfoncé et parlez pour convertir votre voix en texte.",
"onboarding.done.descNoKey": "Configurez un raccourci dans les paramètres pour commencer la dictée.",
"onboarding.done.start": "Commencer",
"onboarding.back": "Retour",
"onboarding.next": "Suivant",
"hotkey.title": "Configurer le raccourci",
"hotkey.dictationTitle": "Configurer le raccourci de dictée",
"hotkey.oneTouchTitle": "Configurer le raccourci du mode une touche",
@ -195,8 +162,6 @@
"common.cancel": "Annuler",
"common.save": "Enregistrer",
"common.delete": "Supprimer",
"common.add": "Ajouter",
"common.edit": "Modifier",
"common.close": "Fermer",
"common.confirm": "Confirmer",
"common.loading": "Chargement...",
@ -217,30 +182,16 @@
"nav.meeting": "Réunion",
"meeting.title": "Mode Réunion",
"meeting.newMeeting": "Nouvelle Réunion",
"meeting.startRecording": "Démarrer l'enregistrement",
"meeting.stopRecording": "Arrêter l'enregistrement",
"meeting.recording": "Enregistrement en cours",
"meeting.processing": "Génération du compte-rendu...",
"meeting.completed": "Terminé",
"meeting.error": "Erreur",
"meeting.elapsed": "Temps écoulé",
"meeting.memoPlaceholder": "Saisir un mémo (Entrée pour ajouter)",
"meeting.memoAdded": "Mémo ajouté",
"meeting.noSessions": "Aucun enregistrement de réunion",
"meeting.noSessionsDesc": "Appuyez sur Nouvelle Réunion pour commencer l'enregistrement",
"meeting.summary": "Résumé",
"meeting.decisions": "Décisions",
"meeting.actionItems": "Actions à mener",
"meeting.timeline": "Chronologie",
"meeting.transcript": "Transcription brute",
"meeting.memos": "Mémos",
"meeting.exportPdf": "Exporter en PDF",
"meeting.exportMarkdown": "Exporter en Markdown",
"meeting.delete": "Supprimer",
"meeting.deleteConfirm": "Supprimer cet enregistrement de réunion ?",
"meeting.backToList": "Retour à la liste",
"meeting.notificationTitle": "Compte-rendu prêt",
"meeting.notificationBody": "Le compte-rendu de la réunion a été généré.",
"meeting.sessions": "{{count}} séances",
"meeting.duration": "{{minutes}} min",
"meeting.editTitle": "Modifier le titre",
@ -266,24 +217,13 @@
"meeting.customPrompt": "Invite personnalisée",
"meeting.templateName": "Nom du modèle",
"meeting.templatePrompt": "Invite IA",
"meeting.templateSave": "Sauvegarder le modèle",
"meeting.documentDeleted": "Document supprimé",
"meeting.autoSaved": "Sauvegarde automatique",
"meeting.minutesTemplate": "Compte-rendu",
"meeting.reportTemplate": "Rapport",
"meeting.ideaNoteTemplate": "Note d'idées",
"meeting.customTemplate": "Personnalisé",
"meeting.downloadTranscript": "Télécharger la transcription",
"meeting.polish": "Peaufiner avec IA",
"meeting.polishing": "L'IA peaufine la transcription...",
"meeting.polished": "Peaufinement IA terminé",
"meeting.mindmapTemplate": "Carte mentale",
"meeting.chat": "Chat IA",
"meeting.chatPlaceholder": "Posez une question sur la réunion...",
"meeting.chatSend": "Envoyer",
"meeting.chatClear": "Effacer le chat",
"meeting.copyToClipboard": "Copier dans le presse-papiers",
"meeting.copied": "Copié",
"meeting.chatCollapse": "Réduire le chat",
"meeting.chatExpand": "Agrandir le chat",
"meeting.chatReasoning": "Raisonnement…",
@ -294,8 +234,6 @@
"meeting.startRecordingError": "Impossible de démarrer l'enregistrement",
"meeting.diarize": "Identifier les locuteurs",
"meeting.diarizing": "Identification des locuteurs...",
"meeting.diarizeComplete": "Identification terminée",
"meeting.speaker": "Locuteur",
"settings.hfToken": "Token HuggingFace",
"settings.hfTokenHint": "Un token HuggingFace est requis pour l'identification des locuteurs",
"settings.diarization": "Identification des locuteurs",
@ -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",