TL; DR: Si usa cadenas que están en el tema principal, exactamente como se usan en el tema principal, no necesita tener un dominio de texto para el tema secundario.
Pero si usa cadenas que no se usan en el tema principal, para hacerlas traducibles, necesitará otro dominio de texto con archivos de traducción relacionados ( .mo
).
Flujo de trabajo de traducción
Cuando WordPress encuentra una cadena en una función de traducción:
- Comprueba si se ha cargado una traducción para el dominio de texto requerido (a través de
load_plugin_textdomain
o load_theme_textdomain
o load_textdomain
), si es así, vaya al punto 3.
- Comprueba si la carpeta de traducciones (de forma predeterminada
wp-content/languages
) contiene un archivo de dominio de texto coincidente. El archivo de dominio de texto coincidente es "{$domain}-{$locale}.mo"
, donde $domain
es el dominio de texto de la cadena a traducir y $locale
es la configuración regional actual del sitio web. Si no se encuentra ese archivo, se devuelve la cadena original, de lo contrario se carga y WP se reenvía al siguiente punto.
- Cuando se carga el dominio de texto, WP busca si la cadena requerida está contenida en ese archivo, si no se devuelve la cadena original, de lo contrario, WP avanza al siguiente punto.
- Si la cadena traducida encontrada necesita alguna resolución singular / plural (por ejemplo, cuando se usa
_n()
) esas están hechos. De lo contrario, WP avanza al siguiente punto.
- Los enganches de filtro se aplican a la cadena traducida (consulte enlace ) y finalmente se devuelve el resultado.
Entonces?
Cuando usa el dominio de texto del tema principal en la función de traducción del tema secundario (asumiendo que el tema principal se envía y carga el archivo de dominio de texto, o tiene un archivo de traducción en la carpeta de traducciones), WordPress llegará al punto 3. en la lista anterior, y si la cadena está disponible en el archivo (porque se usa en el tema principal) se traducirá, de lo contrario no será así.
Significa que las cadenas personalizadas en el tema principal necesitan un archivo de traducción propio.
En teoría, es posible usar el dominio de texto principal en otro archivo de traducción, porque WordPress es capaz de cargar más veces el mismo dominio de texto, "fusionándolos", pero eso tiene problemas porque solo un archivo puede existir en el formato "{$domain}-{$locale}.mo"
en las carpetas de traducción (consulte el punto 2. en la lista anterior).
Entonces, en conclusión, la única forma viable de hacer que un tema secundario sea traducible, si contiene cadenas que no se usen en el tema principal, es usar su propio dominio de texto y su propio archivo de traducción.