Lab1UK / translations /__init__.py
AIdeaText's picture
Upload 6 files
429308b verified
raw
history blame
2.99 kB
# 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', 'uk']:
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', {})
}
# 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', 'uk']:
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' if lang_code == 'es' else 'Виберіть мову',
'login': 'Login' if lang_code == 'en' else 'Iniciar Sesión' if lang_code == 'es' else 'Увійти',
'register': 'Sign Up' if lang_code == 'en' else 'Registrarse' if lang_code == 'es' else 'Зареєструватися',
# Añadir más traducciones por defecto si es necesario
}