@@ -55,6 +55,15 @@ let currentLanguage = 'en-US';
5555let currentSerial = '' ;
5656let currentTab = 'generator' ;
5757
58+ // Función auxiliar para obtener traducciones de forma segura
59+ function getTranslations ( ) {
60+ if ( ! translations [ currentLanguage ] ) {
61+ console . error ( 'Idioma no válido:' , currentLanguage , 'usando en-US como respaldo' ) ;
62+ currentLanguage = 'en-US' ;
63+ }
64+ return translations [ currentLanguage ] ;
65+ }
66+
5867// Función para cambiar de pestaña
5968function switchTab ( tabName ) {
6069 currentTab = tabName ;
@@ -268,7 +277,7 @@ function formatDecodedDate(date, language = 'es') {
268277
269278// Función para manejar la decodificación de seriales
270279function handleDecodeSerial ( ) {
271- const t = translations [ currentLanguage ] ;
280+ const t = getTranslations ( ) ;
272281 const serialInput = document . getElementById ( 'serialInput' ) ;
273282 const dateOutput = document . getElementById ( 'dateOutput' ) ;
274283
@@ -294,8 +303,14 @@ function handleDecodeSerial() {
294303
295304// Función para cambiar el idioma
296305function changeLanguage ( lang ) {
306+ // Verificar que el idioma solicitado existe
307+ if ( ! translations [ lang ] ) {
308+ console . error ( 'Idioma no válido:' , lang ) ;
309+ lang = 'en-US' ; // Fallback al inglés
310+ }
311+
297312 currentLanguage = lang ;
298- const t = translations [ currentLanguage ] ;
313+ const t = getTranslations ( ) ;
299314
300315 // Actualizar título de la página
301316 document . title = t . pageTitle ;
@@ -317,7 +332,7 @@ function changeLanguage(lang) {
317332
318333// Función para actualizar la interfaz de usuario
319334function updateUI ( ) {
320- const t = translations [ currentLanguage ] ;
335+ const t = getTranslations ( ) ;
321336
322337 // Actualizar textos principales
323338 document . getElementById ( 'title' ) . textContent = t . title ;
@@ -364,8 +379,9 @@ function updateUI() {
364379// Función para manejar la generación del serial
365380async function handleGenerateSerial ( ) {
366381 console . log ( 'handleGenerateSerial called' ) ; // Debug
382+ console . log ( 'Current language:' , currentLanguage ) ; // Debug
367383
368- const t = translations [ currentLanguage ] ;
384+ const t = getTranslations ( ) ;
369385 const serialOutput = document . getElementById ( 'serialOutput' ) ;
370386 const copyButton = document . getElementById ( 'copyButton' ) ;
371387
@@ -430,7 +446,7 @@ async function handleGenerateSerial() {
430446
431447// Función para copiar al portapapeles
432448function copyToClipboard ( ) {
433- const t = translations [ currentLanguage ] ;
449+ const t = getTranslations ( ) ;
434450 const copyButton = document . getElementById ( 'copyButton' ) ;
435451
436452 if ( currentSerial && currentSerial !== t . initialMessage && ! currentSerial . startsWith ( t . errorPrefix ) ) {
@@ -465,9 +481,19 @@ document.addEventListener('DOMContentLoaded', () => {
465481 // Cargar preferencias del localStorage
466482 const savedLanguage = localStorage . getItem ( 'preferredLanguage' ) || 'en-US' ;
467483 const savedTab = localStorage . getItem ( 'preferredTab' ) || 'generator' ;
468- currentLanguage = savedLanguage ;
484+
485+ // Verificar que el idioma guardado existe en las traducciones
486+ if ( translations [ savedLanguage ] ) {
487+ currentLanguage = savedLanguage ;
488+ } else {
489+ console . warn ( 'Idioma guardado no válido:' , savedLanguage , 'usando en-US' ) ;
490+ currentLanguage = 'en-US' ;
491+ }
492+
469493 currentTab = savedTab ;
470494
495+ console . log ( 'Idioma inicializado:' , currentLanguage ) ; // Debug
496+
471497 // Configurar event listeners principales
472498 document . getElementById ( 'generateButton' ) . addEventListener ( 'click' , handleGenerateSerial ) ;
473499 document . getElementById ( 'copyButton' ) . addEventListener ( 'click' , copyToClipboard ) ;
0 commit comments