fix: add i18n support to settings conversation page action buttons

- Add data-i18n attributes to JSON, Import tooltip, and Clear button
- Reuse existing 'clear' and 'import' i18n keys for button labels
- Add 'export_session_json', 'export_session_json_tooltip',
  'import_session_json_tooltip', 'clear_conversation_btn_tooltip'
  keys to all 11 locales (en, it, ja, ru, es, de, zh, zh-Hant, pt, ko, fr)
This commit is contained in:
BonyFish
2026-05-16 14:57:01 +08:00
parent e3035b3e40
commit f87e32d0c7
2 changed files with 47 additions and 3 deletions
+44
View File
@@ -731,6 +731,10 @@ const LOCALES = {
transcript: 'Transcript',
download_transcript: 'Download as Markdown',
import: 'Import',
export_session_json: 'JSON',
export_session_json_tooltip: 'Export full session as JSON',
import_session_json_tooltip: 'Import session from JSON',
clear_conversation_btn_tooltip: 'Clear all messages in this conversation',
// Settings detail
settings_label_sound: 'Notification sound',
settings_desc_sound: 'Play a sound when the assistant finishes a response.',
@@ -1913,6 +1917,10 @@ const LOCALES = {
transcript: 'Trascrizione',
download_transcript: 'Scarica come Markdown',
import: 'Importa',
export_session_json: 'JSON',
export_session_json_tooltip: 'Esporta sessione completa come JSON',
import_session_json_tooltip: 'Importa sessione da JSON',
clear_conversation_btn_tooltip: 'Cancella tutti i messaggi in questa conversazione',
// Settings detail
settings_label_sound: 'Suono notifica',
settings_desc_sound: 'Riproduci un suono quando l\'assistente termina una risposta.',
@@ -3100,6 +3108,10 @@ const LOCALES = {
transcript: 'トランスクリプト',
download_transcript: 'Markdown としてダウンロード',
import: 'インポート',
export_session_json: 'JSON',
export_session_json_tooltip: 'セッション全体をJSONとしてエクスポート',
import_session_json_tooltip: 'JSONからセッションをインポート',
clear_conversation_btn_tooltip: 'この会話のすべてのメッセージをクリア',
// Settings detail
settings_label_sound: '通知音',
settings_desc_sound: 'アシスタントが応答を完了したときに音を鳴らします。',
@@ -4072,6 +4084,10 @@ const LOCALES = {
transcript: 'Транскрипт',
download_transcript: 'Скачать как Markdown',
import: 'Импорт',
export_session_json: 'JSON',
export_session_json_tooltip: 'Экспортировать сессию как JSON',
import_session_json_tooltip: 'Импортировать сессию из JSON',
clear_conversation_btn_tooltip: 'Очистить все сообщения в этой беседе',
settings_label_sound: 'Звук уведомления',
settings_desc_sound: 'Проигрывать звук, когда помощник завершает ответ.',
settings_label_notifications: 'Уведомления браузера',
@@ -5193,6 +5209,10 @@ const LOCALES = {
transcript: 'Transcripción',
download_transcript: 'Descargar como Markdown',
import: 'Importar',
export_session_json: 'JSON',
export_session_json_tooltip: 'Exportar sesión completa como JSON',
import_session_json_tooltip: 'Importar sesión desde JSON',
clear_conversation_btn_tooltip: 'Borrar todos los mensajes de esta conversación',
// Settings detail
settings_label_sound: 'Sonido de notificación',
settings_desc_sound: 'Reproduce un sonido cuando el asistente termina una respuesta.',
@@ -6287,6 +6307,10 @@ const LOCALES = {
transcript: 'Protokoll',
download_transcript: 'Als Markdown herunterladen',
import: 'Importieren',
export_session_json: 'JSON',
export_session_json_tooltip: 'Gesamte Sitzung als JSON exportieren',
import_session_json_tooltip: 'Sitzung aus JSON importieren',
clear_conversation_btn_tooltip: 'Alle Nachrichten in dieser Konversation löschen',
// Settings detail
settings_label_sound: 'Benachrichtigungston',
settings_desc_sound: 'Spielt einen Ton ab, wenn der Assistent eine Antwort beendet.',
@@ -7434,6 +7458,10 @@ const LOCALES = {
transcript: '记录',
download_transcript: '下载为 Markdown',
import: '导入',
export_session_json: 'JSON',
export_session_json_tooltip: '将会话完整导出为 JSON',
import_session_json_tooltip: '从 JSON 导入会话',
clear_conversation_btn_tooltip: '清空此会话中的所有消息',
editing: '编辑中',
empty_title: '有什么可以帮您?',
empty_subtitle: '随时提问、运行命令、浏览文件或管理定时任务。',
@@ -8545,6 +8573,10 @@ const LOCALES = {
transcript: '\u8a18\u9304',
download_transcript: '\u4e0b\u8f09\u8a18\u9304',
import: '\u5c0e\u5165',
export_session_json: 'JSON',
export_session_json_tooltip: '\u5c07\u6703\u8a71\u5b8c\u6574\u532f\u51fa\u70ba JSON',
import_session_json_tooltip: '\u5f9e JSON \u532f\u5165\u6703\u8a71',
clear_conversation_btn_tooltip: '\u6e05\u7a7a\u6b64\u6703\u8a71\u4e2d\u7684\u6240\u6709\u8a0a\u606f',
editing: '\u7de8\u8f2f\u4e2d',
empty_title: '有什麼可以幫忙?',
empty_subtitle: '點擊上方按鈕開始對話',
@@ -9834,6 +9866,10 @@ const LOCALES = {
transcript: 'Transcrição',
download_transcript: 'Baixar como Markdown',
import: 'Importar',
export_session_json: 'JSON',
export_session_json_tooltip: 'Exportar sessão completa como JSON',
import_session_json_tooltip: 'Importar sessão de JSON',
clear_conversation_btn_tooltip: 'Limpar todas as mensagens nesta conversa',
// Settings detail
settings_label_sound: 'Som de notificação',
settings_desc_sound: 'Tocar som quando assistente finalizar resposta.',
@@ -10918,6 +10954,10 @@ const LOCALES = {
transcript: '대화 기록',
download_transcript: 'Download as Markdown',
import: '가져오기',
export_session_json: 'JSON',
export_session_json_tooltip: '전체 세션을 JSON으로 내보내기',
import_session_json_tooltip: 'JSON에서 세션 가져오기',
clear_conversation_btn_tooltip: '이 대화의 모든 메시지 지우기',
// Settings detail
settings_label_sound: '알림음',
settings_desc_sound: 'Assistant 응답이 끝나면 소리를 재생합니다.',
@@ -12017,6 +12057,10 @@ const LOCALES = {
transcript: 'Transcription',
download_transcript: 'Télécharger en Markdown',
import: 'Importer',
export_session_json: 'JSON',
export_session_json_tooltip: 'Exporter la session complète en JSON',
import_session_json_tooltip: 'Importer une session depuis JSON',
clear_conversation_btn_tooltip: 'Effacer tous les messages de cette conversation',
settings_label_sound: 'Son de notification',
settings_desc_sound: 'Jouez un son lorsque l\'assistant termine une réponse.',
tts_listen: 'Écouter',
+3 -3
View File
@@ -816,9 +816,9 @@
</div>
<div class="hermes-action-grid">
<button class="settings-action-btn" id="btnDownload" title="Download as Markdown" data-i18n-title="download_transcript"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg> <span data-i18n="transcript">Transcript</span></button>
<button class="settings-action-btn" id="btnExportJSON" title="Export full session as JSON"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1"/><path d="M16 3h1a2 2 0 0 1 2 2v5a2 2 0 0 0 2 2 2 2 0 0 0-2 2v5a2 2 0 0 1-2 2h-1"/></svg> JSON</button>
<button class="settings-action-btn" id="btnImportJSON" title="Import session from JSON"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></svg> <span data-i18n="import">Import</span></button>
<button class="settings-action-btn danger" id="btnClearConvModal" onclick="clearConversation()" title="Clear all messages in this conversation"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 6h18"/><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"/><path d="M8 6V4c0-1 1-2 2-2h4c1 0 1 2 2 2v2"/></svg> Clear</button>
<button class="settings-action-btn" id="btnExportJSON" title="Export full session as JSON" data-i18n-title="export_session_json_tooltip"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1"/><path d="M16 3h1a2 2 0 0 1 2 2v5a2 2 0 0 0 2 2 2 2 0 0 0-2 2v5a2 2 0 0 1-2 2h-1"/></svg> <span data-i18n="export_session_json">JSON</span></button>
<button class="settings-action-btn" id="btnImportJSON" title="Import session from JSON" data-i18n-title="import_session_json_tooltip"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></svg> <span data-i18n="import">Import</span></button>
<button class="settings-action-btn danger" id="btnClearConvModal" onclick="clearConversation()" title="Clear all messages in this conversation" data-i18n-title="clear_conversation_btn_tooltip"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 6h18"/><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"/><path d="M8 6V4c0-1 1-2 2-2h4c1 0 1 2 2 2v2"/></svg> <span data-i18n="clear">Clear</span></button>
</div>
<input type="file" id="importFileInput" accept=".json" style="display:none">
</div>