He estado usando Claude Code durante unos meses, y ha cambiado cómo manejo la internacionalización. En lugar de cambiar entre mi editor, terminal y panel de traducción, simplemente escribo un comando slash y dejo que Claude maneje las partes tediosas.
Aquí está lo que he aprendido sobre crear skills personalizados de i18n para Claude Code.
¿Qué son los Claude Code Skills?
Claude Code es el CLI de Anthropic que trae Claude directamente a tu terminal. Los skills son comandos slash personalizados que defines - piensa en ellos como instrucciones de IA reutilizables para tareas comunes.
Para trabajo de i18n, esto es perfecto. Las tareas de traducción son repetitivas y siguen patrones consistentes. En lugar de explicar lo que quieres cada vez, creas un skill una vez y lo invocas con un comando simple.
Tu primer skill: Encontrar strings hardcoded
Empecemos con algo simple. Crea un archivo en .claude/commands/i18n-scan.md:
MARKDOWN1# i18n-scan 2 3Escanea el archivo actual o archivos especificados en busca de strings hardcoded que deberían internacionalizarse. 4 5## Qué buscar: 6- Contenido de texto JSX entre etiquetas 7- Literales de string en contextos de cara al usuario (labels, mensajes, títulos) 8- Template literals que contienen texto visible para el usuario 9- Texto placeholder en inputs 10 11## Qué ignorar: 12- Mensajes console.log 13- Mensajes de error para desarrolladores (a menos que sean de cara al usuario) 14- Nombres de clases CSS 15- Rutas de importación 16- Claves de objeto que son identificadores internos 17 18## Formato de salida: 19Para cada string hardcoded encontrado, mostrar: 20- Número de línea 21- El string hardcoded 22- Clave de traducción sugerida (siguiendo patrón namespace.section.element) 23- Contexto sobre dónde aparece
Ahora cuando ejecutas /i18n-scan en Claude Code, sabe exactamente qué buscar.
El skill de extracción
Este es el skill que más uso. No solo encuentra strings - realmente los extrae y actualiza tu código.
Crea .claude/commands/i18n-extract.md:
MARKDOWN1# i18n-extract 2 3Extrae strings hardcoded y conviértelos en claves de traducción. 4 5## Proceso: 61. Identificar todos los strings hardcoded de cara al usuario 72. Generar claves de traducción apropiadas siguiendo convención de nombres 83. Actualizar el archivo para usar función de traducción (t() o equivalente) 94. Agregar imports necesarios 105. Crear o actualizar archivo de traducción con nuevas claves 11 12## Convención de nombres: 13Las claves deben seguir el patrón `namespace.section.element`: 14- `settings.profile.title` → "Configuración de perfil" 15- `common.buttons.save` → "Guardar" 16- `errors.validation.required` → "Este campo es obligatorio" 17 18## Detección de framework: 19- Si react-i18next: usar hook useTranslation y función t() 20- Si next-intl: usar hook useTranslations 21- Si vue-i18n: usar $t() en templates, t() en setup 22- Si FormatJS: usar FormattedMessage o useIntl
Ejecuta /i18n-extract en cualquier archivo, y Claude maneja todo el proceso de extracción.
Conectando a tu TMS
El verdadero poder viene de integrar con tu sistema de gestión de traducciones. Con MCP (Model Context Protocol), Claude puede interactuar con IntlPull directamente.
Crea .claude/commands/i18n-translate.md:
MARKDOWN1# i18n-translate 2 3Traduce strings faltantes usando integración MCP de IntlPull. 4 5## Prerequisitos: 6- El servidor MCP de IntlPull debe estar conectado 7- El proyecto debe estar configurado en IntlPull 8 9## Proceso: 101. Usar MCP de IntlPull para obtener estado actual del proyecto 112. Identificar claves con traducciones faltantes 123. Para cada traducción faltante: 13 - Obtener texto fuente 14 - Obtener traducciones existentes para contexto 15 - Generar traducción apropiada 16 - Enviar a IntlPull con flag de calidad "needs_review" 17 18## Manejo de idiomas: 19- Traducir a todos los idiomas del proyecto por defecto 20- O especificar: `/i18n-translate spanish` 21 22## Control de calidad: 23- Marcar todas las traducciones de IA como "needs_review" 24- Incluir notas de traducción para términos ambiguos 25- Marcar términos que deberían usar entradas de glosario
Ahora /i18n-translate spanish envía strings faltantes para traducción de IA, marcadas para revisión humana.
Verificando cobertura de traducción
Antes de desplegar, quiero saber qué falta. Crea .claude/commands/i18n-status.md:
MARKDOWN1# i18n-status 2 3Genera un reporte de cobertura de traducción. 4 5## El reporte debe incluir: 6- Porcentaje de cobertura general por idioma 7- Namespaces con traducciones faltantes 8- Claves agregadas recientemente sin traducciones 9- Claves marcadas como "needs_review" 10- Traducciones potencialmente desactualizadas 11 12## Formato de visualización: 13Tabla mostrando: 14- Idioma 15- Cobertura % 16- Cantidad faltante 17- Cantidad necesita revisión 18 19Luego listar claves faltantes específicas agrupadas por namespace. 20 21## Fuente de datos: 22- Si MCP de IntlPull conectado: obtener datos en vivo 23- De lo contrario: analizar archivos de traducción locales
Validación para CI
Crea .claude/commands/i18n-validate.md para detectar problemas antes del despliegue:
MARKDOWN1# i18n-validate 2 3Verifica problemas de traducción. Diseñado para CI pero funciona localmente. 4 5## Verificaciones: 6 7### Problemas estructurales: 8- Traducciones faltantes en idiomas no fuente 9- Claves huérfanas (existen en traducciones pero no en código) 10- Sintaxis JSON/YAML inválida 11- Anidamiento inconsistente entre idiomas 12 13### Problemas de contenido: 14- Traducciones vacías 15- Desajustes de placeholder ({name} en fuente pero no en traducción) 16- Traducciones sospechosamente largas (podrían romper UI) 17- Traducciones sospechosamente cortas (podrían estar incompletas) 18- Contenido sin traducir (igual que idioma fuente) 19 20### Problemas de código: 21- Llamadas t() con claves no existentes 22- Strings hardcoded en cambios staged 23- Construcción dinámica de claves (difícil de rastrear) 24 25## Niveles de salida: 26- Error: debe corregirse antes de desplegar 27- Warning: debería revisarse 28- Info: para conocimiento 29 30## Códigos de salida: 31- Exit 0 si no hay errores 32- Exit 1 si se encuentran errores (para integración CI)
Mi flujo de trabajo diario
Así es como se ve en la práctica:
-
Iniciar rama de feature:
git checkout -b feature/user-settings -
Escribir código con strings hardcoded. No te preocupes por i18n mientras construyes.
-
Antes de hacer commit, en cada archivo modificado:
/i18n-extract -
Generar traducciones:
/i18n-translate -
Validar:
/i18n-validate -
Commit todo en un commit atómico
Tiempo total agregado: 2-3 minutos por feature. Compara eso con la hora que solía gastar.
Consejos pro
Sé específico sobre tu stack. Los skills genéricos funcionan, pero los skills específicos del stack funcionan mejor. Si estás usando Next.js con next-intl, crea skills que entiendan esa configuración.
Construye incrementalmente. Comienza con /i18n-extract y /i18n-status. Agrega más skills cuando te encuentres repitiendo instrucciones.
Control de versiones para tus skills. Pon .claude/commands/ en git. Cuando los compañeros actualicen Claude Code, obtienen tus skills automáticamente.
Combina con reglas de proyecto. En tu CLAUDE.md, agrega pautas de i18n para que Claude siga estos estándares incluso fuera de invocaciones de skills.
Usa MCP para superpoderes. Con el servidor MCP de IntlPull, los skills pueden crear claves de traducción, obtener traducciones, enviar actualizaciones y activar flujos de trabajo. Esto convierte los skills de "sugerencias de IA" en "acciones de IA".
Comenzando
-
Instala Claude Code:
npm install -g @anthropic-ai/claude-code -
Crea
.claude/commands/en tu proyecto -
Agrega el skill
i18n-extractde este post -
Pruébalo en un archivo con strings hardcoded
-
Itera basándote en lo que funciona para tu stack
La configuración toma quizás una hora. El ahorro de tiempo se acumula cada día.
Actualización 2026: ¿Buscas flujos de trabajo más avanzados? Consulta nuestra guía 2026 sobre construcción de comandos de automatización de traducción personalizados con operaciones masivas, pipelines de validación y flujos de trabajo basados en agentes.
¿Quieres skills listos para usar? IntlPull mantiene una colección de skills de Claude Code para i18n. Nuestro servidor MCP le da a Claude acceso directo para gestionar traducciones desde tu terminal.
