diff --git a/_locales/de/messages.json b/_locales/de/messages.json
index c2ce82c..a190aed 100644
--- a/_locales/de/messages.json
+++ b/_locales/de/messages.json
@@ -172,5 +172,131 @@
},
"next": {
"message": "Nächste"
+ },
+ "duplicate": {
+ "message": "Duplizieren"
+ },
+ "merge": {
+ "message": "Zusammenführen"
+ },
+ "move": {
+ "message": "Verschieben"
+ },
+ "copy": {
+ "message": "Kopieren"
+ },
+ "merge_lists_min_two": {
+ "message": "Wählen Sie mindestens zwei Listen zum Zusammenführen aus."
+ },
+ "merge_lists_confirm": {
+ "message": "{count} Liste(n) in \"{target}\" zusammenführen? Quelllisten werden entfernt."
+ },
+ "delete_current_list": {
+ "message": "Aktuelle Liste löschen?"
+ },
+ "delete_lists_confirm": {
+ "message": "{count} ausgewählte Liste(n) löschen?"
+ },
+ "invalid_import_format": {
+ "message": "Ungültiges Dateiformat. Bitte wählen Sie eine gültige Goose Highlighter-Exportdatei."
+ },
+ "import_failed": {
+ "message": "Import der Datei fehlgeschlagen. Bitte stellen Sie sicher, dass es sich um eine gültige JSON-Datei handelt."
+ },
+ "import_confirm": {
+ "message": "{count} Liste(n) mit insgesamt {words} Wort/Wörtern importieren?"
+ },
+ "import_success": {
+ "message": "{count} Liste(n) mit {words} Wort/Wörtern erfolgreich importiert."
+ },
+ "preview_label": {
+ "message": "Vorschau"
+ },
+ "preview_text": {
+ "message": "So wird Ihr hervorgehobener Text angezeigt."
+ },
+ "preview_text_before": {
+ "message": "So wird Ihr"
+ },
+ "preview_text_highlight": {
+ "message": "hervorgehobener Text"
+ },
+ "preview_text_after": {
+ "message": "angezeigt."
+ },
+ "enable_highlighting_title": {
+ "message": "Hervorhebung aktivieren"
+ },
+ "enable_highlighting_subtitle": {
+ "message": "Hervorhebungen auf Seiten anzeigen"
+ },
+ "manage_lists": {
+ "message": "Listen verwalten"
+ },
+ "background_label": {
+ "message": "Hintergrund"
+ },
+ "foreground_label": {
+ "message": "Vordergrund"
+ },
+ "multi_select_hint": {
+ "message": "Klicken zum Auswählen • Strg/Cmd+Klick für Mehrfachauswahl"
+ },
+ "dark_mode_title": {
+ "message": "Dunkelmodus"
+ },
+ "dark_mode_subtitle": {
+ "message": "Zwischen hellem und dunklem Design wechseln"
+ },
+ "list_manager_title": {
+ "message": "Listenverwaltung"
+ },
+ "words_label": {
+ "message": "Wörter"
+ },
+ "active_label": {
+ "message": "aktiv"
+ },
+ "inactive_label": {
+ "message": "inaktiv"
+ },
+ "drag_words_hint": {
+ "message": "Klicken zum Auswählen • Strg/Cmd+Klick für Mehrfachauswahl • Wörter zu Listen ziehen zum Kopieren"
+ },
+ "drag_lists_hint": {
+ "message": "Listen ziehen zum Neuordnen • Strg+Klick für Mehrfachauswahl"
+ },
+ "showing_items": {
+ "message": "Zeige {start}-{end} von {total} Wörtern"
+ },
+ "items_per_page": {
+ "message": "Elemente pro Seite:"
+ },
+ "page_info": {
+ "message": "Seite {current} von {total}"
+ },
+ "toggle_active": {
+ "message": "Aktiv umschalten"
+ },
+ "rename_list_title": {
+ "message": "Liste umbenennen"
+ },
+ "new_list_title": {
+ "message": "Neue Liste"
+ },
+ "delete_list_title": {
+ "message": "Liste löschen"
+ },
+ "list_active_badge": {
+ "message": "Aktiv"
+ },
+ "list_paused_badge": {
+ "message": "Pausiert"
+ },
+ "words_stats": {
+ "message": "{total} Wörter • {active} aktiv • {inactive} inaktiv"
+ },
+ "rename_list": {
+ "message": "Liste umbenennen"
}
}
\ No newline at end of file
diff --git a/_locales/en/messages.json b/_locales/en/messages.json
index 0d6c0c8..fd0ea0f 100644
--- a/_locales/en/messages.json
+++ b/_locales/en/messages.json
@@ -178,5 +178,161 @@
},
"next": {
"message": "Next"
+ },
+ "duplicate": {
+ "message": "Duplicate"
+ },
+ "merge": {
+ "message": "Merge"
+ },
+ "move": {
+ "message": "Move"
+ },
+ "copy": {
+ "message": "Copy"
+ },
+ "merge_lists_min_two": {
+ "message": "Select at least two lists to merge."
+ },
+ "merge_lists_confirm": {
+ "message": "Merge {count} list(s) into \"{target}\"? Source lists will be removed."
+ },
+ "delete_current_list": {
+ "message": "Delete current list?"
+ },
+ "delete_lists_confirm": {
+ "message": "Delete {count} selected list(s)?"
+ },
+ "invalid_import_format": {
+ "message": "Invalid file format. Please select a valid Goose Highlighter export file."
+ },
+ "import_failed": {
+ "message": "Failed to import file. Please ensure it is a valid JSON file."
+ },
+ "import_confirm": {
+ "message": "Import {count} list(s) with {words} total word(s)?"
+ },
+ "import_success": {
+ "message": "Successfully imported {count} list(s) with {words} word(s)."
+ },
+ "preview_label": {
+ "message": "Preview"
+ },
+ "preview_text": {
+ "message": "This is how your highlighted text will appear."
+ },
+ "preview_text_before": {
+ "message": "This is how your"
+ },
+ "preview_text_highlight": {
+ "message": "highlighted text"
+ },
+ "preview_text_after": {
+ "message": "will appear."
+ },
+ "enable_highlighting_title": {
+ "message": "Enable Highlighting"
+ },
+ "enable_highlighting_subtitle": {
+ "message": "Show highlights on pages"
+ },
+ "manage_lists": {
+ "message": "Manage Lists"
+ },
+ "background_label": {
+ "message": "Background"
+ },
+ "foreground_label": {
+ "message": "Foreground"
+ },
+ "multi_select_hint": {
+ "message": "Click to select • Ctrl/Cmd+Click for multi-select"
+ },
+ "dark_mode_title": {
+ "message": "Dark Mode"
+ },
+ "dark_mode_subtitle": {
+ "message": "Toggle dark/light theme"
+ },
+ "list_manager_title": {
+ "message": "List Manager"
+ },
+ "words_label": {
+ "message": "words"
+ },
+ "active_label": {
+ "message": "active"
+ },
+ "inactive_label": {
+ "message": "inactive"
+ },
+ "drag_words_hint": {
+ "message": "Click to select • Ctrl/Cmd+Click for multi-select • Drag words to lists to copy"
+ },
+ "drag_lists_hint": {
+ "message": "Drag lists to reorder • Ctrl+Click for multi-select"
+ },
+ "showing_items": {
+ "message": "Showing {start}-{end} of {total} words"
+ },
+ "items_per_page": {
+ "message": "Items per page:"
+ },
+ "page_info": {
+ "message": "Page {current} of {total}"
+ },
+ "toggle_active": {
+ "message": "toggle active"
+ },
+ "rename_list_title": {
+ "message": "Rename list"
+ },
+ "new_list_title": {
+ "message": "New list"
+ },
+ "delete_list_title": {
+ "message": "Delete list"
+ },
+ "list_active_badge": {
+ "message": "Active"
+ },
+ "list_paused_badge": {
+ "message": "Paused"
+ },
+ "words_stats": {
+ "message": "{total} words • {active} active • {inactive} inactive"
+ },
+ "rename_list": {
+ "message": "Rename List"
+ },
+ "no_words_in_list": {
+ "message": "No words in this list."
+ },
+ "edit_word": {
+ "message": "Edit word"
+ },
+ "first_page": {
+ "message": "First page"
+ },
+ "previous_page": {
+ "message": "Previous page"
+ },
+ "next_page": {
+ "message": "Next page"
+ },
+ "last_page": {
+ "message": "Last page"
+ },
+ "enter_list_name": {
+ "message": "Enter list name:"
+ },
+ "cannot_delete_last_list": {
+ "message": "Cannot delete the last list"
+ },
+ "edit_list_name_and_colors_title": {
+ "message": "Edit list name and colors"
+ },
+ "close": {
+ "message": "Close"
}
}
\ No newline at end of file
diff --git a/_locales/es/messages.json b/_locales/es/messages.json
index f473ca7..967f591 100644
--- a/_locales/es/messages.json
+++ b/_locales/es/messages.json
@@ -178,5 +178,131 @@
},
"next": {
"message": "Siguiente"
+ },
+ "duplicate": {
+ "message": "Duplicar"
+ },
+ "merge": {
+ "message": "Combinar"
+ },
+ "move": {
+ "message": "Mover"
+ },
+ "copy": {
+ "message": "Copiar"
+ },
+ "merge_lists_min_two": {
+ "message": "Seleccione al menos dos listas para combinar."
+ },
+ "merge_lists_confirm": {
+ "message": "¿Combinar {count} lista(s) en \"{target}\"? Las listas de origen se eliminarán."
+ },
+ "delete_current_list": {
+ "message": "¿Eliminar la lista actual?"
+ },
+ "delete_lists_confirm": {
+ "message": "¿Eliminar {count} lista(s) seleccionada(s)?"
+ },
+ "invalid_import_format": {
+ "message": "Formato de archivo no válido. Seleccione un archivo de exportación válido de Goose Highlighter."
+ },
+ "import_failed": {
+ "message": "Error al importar el archivo. Asegúrese de que sea un archivo JSON válido."
+ },
+ "import_confirm": {
+ "message": "¿Importar {count} lista(s) con {words} palabra(s) en total?"
+ },
+ "import_success": {
+ "message": "Se importaron correctamente {count} lista(s) con {words} palabra(s)."
+ },
+ "preview_label": {
+ "message": "Vista previa"
+ },
+ "preview_text": {
+ "message": "Así es como aparecerá su texto resaltado."
+ },
+ "preview_text_before": {
+ "message": "Así es como aparecerá su"
+ },
+ "preview_text_highlight": {
+ "message": "texto resaltado"
+ },
+ "preview_text_after": {
+ "message": "."
+ },
+ "enable_highlighting_title": {
+ "message": "Activar resaltado"
+ },
+ "enable_highlighting_subtitle": {
+ "message": "Mostrar resaltados en páginas"
+ },
+ "manage_lists": {
+ "message": "Gestionar listas"
+ },
+ "background_label": {
+ "message": "Fondo"
+ },
+ "foreground_label": {
+ "message": "Texto"
+ },
+ "multi_select_hint": {
+ "message": "Clic para seleccionar • Ctrl/Cmd+Clic para selección múltiple"
+ },
+ "dark_mode_title": {
+ "message": "Modo oscuro"
+ },
+ "dark_mode_subtitle": {
+ "message": "Alternar tema claro/oscuro"
+ },
+ "list_manager_title": {
+ "message": "Gestor de listas"
+ },
+ "words_label": {
+ "message": "palabras"
+ },
+ "active_label": {
+ "message": "activo"
+ },
+ "inactive_label": {
+ "message": "inactivo"
+ },
+ "drag_words_hint": {
+ "message": "Clic para seleccionar • Ctrl/Cmd+Clic para selección múltiple • Arrastrar palabras a listas para copiar"
+ },
+ "drag_lists_hint": {
+ "message": "Arrastrar listas para reordenar • Ctrl+Clic para selección múltiple"
+ },
+ "showing_items": {
+ "message": "Mostrando {start}-{end} de {total} palabras"
+ },
+ "items_per_page": {
+ "message": "Elementos por página:"
+ },
+ "page_info": {
+ "message": "Página {current} de {total}"
+ },
+ "toggle_active": {
+ "message": "alternar activo"
+ },
+ "rename_list_title": {
+ "message": "Renombrar lista"
+ },
+ "new_list_title": {
+ "message": "Nueva lista"
+ },
+ "delete_list_title": {
+ "message": "Eliminar lista"
+ },
+ "list_active_badge": {
+ "message": "Activo"
+ },
+ "list_paused_badge": {
+ "message": "Pausado"
+ },
+ "words_stats": {
+ "message": "{total} palabras • {active} activas • {inactive} inactivas"
+ },
+ "rename_list": {
+ "message": "Renombrar lista"
}
}
\ No newline at end of file
diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json
index 1fac6e8..44712d2 100644
--- a/_locales/fr/messages.json
+++ b/_locales/fr/messages.json
@@ -178,5 +178,131 @@
},
"next": {
"message": "Suivant"
+ },
+ "duplicate": {
+ "message": "Dupliquer"
+ },
+ "merge": {
+ "message": "Fusionner"
+ },
+ "move": {
+ "message": "Déplacer"
+ },
+ "copy": {
+ "message": "Copier"
+ },
+ "merge_lists_min_two": {
+ "message": "Sélectionnez au moins deux listes à fusionner."
+ },
+ "merge_lists_confirm": {
+ "message": "Fusionner {count} liste(s) dans \"{target}\" ? Les listes sources seront supprimées."
+ },
+ "delete_current_list": {
+ "message": "Supprimer la liste actuelle ?"
+ },
+ "delete_lists_confirm": {
+ "message": "Supprimer {count} liste(s) sélectionnée(s) ?"
+ },
+ "invalid_import_format": {
+ "message": "Format de fichier invalide. Veuillez sélectionner un fichier d'exportation Goose Highlighter valide."
+ },
+ "import_failed": {
+ "message": "Échec de l'importation du fichier. Veuillez vous assurer qu'il s'agit d'un fichier JSON valide."
+ },
+ "import_confirm": {
+ "message": "Importer {count} liste(s) avec {words} mot(s) au total ?"
+ },
+ "import_success": {
+ "message": "{count} liste(s) avec {words} mot(s) importée(s) avec succès."
+ },
+ "preview_label": {
+ "message": "Aperçu"
+ },
+ "preview_text": {
+ "message": "Voici comment votre texte surligné apparaîtra."
+ },
+ "preview_text_before": {
+ "message": "Voici comment votre"
+ },
+ "preview_text_highlight": {
+ "message": "texte surligné"
+ },
+ "preview_text_after": {
+ "message": "apparaîtra."
+ },
+ "enable_highlighting_title": {
+ "message": "Activer la surbrillance"
+ },
+ "enable_highlighting_subtitle": {
+ "message": "Afficher les surlignages sur les pages"
+ },
+ "manage_lists": {
+ "message": "Gérer les listes"
+ },
+ "background_label": {
+ "message": "Arrière-plan"
+ },
+ "foreground_label": {
+ "message": "Texte"
+ },
+ "multi_select_hint": {
+ "message": "Cliquer pour sélectionner • Ctrl/Cmd+Clic pour sélection multiple"
+ },
+ "dark_mode_title": {
+ "message": "Mode sombre"
+ },
+ "dark_mode_subtitle": {
+ "message": "Basculer entre thème clair/sombre"
+ },
+ "list_manager_title": {
+ "message": "Gestionnaire de listes"
+ },
+ "words_label": {
+ "message": "mots"
+ },
+ "active_label": {
+ "message": "actif"
+ },
+ "inactive_label": {
+ "message": "inactif"
+ },
+ "drag_words_hint": {
+ "message": "Cliquer pour sélectionner • Ctrl/Cmd+Clic pour sélection multiple • Glisser les mots vers les listes pour copier"
+ },
+ "drag_lists_hint": {
+ "message": "Glisser les listes pour réorganiser • Ctrl+Clic pour sélection multiple"
+ },
+ "showing_items": {
+ "message": "Affichage de {start}-{end} sur {total} mots"
+ },
+ "items_per_page": {
+ "message": "Éléments par page :"
+ },
+ "page_info": {
+ "message": "Page {current} sur {total}"
+ },
+ "toggle_active": {
+ "message": "basculer actif"
+ },
+ "rename_list_title": {
+ "message": "Renommer la liste"
+ },
+ "new_list_title": {
+ "message": "Nouvelle liste"
+ },
+ "delete_list_title": {
+ "message": "Supprimer la liste"
+ },
+ "list_active_badge": {
+ "message": "Actif"
+ },
+ "list_paused_badge": {
+ "message": "En pause"
+ },
+ "words_stats": {
+ "message": "{total} mots • {active} actifs • {inactive} inactifs"
+ },
+ "rename_list": {
+ "message": "Renommer la liste"
}
}
\ No newline at end of file
diff --git a/_locales/hi/messages.json b/_locales/hi/messages.json
index b0337b5..c91b039 100644
--- a/_locales/hi/messages.json
+++ b/_locales/hi/messages.json
@@ -178,5 +178,131 @@
},
"next": {
"message": "अगला"
+ },
+ "duplicate": {
+ "message": "डुप्लिकेट"
+ },
+ "merge": {
+ "message": "मर्ज करें"
+ },
+ "move": {
+ "message": "स्थानांतरित करें"
+ },
+ "copy": {
+ "message": "कॉपी करें"
+ },
+ "merge_lists_min_two": {
+ "message": "मर्ज करने के लिए कम से कम दो सूचियाँ चुनें।"
+ },
+ "merge_lists_confirm": {
+ "message": "{count} सूची(याँ) को \"{target}\" में मर्ज करें? स्रोत सूचियाँ हटा दी जाएंगी।"
+ },
+ "delete_current_list": {
+ "message": "वर्तमान सूची हटाएं?"
+ },
+ "delete_lists_confirm": {
+ "message": "{count} चयनित सूची(याँ) हटाएं?"
+ },
+ "invalid_import_format": {
+ "message": "अमान्य फ़ाइल प्रारूप। कृपया एक मान्य Goose Highlighter निर्यात फ़ाइल चुनें।"
+ },
+ "import_failed": {
+ "message": "फ़ाइल आयात करने में विफल। कृपया सुनिश्चित करें कि यह एक मान्य JSON फ़ाइल है।"
+ },
+ "import_confirm": {
+ "message": "कुल {words} शब्द(ों) के साथ {count} सूची(याँ) आयात करें?"
+ },
+ "import_success": {
+ "message": "{words} शब्द(ों) के साथ {count} सूची(याँ) सफलतापूर्वक आयात की गईं।"
+ },
+ "preview_label": {
+ "message": "पूर्वावलोकन"
+ },
+ "preview_text": {
+ "message": "आपका हाइलाइट किया गया टेक्स्ट इस तरह दिखाई देगा।"
+ },
+ "preview_text_before": {
+ "message": "आपका"
+ },
+ "preview_text_highlight": {
+ "message": "हाइलाइट किया गया टेक्स्ट"
+ },
+ "preview_text_after": {
+ "message": "इस तरह दिखाई देगा।"
+ },
+ "enable_highlighting_title": {
+ "message": "हाइलाइटिंग सक्षम करें"
+ },
+ "enable_highlighting_subtitle": {
+ "message": "पृष्ठों पर हाइलाइट दिखाएं"
+ },
+ "manage_lists": {
+ "message": "सूचियाँ प्रबंधित करें"
+ },
+ "background_label": {
+ "message": "पृष्ठभूमि"
+ },
+ "foreground_label": {
+ "message": "अग्रभूमि"
+ },
+ "multi_select_hint": {
+ "message": "चुनने के लिए क्लिक करें • एकाधिक चयन के लिए Ctrl/Cmd+क्लिक"
+ },
+ "dark_mode_title": {
+ "message": "डार्क मोड"
+ },
+ "dark_mode_subtitle": {
+ "message": "हल्की/गहरी थीम टॉगल करें"
+ },
+ "list_manager_title": {
+ "message": "सूची प्रबंधक"
+ },
+ "words_label": {
+ "message": "शब्द"
+ },
+ "active_label": {
+ "message": "सक्रिय"
+ },
+ "inactive_label": {
+ "message": "निष्क्रिय"
+ },
+ "drag_words_hint": {
+ "message": "चुनने के लिए क्लिक करें • एकाधिक चयन के लिए Ctrl/Cmd+क्लिक • कॉपी करने के लिए शब्दों को सूचियों में खींचें"
+ },
+ "drag_lists_hint": {
+ "message": "पुनः क्रमित करने के लिए सूचियों को खींचें • एकाधिक चयन के लिए Ctrl+क्लिक"
+ },
+ "showing_items": {
+ "message": "{total} शब्दों में से {start}-{end} दिखा रहे हैं"
+ },
+ "items_per_page": {
+ "message": "प्रति पृष्ठ आइटम:"
+ },
+ "page_info": {
+ "message": "पृष्ठ {current} का {total}"
+ },
+ "toggle_active": {
+ "message": "सक्रिय टॉगल करें"
+ },
+ "rename_list_title": {
+ "message": "सूची का नाम बदलें"
+ },
+ "new_list_title": {
+ "message": "नई सूची"
+ },
+ "delete_list_title": {
+ "message": "सूची हटाएं"
+ },
+ "list_active_badge": {
+ "message": "सक्रिय"
+ },
+ "list_paused_badge": {
+ "message": "रोका गया"
+ },
+ "words_stats": {
+ "message": "{total} शब्द • {active} सक्रिय • {inactive} निष्क्रिय"
+ },
+ "rename_list": {
+ "message": "सूची का नाम बदलें"
}
}
\ No newline at end of file
diff --git a/_locales/it/messages.json b/_locales/it/messages.json
index a9fd1cd..ca0cc09 100644
--- a/_locales/it/messages.json
+++ b/_locales/it/messages.json
@@ -178,5 +178,131 @@
},
"next": {
"message": "Successivo"
+ },
+ "duplicate": {
+ "message": "Duplica"
+ },
+ "merge": {
+ "message": "Unisci"
+ },
+ "move": {
+ "message": "Sposta"
+ },
+ "copy": {
+ "message": "Copia"
+ },
+ "merge_lists_min_two": {
+ "message": "Seleziona almeno due elenchi da unire."
+ },
+ "merge_lists_confirm": {
+ "message": "Unire {count} elenco/i in \"{target}\"? Gli elenchi di origine verranno rimossi."
+ },
+ "delete_current_list": {
+ "message": "Eliminare l'elenco corrente?"
+ },
+ "delete_lists_confirm": {
+ "message": "Eliminare {count} elenco/i selezionato/i?"
+ },
+ "invalid_import_format": {
+ "message": "Formato file non valido. Seleziona un file di esportazione Goose Highlighter valido."
+ },
+ "import_failed": {
+ "message": "Importazione del file non riuscita. Assicurati che sia un file JSON valido."
+ },
+ "import_confirm": {
+ "message": "Importare {count} elenco/i con {words} parola/e totali?"
+ },
+ "import_success": {
+ "message": "Importati con successo {count} elenco/i con {words} parola/e."
+ },
+ "preview_label": {
+ "message": "Anteprima"
+ },
+ "preview_text": {
+ "message": "Ecco come apparirà il tuo testo evidenziato."
+ },
+ "preview_text_before": {
+ "message": "Ecco come apparirà il tuo"
+ },
+ "preview_text_highlight": {
+ "message": "testo evidenziato"
+ },
+ "preview_text_after": {
+ "message": "."
+ },
+ "enable_highlighting_title": {
+ "message": "Abilita evidenziazione"
+ },
+ "enable_highlighting_subtitle": {
+ "message": "Mostra evidenziazioni sulle pagine"
+ },
+ "manage_lists": {
+ "message": "Gestisci elenchi"
+ },
+ "background_label": {
+ "message": "Sfondo"
+ },
+ "foreground_label": {
+ "message": "Testo"
+ },
+ "multi_select_hint": {
+ "message": "Clicca per selezionare • Ctrl/Cmd+Clic per selezione multipla"
+ },
+ "dark_mode_title": {
+ "message": "Modalità scura"
+ },
+ "dark_mode_subtitle": {
+ "message": "Passa tra tema chiaro/scuro"
+ },
+ "list_manager_title": {
+ "message": "Gestore elenchi"
+ },
+ "words_label": {
+ "message": "parole"
+ },
+ "active_label": {
+ "message": "attivo"
+ },
+ "inactive_label": {
+ "message": "inattivo"
+ },
+ "drag_words_hint": {
+ "message": "Clicca per selezionare • Ctrl/Cmd+Clic per selezione multipla • Trascina parole negli elenchi per copiare"
+ },
+ "drag_lists_hint": {
+ "message": "Trascina elenchi per riordinare • Ctrl+Clic per selezione multipla"
+ },
+ "showing_items": {
+ "message": "Visualizzazione di {start}-{end} su {total} parole"
+ },
+ "items_per_page": {
+ "message": "Elementi per pagina:"
+ },
+ "page_info": {
+ "message": "Pagina {current} di {total}"
+ },
+ "toggle_active": {
+ "message": "attiva/disattiva"
+ },
+ "rename_list_title": {
+ "message": "Rinomina elenco"
+ },
+ "new_list_title": {
+ "message": "Nuovo elenco"
+ },
+ "delete_list_title": {
+ "message": "Elimina elenco"
+ },
+ "list_active_badge": {
+ "message": "Attivo"
+ },
+ "list_paused_badge": {
+ "message": "In pausa"
+ },
+ "words_stats": {
+ "message": "{total} parole • {active} attive • {inactive} inattive"
+ },
+ "rename_list": {
+ "message": "Rinomina elenco"
}
}
\ No newline at end of file
diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json
index 9fe838b..ef27a05 100644
--- a/_locales/ja/messages.json
+++ b/_locales/ja/messages.json
@@ -178,5 +178,131 @@
},
"next": {
"message": "次へ"
+ },
+ "duplicate": {
+ "message": "複製"
+ },
+ "merge": {
+ "message": "統合"
+ },
+ "move": {
+ "message": "移動"
+ },
+ "copy": {
+ "message": "コピー"
+ },
+ "merge_lists_min_two": {
+ "message": "統合するには少なくとも2つのリストを選択してください。"
+ },
+ "merge_lists_confirm": {
+ "message": "{count}個のリストを\"{target}\"に統合しますか?ソースリストは削除されます。"
+ },
+ "delete_current_list": {
+ "message": "現在のリストを削除しますか?"
+ },
+ "delete_lists_confirm": {
+ "message": "選択した{count}個のリストを削除しますか?"
+ },
+ "invalid_import_format": {
+ "message": "無効なファイル形式です。有効なGoose Highlighterエクスポートファイルを選択してください。"
+ },
+ "import_failed": {
+ "message": "ファイルのインポートに失敗しました。有効なJSONファイルであることを確認してください。"
+ },
+ "import_confirm": {
+ "message": "合計{words}個の単語を含む{count}個のリストをインポートしますか?"
+ },
+ "import_success": {
+ "message": "{words}個の単語を含む{count}個のリストを正常にインポートしました。"
+ },
+ "preview_label": {
+ "message": "プレビュー"
+ },
+ "preview_text": {
+ "message": "ハイライトされたテキストはこのように表示されます。"
+ },
+ "preview_text_before": {
+ "message": ""
+ },
+ "preview_text_highlight": {
+ "message": "ハイライトされたテキスト"
+ },
+ "preview_text_after": {
+ "message": "はこのように表示されます。"
+ },
+ "enable_highlighting_title": {
+ "message": "ハイライトを有効にする"
+ },
+ "enable_highlighting_subtitle": {
+ "message": "ページにハイライトを表示"
+ },
+ "manage_lists": {
+ "message": "リストを管理"
+ },
+ "background_label": {
+ "message": "背景"
+ },
+ "foreground_label": {
+ "message": "前景"
+ },
+ "multi_select_hint": {
+ "message": "クリックして選択 • Ctrl/Cmd+クリックで複数選択"
+ },
+ "dark_mode_title": {
+ "message": "ダークモード"
+ },
+ "dark_mode_subtitle": {
+ "message": "ライト/ダークテーマを切り替え"
+ },
+ "list_manager_title": {
+ "message": "リストマネージャー"
+ },
+ "words_label": {
+ "message": "単語"
+ },
+ "active_label": {
+ "message": "有効"
+ },
+ "inactive_label": {
+ "message": "無効"
+ },
+ "drag_words_hint": {
+ "message": "クリックして選択 • Ctrl/Cmd+クリックで複数選択 • 単語をリストにドラッグしてコピー"
+ },
+ "drag_lists_hint": {
+ "message": "リストをドラッグして並べ替え • Ctrl+クリックで複数選択"
+ },
+ "showing_items": {
+ "message": "{total}単語中{start}-{end}を表示"
+ },
+ "items_per_page": {
+ "message": "ページあたりのアイテム数:"
+ },
+ "page_info": {
+ "message": "ページ{current}/{total}"
+ },
+ "toggle_active": {
+ "message": "有効/無効を切り替え"
+ },
+ "rename_list_title": {
+ "message": "リスト名を変更"
+ },
+ "new_list_title": {
+ "message": "新しいリスト"
+ },
+ "delete_list_title": {
+ "message": "リストを削除"
+ },
+ "list_active_badge": {
+ "message": "有効"
+ },
+ "list_paused_badge": {
+ "message": "一時停止"
+ },
+ "words_stats": {
+ "message": "{total}単語 • {active}有効 • {inactive}無効"
+ },
+ "rename_list": {
+ "message": "リスト名を変更"
}
}
\ No newline at end of file
diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json
index 38c058d..fc7baab 100644
--- a/_locales/ko/messages.json
+++ b/_locales/ko/messages.json
@@ -178,5 +178,131 @@
},
"next": {
"message": "다음"
+ },
+ "duplicate": {
+ "message": "복제"
+ },
+ "merge": {
+ "message": "병합"
+ },
+ "move": {
+ "message": "이동"
+ },
+ "copy": {
+ "message": "복사"
+ },
+ "merge_lists_min_two": {
+ "message": "병합하려면 최소 두 개의 리스트를 선택하세요."
+ },
+ "merge_lists_confirm": {
+ "message": "{count}개의 리스트를 \"{target}\"에 병합하시겠습니까? 소스 리스트는 제거됩니다."
+ },
+ "delete_current_list": {
+ "message": "현재 리스트를 삭제하시겠습니까?"
+ },
+ "delete_lists_confirm": {
+ "message": "선택한 {count}개의 리스트를 삭제하시겠습니까?"
+ },
+ "invalid_import_format": {
+ "message": "잘못된 파일 형식입니다. 유효한 Goose Highlighter 내보내기 파일을 선택하세요."
+ },
+ "import_failed": {
+ "message": "파일 가져오기에 실패했습니다. 유효한 JSON 파일인지 확인하세요."
+ },
+ "import_confirm": {
+ "message": "총 {words}개의 단어가 포함된 {count}개의 리스트를 가져오시겠습니까?"
+ },
+ "import_success": {
+ "message": "{words}개의 단어가 포함된 {count}개의 리스트를 성공적으로 가져왔습니다."
+ },
+ "preview_label": {
+ "message": "미리보기"
+ },
+ "preview_text": {
+ "message": "하이라이트된 텍스트가 이렇게 표시됩니다."
+ },
+ "preview_text_before": {
+ "message": ""
+ },
+ "preview_text_highlight": {
+ "message": "하이라이트된 텍스트"
+ },
+ "preview_text_after": {
+ "message": "가 이렇게 표시됩니다."
+ },
+ "enable_highlighting_title": {
+ "message": "하이라이트 활성화"
+ },
+ "enable_highlighting_subtitle": {
+ "message": "페이지에 하이라이트 표시"
+ },
+ "manage_lists": {
+ "message": "리스트 관리"
+ },
+ "background_label": {
+ "message": "배경"
+ },
+ "foreground_label": {
+ "message": "전경"
+ },
+ "multi_select_hint": {
+ "message": "클릭하여 선택 • Ctrl/Cmd+클릭으로 다중 선택"
+ },
+ "dark_mode_title": {
+ "message": "다크 모드"
+ },
+ "dark_mode_subtitle": {
+ "message": "밝은/어두운 테마 전환"
+ },
+ "list_manager_title": {
+ "message": "리스트 관리자"
+ },
+ "words_label": {
+ "message": "단어"
+ },
+ "active_label": {
+ "message": "활성"
+ },
+ "inactive_label": {
+ "message": "비활성"
+ },
+ "drag_words_hint": {
+ "message": "클릭하여 선택 • Ctrl/Cmd+클릭으로 다중 선택 • 단어를 리스트로 드래그하여 복사"
+ },
+ "drag_lists_hint": {
+ "message": "리스트를 드래그하여 재정렬 • Ctrl+클릭으로 다중 선택"
+ },
+ "showing_items": {
+ "message": "{total}개 단어 중 {start}-{end} 표시"
+ },
+ "items_per_page": {
+ "message": "페이지당 항목 수:"
+ },
+ "page_info": {
+ "message": "페이지 {current}/{total}"
+ },
+ "toggle_active": {
+ "message": "활성 전환"
+ },
+ "rename_list_title": {
+ "message": "리스트 이름 변경"
+ },
+ "new_list_title": {
+ "message": "새 리스트"
+ },
+ "delete_list_title": {
+ "message": "리스트 삭제"
+ },
+ "list_active_badge": {
+ "message": "활성"
+ },
+ "list_paused_badge": {
+ "message": "일시정지"
+ },
+ "words_stats": {
+ "message": "{total}개 단어 • {active}개 활성 • {inactive}개 비활성"
+ },
+ "rename_list": {
+ "message": "리스트 이름 변경"
}
}
\ No newline at end of file
diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json
index 3f3768d..6e3d2bf 100644
--- a/_locales/nl/messages.json
+++ b/_locales/nl/messages.json
@@ -178,5 +178,131 @@
},
"next": {
"message": "Volgende"
+ },
+ "duplicate": {
+ "message": "Dupliceren"
+ },
+ "merge": {
+ "message": "Samenvoegen"
+ },
+ "move": {
+ "message": "Verplaatsen"
+ },
+ "copy": {
+ "message": "Kopiëren"
+ },
+ "merge_lists_min_two": {
+ "message": "Selecteer minimaal twee lijsten om samen te voegen."
+ },
+ "merge_lists_confirm": {
+ "message": "{count} lijst(en) samenvoegen in \"{target}\"? Bronlijsten worden verwijderd."
+ },
+ "delete_current_list": {
+ "message": "Huidige lijst verwijderen?"
+ },
+ "delete_lists_confirm": {
+ "message": "{count} geselecteerde lijst(en) verwijderen?"
+ },
+ "invalid_import_format": {
+ "message": "Ongeldig bestandsformaat. Selecteer een geldig Goose Highlighter exportbestand."
+ },
+ "import_failed": {
+ "message": "Importeren van bestand mislukt. Zorg ervoor dat het een geldig JSON-bestand is."
+ },
+ "import_confirm": {
+ "message": "{count} lijst(en) met in totaal {words} woord(en) importeren?"
+ },
+ "import_success": {
+ "message": "{count} lijst(en) met {words} woord(en) succesvol geïmporteerd."
+ },
+ "preview_label": {
+ "message": "Voorbeeld"
+ },
+ "preview_text": {
+ "message": "Zo zal uw gemarkeerde tekst verschijnen."
+ },
+ "preview_text_before": {
+ "message": "Zo zal uw"
+ },
+ "preview_text_highlight": {
+ "message": "gemarkeerde tekst"
+ },
+ "preview_text_after": {
+ "message": "verschijnen."
+ },
+ "enable_highlighting_title": {
+ "message": "Markeren inschakelen"
+ },
+ "enable_highlighting_subtitle": {
+ "message": "Markeringen op pagina's weergeven"
+ },
+ "manage_lists": {
+ "message": "Lijsten beheren"
+ },
+ "background_label": {
+ "message": "Achtergrond"
+ },
+ "foreground_label": {
+ "message": "Voorgrond"
+ },
+ "multi_select_hint": {
+ "message": "Klik om te selecteren • Ctrl/Cmd+Klik voor meervoudige selectie"
+ },
+ "dark_mode_title": {
+ "message": "Donkere modus"
+ },
+ "dark_mode_subtitle": {
+ "message": "Schakel tussen licht/donker thema"
+ },
+ "list_manager_title": {
+ "message": "Lijstbeheerder"
+ },
+ "words_label": {
+ "message": "woorden"
+ },
+ "active_label": {
+ "message": "actief"
+ },
+ "inactive_label": {
+ "message": "inactief"
+ },
+ "drag_words_hint": {
+ "message": "Klik om te selecteren • Ctrl/Cmd+Klik voor meervoudige selectie • Sleep woorden naar lijsten om te kopiëren"
+ },
+ "drag_lists_hint": {
+ "message": "Sleep lijsten om te herschikken • Ctrl+Klik voor meervoudige selectie"
+ },
+ "showing_items": {
+ "message": "{start}-{end} van {total} woorden weergegeven"
+ },
+ "items_per_page": {
+ "message": "Items per pagina:"
+ },
+ "page_info": {
+ "message": "Pagina {current} van {total}"
+ },
+ "toggle_active": {
+ "message": "actief schakelen"
+ },
+ "rename_list_title": {
+ "message": "Lijst hernoemen"
+ },
+ "new_list_title": {
+ "message": "Nieuwe lijst"
+ },
+ "delete_list_title": {
+ "message": "Lijst verwijderen"
+ },
+ "list_active_badge": {
+ "message": "Actief"
+ },
+ "list_paused_badge": {
+ "message": "Gepauzeerd"
+ },
+ "words_stats": {
+ "message": "{total} woorden • {active} actief • {inactive} inactief"
+ },
+ "rename_list": {
+ "message": "Lijst hernoemen"
}
}
\ No newline at end of file
diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json
index 3b3da2f..6832e0d 100644
--- a/_locales/pl/messages.json
+++ b/_locales/pl/messages.json
@@ -178,5 +178,131 @@
},
"next": {
"message": "Następny"
+ },
+ "duplicate": {
+ "message": "Duplikuj"
+ },
+ "merge": {
+ "message": "Scal"
+ },
+ "move": {
+ "message": "Przenieś"
+ },
+ "copy": {
+ "message": "Kopiuj"
+ },
+ "merge_lists_min_two": {
+ "message": "Wybierz co najmniej dwie listy do scalenia."
+ },
+ "merge_lists_confirm": {
+ "message": "Scalić {count} list(y) w \"{target}\"? Listy źródłowe zostaną usunięte."
+ },
+ "delete_current_list": {
+ "message": "Usunąć bieżącą listę?"
+ },
+ "delete_lists_confirm": {
+ "message": "Usunąć {count} wybraną/e listę/y?"
+ },
+ "invalid_import_format": {
+ "message": "Nieprawidłowy format pliku. Wybierz prawidłowy plik eksportu Goose Highlighter."
+ },
+ "import_failed": {
+ "message": "Nie udało się zaimportować pliku. Upewnij się, że jest to prawidłowy plik JSON."
+ },
+ "import_confirm": {
+ "message": "Zaimportować {count} list(y) z łącznie {words} słowami?"
+ },
+ "import_success": {
+ "message": "Pomyślnie zaimportowano {count} list(y) z {words} słowami."
+ },
+ "preview_label": {
+ "message": "Podgląd"
+ },
+ "preview_text": {
+ "message": "Tak będzie wyglądał Twój podświetlony tekst."
+ },
+ "preview_text_before": {
+ "message": "Tak będzie wyglądał Twój"
+ },
+ "preview_text_highlight": {
+ "message": "podświetlony tekst"
+ },
+ "preview_text_after": {
+ "message": "."
+ },
+ "enable_highlighting_title": {
+ "message": "Włącz podświetlanie"
+ },
+ "enable_highlighting_subtitle": {
+ "message": "Pokaż podświetlenia na stronach"
+ },
+ "manage_lists": {
+ "message": "Zarządzaj listami"
+ },
+ "background_label": {
+ "message": "Tło"
+ },
+ "foreground_label": {
+ "message": "Pierwszy plan"
+ },
+ "multi_select_hint": {
+ "message": "Kliknij, aby zaznaczyć • Ctrl/Cmd+Klik dla wielokrotnego zaznaczenia"
+ },
+ "dark_mode_title": {
+ "message": "Tryb ciemny"
+ },
+ "dark_mode_subtitle": {
+ "message": "Przełącz między jasnym/ciemnym motywem"
+ },
+ "list_manager_title": {
+ "message": "Menedżer list"
+ },
+ "words_label": {
+ "message": "słowa"
+ },
+ "active_label": {
+ "message": "aktywny"
+ },
+ "inactive_label": {
+ "message": "nieaktywny"
+ },
+ "drag_words_hint": {
+ "message": "Kliknij, aby zaznaczyć • Ctrl/Cmd+Klik dla wielokrotnego zaznaczenia • Przeciągnij słowa do list, aby skopiować"
+ },
+ "drag_lists_hint": {
+ "message": "Przeciągnij listy, aby zmienić kolejność • Ctrl+Klik dla wielokrotnego zaznaczenia"
+ },
+ "showing_items": {
+ "message": "Wyświetlanie {start}-{end} z {total} słów"
+ },
+ "items_per_page": {
+ "message": "Elementów na stronę:"
+ },
+ "page_info": {
+ "message": "Strona {current} z {total}"
+ },
+ "toggle_active": {
+ "message": "przełącz aktywny"
+ },
+ "rename_list_title": {
+ "message": "Zmień nazwę listy"
+ },
+ "new_list_title": {
+ "message": "Nowa lista"
+ },
+ "delete_list_title": {
+ "message": "Usuń listę"
+ },
+ "list_active_badge": {
+ "message": "Aktywny"
+ },
+ "list_paused_badge": {
+ "message": "Wstrzymany"
+ },
+ "words_stats": {
+ "message": "{total} słów • {active} aktywnych • {inactive} nieaktywnych"
+ },
+ "rename_list": {
+ "message": "Zmień nazwę listy"
}
}
\ No newline at end of file
diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json
index 9d1fbbb..e9579fa 100644
--- a/_locales/pt_BR/messages.json
+++ b/_locales/pt_BR/messages.json
@@ -1,103 +1,109 @@
{
- "extension_name": {
- "message": "Goose Highlighter"
- },
- "extension_description": {
- "message": "Destaque palavras e frases em qualquer site. Crie listas personalizadas, use cores, importe/exporte e muito mais."
- },
- "select_list": {
- "message": "Selecionar lista:"
- },
- "new_list": {
- "message": "Nova lista"
- },
- "delete_list": {
- "message": "Excluir lista"
- },
- "list_name": {
- "message": "Nome da lista:"
- },
- "background": {
- "message": "Fundo:"
- },
- "foreground": {
- "message": "Texto:"
- },
- "enable_highlight": {
- "message": "Ativar destaque"
- },
- "apply": {
- "message": "Aplicar"
- },
- "paste_hint": {
- "message": "Cole palavras ou frases aqui. Cada nova palavra/frase deve começar na próxima linha."
- },
- "apply_paste": {
- "message": "Adicionar palavras"
- },
- "select_all": {
- "message": "Selecionar"
- },
- "delete_selected": {
- "message": "Excluir"
- },
- "disable_selected": {
- "message": "Desativar"
- },
- "enable_selected": {
- "message": "Ativar"
- },
- "import_list": {
- "message": "Importar JSON"
- },
- "export_list": {
- "message": "Exportar JSON"
- },
- "default_list_name": {
- "message": "Lista padrão"
- },
- "new_list_name": {
- "message": "Nova lista"
- },
- "word_active_label": {
- "message": "ativo"
- },
- "invalid_json_error": {
- "message": "Arquivo JSON inválido"
- },
- "confirm_delete_list": {
- "message": "Tem certeza de que deseja excluir esta lista?"
- },
- "confirm_delete_words": {
- "message": "Tem certeza de que deseja excluir as palavras selecionadas?"
- },
- "deselect_all": {
- "message": "Desmarcar"
- },
- "highlight_lists": {
- "message": "Listas de destaque"
- },
- "dark_mode": {
- "message": "Modo escuro"
- },
- "list_settings": {
- "message": "Configurações da lista"
- },
- "word_list": {
- "message": "Lista de palavras"
- },
- "add_words": {
- "message": "Adicionar palavras"
- },
- "global_highlight_toggle": {
- "message": "Ativar"
- },
- "search_placeholder": {
+ "extension_name": {
+ "message": "Goose Highlighter"
+ },
+ "extension_description": {
+ "message": "Destaque palavras e frases em qualquer site. Crie listas personalizadas, use cores, importe/exporte e muito mais."
+ },
+ "select_list": {
+ "message": "Selecionar lista:"
+ },
+ "new_list": {
+ "message": "Nova lista"
+ },
+ "delete_list": {
+ "message": "Excluir lista"
+ },
+ "list_name": {
+ "message": "Nome da lista:"
+ },
+ "background": {
+ "message": "Fundo:"
+ },
+ "foreground": {
+ "message": "Texto:"
+ },
+ "enable_highlight": {
+ "message": "Ativar destaque"
+ },
+ "apply": {
+ "message": "Aplicar"
+ },
+ "paste_hint": {
+ "message": "Cole palavras ou frases aqui. Cada nova palavra/frase deve começar na próxima linha."
+ },
+ "apply_paste": {
+ "message": "Adicionar palavras"
+ },
+ "select_all": {
+ "message": "Selecionar"
+ },
+ "delete_selected": {
+ "message": "Excluir"
+ },
+ "disable_selected": {
+ "message": "Desativar"
+ },
+ "enable_selected": {
+ "message": "Ativar"
+ },
+ "import_list": {
+ "message": "Importar JSON"
+ },
+ "export_list": {
+ "message": "Exportar JSON"
+ },
+ "default_list_name": {
+ "message": "Lista padrão"
+ },
+ "new_list_name": {
+ "message": "Nova lista"
+ },
+ "word_active_label": {
+ "message": "ativo"
+ },
+ "invalid_json_error": {
+ "message": "Arquivo JSON inválido"
+ },
+ "confirm_delete_list": {
+ "message": "Tem certeza de que deseja excluir esta lista?"
+ },
+ "confirm_delete_words": {
+ "message": "Tem certeza de que deseja excluir as palavras selecionadas?"
+ },
+ "deselect_all": {
+ "message": "Desmarcar"
+ },
+ "highlight_lists": {
+ "message": "Listas de destaque"
+ },
+ "dark_mode": {
+ "message": "Modo escuro"
+ },
+ "list_settings": {
+ "message": "Configurações da lista"
+ },
+ "word_list": {
+ "message": "Lista de palavras"
+ },
+ "add_words": {
+ "message": "Adicionar palavras"
+ },
+ "global_highlight_toggle": {
+ "message": "Ativar"
+ },
+ "search_placeholder": {
"message": "Pesquisar..."
-},
- "options": { "message": "Opções" },
- "match_case": { "message": "Diferenciar maiúsculas/minúsculas" },
- "match_whole": { "message": "Palavra inteira" },
+ },
+ "options": {
+ "message": "Opções"
+ },
+ "match_case": {
+ "message": "Diferenciar maiúsculas/minúsculas"
+ },
+ "match_whole": {
+ "message": "Palavra inteira"
+ },
"site_exceptions": {
"message": "Exceções de sites"
},
@@ -172,5 +178,131 @@
},
"next": {
"message": "Próximo"
+ },
+ "duplicate": {
+ "message": "Duplicar"
+ },
+ "merge": {
+ "message": "Mesclar"
+ },
+ "move": {
+ "message": "Mover"
+ },
+ "copy": {
+ "message": "Copiar"
+ },
+ "merge_lists_min_two": {
+ "message": "Selecione pelo menos duas listas para mesclar."
+ },
+ "merge_lists_confirm": {
+ "message": "Mesclar {count} lista(s) em \"{target}\"? As listas de origem serão removidas."
+ },
+ "delete_current_list": {
+ "message": "Excluir lista atual?"
+ },
+ "delete_lists_confirm": {
+ "message": "Excluir {count} lista(s) selecionada(s)?"
+ },
+ "invalid_import_format": {
+ "message": "Formato de arquivo inválido. Selecione um arquivo de exportação válido do Goose Highlighter."
+ },
+ "import_failed": {
+ "message": "Falha ao importar arquivo. Certifique-se de que é um arquivo JSON válido."
+ },
+ "import_confirm": {
+ "message": "Importar {count} lista(s) com {words} palavra(s) no total?"
+ },
+ "import_success": {
+ "message": "{count} lista(s) com {words} palavra(s) importada(s) com sucesso."
+ },
+ "preview_label": {
+ "message": "Visualização"
+ },
+ "preview_text": {
+ "message": "É assim que seu texto destacado aparecerá."
+ },
+ "preview_text_before": {
+ "message": "É assim que seu"
+ },
+ "preview_text_highlight": {
+ "message": "texto destacado"
+ },
+ "preview_text_after": {
+ "message": "aparecerá."
+ },
+ "enable_highlighting_title": {
+ "message": "Ativar destaque"
+ },
+ "enable_highlighting_subtitle": {
+ "message": "Mostrar destaques nas páginas"
+ },
+ "manage_lists": {
+ "message": "Gerenciar listas"
+ },
+ "background_label": {
+ "message": "Fundo"
+ },
+ "foreground_label": {
+ "message": "Texto"
+ },
+ "multi_select_hint": {
+ "message": "Clique para selecionar • Ctrl/Cmd+Clique para seleção múltipla"
+ },
+ "dark_mode_title": {
+ "message": "Modo escuro"
+ },
+ "dark_mode_subtitle": {
+ "message": "Alternar entre tema claro/escuro"
+ },
+ "list_manager_title": {
+ "message": "Gerenciador de listas"
+ },
+ "words_label": {
+ "message": "palavras"
+ },
+ "active_label": {
+ "message": "ativo"
+ },
+ "inactive_label": {
+ "message": "inativo"
+ },
+ "drag_words_hint": {
+ "message": "Clique para selecionar • Ctrl/Cmd+Clique para seleção múltipla • Arraste palavras para listas para copiar"
+ },
+ "drag_lists_hint": {
+ "message": "Arraste listas para reordenar • Ctrl+Clique para seleção múltipla"
+ },
+ "showing_items": {
+ "message": "Mostrando {start}-{end} de {total} palavras"
+ },
+ "items_per_page": {
+ "message": "Itens por página:"
+ },
+ "page_info": {
+ "message": "Página {current} de {total}"
+ },
+ "toggle_active": {
+ "message": "alternar ativo"
+ },
+ "rename_list_title": {
+ "message": "Renomear lista"
+ },
+ "new_list_title": {
+ "message": "Nova lista"
+ },
+ "delete_list_title": {
+ "message": "Excluir lista"
+ },
+ "list_active_badge": {
+ "message": "Ativo"
+ },
+ "list_paused_badge": {
+ "message": "Pausado"
+ },
+ "words_stats": {
+ "message": "{total} palavras • {active} ativas • {inactive} inativas"
+ },
+ "rename_list": {
+ "message": "Renomear lista"
}
}
\ No newline at end of file
diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json
index 1df5ad9..2c479cf 100644
--- a/_locales/ru/messages.json
+++ b/_locales/ru/messages.json
@@ -178,5 +178,132 @@
},
"next": {
"message": "Следующее"
+ },
+ "duplicate": {
+ "message": "Дублировать"
+ },
+ "merge": {
+ "message": "Объединить"
+ },
+ "move": {
+ "message": "Переместить"
+ },
+ "copy": {
+ "message": "Копировать"
+ },
+ "merge_lists_min_two": {
+ "message": "Выберите как минимум два списка для объединения."
+ },
+ "merge_lists_confirm": {
+ "message": "Объединить {count} список(ов) в \"{target}\"? Исходные списки будут удалены."
+ },
+ "delete_current_list": {
+ "message": "Удалить текущий список?"
+ },
+ "delete_lists_confirm": {
+ "message": "Удалить {count} выбранный(ых) список(ов)?"
+ },
+ "invalid_import_format": {
+ "message": "Неверный формат файла. Выберите действительный файл экспорта Goose Highlighter."
+ },
+ "import_failed": {
+ "message": "Не удалось импортировать файл. Убедитесь, что это действительный файл JSON."
+ },
+ "import_confirm": {
+ "message": "Импортировать {count} список(ов) с {words} словами всего?"
+ },
+ "import_success": {
+ "message": "Успешно импортировано {count} список(ов) с {words} словами."
+}
+,
+ "preview_label": {
+ "message": "Предпросмотр"
+ },
+ "preview_text": {
+ "message": "Так будет выглядеть выделенный текст."
+ },
+ "preview_text_before": {
+ "message": "Так будет выглядеть"
+ },
+ "preview_text_highlight": {
+ "message": "выделенный текст"
+ },
+ "preview_text_after": {
+ "message": "."
+ },
+ "enable_highlighting_title": {
+ "message": "Включить выделение"
+ },
+ "enable_highlighting_subtitle": {
+ "message": "Выделять слова из выбранного списка"
+ },
+ "manage_lists": {
+ "message": "Управление списками"
+ },
+ "background_label": {
+ "message": "Фон"
+ },
+ "foreground_label": {
+ "message": "Текст"
+ },
+ "multi_select_hint": {
+ "message": "Нажмите для выбора • Ctrl/Cmd+Клик для множественного выбора"
+ },
+ "dark_mode_title": {
+ "message": "Темная тема"
+ },
+ "dark_mode_subtitle": {
+ "message": "Переключить светлую/темную тему"
+ },
+ "list_manager_title": {
+ "message": "Управление списками"
+ },
+ "words_label": {
+ "message": "слова"
+ },
+ "active_label": {
+ "message": "активно"
+ },
+ "inactive_label": {
+ "message": "неактивно"
+ },
+ "drag_words_hint": {
+ "message": "Нажмите для выбора • Ctrl/Cmd+Клик для множественного выбора • Перетащите слова в списки для копирования"
+ },
+ "drag_lists_hint": {
+ "message": "Перетащите для изменения порядка • Ctrl+Клик для множественного выбора"
+ },
+ "showing_items": {
+ "message": "Показано {start}-{end} из {total} слов"
+ },
+ "items_per_page": {
+ "message": "Элементов на странице:"
+ },
+ "page_info": {
+ "message": "Страница {current} из {total}"
+ },
+ "toggle_active": {
+ "message": "переключить активность"
+ },
+ "rename_list_title": {
+ "message": "Переименовать список"
+ },
+ "new_list_title": {
+ "message": "Новый список"
+ },
+ "delete_list_title": {
+ "message": "Удалить список"
+ },
+ "list_active_badge": {
+ "message": "Активен"
+ },
+ "list_paused_badge": {
+ "message": "Приостановлен"
+ },
+ "words_stats": {
+ "message": "{total} слов • {active} активных • {inactive} неактивных"
+ },
+ "rename_list": {
+ "message": "Переименовать список"
}
}
\ No newline at end of file
diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json
index 299bb20..72c832a 100644
--- a/_locales/tr/messages.json
+++ b/_locales/tr/messages.json
@@ -178,5 +178,131 @@
},
"next": {
"message": "Sonraki"
+ },
+ "duplicate": {
+ "message": "Çoğalt"
+ },
+ "merge": {
+ "message": "Birleştir"
+ },
+ "move": {
+ "message": "Taşı"
+ },
+ "copy": {
+ "message": "Kopyala"
+ },
+ "merge_lists_min_two": {
+ "message": "Birleştirmek için en az iki liste seçin."
+ },
+ "merge_lists_confirm": {
+ "message": "{count} listeyi \"{target}\" ile birleştir? Kaynak listeler kaldırılacak."
+ },
+ "delete_current_list": {
+ "message": "Mevcut listeyi sil?"
+ },
+ "delete_lists_confirm": {
+ "message": "Seçili {count} listeyi sil?"
+ },
+ "invalid_import_format": {
+ "message": "Geçersiz dosya formatı. Lütfen geçerli bir Goose Highlighter dışa aktarma dosyası seçin."
+ },
+ "import_failed": {
+ "message": "Dosya içe aktarılamadı. Lütfen geçerli bir JSON dosyası olduğundan emin olun."
+ },
+ "import_confirm": {
+ "message": "Toplam {words} kelime içeren {count} liste içe aktarılsın mı?"
+ },
+ "import_success": {
+ "message": "{words} kelime içeren {count} liste başarıyla içe aktarıldı."
+ },
+ "preview_label": {
+ "message": "Önizleme"
+ },
+ "preview_text": {
+ "message": "Vurgulanan metniniz böyle görünecek."
+ },
+ "preview_text_before": {
+ "message": "Vurgulanan metniniz"
+ },
+ "preview_text_highlight": {
+ "message": "böyle"
+ },
+ "preview_text_after": {
+ "message": "görünecek."
+ },
+ "enable_highlighting_title": {
+ "message": "Vurgulamayı Etkinleştir"
+ },
+ "enable_highlighting_subtitle": {
+ "message": "Sayfalarda vurguları göster"
+ },
+ "manage_lists": {
+ "message": "Listeleri Yönet"
+ },
+ "background_label": {
+ "message": "Arka Plan"
+ },
+ "foreground_label": {
+ "message": "Ön Plan"
+ },
+ "multi_select_hint": {
+ "message": "Seçmek için tıklayın • Çoklu seçim için Ctrl/Cmd+Tıklama"
+ },
+ "dark_mode_title": {
+ "message": "Karanlık Mod"
+ },
+ "dark_mode_subtitle": {
+ "message": "Açık/koyu tema arasında geçiş yap"
+ },
+ "list_manager_title": {
+ "message": "Liste Yöneticisi"
+ },
+ "words_label": {
+ "message": "kelime"
+ },
+ "active_label": {
+ "message": "aktif"
+ },
+ "inactive_label": {
+ "message": "pasif"
+ },
+ "drag_words_hint": {
+ "message": "Seçmek için tıklayın • Çoklu seçim için Ctrl/Cmd+Tıklama • Kopyalamak için kelimeleri listelere sürükleyin"
+ },
+ "drag_lists_hint": {
+ "message": "Yeniden sıralamak için listeleri sürükleyin • Çoklu seçim için Ctrl+Tıklama"
+ },
+ "showing_items": {
+ "message": "{total} kelimeden {start}-{end} gösteriliyor"
+ },
+ "items_per_page": {
+ "message": "Sayfa başına öğe:"
+ },
+ "page_info": {
+ "message": "Sayfa {current} / {total}"
+ },
+ "toggle_active": {
+ "message": "aktif/pasif değiştir"
+ },
+ "rename_list_title": {
+ "message": "Listeyi yeniden adlandır"
+ },
+ "new_list_title": {
+ "message": "Yeni liste"
+ },
+ "delete_list_title": {
+ "message": "Listeyi sil"
+ },
+ "list_active_badge": {
+ "message": "Aktif"
+ },
+ "list_paused_badge": {
+ "message": "Duraklatıldı"
+ },
+ "words_stats": {
+ "message": "{total} kelime • {active} aktif • {inactive} pasif"
+ },
+ "rename_list": {
+ "message": "Listeyi Yeniden Adlandır"
}
}
\ No newline at end of file
diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json
index ec3ec03..9a9e329 100644
--- a/_locales/zh_CN/messages.json
+++ b/_locales/zh_CN/messages.json
@@ -178,5 +178,131 @@
},
"next": {
"message": "下一个"
+ },
+ "duplicate": {
+ "message": "复制"
+ },
+ "merge": {
+ "message": "合并"
+ },
+ "move": {
+ "message": "移动"
+ },
+ "copy": {
+ "message": "复制"
+ },
+ "merge_lists_min_two": {
+ "message": "选择至少两个列表进行合并。"
+ },
+ "merge_lists_confirm": {
+ "message": "将 {count} 个列表合并到 \"{target}\"?源列表将被删除。"
+ },
+ "delete_current_list": {
+ "message": "删除当前列表?"
+ },
+ "delete_lists_confirm": {
+ "message": "删除 {count} 个选定的列表?"
+ },
+ "invalid_import_format": {
+ "message": "无效的文件格式。请选择有效的 Goose Highlighter 导出文件。"
+ },
+ "import_failed": {
+ "message": "导入文件失败。请确保它是有效的 JSON 文件。"
+ },
+ "import_confirm": {
+ "message": "导入 {count} 个列表,共 {words} 个单词?"
+ },
+ "import_success": {
+ "message": "成功导入 {count} 个列表,共 {words} 个单词。"
+ },
+ "preview_label": {
+ "message": "预览"
+ },
+ "preview_text": {
+ "message": "您的高亮文本将如此显示。"
+ },
+ "preview_text_before": {
+ "message": "您的"
+ },
+ "preview_text_highlight": {
+ "message": "高亮文本"
+ },
+ "preview_text_after": {
+ "message": "将如此显示。"
+ },
+ "enable_highlighting_title": {
+ "message": "启用高亮"
+ },
+ "enable_highlighting_subtitle": {
+ "message": "在页面上显示高亮"
+ },
+ "manage_lists": {
+ "message": "管理列表"
+ },
+ "background_label": {
+ "message": "背景"
+ },
+ "foreground_label": {
+ "message": "前景"
+ },
+ "multi_select_hint": {
+ "message": "点击选择 • Ctrl/Cmd+点击多选"
+ },
+ "dark_mode_title": {
+ "message": "暗黑模式"
+ },
+ "dark_mode_subtitle": {
+ "message": "切换亮色/暗色主题"
+ },
+ "list_manager_title": {
+ "message": "列表管理器"
+ },
+ "words_label": {
+ "message": "单词"
+ },
+ "active_label": {
+ "message": "激活"
+ },
+ "inactive_label": {
+ "message": "未激活"
+ },
+ "drag_words_hint": {
+ "message": "点击选择 • Ctrl/Cmd+点击多选 • 拖动单词到列表以复制"
+ },
+ "drag_lists_hint": {
+ "message": "拖动列表以重新排序 • Ctrl+点击多选"
+ },
+ "showing_items": {
+ "message": "显示 {start}-{end} / 共 {total} 个单词"
+ },
+ "items_per_page": {
+ "message": "每页项目数:"
+ },
+ "page_info": {
+ "message": "第 {current} 页,共 {total} 页"
+ },
+ "toggle_active": {
+ "message": "切换激活状态"
+ },
+ "rename_list_title": {
+ "message": "重命名列表"
+ },
+ "new_list_title": {
+ "message": "新建列表"
+ },
+ "delete_list_title": {
+ "message": "删除列表"
+ },
+ "list_active_badge": {
+ "message": "激活"
+ },
+ "list_paused_badge": {
+ "message": "已暂停"
+ },
+ "words_stats": {
+ "message": "{total} 个单词 • {active} 个激活 • {inactive} 个未激活"
+ },
+ "rename_list": {
+ "message": "重命名列表"
}
}
\ No newline at end of file
diff --git a/list-manager/list-manager.css b/list-manager/list-manager.css
index 6eb3b05..36f4308 100644
--- a/list-manager/list-manager.css
+++ b/list-manager/list-manager.css
@@ -1,8 +1,11 @@
+@import url('../shared/fonts.css');
@import url('../shared/colors.css');
@import url('../shared/ui-components.css');
* {
box-sizing: border-box;
+ margin: 0;
+ padding: 0;
}
html {
@@ -10,19 +13,17 @@ html {
}
body {
- font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
+ font-family: var(--font-sans);
+ font-size: var(--text-base);
+ line-height: var(--leading-normal);
+ letter-spacing: var(--tracking-tight);
margin: 0;
- background: radial-gradient(120% 120% at 10% 0%, rgba(204, 106, 42, 0.08) 0%, transparent 45%),
- linear-gradient(180deg, var(--bg-color) 0%, #f5efe9 100%);
+ background: var(--bg-color);
color: var(--text-color);
height: 100%;
overflow: hidden;
-}
-
-html.dark body,
-body.dark {
- background: radial-gradient(120% 120% at 10% 0%, rgba(242, 168, 101, 0.08) 0%, transparent 45%),
- linear-gradient(180deg, var(--bg-color) 0%, #0f0d0b 100%);
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
}
.app {
@@ -32,65 +33,115 @@ body.dark {
overflow: hidden;
}
+.app button {
+ border-radius: 6px;
+}
+
+.app .icon-btn {
+ min-width: 28px;
+ min-height: 28px;
+ border-radius: 6px;
+}
+
.topbar {
display: flex;
align-items: center;
justify-content: space-between;
- padding: 16px 20px;
- background: linear-gradient(145deg, #f6eee7 0%, #f0e8df 100%);
+ padding: 8px 16px;
+ background: var(--bg-color);
border-bottom: 1px solid var(--input-border);
- box-shadow: var(--shadow);
-}
-
-html.dark .topbar,
-body.dark .topbar {
- background: linear-gradient(145deg, #2b211b 0%, #231a14 100%);
+ flex-shrink: 0;
}
.title {
display: flex;
align-items: center;
- gap: 12px;
+ gap: 10px;
}
.title img {
- height: 36px;
- width: 36px;
+ height: 28px;
+ width: 28px;
+ border-radius: 8px;
+ background: var(--text-color);
+ padding: 4px;
+ object-fit: contain;
+}
+
+html.dark .title img,
+body.dark .title img {
+ background: var(--highlight-tag);
}
.name {
font-weight: 600;
- font-size: 1.05rem;
+ font-size: 13px;
+ color: var(--text-color);
}
.subtitle {
- font-size: 0.85rem;
- opacity: 0.7;
+ font-size: 11px;
+ opacity: 0.6;
}
-.topbar-actions {
- display: flex;
- gap: 10px;
+.topbar-actions button {
+ min-height: 28px;
+ padding: 4px 10px;
+ font-size: 12px;
+ border-radius: 6px;
+ display: inline-flex;
+ align-items: center;
+ gap: 6px;
+}
+
+.topbar-actions button.primary {
+ background: var(--accent);
+ color: var(--accent-text);
+ border: none;
+}
+
+.topbar-actions button.primary:hover {
+ background: var(--accent-hover);
+}
+
+.topbar-actions button.ghost {
+ background: var(--input-bg);
+ border: 1px solid var(--input-border);
+ color: var(--text-color);
+}
+
+.topbar-actions button.ghost:hover {
+ background: var(--section-bg);
+}
+
+.topbar-actions .icon-toggle {
+ width: 28px;
+ height: 28px;
+ padding: 0;
+ border-radius: 6px;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
}
.layout {
display: grid;
grid-template-columns: minmax(280px, 25%) 1fr;
- gap: 16px;
- padding: 16px;
+ gap: 12px;
+ padding: 12px;
flex: 1;
overflow: hidden;
min-height: 0;
}
.panel {
- background: var(--panel-bg);
+ background: var(--section-bg);
border: 1px solid var(--input-border);
- border-radius: var(--border-radius);
- padding: 14px;
+ border-radius: 8px;
+ padding: 12px;
display: flex;
flex-direction: column;
- gap: 12px;
+ gap: 10px;
overflow: hidden;
min-height: 0;
}
@@ -99,13 +150,13 @@ body.dark .topbar {
display: flex;
align-items: center;
justify-content: space-between;
- gap: 12px;
+ gap: 10px;
}
.lists-panel .panel-header {
flex-direction: column;
align-items: flex-start;
- gap: 8px;
+ gap: 6px;
}
.lists-panel .panel-header h2 {
@@ -114,12 +165,14 @@ body.dark .topbar {
.panel-header h2 {
margin: 0;
- font-size: 1rem;
+ font-size: 13px;
+ font-weight: 600;
+ color: var(--text-color);
}
.panel-actions {
display: flex;
- gap: 8px;
+ gap: 6px;
flex-wrap: wrap;
}
@@ -129,8 +182,10 @@ body.dark .topbar {
}
.lists-panel .panel-actions button {
- padding: 6px 10px;
- font-size: 0.8rem;
+ padding: 4px 8px;
+ font-size: 12px;
+ border-radius: 6px;
+ min-height: 28px;
}
.panel-actions.secondary {
@@ -138,82 +193,46 @@ body.dark .topbar {
gap: 6px;
}
+.panel-actions.secondary button {
+ padding: 4px 8px;
+ font-size: 12px;
+ border-radius: 6px;
+ min-height: 28px;
+}
+
.list-hint {
- font-size: 0.8rem;
- opacity: 0.7;
- margin-top: -4px;
+ font-size: 11px;
+ opacity: 0.6;
+ margin-top: -2px;
}
.selection-hint {
- font-size: 0.75rem;
+ font-size: 12px;
+ color: var(--text-color);
opacity: 0.6;
margin-top: 4px;
font-style: italic;
+ text-align: center;
}
.lists {
display: flex;
flex-direction: column;
- gap: 10px;
+ gap: 8px;
overflow-y: auto;
padding-right: 4px;
flex: 1;
min-height: 0;
}
-/* Custom scrollbar styling - List Manager Specific */
-.lists::-webkit-scrollbar,
-.word-list::-webkit-scrollbar {
- width: 8px;
-}
-
-.lists::-webkit-scrollbar-track,
-.word-list::-webkit-scrollbar-track {
- background: #f0e8df;
- border-radius: 10px;
-}
-
-.lists::-webkit-scrollbar-thumb,
-.word-list::-webkit-scrollbar-thumb {
- background: var(--input-border);
- border-radius: 10px;
- transition: background 0.2s ease;
-}
-
-.lists::-webkit-scrollbar-thumb:hover,
-.word-list::-webkit-scrollbar-thumb:hover {
- background: #d4c4b8;
-}
-
-html.dark .lists::-webkit-scrollbar-track,
-html.dark .word-list::-webkit-scrollbar-track,
-body.dark .lists::-webkit-scrollbar-track,
-body.dark .word-list::-webkit-scrollbar-track {
- background: #1a1511;
-}
-
-html.dark .lists::-webkit-scrollbar-thumb,
-html.dark .word-list::-webkit-scrollbar-thumb,
-body.dark .lists::-webkit-scrollbar-thumb,
-body.dark .word-list::-webkit-scrollbar-thumb {
- background: var(--input-border);
-}
-
-html.dark .lists::-webkit-scrollbar-thumb:hover,
-html.dark .word-list::-webkit-scrollbar-thumb:hover,
-body.dark .lists::-webkit-scrollbar-thumb:hover,
-body.dark .word-list::-webkit-scrollbar-thumb:hover {
- background: #4a3e36;
-}
-
.list-item {
- background: #ffffff;
+ background: var(--input-bg);
border: 2px solid transparent;
- border-radius: 12px;
- padding: 10px 12px;
+ border-radius: 8px;
+ padding: 8px 10px;
display: grid;
grid-template-columns: 1fr auto;
- gap: 10px;
+ gap: 8px;
align-items: center;
cursor: pointer;
transition: all 0.2s ease;
@@ -221,52 +240,28 @@ body.dark .word-list::-webkit-scrollbar-thumb:hover {
}
.list-item:hover {
- background: #f9f4f0;
- border-color: rgba(204, 106, 42, 0.3);
+ background: var(--section-bg);
+ border-color: var(--input-border);
}
.list-item.active {
border-color: var(--accent);
- box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);
- background: #fffaf6;
+ box-shadow: var(--shadow-sm);
+ background: var(--section-bg);
}
.list-item.selected {
- background: rgba(204, 106, 42, 0.1);
+ background: var(--section-bg);
border-color: rgba(204, 106, 42, 0.5);
}
-.list-item.selected.active {
- border-color: var(--accent);
- background: rgba(204, 106, 42, 0.15);
-}
-
-html.dark .list-item,
-body.dark .list-item {
- background: #1f1813;
-}
-
-html.dark .list-item:hover,
-body.dark .list-item:hover {
- background: #251f19;
- border-color: rgba(242, 168, 101, 0.3);
-}
-
-html.dark .list-item.active,
-body.dark .list-item.active {
- box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
- background: #2a2218;
-}
-
html.dark .list-item.selected,
body.dark .list-item.selected {
- background: rgba(242, 168, 101, 0.15);
- border-color: rgba(242, 168, 101, 0.6);
+ border-color: rgba(255, 140, 0, 0.5);
}
-html.dark .list-item.selected.active,
-body.dark .list-item.selected.active {
- background: rgba(242, 168, 101, 0.2);
+.list-item.selected.active {
+ border-color: var(--accent);
}
.list-item.drag-over {
@@ -282,19 +277,31 @@ body.dark .list-item.selected.active {
.list-name {
font-weight: 600;
+ font-size: 13px;
}
.list-stats {
- font-size: 0.75rem;
+ font-size: 11px;
opacity: 0.7;
}
.list-badge {
- font-size: 0.75rem;
- padding: 4px 8px;
+ font-size: 11px;
+ padding: 2px 6px;
border-radius: 999px;
border: 1px solid var(--input-border);
opacity: 0.8;
+ cursor: pointer;
+ user-select: none;
+}
+
+.list-badge:hover {
+ opacity: 1;
+}
+
+.list-badge:focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
}
.details-panel {
@@ -308,17 +315,12 @@ body.dark .list-item.selected.active {
.list-settings {
display: none;
gap: 8px;
- padding: 8px;
- background: rgba(204, 106, 42, 0.05);
- border-radius: 8px;
+ padding: 8px 10px;
+ background: var(--input-bg);
+ border-radius: 6px;
border: 1px solid var(--input-border);
}
-html.dark .list-settings,
-body.dark .list-settings {
- background: rgba(242, 168, 101, 0.08);
-}
-
.list-settings.expanded {
display: flex;
flex-direction: column;
@@ -327,7 +329,8 @@ body.dark .list-settings {
.list-settings input[type="text"] {
width: 100%;
padding: 6px 10px;
- font-size: 0.9rem;
+ font-size: 13px;
+ border-radius: 6px;
}
.color-row {
@@ -340,7 +343,7 @@ body.dark .list-settings {
display: flex;
align-items: center;
gap: 6px;
- font-size: 0.85rem;
+ font-size: 12px;
flex: 1;
}
@@ -356,9 +359,11 @@ body.dark .list-settings {
}
.compact-btn {
- padding: 6px 12px;
+ padding: 4px 10px;
min-width: auto;
height: 32px;
+ border-radius: 6px;
+ font-size: 13px;
}
.compact-header {
@@ -375,7 +380,8 @@ body.dark .list-settings {
.list-title-section h2 {
margin: 0;
- font-size: 1rem;
+ font-size: 13px;
+ font-weight: 600;
max-width: 300px;
overflow: hidden;
text-overflow: ellipsis;
@@ -392,100 +398,132 @@ body.dark .list-settings {
.add-words {
display: flex;
gap: 10px;
- align-items: stretch;
+ align-items: flex-start;
}
.add-words textarea {
flex: 1;
- min-height: 64px;
+ min-height: 56px;
resize: vertical;
background: var(--input-bg);
color: var(--text-color);
border: 1px solid var(--input-border);
- border-radius: 10px;
- padding: 8px 10px;
+ border-radius: 8px;
+ padding: 6px 10px;
+ font-size: 13px;
+}
+
+.add-words textarea:focus {
+ outline: none;
+ border-color: var(--accent);
}
.add-words button {
- min-width: 120px;
+ min-width: 100px;
+ height: 32px;
+ border-radius: 6px;
+ font-size: 13px;
+ flex-shrink: 0;
}
+/* Word controls: action row matches popup .word-actions-row / .word-action-btn */
.word-controls .row {
display: flex;
- gap: 8px;
flex-wrap: wrap;
+ gap: 6px;
+ align-items: center;
+}
+
+.word-controls .row button {
+ height: 26px;
+ padding: 0 8px;
+ font-size: 12px;
+ border-radius: 6px;
+ background: var(--input-bg);
+ border: 1px solid var(--input-border);
+ color: var(--text-color);
+}
+
+.word-controls .row button:hover {
+ background: var(--section-bg);
+}
+
+.word-controls .row button.danger {
+ background: rgba(239, 68, 68, 0.1);
+ border-color: rgba(239, 68, 68, 0.3);
+ color: var(--danger);
+}
+
+.word-controls .row button.danger:hover {
+ background: rgba(239, 68, 68, 0.2);
}
.word-controls input[type="text"],
.word-controls select {
flex: 1;
- min-width: 160px;
+ min-width: 140px;
+ min-height: 32px;
+ padding: 0 10px;
+ font-size: 14px;
+ border-radius: 8px;
}
+#wordSearch {
+ height: 32px;
+ padding: 0 10px;
+ font-size: 14px;
+ border-radius: 8px;
+}
+
+/* Search/move row: align input, select and buttons to same height */
+.word-controls .row:has(#wordSearch) button {
+ height: 32px;
+}
+
+/* Word list container – matches popup .word-list-container */
.word-list {
+ flex: 1;
overflow-y: auto;
+ background: var(--input-bg);
border: 1px solid var(--input-border);
- border-radius: 12px;
- padding: 8px;
- background: #f9f4f0;
+ border-radius: 8px;
+ min-height: 0;
display: flex;
flex-direction: column;
- gap: 8px;
- flex: 1 1 0;
- min-height: 0;
}
-html.dark .word-list,
-body.dark .word-list {
- background: #1a1511;
-}
-
-.empty {
- padding: 12px;
+.word-list .empty {
+ padding: 16px;
text-align: center;
- opacity: 0.7;
- font-size: 0.9rem;
+ font-size: 14px;
+ color: var(--text-color);
+ opacity: 0.6;
}
+/* Word item – matches popup .word-item (flex row, border-bottom, left accent when selected) */
.word-item {
- display: grid;
- grid-template-columns: 1fr auto auto auto auto;
- gap: 8px;
+ display: flex;
align-items: center;
- padding: 8px 10px;
- border-radius: 10px;
- background: #ffffff;
- border: 2px solid transparent;
+ gap: 8px;
+ padding: 6px 10px;
cursor: pointer;
- transition: all 0.2s ease;
- position: relative;
+ transition: all 0.2s;
+ border-bottom: 1px solid var(--input-border);
+ min-width: 0;
+}
+
+.word-item:last-child {
+ border-bottom: none;
}
.word-item:hover {
- background: #f9f4f0;
- border-color: rgba(204, 106, 42, 0.2);
+ background: var(--highlight-tag);
}
.word-item.selected {
- background: rgba(204, 106, 42, 0.1);
- border-color: rgba(204, 106, 42, 0.5);
-}
-
-html.dark .word-item,
-body.dark .word-item {
- background: #201915;
-}
-
-html.dark .word-item:hover,
-body.dark .word-item:hover {
- background: #2a2218;
- border-color: rgba(242, 168, 101, 0.2);
-}
-
-html.dark .word-item.selected,
-body.dark .word-item.selected {
- background: rgba(242, 168, 101, 0.15);
- border-color: rgba(242, 168, 101, 0.6);
+ background: var(--section-bg);
+ border-left: 3px solid var(--accent);
+ padding-left: 9px;
}
.word-item.disabled {
@@ -493,10 +531,13 @@ body.dark .word-item.selected {
}
.word-text {
- font-size: 0.9rem;
+ flex: 1;
+ font-size: 14px;
+ color: var(--text-color);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
+ min-width: 0;
user-select: none;
}
@@ -506,13 +547,19 @@ body.dark .word-item.selected {
.word-edit-input {
display: none;
- width: 100%;
- background: var(--input-bg);
- color: var(--text-color);
+ flex: 1;
+ height: 28px;
+ padding: 0 8px;
+ background: var(--bg-color);
border: 1px solid var(--accent);
- border-radius: 8px;
- padding: 4px 8px;
- font-size: 0.9rem;
+ border-radius: 4px;
+ font-size: 14px;
+ color: var(--text-color);
+ min-width: 0;
+}
+
+.word-edit-input:focus {
+ outline: none;
}
.word-edit-input.active {
@@ -521,8 +568,9 @@ body.dark .word-item.selected {
.word-actions {
display: flex;
- gap: 4px;
align-items: center;
+ gap: 4px;
+ flex-shrink: 0;
pointer-events: auto;
}
@@ -530,35 +578,79 @@ body.dark .word-item.selected {
pointer-events: auto;
}
-
-
-input[type="color"] {
+/* Word item icon button – matches popup .word-item-icon-btn */
+.word-item .icon-btn {
+ width: 28px;
+ height: 28px;
+ min-width: 28px;
+ min-height: 28px;
padding: 0;
- height: 36px;
- border-radius: 10px;
+ background: transparent;
+ border: none;
+ border-radius: 4px;
+ color: var(--text-color);
+ opacity: 0.6;
+}
+
+.word-item .icon-btn:hover {
+ opacity: 1;
+ background: var(--highlight-tag);
+ color: var(--accent);
+}
+
+.word-item .icon-btn i {
+ font-size: 14px;
+}
+
+/* Word item color picker – matches popup .word-item-color-picker */
+.word-item input[type="color"] {
+ width: 28px;
+ height: 28px;
+ border-radius: 4px;
border: 1px solid var(--input-border);
- background: #1f1813;
cursor: pointer;
+ padding: 0;
+ flex-shrink: 0;
+}
+
+.word-item input[type="color"]::-webkit-color-swatch-wrapper {
+ padding: 0;
+ border-radius: 3px;
+}
+
+.word-item input[type="color"]::-webkit-color-swatch {
+ border: none;
+ border-radius: 3px;
+}
+
+.word-item input[type="color"]:hover {
+ border-color: var(--accent);
+}
+
+.word-item .word-item-eye-toggle {
+ flex-shrink: 0;
+}
+
+
+
+.app input[type="color"] {
+ padding: 0;
+ height: 32px;
+ border-radius: 6px;
+ border: 1px solid var(--input-border);
+ cursor: pointer;
+}
+
+.app input[type="color"]:hover {
+ border-color: var(--accent);
}
.colors input[type="color"] {
width: 100%;
}
-.word-item input[type="color"] {
- width: 38px;
- height: 28px;
- border-radius: 8px;
- cursor: pointer;
-}
-
-.word-item input[type="color"]:hover {
- transform: scale(1.05);
- transition: transform 0.2s ease;
-}
-
.stats {
- font-size: 0.85rem;
+ font-size: 12px;
opacity: 0.7;
}
@@ -567,22 +659,17 @@ input[type="color"] {
flex-direction: row;
align-items: center;
justify-content: space-between;
- gap: 12px;
- padding: 8px 12px;
- background: #f9f4f0;
+ gap: 10px;
+ padding: 6px 10px;
+ background: var(--section-bg);
border: 1px solid var(--input-border);
- border-radius: 12px;
+ border-radius: 8px;
flex-shrink: 0;
flex-wrap: wrap;
}
-html.dark .pagination-container,
-body.dark .pagination-container {
- background: #1a1511;
-}
-
.pagination-info {
- font-size: 0.8rem;
+ font-size: 12px;
opacity: 0.8;
white-space: nowrap;
}
@@ -594,9 +681,9 @@ body.dark .pagination-container {
}
.pagination-btn {
- background: var(--button-bg);
+ background: var(--input-bg);
border: 1px solid var(--input-border);
- color: var(--button-text);
+ color: var(--text-color);
border-radius: 6px;
padding: 4px 6px;
cursor: pointer;
@@ -606,11 +693,11 @@ body.dark .pagination-container {
justify-content: center;
min-width: 28px;
min-height: 28px;
- font-size: 0.75rem;
+ font-size: 12px;
}
.pagination-btn:hover:not(:disabled) {
- background: var(--button-hover);
+ background: var(--section-bg);
border-color: var(--accent);
}
@@ -622,11 +709,11 @@ body.dark .pagination-container {
.pagination-pages {
display: flex;
align-items: center;
- padding: 0 8px;
+ padding: 0 6px;
}
.page-info {
- font-size: 0.8rem;
+ font-size: 12px;
opacity: 0.9;
font-weight: 500;
}
@@ -635,7 +722,7 @@ body.dark .pagination-container {
display: flex;
align-items: center;
gap: 6px;
- font-size: 0.8rem;
+ font-size: 12px;
}
.page-size-controls label {
@@ -649,7 +736,7 @@ body.dark .pagination-container {
border: 1px solid var(--input-border);
border-radius: 6px;
padding: 3px 6px;
- font-size: 0.8rem;
+ font-size: 12px;
min-width: 55px;
}
diff --git a/list-manager/list-manager.html b/list-manager/list-manager.html
index a7caf9d..ebf0b64 100644
--- a/list-manager/list-manager.html
+++ b/list-manager/list-manager.html
@@ -4,10 +4,9 @@
- Goose Highlighter - List Manager
+ Goose Highlighter - List Manager
-
@@ -16,18 +15,18 @@
-
Goose Highlighter
-
List Manager
+
Goose Highlighter
+
List Manager
-
@@ -35,18 +34,14 @@
-
-
-
-
- Drag lists to reorder • Ctrl+Click for multi-select
+ Drag lists to reorder • Ctrl+Click for multi-select
@@ -54,22 +49,22 @@
-
+
- BG
-
+ BG
+
- FG
-
+ FG
+
@@ -77,23 +72,23 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
+
+
-
Click to select • Ctrl/Cmd+Click for multi-select • Drag words to lists to copy
+
Click to select • Ctrl/Cmd+Click for multi-select • Drag words to lists to copy
diff --git a/popup/popup.css b/popup/popup.css
index 38cfe8e..1c496ae 100644
--- a/popup/popup.css
+++ b/popup/popup.css
@@ -1,4 +1,6 @@
+@import url('../shared/fonts.css');
@import url('../shared/colors.css');
+@import url('../shared/ui-components.css');
/* Reset and Base Styles */
* {
@@ -8,11 +10,14 @@
}
body {
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif;
+ font-family: var(--font-sans);
+ font-size: var(--text-base);
+ line-height: var(--leading-normal);
+ letter-spacing: var(--tracking-tight);
background: var(--bg-color);
color: var(--text-color);
- width: 600px;
- min-height: 600px;
+ width: 380px;
+ min-height: 500px;
max-height: 600px;
overflow: hidden;
-webkit-font-smoothing: antialiased;
@@ -71,7 +76,7 @@ body {
display: flex;
align-items: center;
justify-content: space-between;
- padding: 16px 20px;
+ padding: 6px 12px;
border-bottom: 1px solid var(--input-border);
background: var(--bg-color);
flex-shrink: 0;
@@ -80,20 +85,25 @@ body {
.header-content {
display: flex;
align-items: center;
- gap: 10px;
+ gap: 6px;
}
.header-logo {
- width: 32px;
- height: 32px;
+ width: 28px;
+ height: 28px;
border-radius: 8px;
- background: var(--highlight-tag);
+ background: var(--text-color);
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
}
+html.dark .header-logo,
+body.dark .header-logo {
+ background: var(--highlight-tag);
+}
+
.header-logo img {
width: 100%;
height: 100%;
@@ -101,101 +111,150 @@ body {
}
.header-title {
- font-size: 14px;
+ font-size: var(--text-base);
font-weight: 600;
+ letter-spacing: var(--tracking-tight);
color: var(--text-color);
}
-/* Switch Component */
-.switch-wrapper {
- position: relative;
- display: inline-block;
- width: 44px;
- height: 24px;
- cursor: pointer;
+.header-actions {
+ display: flex;
+ align-items: center;
+ gap: 6px;
+ flex-shrink: 0;
}
-.switch-input {
+.header-settings-btn,
+.header-power-toggle {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 28px;
+ height: 28px;
+ min-width: 28px;
+ min-height: 28px;
+ padding: 0;
+ line-height: 0;
+}
+
+.header-settings-btn {
+ flex-shrink: 0;
+}
+
+.header-settings-btn i {
+ font-size: 14px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+/* Header power toggle (on/off) */
+.header-power-toggle {
+ cursor: pointer;
+ border-radius: 6px;
+}
+
+.header-power-input {
+ position: absolute;
opacity: 0;
width: 0;
height: 0;
- position: absolute;
+ margin: 0;
+ pointer-events: none;
}
-.switch-slider {
- position: absolute;
- cursor: pointer;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: var(--input-border);
- transition: 0.3s;
- border-radius: 24px;
+.power-icon-wrapper {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 28px;
+ height: 28px;
+ line-height: 0;
+ color: var(--text-color);
+ opacity: 0.4;
+ transition: color 0.2s, opacity 0.2s;
}
-.switch-slider:before {
- position: absolute;
- content: "";
- height: 18px;
- width: 18px;
- left: 3px;
- bottom: 3px;
- background-color: white;
- transition: 0.3s;
- border-radius: 50%;
+.power-icon-wrapper i {
+ font-size: 14px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 1em;
+ height: 1em;
+ line-height: 1;
+ /* Compensate for Font Awesome power-off glyph optical offset */
+ transform: translate(1px, 1px);
+ margin-right: 4px;
}
-.switch-input:checked + .switch-slider {
- background-color: var(--accent);
+.power-icon-wrapper:hover {
+ opacity: 0.7;
}
-.switch-input:checked + .switch-slider:before {
- transform: translateX(20px);
+.header-power-toggle .header-power-input:checked ~ .power-icon-wrapper {
+ color: var(--accent);
+ opacity: 1;
+}
+
+.header-power-toggle .header-power-input:checked ~ .power-icon-wrapper:hover {
+ opacity: 1;
}
/* Tabs */
.tabs {
display: flex;
align-items: center;
- gap: 4px;
- padding: 12px 16px;
+ gap: 2px;
+ padding: 4px 6px;
border-bottom: 1px solid var(--input-border);
background: transparent;
flex-shrink: 0;
+ min-width: 0;
}
.tab-button {
- flex: 1;
+ flex: 1 1 0;
+ min-width: 0;
display: flex;
align-items: center;
justify-content: center;
- gap: 6px;
- padding: 6px 12px;
- font-size: 12px;
+ gap: 4px;
+ padding: 5px 4px;
+ font-size: 11px;
font-weight: 500;
- color: var(--text-color);
- opacity: 0.6;
+ color: var(--tab-inactive-color);
background: transparent;
border: none;
- border-radius: 6px;
+ border-radius: 5px;
cursor: pointer;
transition: all 0.2s;
}
.tab-button:hover {
- opacity: 0.9;
- background: var(--section-bg);
+ color: var(--text-color);
}
.tab-button.active {
- opacity: 1;
- background: var(--section-bg);
+ background: var(--tab-active-bg);
color: var(--text-color);
}
.tab-button i {
- font-size: 14px;
+ font-size: 11px;
+ flex-shrink: 0;
+ opacity: 0.9;
+}
+
+.tab-button.active i {
+ opacity: 1;
+}
+
+.tab-button span {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ min-width: 0;
}
/* Tab Content */
@@ -213,10 +272,10 @@ body {
.tab-inner {
flex: 1;
overflow-y: auto;
- padding: 20px;
+ padding: 8px 12px;
display: flex;
flex-direction: column;
- gap: 16px;
+ gap: 6px;
min-height: 0;
}
@@ -224,12 +283,12 @@ body {
.list-selector-section {
display: flex;
flex-direction: column;
- gap: 12px;
+ gap: 6px;
}
.list-selector-row {
display: flex;
- gap: 8px;
+ gap: 6px;
}
.list-dropdown-wrapper {
@@ -239,17 +298,17 @@ body {
.list-dropdown-button {
width: 100%;
- height: 40px;
+ height: 32px;
display: flex;
align-items: center;
justify-content: space-between;
- padding: 0 12px;
+ padding: 0 10px;
background: var(--input-bg);
border: 1px solid var(--input-border);
- border-radius: 8px;
+ border-radius: 6px;
cursor: pointer;
transition: all 0.2s;
- font-size: 14px;
+ font-size: var(--text-md);
color: var(--text-color);
}
@@ -260,18 +319,18 @@ body {
.list-dropdown-content {
display: flex;
align-items: center;
- gap: 8px;
+ gap: 6px;
}
.list-color-indicator {
- width: 12px;
- height: 12px;
+ width: 10px;
+ height: 10px;
border-radius: 50%;
flex-shrink: 0;
}
.list-dropdown-text {
- font-size: 14px;
+ font-size: var(--text-base);
color: var(--text-color);
}
@@ -325,14 +384,14 @@ body {
}
.icon-button {
- width: 40px;
- height: 40px;
+ width: 32px;
+ height: 32px;
display: flex;
align-items: center;
justify-content: center;
background: var(--input-bg);
border: 1px solid var(--input-border);
- border-radius: 8px;
+ border-radius: 6px;
cursor: pointer;
transition: all 0.2s;
flex-shrink: 0;
@@ -349,7 +408,7 @@ body {
}
.icon-button i {
- font-size: 16px;
+ font-size: 14px;
color: var(--text-color);
}
@@ -363,17 +422,18 @@ body {
.manage-lists-btn {
width: 100%;
- height: 36px;
+ height: 28px;
display: flex;
align-items: center;
justify-content: center;
- gap: 8px;
+ gap: 6px;
background: var(--input-bg);
border: 1px solid var(--input-border);
- border-radius: 8px;
+ border-radius: 6px;
cursor: pointer;
transition: all 0.2s;
- font-size: 14px;
+ font-size: var(--text-base);
+ font-weight: 500;
color: var(--text-color);
}
@@ -382,24 +442,35 @@ body {
}
.manage-lists-btn i {
- font-size: 16px;
+ font-size: 14px;
}
/* Color Pickers */
.color-pickers-row {
display: flex;
- gap: 16px;
+ flex-direction: row;
+ gap: 8px;
+ min-width: 0;
}
.color-picker-group {
flex: 1;
display: flex;
flex-direction: column;
- gap: 6px;
+ align-items: stretch;
+ gap: 4px;
+ min-width: 0;
+}
+
+.color-picker-group .color-picker-label {
+ flex-shrink: 0;
}
.color-picker-label {
- font-size: 12px;
+ font-size: var(--text-xs);
+ font-weight: 500;
+ letter-spacing: var(--tracking-wide);
+ text-transform: uppercase;
color: var(--text-color);
opacity: 0.6;
}
@@ -407,13 +478,15 @@ body {
.color-picker-input-group {
display: flex;
align-items: center;
- gap: 8px;
+ gap: 6px;
+ flex: 1;
+ min-width: 0;
}
.color-picker-swatch {
- width: 40px;
- height: 40px;
- border-radius: 8px;
+ width: 32px;
+ height: 32px;
+ border-radius: 5px;
border: 2px solid var(--input-border);
cursor: pointer;
background: transparent;
@@ -422,24 +495,26 @@ body {
.color-picker-swatch::-webkit-color-swatch-wrapper {
padding: 0;
- border-radius: 6px;
+ border-radius: 4px;
}
.color-picker-swatch::-webkit-color-swatch {
border: none;
- border-radius: 6px;
+ border-radius: 4px;
}
.color-picker-text {
flex: 1;
- height: 40px;
- padding: 0 12px;
+ min-width: 0;
+ height: 32px;
+ padding: 0 8px;
background: var(--input-bg);
border: 1px solid var(--input-border);
- border-radius: 8px;
- font-size: 14px;
- font-family: 'Courier New', monospace;
+ border-radius: 6px;
+ font-size: var(--text-sm);
+ font-family: var(--font-mono);
text-transform: uppercase;
+ letter-spacing: 0.05em;
color: var(--text-color);
}
@@ -452,40 +527,43 @@ body {
.preview-section {
display: flex;
flex-direction: column;
- gap: 6px;
+ gap: 2px;
}
.preview-label {
- font-size: 12px;
+ font-size: var(--text-xs);
+ font-weight: 500;
+ letter-spacing: var(--tracking-wide);
+ text-transform: uppercase;
color: var(--text-color);
opacity: 0.6;
}
.preview-box {
- padding: 12px;
+ padding: 6px 10px;
background: var(--input-bg);
border: 1px solid var(--input-border);
- border-radius: 8px;
+ border-radius: 6px;
}
.preview-text {
- font-size: 14px;
+ font-size: var(--text-base);
color: var(--text-color);
- opacity: 0.6;
- line-height: 1.5;
+ line-height: var(--leading-relaxed);
}
.preview-highlight {
padding: 2px 4px;
- border-radius: 4px;
+ border-radius: 3px;
+ transition: all 0.2s ease;
}
/* Enable Toggle */
.enable-toggle-section {
- padding: 12px;
+ padding: 6px 10px;
background: var(--input-bg);
border: 1px solid var(--input-border);
- border-radius: 8px;
+ border-radius: 6px;
}
.enable-toggle-content {
@@ -501,13 +579,13 @@ body {
}
.enable-toggle-title {
- font-size: 14px;
+ font-size: var(--text-base);
font-weight: 500;
color: var(--text-color);
}
.enable-toggle-subtitle {
- font-size: 12px;
+ font-size: var(--text-xs);
color: var(--text-color);
opacity: 0.6;
}
@@ -515,7 +593,7 @@ body {
/* Apply Button */
.apply-button {
width: 100%;
- height: 40px;
+ height: 32px;
display: flex;
align-items: center;
justify-content: center;
@@ -523,10 +601,11 @@ body {
background: var(--accent);
color: var(--accent-text);
border: none;
- border-radius: 8px;
+ border-radius: 6px;
cursor: pointer;
- font-size: 14px;
- font-weight: 500;
+ font-size: var(--text-base);
+ font-weight: 600;
+ letter-spacing: var(--tracking-tight);
transition: all 0.2s;
}
@@ -535,30 +614,30 @@ body {
}
.apply-button i {
- font-size: 16px;
+ font-size: 14px;
}
/* Words Tab Styles */
.add-words-section {
display: flex;
flex-direction: column;
- gap: 8px;
+ gap: 4px;
}
.section-label {
display: flex;
align-items: center;
- gap: 6px;
- font-size: 12px;
- font-weight: 500;
- color: var(--text-color);
- opacity: 0.6;
+ gap: 4px;
+ font-size: var(--text-xs);
+ font-weight: 600;
+ letter-spacing: var(--tracking-wide);
text-transform: uppercase;
- letter-spacing: 0.5px;
+ color: var(--text-color);
+ opacity: 0.7;
}
.section-label i {
- font-size: 14px;
+ font-size: 12px;
}
.word-count-badge {
@@ -567,16 +646,20 @@ body {
}
.add-words-textarea {
- min-height: 72px;
- padding: 10px 12px;
+ min-height: 56px;
+ padding: 6px 8px;
background: var(--input-bg);
border: 1px solid var(--input-border);
border-radius: 8px;
- font-size: 14px;
+ font-size: var(--text-md);
color: var(--text-color);
- font-family: inherit;
+ font-family: var(--font-sans);
resize: none;
- line-height: 1.5;
+ line-height: var(--leading-relaxed);
+}
+
+.add-words-textarea::placeholder {
+ font-size: 12px;
}
.add-words-textarea:focus {
@@ -586,7 +669,7 @@ body {
.add-words-button {
width: 100%;
- height: 36px;
+ height: 28px;
display: flex;
align-items: center;
justify-content: center;
@@ -595,8 +678,8 @@ body {
border: none;
border-radius: 8px;
cursor: pointer;
- font-size: 14px;
- font-weight: 500;
+ font-size: var(--text-md);
+ font-weight: 600;
transition: all 0.2s;
}
@@ -613,7 +696,7 @@ body {
.word-list-section {
display: flex;
flex-direction: column;
- gap: 8px;
+ gap: 4px;
flex: 1;
min-height: 0;
}
@@ -631,13 +714,14 @@ body {
}
.word-action-btn {
- height: 28px;
- padding: 0 10px;
+ height: 26px;
+ padding: 0 8px;
background: var(--input-bg);
border: 1px solid var(--input-border);
border-radius: 6px;
cursor: pointer;
- font-size: 12px;
+ font-size: var(--text-sm);
+ font-weight: 500;
color: var(--text-color);
transition: all 0.2s;
}
@@ -666,25 +750,14 @@ body {
position: relative;
}
-.word-search-icon {
- position: absolute;
- left: 12px;
- top: 50%;
- transform: translateY(-50%);
- font-size: 16px;
- color: var(--text-color);
- opacity: 0.6;
- pointer-events: none;
-}
-
.word-search-input {
width: 100%;
- height: 36px;
- padding: 0 12px 0 36px;
+ height: 32px;
+ padding: 0 12px;
background: var(--input-bg);
border: 1px solid var(--input-border);
border-radius: 8px;
- font-size: 14px;
+ font-size: var(--text-md);
color: var(--text-color);
}
@@ -700,12 +773,12 @@ body {
background: var(--input-bg);
border: 1px solid var(--input-border);
border-radius: 8px;
- max-height: 180px;
+ max-height: 200px;
min-height: 0;
}
.word-list-empty {
- padding: 24px;
+ padding: 16px;
text-align: center;
font-size: 14px;
color: var(--text-color);
@@ -716,7 +789,7 @@ body {
display: flex;
align-items: center;
gap: 8px;
- padding: 8px 12px;
+ padding: 6px 10px;
cursor: pointer;
transition: all 0.2s;
border-bottom: 1px solid var(--input-border);
@@ -732,34 +805,8 @@ body {
.word-item.selected {
background: var(--section-bg);
-}
-
-.word-item-checkbox {
- width: 16px;
- height: 16px;
- border: 1.5px solid var(--text-color);
- border-radius: 4px;
- cursor: pointer;
- flex-shrink: 0;
- opacity: 0.6;
- position: relative;
- background: transparent;
-}
-
-.word-item-checkbox.checked {
- background: var(--accent);
- border-color: var(--accent);
- opacity: 1;
-}
-
-.word-item-checkbox.checked::after {
- content: "✓";
- position: absolute;
- top: -3px;
- left: 2px;
- color: white;
- font-size: 12px;
- font-weight: bold;
+ border-left: 3px solid var(--accent);
+ padding-left: 9px;
}
.word-item-text {
@@ -844,10 +891,6 @@ body {
border-color: var(--accent);
}
-.word-item-switch {
- flex-shrink: 0;
-}
-
.word-list-hint {
font-size: 12px;
color: var(--text-color);
@@ -861,7 +904,7 @@ body {
display: flex;
align-items: center;
justify-content: center;
- padding: 32px;
+ padding: 20px;
text-align: center;
}
@@ -875,7 +918,7 @@ body {
.page-highlights-section {
display: flex;
flex-direction: column;
- gap: 12px;
+ gap: 6px;
flex: 1;
min-height: 0;
}
@@ -884,7 +927,7 @@ body {
display: flex;
align-items: center;
justify-content: space-between;
- padding: 12px 16px;
+ padding: 8px 10px;
background: var(--input-bg);
border: 1px solid var(--input-border);
border-radius: 8px;
@@ -899,7 +942,8 @@ body {
.refresh-button {
width: 100%;
- height: 36px;
+ min-height: 28px;
+ height: 28px;
display: flex;
align-items: center;
justify-content: center;
@@ -911,6 +955,7 @@ body {
font-size: 14px;
color: var(--text-color);
transition: all 0.2s;
+ flex-shrink: 0;
}
.refresh-button:hover {
@@ -931,7 +976,7 @@ body {
}
.page-highlights-empty {
- padding: 24px;
+ padding: 16px;
text-align: center;
font-size: 14px;
color: var(--text-color);
@@ -943,7 +988,7 @@ body {
align-items: center;
justify-content: space-between;
gap: 12px;
- padding: 12px;
+ padding: 10px 12px;
border-bottom: 1px solid var(--input-border);
cursor: pointer;
transition: all 0.2s;
@@ -1026,14 +1071,15 @@ body {
.exceptions-section {
display: flex;
flex-direction: column;
- gap: 12px;
+ gap: 6px;
flex: 1;
min-height: 0;
}
.exception-toggle-btn {
width: 100%;
- height: 40px;
+ min-height: 32px;
+ height: 32px;
display: flex;
align-items: center;
justify-content: center;
@@ -1045,6 +1091,7 @@ body {
font-size: 14px;
color: var(--text-color);
transition: all 0.2s;
+ flex-shrink: 0;
}
.exception-toggle-btn:hover {
@@ -1068,7 +1115,7 @@ body {
.exceptions-list-wrapper {
display: flex;
flex-direction: column;
- gap: 8px;
+ gap: 6px;
flex: 1;
min-height: 0;
}
@@ -1087,7 +1134,7 @@ body {
align-items: center;
justify-content: space-between;
gap: 12px;
- padding: 12px;
+ padding: 10px 12px;
border-bottom: 1px solid var(--input-border);
transition: background 0.2s;
}
@@ -1120,12 +1167,19 @@ body {
white-space: nowrap;
flex-shrink: 0;
transition: all 0.2s;
+ display: flex;
+ align-items: center;
+ gap: 4px;
}
.exception-remove:hover {
background: #dc2626;
}
+.exception-remove i {
+ font-size: 12px;
+}
+
.clear-exceptions-btn {
width: 100%;
height: 40px;
@@ -1150,21 +1204,73 @@ body {
font-size: 16px;
}
-/* Options Tab */
-.options-section {
- display: flex;
- flex-direction: column;
- gap: 16px;
+/* Settings Overlay */
+.settings-overlay {
+ display: none;
+ position: fixed;
+ inset: 0;
+ background: rgba(0, 0, 0, 0.5);
+ z-index: 1000;
+ align-items: center;
+ justify-content: center;
+ padding: 16px;
}
+.settings-overlay.open {
+ display: flex;
+}
+
+.settings-overlay-content {
+ background: var(--bg-color);
+ border: 1px solid var(--input-border);
+ border-radius: 8px;
+ max-width: 100%;
+ max-height: 100%;
+ overflow: hidden;
+ display: flex;
+ flex-direction: column;
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
+}
+
+.settings-overlay-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 10px 12px;
+ border-bottom: 1px solid var(--input-border);
+ flex-shrink: 0;
+}
+
+.settings-overlay-title {
+ font-size: var(--text-md);
+ font-weight: 600;
+ letter-spacing: var(--tracking-tight);
+ color: var(--text-color);
+ margin: 0;
+}
+
+.settings-close-btn {
+ width: 28px;
+ height: 28px;
+}
+
+.settings-overlay-body {
+ padding: 12px;
+ overflow-y: auto;
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+}
+
+/* Options (used in overlay) */
.options-checkboxes {
display: flex;
flex-direction: column;
- gap: 12px;
- padding: 12px;
+ gap: 6px;
+ padding: 8px 10px;
background: var(--input-bg);
border: 1px solid var(--input-border);
- border-radius: 8px;
+ border-radius: 6px;
}
.option-checkbox-label {
@@ -1203,6 +1309,37 @@ body {
font-weight: bold;
}
+.theme-toggle-section {
+ padding: 8px 10px;
+ background: var(--input-bg);
+ border: 1px solid var(--input-border);
+ border-radius: 6px;
+}
+
+.theme-toggle-content {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.theme-toggle-text {
+ display: flex;
+ flex-direction: column;
+ gap: 2px;
+}
+
+.theme-toggle-title {
+ font-size: var(--text-md);
+ font-weight: 500;
+ color: var(--text-color);
+}
+
+.theme-toggle-subtitle {
+ font-size: var(--text-sm);
+ color: var(--text-color);
+ opacity: 0.6;
+}
+
.options-buttons {
display: flex;
gap: 8px;
@@ -1210,7 +1347,7 @@ body {
.option-button {
flex: 1;
- height: 40px;
+ height: 32px;
display: flex;
align-items: center;
justify-content: center;
@@ -1219,7 +1356,8 @@ body {
border: 1px solid var(--input-border);
border-radius: 8px;
cursor: pointer;
- font-size: 14px;
+ font-size: var(--text-md);
+ font-weight: 500;
color: var(--text-color);
transition: all 0.2s;
}
@@ -1237,25 +1375,23 @@ body {
display: flex;
align-items: center;
justify-content: space-between;
- padding: 12px 20px;
+ padding: 5px 12px;
border-top: 1px solid var(--input-border);
background: var(--section-bg);
flex-shrink: 0;
}
.footer-version {
- font-size: 12px;
- color: var(--text-color);
- opacity: 0.6;
+ font-size: var(--text-xs);
+ color: var(--footer-text);
}
.footer-link {
display: flex;
align-items: center;
- gap: 6px;
- font-size: 12px;
- color: var(--text-color);
- opacity: 0.6;
+ gap: 4px;
+ font-size: var(--text-xs);
+ color: var(--footer-text);
text-decoration: none;
transition: all 0.2s;
}
@@ -1266,7 +1402,7 @@ body {
}
.footer-link i {
- font-size: 14px;
+ font-size: 12px;
}
/* Scrollbar Styles */
diff --git a/popup/popup.html b/popup/popup.html
index 77e0331..d49ec0c 100644
--- a/popup/popup.html
+++ b/popup/popup.html
@@ -19,14 +19,21 @@
@@ -47,10 +54,6 @@
Exceptions
-
@@ -71,13 +74,13 @@
-