🏷️ Dominios de traduccion en PrestaShop 8/9

Actualizado: 2024-12-01

Los dominios de traduccion en PrestaShop 8+ usan formato PascalCase.PascalCase.PascalCase. Identifican el origen de una cadena traducible y determinan que archivo .xlf la contiene. Reutilizar dominios del core evita duplicar traducciones ya hechas.

#Formato de los dominios

Reglas de formato para dominios
php
<?php

// Formato: Categoria.SubCategoria.Contexto
// Cada segmento en PascalCase (primera letra mayuscula)

// ── MODULOS ──
// Modules.{NombreModulo}.{Admin|Shop|Error}
// El nombre del modulo debe ser PascalCase del nombre del directorio
// mymodule -> Mymodule
// my_module -> MyModule
// ecom_omnimind -> EcomOmnimind

$this->trans('Texto', [], 'Modules.Mymodule.Admin');  // BO
$this->trans('Texto', [], 'Modules.Mymodule.Shop');   // FO
$this->trans('Error', [], 'Modules.Mymodule.Error');  // Errores

// ── CORE ──
// Admin.{Categoria}.{SubCategoria}
// Shop.{Categoria}
// Global.{Categoria}

#Dominios del core — Admin

DominioContenido tipicoEjemplo
Admin.GlobalPalabras y frases generales del BOYes, No, Save, Cancel, Search, None
Admin.ActionsAcciones del BOAdd, Edit, Delete, Enable, Disable, Export
Admin.Navigation.MenuItems del menu lateralCatalog, Orders, Customers...
Admin.Navigation.HeaderCabecera del BOMy profile, Sign out...
Admin.Notifications.SuccessMensajes de exitoSuccessful update, Created successfully
Admin.Notifications.ErrorMensajes de errorAn error occurred, Invalid data
Admin.Notifications.WarningAdvertenciasAre you sure you want to delete?
Admin.Notifications.InfoInformacionChanges saved, Processing...
Admin.Catalog.FeatureCatalogo > Caracteristicas-
Admin.Catalog.HelpTextos de ayuda del catalogo-
Admin.Orderscustomers.FeaturePedidos y Clientes-
Admin.Shipping.FeatureTransportes-
Admin.Payment.FeaturePagos-
Admin.Design.FeatureDiseno-
Admin.Modules.FeatureModulos-
Admin.Advparameters.FeatureParametros avanzados-
Admin.International.FeatureInternacional-

#Dominios del core — Shop (Front Office)

DominioContenido tipico
Shop.NavigationNavegacion: Home, Menu, Breadcrumbs, Search...
Shop.ActionsAcciones FO: Add to cart, Buy, View, Compare...
Shop.GlobalTextos generales del FO
Shop.Notifications.SuccessMensajes de exito al cliente
Shop.Notifications.ErrorMensajes de error al cliente
Shop.Notifications.WarningAdvertencias al cliente
Shop.Catalog.ListingListados de productos
Shop.Catalog.ProductFicha de producto
Shop.CartCarrito de compra
Shop.CheckoutProceso de compra
Shop.CustomerAccountMi cuenta del cliente
Shop.OrderconfirmationPagina de confirmacion de pedido
Shop.Theme.GlobalTextos del tema activo
Shop.Theme.CatalogCatalogo del tema
Shop.Theme.CheckoutCheckout del tema
Shop.Theme.CustomeraccountCuenta del cliente en el tema

#Dominios de modulos propios

Convencion de nombres para dominios de modulos
php
<?php

// Nombre de modulo: mymodule
// Nombre PascalCase: Mymodule

// 3 dominios recomendados para un modulo estandar:
'Modules.Mymodule.Admin'  // Back Office — configuracion, listas, etiquetas BO
'Modules.Mymodule.Shop'   // Front Office — bloques, pestanas, mensajes al cliente
'Modules.Mymodule.Error'  // Mensajes de error (opcional, puede ir en Admin)

// Para modulos complejos con muchas areas:
'Modules.Mymodule.Invoice'  // Facturas
'Modules.Mymodule.Email'    // Plantillas de email

// IMPORTANTE: El nombre despues de Modules. DEBE coincidir EXACTAMENTE
// con el nombre del directorio del modulo en PascalCase
// mymodule/ -> Modules.Mymodule.*
// ecom_payments/ -> Modules.EcomPayments.*

// Ubicacion del archivo .xlf:
// modules/mymodule/translations/es-ES.Admin.xlf
// modules/mymodule/translations/es-ES.Shop.xlf
// O en el subdirectorio:
// modules/mymodule/translations/es-ES.Modules.Mymodule.Admin.xlf

#Estructura de archivos .xlf

modules/mymodule/translations/es-ES.xlf — estructura XLIFF
xml
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <file original="src/Resources/translations/default/Modules.Mymodule.Admin.en-US.xlf"
        source-language="en-US"
        target-language="es-ES"
        datatype="plaintext">
    <header>
      <tool tool-id="crowdin" tool-name="Crowdin" />
    </header>
    <body>
      <trans-unit id="MiTexto">
        <source>My text</source>
        <target>Mi texto</target>
      </trans-unit>
      <trans-unit id="GuardarConfiguracion">
        <source>Save configuration</source>
        <target>Guardar configuracion</target>
      </trans-unit>
      <trans-unit id="ConParametros">
        <source>Hello %name%, you have %count% messages.</source>
        <target>Hola %name%, tienes %count% mensajes.</target>
      </trans-unit>
    </body>
  </file>
</xliff>
Descargar en Markdown Pensado para pegar en ChatGPT, Claude u otra IA. Incluye solo el contenido de esta pagina.