v0.9.19
This commit is contained in:
129
constants.py
129
constants.py
@@ -29,7 +29,7 @@ if FORCE_X11:
|
||||
# --- CONFIGURATION ---
|
||||
PROG_NAME = "Bagheera Image Viewer"
|
||||
PROG_ID = "bagheeraview"
|
||||
PROG_VERSION = "0.9.18"
|
||||
PROG_VERSION = "0.9.19-dev"
|
||||
PROG_AUTHOR = "Ignacio Serantes"
|
||||
|
||||
# --- CACHE SETTINGS ---
|
||||
@@ -393,6 +393,7 @@ _UI_TEXTS = {
|
||||
"SEARCH": "Search",
|
||||
"SELECT": "Select",
|
||||
"ERROR": "Error",
|
||||
"FILE_NOT_FOUND": "File not found",
|
||||
"WARNING": "Warning",
|
||||
"INFO": "Info",
|
||||
"LOAD": "Load",
|
||||
@@ -518,25 +519,39 @@ _UI_TEXTS = {
|
||||
"MENU_CLEAN_UP_HASHES": "Clean up",
|
||||
"MENU_CLEAR_HASHES": "Clear hashes ({} items, {:.1f} MB on disk)",
|
||||
"CONFIRM_CLEAR_HASHES_TITLE": "Confirm Clear Hashes",
|
||||
"CONFIRM_CLEAR_HASHES_TEXT": "Are you sure you want to permanently delete the entire hash database?",
|
||||
"CONFIRM_CLEAR_HASHES_INFO": "This will remove all calculated image hashes. They will be recalculated as you detect duplicates, which may be slow. This action cannot be undone.",
|
||||
"CONFIRM_CLEAR_HASHES_TEXT": "Are you sure you want to permanently delete "
|
||||
"the entire hash database?",
|
||||
"CONFIRM_CLEAR_HASHES_INFO": "This will remove all calculated image hashes. "
|
||||
"They will be recalculated as you detect duplicates, which may be slow. This "
|
||||
"action cannot be undone.",
|
||||
"SETTINGS_DUPLICATE_METHOD_LABEL": "Method:",
|
||||
"SETTINGS_DUPLICATE_METHOD_TOOLTIP": "Select the method for duplicate detection.",
|
||||
"SETTINGS_DUPLICATE_METHOD_TOOLTIP": "Select the method for duplicate "
|
||||
"detection.",
|
||||
"METHOD_HISTOGRAM_HASHING": "Histogram + Hashing",
|
||||
"METHOD_RESNET": "ResNet (AI Based)",
|
||||
"SETTINGS_DUPLICATE_CONFIRM_DELETE_LABEL": "Confirm before deleting duplicates",
|
||||
"SETTINGS_DUPLICATE_WHITELIST_LABEL": "Whitelist (folders to include):",
|
||||
"SETTINGS_DUPLICATE_WHITELIST_TOOLTIP": "Comma-separated paths of folders to scan when using 'Detect all'.",
|
||||
"SETTINGS_DUPLICATE_WHITELIST_TOOLTIP": "Comma-separated paths of folders to "
|
||||
"scan when using 'Detect all'.",
|
||||
"SETTINGS_DUPLICATE_BLACKLIST_LABEL": "Blacklist (folders to exclude):",
|
||||
"SETTINGS_DUPLICATE_BLACKLIST_TOOLTIP": "Comma-separated paths of folders to ignore during 'Detect all' scans.",
|
||||
"SETTINGS_DUPLICATE_BLACKLIST_TOOLTIP": "Comma-separated paths of folders to "
|
||||
"ignore during 'Detect all' scans.",
|
||||
"SETTINGS_DUPLICATE_SCAN_COUNT_LABEL": "Images found for 'Detect all': {}",
|
||||
"SETTINGS_DEFAULT_DELETE_TO_TRASH_LABEL": "Delete key sends to trash by default",
|
||||
"SETTINGS_DEFAULT_DELETE_TO_TRASH_TOOLTIP": "If checked, pressing the Delete key will move files to trash. If unchecked, it will permanently delete them.",
|
||||
"SETTINGS_DUPLICATE_CONFIRM_DELETE_TOOLTIP": "Show a confirmation dialog before moving a duplicate image to the trash.",
|
||||
"SETTINGS_DEFAULT_DELETE_TO_TRASH_LABEL": "Delete key sends to trash by "
|
||||
"default",
|
||||
"SETTINGS_DEFAULT_DELETE_TO_TRASH_TOOLTIP": "If checked, pressing the Delete "
|
||||
"key will move files to trash. If unchecked, it will permanently delete them.",
|
||||
"SETTINGS_DUPLICATE_CONFIRM_DELETE_TOOLTIP": "Show a confirmation dialog "
|
||||
"before moving a duplicate image to the trash.",
|
||||
"SETTINGS_DUPLICATE_THRESHOLD_LABEL": "Similarity Threshold:",
|
||||
"SETTINGS_DUPLICATE_THRESHOLD_TOOLTIP": "Set the similarity threshold (50-100%). Higher values mean images must be more similar to be considered duplicates.",
|
||||
"SETTINGS_DUPLICATE_MISSING_LIBS": "The 'imagehash' library is required for duplicate detection but was not found. This feature is disabled.",
|
||||
"SETTINGS_DUPLICATE_THRESHOLD_TOOLTIP": "Set the similarity threshold 2 "
|
||||
"(50-100%). Higher values mean images must be more similar to be considered "
|
||||
"duplicates.",
|
||||
"SETTINGS_DUPLICATE_MISSING_LIBS": "The 'imagehash' library is required for "
|
||||
"duplicate detection but was not found. This feature is disabled.",
|
||||
"MENU_DETECT_DUPLICATES": "Detect Duplicates",
|
||||
"DUPLICATE_WHITELIST_EMPTY": "Whitelist is empty. Please configure it "
|
||||
"in Settings.",
|
||||
"DUPLICATE_DETECTION_TITLE": "Duplicate Detection",
|
||||
"DUPLICATE_ALREADY_RUNNING": "Duplicate detection is already in progress.",
|
||||
"DUPLICATE_NO_IMAGES": "No images loaded to detect duplicates.",
|
||||
@@ -617,6 +632,8 @@ _UI_TEXTS = {
|
||||
"landmarks.",
|
||||
"SETTINGS_LANDMARK_HISTORY_TOOLTIP": "Maximum number of recently used "
|
||||
"landmark names to remember.",
|
||||
"SETTINGS_PATH_NOT_FOUND_WARNING": "Warning: Path not found or is not "
|
||||
"a directory: {}",
|
||||
"SETTINGS_FACE_HISTORY_COUNT_LABEL": "Max face history:",
|
||||
"SETTINGS_THUMBS_REFRESH_LABEL": "Thumbs refresh interval (ms):",
|
||||
"MENU_VIEWER_SETTINGS": "Viewer Settings",
|
||||
@@ -913,6 +930,7 @@ _UI_TEXTS = {
|
||||
"SEARCH": "Buscar",
|
||||
"SELECT": "Seleccionar",
|
||||
"ERROR": "Error",
|
||||
"FILE_NOT_FOUND": "Archivo no encontrado",
|
||||
"WARNING": "Advertencia",
|
||||
"INFO": "Información",
|
||||
"LOAD": "Cargar",
|
||||
@@ -1038,25 +1056,43 @@ _UI_TEXTS = {
|
||||
"MENU_CLEAN_UP_HASHES": "Limpiar",
|
||||
"MENU_CLEAR_HASHES": "Limpiar hashes ({} ítems, {:.1f} MB en disco)",
|
||||
"CONFIRM_CLEAR_HASHES_TITLE": "Confirmar Limpieza de Hashes",
|
||||
"CONFIRM_CLEAR_HASHES_TEXT": "¿Seguro que quieres eliminar permanentemente toda la base de datos de hashes?",
|
||||
"CONFIRM_CLEAR_HASHES_INFO": "Esto eliminará todos los hashes de imágenes calculados. Se recalcularán a medida que detectes duplicados, lo que puede ser lento. Esta acción no se puede deshacer.",
|
||||
"CONFIRM_CLEAR_HASHES_TEXT": "¿Seguro que quieres eliminar permanentemente "
|
||||
"toda la base de datos de hashes?",
|
||||
"CONFIRM_CLEAR_HASHES_INFO": "Esto eliminará todos los hashes de imágenes "
|
||||
"calculados. Se recalcularán a medida que detectes duplicados, lo que puede "
|
||||
"ser lento. Esta acción no se puede deshacer.",
|
||||
"SETTINGS_DUPLICATE_METHOD_LABEL": "Método:",
|
||||
"SETTINGS_DUPLICATE_METHOD_TOOLTIP": "Selecciona el método para la detección de duplicados.",
|
||||
"SETTINGS_DUPLICATE_METHOD_TOOLTIP": "Selecciona el método para la detección "
|
||||
"de duplicados.",
|
||||
"METHOD_HISTOGRAM_HASHING": "Histograma + Hashing",
|
||||
"METHOD_RESNET": "ResNet (Basado en IA)",
|
||||
"SETTINGS_DUPLICATE_CONFIRM_DELETE_LABEL": "Confirmar antes de borrar duplicados",
|
||||
"SETTINGS_DUPLICATE_CONFIRM_DELETE_LABEL": "Confirmar antes de borrar "
|
||||
"duplicados",
|
||||
"SETTINGS_DUPLICATE_WHITELIST_LABEL": "Lista blanca (carpetas a incluir):",
|
||||
"SETTINGS_DUPLICATE_WHITELIST_TOOLTIP": "Rutas de carpetas separadas por comas para escanear al usar 'Detectar todos'.",
|
||||
"SETTINGS_DUPLICATE_WHITELIST_TOOLTIP": "Rutas de carpetas separadas por comas "
|
||||
"para escanear al usar 'Detectar todos'.",
|
||||
"SETTINGS_DUPLICATE_BLACKLIST_LABEL": "Lista negra (carpetas a excluir):",
|
||||
"SETTINGS_DUPLICATE_BLACKLIST_TOOLTIP": "Rutas de carpetas separadas por comas para ignorar durante escaneos de 'Detectar todos'.",
|
||||
"SETTINGS_DUPLICATE_SCAN_COUNT_LABEL": "Imágenes encontradas para 'Detectar todos': {}",
|
||||
"SETTINGS_DEFAULT_DELETE_TO_TRASH_LABEL": "La tecla Supr envía a la papelera por defecto",
|
||||
"SETTINGS_DEFAULT_DELETE_TO_TRASH_TOOLTIP": "Si está marcada, al pulsar la tecla Supr se moverán los archivos a la papelera. Si no, se eliminarán permanentemente.",
|
||||
"SETTINGS_DUPLICATE_CONFIRM_DELETE_TOOLTIP": "Muestra un diálogo de confirmación antes de mover una imagen duplicada a la papelera.",
|
||||
"SETTINGS_DUPLICATE_BLACKLIST_TOOLTIP": "Rutas de carpetas separadas por comas "
|
||||
"para ignorar durante escaneos de 'Detectar todos'.",
|
||||
"SETTINGS_DUPLICATE_SCAN_COUNT_LABEL": "Imágenes encontradas para 'Detectar "
|
||||
"todos': {}",
|
||||
"SETTINGS_DEFAULT_DELETE_TO_TRASH_LABEL": "La tecla Supr envía a la papelera "
|
||||
"por defecto",
|
||||
"SETTINGS_DEFAULT_DELETE_TO_TRASH_TOOLTIP": "Si está marcada, al pulsar la "
|
||||
"tecla Supr se moverán los archivos a la papelera. Si no, se eliminarán "
|
||||
"permanentemente.",
|
||||
"SETTINGS_DUPLICATE_CONFIRM_DELETE_TOOLTIP": "Muestra un diálogo de "
|
||||
"confirmación antes de mover una imagen duplicada a la papelera.",
|
||||
"SETTINGS_DUPLICATE_THRESHOLD_LABEL": "Umbral de Similitud:",
|
||||
"SETTINGS_DUPLICATE_THRESHOLD_TOOLTIP": "Establece el umbral de similitud (50-100%). Valores más altos significan que las imágenes deben ser más parecidas para considerarse duplicadas.",
|
||||
"SETTINGS_DUPLICATE_MISSING_LIBS": "La librería 'imagehash' es necesaria para la detección de duplicados pero no se ha encontrado. Esta función está desactivada.",
|
||||
"SETTINGS_DUPLICATE_THRESHOLD_TOOLTIP": "Establece el umbral de similitud "
|
||||
"(50-100%). Valores más altos significan que las imágenes deben ser más "
|
||||
"parecidas para considerarse duplicadas.",
|
||||
"SETTINGS_DUPLICATE_MISSING_LIBS": "La librería 'imagehash' es necesaria "
|
||||
"para la detección de duplicados pero no se ha encontrado. Esta función "
|
||||
"está desactivada.",
|
||||
"MENU_DETECT_DUPLICATES": "Detectar Duplicados",
|
||||
"DUPLICATE_WHITELIST_EMPTY": "La lista blanca está vacía. Por favor, "
|
||||
"configúrela en Opciones.",
|
||||
"DUPLICATE_DETECTION_TITLE": "Detección de Duplicados",
|
||||
"DUPLICATE_ALREADY_RUNNING": "La detección de duplicados ya está en curso.",
|
||||
"DUPLICATE_NO_IMAGES": "No hay imágenes cargadas para detectar duplicados.",
|
||||
@@ -1143,6 +1179,8 @@ _UI_TEXTS = {
|
||||
"alrededor de los lugares.",
|
||||
"SETTINGS_LANDMARK_HISTORY_TOOLTIP": "Número máximo de nombres de lugares "
|
||||
"usados recientemente para recordar.",
|
||||
"SETTINGS_PATH_NOT_FOUND_WARNING": "Advertencia: La ruta no existe o "
|
||||
"no es un directorio: {}",
|
||||
"SETTINGS_FACE_HISTORY_COUNT_LABEL": "Máximo historial de caras:",
|
||||
"SETTINGS_THUMBS_REFRESH_LABEL": "Intervalo refresco miniaturas (ms):",
|
||||
"SETTINGS_THUMBS_BG_COLOR_LABEL": "Color de fondo de miniaturas:",
|
||||
@@ -1441,6 +1479,7 @@ _UI_TEXTS = {
|
||||
"SEARCH": "Buscar",
|
||||
"SELECT": "Seleccionar",
|
||||
"ERROR": "Erro",
|
||||
"FILE_NOT_FOUND": "Ficheiro non atopado",
|
||||
"WARNING": "Advertencia",
|
||||
"INFO": "Información",
|
||||
"LOAD": "Cargar",
|
||||
@@ -1567,25 +1606,42 @@ _UI_TEXTS = {
|
||||
"MENU_CLEAN_UP_HASHES": "Limpar",
|
||||
"MENU_CLEAR_HASHES": "Limpar hashes ({} elementos, {:.1f} MB en disco)",
|
||||
"CONFIRM_CLEAR_HASHES_TITLE": "Confirmar Limpeza de Hashes",
|
||||
"CONFIRM_CLEAR_HASHES_TEXT": "Seguro que queres eliminar permanentemente toda a base de datos de hashes?",
|
||||
"CONFIRM_CLEAR_HASHES_INFO": "Isto eliminará todos os hashes de imaxes calculados. Rexeneraranse a medida que detectes duplicados, o que pode ser lento. Esta acción non se pode deshacer.",
|
||||
"CONFIRM_CLEAR_HASHES_TEXT": "Seguro que queres eliminar permanentemente toda "
|
||||
"a base de datos de hashes?",
|
||||
"CONFIRM_CLEAR_HASHES_INFO": "Isto eliminará todos os hashes de imaxes "
|
||||
"calculados. Rexeneraranse a medida que detectes duplicados, o que pode ser "
|
||||
"lento. Esta acción non se pode deshacer.",
|
||||
"SETTINGS_DUPLICATE_METHOD_LABEL": "Método:",
|
||||
"SETTINGS_DUPLICATE_METHOD_TOOLTIP": "Selecciona o método para a detección de duplicados.",
|
||||
"SETTINGS_DUPLICATE_METHOD_TOOLTIP": "Selecciona o método para a detección "
|
||||
"de duplicados.",
|
||||
"METHOD_HISTOGRAM_HASHING": "Histograma + Hashing",
|
||||
"METHOD_RESNET": "ResNet (Baseado en IA)",
|
||||
"SETTINGS_DUPLICATE_CONFIRM_DELETE_LABEL": "Confirmar antes de borrar duplicados",
|
||||
"SETTINGS_DUPLICATE_CONFIRM_DELETE_LABEL": "Confirmar antes de borrar "
|
||||
"duplicados",
|
||||
"SETTINGS_DUPLICATE_WHITELIST_LABEL": "Lista branca (cartafoles a incluír):",
|
||||
"SETTINGS_DUPLICATE_WHITELIST_TOOLTIP": "Rutas de cartafoles separadas por comas para escanear ao usar 'Detectar todos'.",
|
||||
"SETTINGS_DUPLICATE_WHITELIST_TOOLTIP": "Rutas de cartafoles separadas por "
|
||||
"comas para escanear ao usar 'Detectar todos'.",
|
||||
"SETTINGS_DUPLICATE_BLACKLIST_LABEL": "Lista negra (cartafoles a excluír):",
|
||||
"SETTINGS_DUPLICATE_BLACKLIST_TOOLTIP": "Rutas de cartafoles separadas por comas para ignorar durante escaneos de 'Detectar todos'.",
|
||||
"SETTINGS_DUPLICATE_SCAN_COUNT_LABEL": "Imaxes atopadas para 'Detectar todos': {}",
|
||||
"SETTINGS_DEFAULT_DELETE_TO_TRASH_LABEL": "A tecla Supr envía á papeleira por defecto",
|
||||
"SETTINGS_DEFAULT_DELETE_TO_TRASH_TOOLTIP": "Se está marcada, ao premer a tecla Supr moveranse os ficheiros á papeleira. Se non, eliminaranse permanentemente.",
|
||||
"SETTINGS_DUPLICATE_CONFIRM_DELETE_TOOLTIP": "Amosa un diálogo de confirmación antes de mover unha imaxe duplicada á papeleira.",
|
||||
"SETTINGS_DUPLICATE_BLACKLIST_TOOLTIP": "Rutas de cartafoles separadas por "
|
||||
"comas para ignorar durante escaneos de 'Detectar todos'.",
|
||||
"SETTINGS_DUPLICATE_SCAN_COUNT_LABEL": "Imaxes atopadas para 'Detectar "
|
||||
"todos': {}",
|
||||
"SETTINGS_DEFAULT_DELETE_TO_TRASH_LABEL": "A tecla Supr envía á papeleira por "
|
||||
"defecto",
|
||||
"SETTINGS_DEFAULT_DELETE_TO_TRASH_TOOLTIP": "Se está marcada, ao premer a "
|
||||
"tecla Supr moveranse os ficheiros á papeleira. Se non, eliminaranse "
|
||||
"permanentemente.",
|
||||
"SETTINGS_DUPLICATE_CONFIRM_DELETE_TOOLTIP": "Amosa un diálogo de confirmación "
|
||||
"antes de mover unha imaxe duplicada á papeleira.",
|
||||
"SETTINGS_DUPLICATE_THRESHOLD_LABEL": "Umbral de Similitude:",
|
||||
"SETTINGS_DUPLICATE_THRESHOLD_TOOLTIP": "Establece o umbral de similitude (50-100%). Valores máis altos significan que as imaxes deben ser máis parecidas para considerarse duplicadas.",
|
||||
"SETTINGS_DUPLICATE_MISSING_LIBS": "A librería 'imagehash' é necesaria para a detección de duplicados pero non se atopou. Esta función está desactivada.",
|
||||
"SETTINGS_DUPLICATE_THRESHOLD_TOOLTIP": "Establece o umbral de similitude "
|
||||
"(50-100%). Valores máis altos significan que as imaxes deben ser máis "
|
||||
"parecidas para considerarse duplicadas.",
|
||||
"SETTINGS_DUPLICATE_MISSING_LIBS": "A librería 'imagehash' é necesaria para a "
|
||||
"detección de duplicados pero non se atopou. Esta función está desactivada.",
|
||||
"MENU_DETECT_DUPLICATES": "Detectar Duplicados",
|
||||
"DUPLICATE_WHITELIST_EMPTY": "A lista branca está baleira. Por favor, "
|
||||
"configúrea en Opcións.",
|
||||
"DUPLICATE_DETECTION_TITLE": "Detección de Duplicados",
|
||||
"DUPLICATE_ALREADY_RUNNING": "A detección de duplicados xa está en curso.",
|
||||
"DUPLICATE_NO_IMAGES": "Non hai imaxes cargadas para detectar duplicados.",
|
||||
@@ -1672,6 +1728,8 @@ _UI_TEXTS = {
|
||||
"arredor dos lugares.",
|
||||
"SETTINGS_LANDMARK_HISTORY_TOOLTIP": "Número máximo de nomes de lugares "
|
||||
"usados recentemente para lembrar.",
|
||||
"SETTINGS_PATH_NOT_FOUND_WARNING": "Advertencia: A ruta non existe ou "
|
||||
"non é un directorio: {}",
|
||||
"SETTINGS_FACE_HISTORY_COUNT_LABEL": "Máximo historial de caras:",
|
||||
"SETTINGS_THUMBS_REFRESH_LABEL": "Intervalo refresco miniaturas (ms):",
|
||||
"SETTINGS_THUMBS_BG_COLOR_LABEL": "Cor de fondo de miniaturas:",
|
||||
@@ -1970,6 +2028,7 @@ _UI_TEXTS = {
|
||||
|
||||
# Determine which language to use for UI strings
|
||||
def _get_current_language():
|
||||
"""Determines the language to use for UI strings based on environment."""
|
||||
lang = os.getenv("BAGHEERA_LANG") or APP_CONFIG.get("language", DEFAULT_LANGUAGE)
|
||||
|
||||
if lang == "system":
|
||||
|
||||
Reference in New Issue
Block a user