Skip to content

Commit 4c7961c

Browse files
committed
feat: updater + traducciones presets (v1.2.0)
1 parent 9e0a67f commit 4c7961c

12 files changed

Lines changed: 429 additions & 40 deletions

File tree

CHANGELOG.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,23 @@ Todos los cambios notables del proyecto se documentan en este archivo.
44

55
## [Unreleased]
66

7+
_Sin cambios documentados todavía._
8+
9+
## [1.2.0] - 2026-04-08
10+
711
### Nuevas features
812
- OCR con EasyOCR.
913
- Marca de agua con preview en tiempo real.
10-
- Vectorizacion a SVG.
11-
- Transformaciones de imagen (rotacion, flip, EXIF).
12-
- Soporte HEIC/HEIF en lectura y conversion.
14+
- Vectorización a SVG.
15+
- Transformaciones de imagen (rotación, flip, EXIF).
16+
- Soporte HEIC/HEIF en lectura y conversión.
17+
- Auto-updater (Windows/Inno): buscar, descargar, verificar e instalar actualizaciones desde Ajustes.
1318

1419
### UX / UI
1520
- Ajustes con tabs (Ajustes / Actualizaciones).
1621
- Mejoras de mensajes y validaciones en Metadata (fechas EXIF).
17-
- UI mas compacta y consistente en modulos nuevos.
22+
- UI más compacta y consistente en módulos nuevos.
23+
- Dropdowns/presets traducidos y consistentes (Vectorizar, Watermark, OCR).
1824

1925
### Fixes
2026
- Lectura robusta de rutas con caracteres especiales en varios modulos.
@@ -23,6 +29,7 @@ Todos los cambios notables del proyecto se documentan en este archivo.
2329
### Build / Packaging
2430
- PyInstaller actualizado con imports dinamicos y assets nuevos.
2531
- Dependencias actualizadas para OCR y HEIC.
32+
- CI/CD Windows: build + instalador + releases automáticos con hashes.
2633

2734
## [1.1.1] - 2026-03-27
2835

Yagua.iss

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
[Setup]
55
AppId={{2A0F8C4B-6E0D-4E7B-9E92-9B8D3D34B6F1}}
66
AppName=Yagua
7-
AppVersion=2.0.0
8-
AppVerName=Yagua 2.0.0
7+
AppVersion=1.2.0
8+
AppVerName=Yagua 1.2.0
99
AppPublisher=GuilleBouix
1010
AppPublisherURL=https://github.com/GuilleBouix
1111
AppSupportURL=https://github.com/GuilleBouix
@@ -17,7 +17,7 @@ DefaultDirName={pf}\Yagua
1717
DefaultGroupName=Yagua
1818
UninstallDisplayIcon={app}\Yagua.exe
1919
OutputDir=installer
20-
OutputBaseFilename=Yagua_Setup_2.0.0
20+
OutputBaseFilename=Yagua_Setup_1.2.0
2121
Compression=lzma
2222
SolidCompression=yes
2323
ArchitecturesInstallIn64BitMode=x64

app/translations/en.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,14 @@
286286
'current_version': 'Current version',
287287
'no_updates': 'No updates available',
288288
'check_updates': 'Check updates',
289+
'updates_checking': 'Checking for updates...',
290+
'updates_available': 'New version available: v{version}',
291+
'updates_downloading': 'Downloading update...',
292+
'updates_verifying': 'Verifying download...',
293+
'updates_installing': 'Installing update...',
294+
'updates_requires_install': 'Auto-update is only available in the installed version.',
295+
'updates_hash_mismatch': 'Invalid download (verification failed).',
296+
'updates_error': 'Update failed. Please try again later.',
289297
'logs_title': 'Logs',
290298
'log_date': 'Date',
291299
'log_level': 'Level',
@@ -299,12 +307,22 @@
299307
'copy_text': 'Copy Text',
300308
'text_copied': 'Text copied to clipboard',
301309
'ocr_languages': 'OCR Languages',
310+
'ocr_lang_es_en': 'Spanish/English',
311+
'ocr_lang_es': 'Spanish',
312+
'ocr_lang_en': 'English',
302313
'select_language': 'Select language',
303314

304315
# Vectorize
305316
"vectorizar": "Vectorize",
306317
"vectorizar_title": "Image Vectorization",
307318
"vectorizar_preset": "Preset",
319+
"vectorizar_preset_photo": "Photo",
320+
"vectorizar_preset_illustration": "Illustration",
321+
"vectorizar_preset_logo": "Logo",
322+
"vectorizar_preset_line_art": "Line Art",
323+
"vectorizar_preset_pixel_art": "Pixel Art",
324+
"vectorizar_preset_light_svg": "Light SVG",
325+
"vectorizar_preset_max_quality": "Max Quality",
308326
"vectorizar_tipo": "Vectorization type",
309327
"vectorizar_color": "Color",
310328
"vectorizar_byn": "B&W",
@@ -330,7 +348,16 @@
330348
"watermark_title": "Watermark",
331349
"watermark_select_wm": "Select watermark image",
332350
"watermark_preset": "Preset",
351+
"watermark_preset_subtle": "Subtle",
352+
"watermark_preset_visible": "Visible",
353+
"watermark_preset_protection":"Protection",
354+
"watermark_preset_center": "Center",
333355
"watermark_posicion": "Position",
356+
"watermark_pos_top_left": "Top left",
357+
"watermark_pos_top_right": "Top right",
358+
"watermark_pos_bottom_left": "Bottom left",
359+
"watermark_pos_bottom_right": "Bottom right",
360+
"watermark_pos_center": "Center",
334361
"watermark_tamano": "Size",
335362
"watermark_tamano_pequeño": "Small",
336363
"watermark_tamano_grande": "Large",

app/translations/es.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,14 @@
287287
'current_version': 'Versión actual',
288288
'no_updates': 'No hay actualizaciones',
289289
'check_updates': 'Buscar actualizaciones',
290+
'updates_checking': 'Buscando actualizaciones...',
291+
'updates_available': 'Nueva versión disponible: v{version}',
292+
'updates_downloading': 'Descargando actualización...',
293+
'updates_verifying': 'Verificando descarga...',
294+
'updates_installing': 'Instalando actualización...',
295+
'updates_requires_install': 'Auto-update solo disponible en la versión instalada.',
296+
'updates_hash_mismatch': 'Descarga inválida (verificación fallida).',
297+
'updates_error': 'No se pudo actualizar. Intentalo más tarde.',
290298
'logs_title': 'Logs',
291299
'log_date': 'Fecha',
292300
'log_level': 'Nivel',
@@ -300,12 +308,22 @@
300308
'copy_text': 'Copiar Texto',
301309
'text_copied': 'Texto copiado al portapapeles',
302310
'ocr_languages': 'Idiomas OCR',
311+
'ocr_lang_es_en': 'Español/Inglés',
312+
'ocr_lang_es': 'Español',
313+
'ocr_lang_en': 'Inglés',
303314
'select_language': 'Seleccionar idioma',
304315

305316
# Vectorize
306317
"vectorizar": "Vectorizar",
307318
"vectorizar_title": "Vectorización de imágenes",
308319
"vectorizar_preset": "Preset",
320+
"vectorizar_preset_photo": "Foto",
321+
"vectorizar_preset_illustration": "Ilustración",
322+
"vectorizar_preset_logo": "Logo",
323+
"vectorizar_preset_line_art": "Line Art",
324+
"vectorizar_preset_pixel_art": "Pixel Art",
325+
"vectorizar_preset_light_svg": "SVG Liviano",
326+
"vectorizar_preset_max_quality": "Máxima Calidad",
309327
"vectorizar_tipo": "Tipo de vectorización",
310328
"vectorizar_color": "Color",
311329
"vectorizar_byn": "B&N",
@@ -331,7 +349,16 @@
331349
"watermark_title": "Marca de agua",
332350
"watermark_select_wm": "Seleccionar imagen de marca de agua",
333351
"watermark_preset": "Preset",
352+
"watermark_preset_subtle": "Sutil",
353+
"watermark_preset_visible": "Visible",
354+
"watermark_preset_protection":"Protección",
355+
"watermark_preset_center": "Centro",
334356
"watermark_posicion": "Posición",
357+
"watermark_pos_top_left": "Arriba izq.",
358+
"watermark_pos_top_right": "Arriba der.",
359+
"watermark_pos_bottom_left": "Abajo izq.",
360+
"watermark_pos_bottom_right": "Abajo der.",
361+
"watermark_pos_center": "Centro",
335362
"watermark_tamano": "Tamaño",
336363
"watermark_tamano_pequeño": "Pequeño",
337364
"watermark_tamano_grande": "Grande",

app/translations/pt.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,14 @@
286286
'current_version': 'Versão atual',
287287
'no_updates': 'Nenhuma atualização',
288288
'check_updates': 'Buscar atualizações',
289+
'updates_checking': 'Buscando atualizações...',
290+
'updates_available': 'Nova versão disponível: v{version}',
291+
'updates_downloading': 'Baixando atualização...',
292+
'updates_verifying': 'Verificando download...',
293+
'updates_installing': 'Instalando atualização...',
294+
'updates_requires_install': 'Auto-update disponível apenas na versão instalada.',
295+
'updates_hash_mismatch': 'Download inválido (verificação falhou).',
296+
'updates_error': 'Falha ao atualizar. Tente novamente mais tarde.',
289297
'logs_title': 'Logs',
290298
'log_date': 'Data',
291299
'log_level': 'Nível',
@@ -299,12 +307,22 @@
299307
'copy_text': 'Copiar Texto',
300308
'text_copied': 'Texto copiado para a área de transferência',
301309
'ocr_languages': 'Idiomas OCR',
310+
'ocr_lang_es_en': 'Espanhol/Inglês',
311+
'ocr_lang_es': 'Espanhol',
312+
'ocr_lang_en': 'Inglês',
302313
'select_language': 'Selecionar idioma',
303314

304315
# Vectorize
305316
"vectorizar": "Vetorizar",
306317
"vectorizar_title": "Vetorização de imagens",
307318
"vectorizar_preset": "Predefinição",
319+
"vectorizar_preset_photo": "Foto",
320+
"vectorizar_preset_illustration": "Ilustração",
321+
"vectorizar_preset_logo": "Logo",
322+
"vectorizar_preset_line_art": "Line Art",
323+
"vectorizar_preset_pixel_art": "Pixel Art",
324+
"vectorizar_preset_light_svg": "SVG Leve",
325+
"vectorizar_preset_max_quality": "Máxima Qualidade",
308326
"vectorizar_tipo": "Tipo de vetorização",
309327
"vectorizar_color": "Cor",
310328
"vectorizar_byn": "P&B",
@@ -330,7 +348,16 @@
330348
"watermark_title": "Marca d'água",
331349
"watermark_select_wm": "Selecionar imagem de marca d'água",
332350
"watermark_preset": "Predefinição",
351+
"watermark_preset_subtle": "Sutil",
352+
"watermark_preset_visible": "Visível",
353+
"watermark_preset_protection":"Proteção",
354+
"watermark_preset_center": "Centro",
333355
"watermark_posicion": "Posição",
356+
"watermark_pos_top_left": "Superior esquerdo",
357+
"watermark_pos_top_right": "Superior direito",
358+
"watermark_pos_bottom_left": "Inferior esquerdo",
359+
"watermark_pos_bottom_right": "Inferior direito",
360+
"watermark_pos_center": "Centro",
334361
"watermark_tamano": "Tamanho",
335362
"watermark_tamano_pequeño": "Pequeno",
336363
"watermark_tamano_grande": "Grande",

app/ui/frames/ocr/frame.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -226,17 +226,25 @@ def _construir_opciones(self):
226226
text_color=colors.TEXT_GRAY, anchor='w'
227227
).grid(row=0, column=0, padx=(16, 12), pady=(10, 6), sticky='w')
228228

229-
# Mapeo de opciones legibles a valores internos
229+
# Mapeo de opciones legibles a valores internos.
230+
# Usamos labels traducidos, pero mantenemos compatibilidad con labels legacy.
231+
lbl_es_en = t("ocr_lang_es_en")
232+
lbl_es = t("ocr_lang_es")
233+
lbl_en = t("ocr_lang_en")
230234
self._idiomas_map = {
231-
'Español/Inglés': 'es,en',
232-
'Español': 'es',
233-
'Inglés': 'en',
235+
lbl_es_en: "es,en",
236+
lbl_es: "es",
237+
lbl_en: "en",
238+
# Legacy (hardcodeados en versiones previas)
239+
"Español/Inglés": "es,en",
240+
"Español": "es",
241+
"Inglés": "en",
234242
}
235243

236244
# Dropdown de idiomas con opciones legibles
237245
self._dropdown_idiomas = ctk.CTkComboBox(
238246
p,
239-
values=list(self._idiomas_map.keys()),
247+
values=[lbl_es_en, lbl_es, lbl_en],
240248
variable=self._idioma_label,
241249
font=fonts.FUENTE_BASE,
242250
fg_color=colors.SIDEBAR_BG,
@@ -247,9 +255,9 @@ def _construir_opciones(self):
247255
dropdown_text_color=colors.TEXT_COLOR,
248256
dropdown_hover_color=colors.SIDEBAR_HOVER
249257
)
250-
# Establecer valor por defecto a la primera opción
251-
self._dropdown_idiomas.set('Español/Inglés')
252-
self._state.idiomas.set(self._idiomas_map.get('Español/Inglés', 'es,en'))
258+
# Establecer valor por defecto.
259+
self._dropdown_idiomas.set(lbl_es_en)
260+
self._state.idiomas.set(self._idiomas_map.get(lbl_es_en, "es,en"))
253261
self._dropdown_idiomas.grid(row=0, column=1, padx=(0, 16), pady=(10, 6), sticky='ew')
254262

255263
# Boton de procesar

0 commit comments

Comments
 (0)