Localización de Grandes Bases de Código con LLMs: Un Flujo de Trabajo para Desarrolladores con 4,500 Claves de Interfaz de Usuario

Un desarrollador documentó su proceso para localizar un proyecto de juego grande con aproximadamente 4.500 claves de interfaz almacenadas en un archivo en-US.json de 500KB. Usó un flujo de trabajo de LLM de múltiples pasos para manejar extracción, traducción y mejora de calidad.
Intentos Iniciales de Extracción y Traducción
Primero, usó Claude para escanear su base de código, extraer cadenas de interfaz codificadas directamente, y migrarlas a estándares i18n, creando el archivo de localización. Para la traducción al italiano, inicialmente probaron Claude y Gemini Pro (vía Gemini CLI y Antigravity). Ambos modelos en la nube produjeron traducciones de calidad inaceptable. Gemini Pro también encontró errores con el archivo grande, requiriendo dividirlo en 10 fragmentos más pequeños.
Cambiando a Modelos Locales y el Avance del Contexto
Luego probaron TranslateGemma localmente vía LM Studio, traduciendo clave por clave. Aunque ligeramente mejor, la calidad aún no era aceptable. La idea clave fue que las palabras de interfaz son a menudo ambiguas, y la traducción requiere desambiguación y contexto de uso.
Para resolver esto, volvieron a Claude para generar un segundo archivo. Para cada una de las 4.500 claves, Claude inspeccionó el uso en el código para proporcionar contexto: dónde aparece la cadena, su función (etiqueta de botón, descripción, sugerencia de entrada), y su efecto en la jugabilidad.
La Tubería de Traducción Final
Construyeron una tubería de traducción automatizada con los siguientes pasos:
- Agrupar claves junto con su contexto generado.
- Usar una indicación enfocada en traducción funcional (no literal).
- Forzar la preservación de marcadores de posición y etiquetas.
- Enviar solicitudes a un modelo local a través de LM Studio.
TranslateGemma no pudo manejar el formato de indicación con mucho contexto, así que cambiaron de modelo. Probaron en una Mac Mini M1 con 16GB de memoria unificada.
Rendimiento del Modelo y Resultados
Qwen 3 4B funcionó bien, pero Qwen 3 8B fue el punto óptimo, produciendo menos errores gramaticales y mejor redacción mientras seguía siendo manejable para ejecutar localmente. La tubería final puede traducir las más de 4.500 claves a múltiples idiomas, tomando aproximadamente 8 horas por localización en su máquina. Usan un modelo cuantizado para poder seguir trabajando mientras se ejecuta en segundo plano.
El desarrollador señala que este enfoque produjo calidad suficiente para enviar y se sintió mejor que muchos proyectos traducidos automáticamente que han visto.
📖 Read the full source: r/LocalLLaMA
👀 Ver también

Construyendo un Equipo de 13 Agentes Claude con un Flujo de Trabajo de Revisión por Pares
Un desarrollador construyó un sistema de 13 agentes Claude donde los agentes de IA revisan el trabajo de los demás, se ejecutan en latidos programados y rastrean todo en una base de datos para la automatización de marketing.

Agente OpenClaw Implementa Recordatorios Contextuales con Sugerencias de Relaciones
Un usuario de OpenClaw creó un sistema de agente personal con recordatorios contextuales que se activan según la carga del calendario, las tareas actuales y la hora del día, en lugar de horarios fijos. El sistema incluye una escalera de recordatorios y utiliza seguimiento de memoria para sugerir contactar a personas según el historial de relaciones.

Ejecutar OpenClaw localmente con Jetson Nano y una laptop para juegos usando Ollama
Un desarrollador configuró OpenClaw para ejecutarse localmente usando un Jetson Nano y una laptop gaming MSI 2022 con Qwen 3.5 9B a través de Ollama, implementando wake-on-LAN para eficiencia energética y enrutamiento híbrido a OpenAI para tareas complejas.

Usando LLM Local para Monitorear Sesiones AFK de Bots en Minecraft
Un desarrollador utilizó un modelo de lenguaje local (LLM) para monitorear su bot de Minecraft que ejecutaba Baritone para trabajos de minería, configurando un monitoreo de pantalla para recibir alertas cuando el bot muere o se desconecta del servidor.