# translations/__init__.py import logging from importlib import import_module logger = logging.getLogger(__name__) def get_translations(lang_code): # Asegurarse de que lang_code sea válido if lang_code not in ['es', 'en', 'fr', 'pt']: print(f"Invalid lang_code: {lang_code}. Defaulting to 'es'") lang_code = 'es' try: # Importar dinámicamente el módulo de traducción translation_module = import_module(f'.{lang_code}', package='translations') translations = getattr(translation_module, 'TRANSLATIONS', {}) except ImportError: logger.warning(f"Translation module for {lang_code} not found. Falling back to English.") # Importar el módulo de inglés como fallback translation_module = import_module('.en', package='translations') translations = getattr(translation_module, 'TRANSLATIONS', {}) def get_text(key, section='COMMON', default=''): return translations.get(section, {}).get(key, default) return { 'get_text': get_text, **translations.get('COMMON', {}), **translations.get('TABS', {}), **translations.get('MORPHOSYNTACTIC', {}), **translations.get('SEMANTIC', {}), **translations.get('DISCOURSE', {}), **translations.get('ACTIVITIES', {}), **translations.get('FEEDBACK', {}), **translations.get('TEXT_TYPES', {}), **translations.get('CURRENT_SITUATION', {}) # Añadir esta línea } # Nueva función para obtener traducciones específicas del landing page def get_landing_translations(lang_code): # Asegurarse de que lang_code sea válido if lang_code not in ['es', 'en', 'fr', 'pt']: print(f"Invalid lang_code: {lang_code}. Defaulting to 'es'") lang_code = 'es' try: # Importar dinámicamente el módulo de traducción del landing page from .landing_translations import LANDING_TRANSLATIONS # Asegurarse de que el idioma esté disponible, si no usar español como fallback if lang_code not in LANDING_TRANSLATIONS: logger.warning(f"Landing translations for {lang_code} not found. Falling back to Spanish.") lang_code = 'es' return LANDING_TRANSLATIONS[lang_code] except ImportError: logger.warning("Landing translations module not found. Using default translations.") # Crear un conjunto mínimo de traducciones por defecto return { 'select_language': 'Select language' if lang_code == 'en' else 'Selecciona tu idioma', 'login': 'Login' if lang_code == 'en' else 'Iniciar Sesión', 'register': 'Sign Up' if lang_code == 'en' else 'Registrarse', # Añadir más traducciones por defecto si es necesario }