← ClaudeAtlas

ps-translatelisted

Automatiza la detección y traducción de strings sin traducir en una instalación PrestaShop, a CUALQUIER idioma. Detecta el child theme y los locales instalados (DB ps_lang con fallback a filesystem/lando mysql), escanea templates .tpl (Smarty {l s='...' d='...'}) Y, con --include-emails, plantillas de email Twig (mails/themes/**/*.twig), incluyendo también las facturas/albaranes PDF de la raíz /pdf/**/*.tpl que antes se pasaban por alto. Compara contra los XLF existentes del locale objetivo y traduce los strings faltantes usando Claude de forma nativa — sin API key externa. Soporta varios idiomas en una sola corrida. Usa esta skill cuando el usuario mencione: "traducciones PS", "strings en inglés", "ps-translate", "traducir prestashop", "traducir a francés/alemán/español", "i18n pendiente", "hay textos sin traducir en la tienda", "¿qué strings faltan por traducir?", "traducir facturas/PDF", "traducir emails/correos de PrestaShop", o cuando vea texto sin traducir en el storefront, en una factura PDF, o en un e
educlopez/mallard · ★ 3 · API & Backend · score 72
Install: claude install-skill educlopez/mallard
# ps-translate — Traducciones PrestaShop automatizadas (multi-idioma) Detecta strings sin traducir y los traduce directamente usando Claude Code, sin API key externa. Agnóstico de idioma: detecta los idiomas instalados o los pregunta. ## Flujo de trabajo ### Paso 0 — Detectar theme e idiomas (SIEMPRE primero) ```bash python3 ~/.claude/skills/ps-translate/scripts/detect.py --base <ruta_ps> ``` Devuelve el child theme, su parent, y los locales instalados: ```json { "theme": "mystore", "parent": "classic", "locales": ["es-ES", "fr-FR", "de-DE"], "source": "db" } ``` - `source: "db"` → conexión directa vía `pymysql` (requiere el host de DB accesible desde donde corre el script — típico en instalaciones no-Lando o con DB expuesta). - `source: "db (lando)"` → cuando `database_host` es el nombre del servicio Docker interno (no resoluble desde el host), se usa `lando mysql <db> -e "..."` en su lugar — esto SÍ ve los idiomas realmente activos en `ps_lang`, no adivines por `source: "filesystem"` que no hay forma de saberlo en un proyecto Lando. - `source: "filesystem"` → último recurso: deducido de qué dirs `translations/<locale>/` ya existen. Solo dice qué locales YA tienen alguna traducción empezada, NO qué idiomas están realmente activos en la tienda — si el proyecto usa Lando y esto aparece, algo falló antes (revisa que `.lando.yml` exista y `lando` esté en el PATH). **Luego decide el/los idioma(s) objetivo:** - Si hay UN solo locale (aparte de `en-US`) → ús