TL; DR: si usa cadenas que están en el tema principal, por ejemplo, cómo 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 que sean traducibles, necesitará otro dominio de texto con .mo
archivos de traducción ( ) relacionados .
Flujo de trabajo de traducción
Cuando WordPress encuentra una cadena en una función de traducción, esta:
- Comprueba si se ha cargado una traducción para el dominio 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 (por defecto
wp-content/languages
) contiene un archivo de dominio de texto coincidente. El archivo de dominio de texto coincidente es "{$domain}-{$locale}.mo"
donde $domain
está 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 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 reenvía al siguiente punto.
- Si la cadena traducida encontrada necesita alguna resolución singular / plural (p. Ej., Cuando se usa
_n()
), ya está. De lo contrario, WP reenvía al siguiente punto.
- Los ganchos de filtro se aplican en la cadena traducida (consulte https://developer.wordpress.org/?s=gettext&post_type%5B%5D=wp-parser-hook ) 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 (suponiendo 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 así 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 puede existir un archivo en el formato "{$domain}-{$locale}.mo"
en las carpetas de traducción ( ver punto 2. en la lista anterior).
En conclusión, la única forma viable de hacer que un tema secundario sea traducible, si contiene cadenas que no se usan en el tema principal, es usar un dominio de texto propio y un archivo de traducción propio.
__('background-color', 'parent-text-domain')
, puede usar el mismo tema secundario sin necesidad de hacer nada más para traducirlo.Si el tema de su hijo contiene cadenas diferentes que el tema principal.
La forma correcta de usar un dominio de texto diferente en un tema secundario es la
load_child_theme_textdomain()
función ahora. Puede usarlo de la misma manera que otras funciones de carga _..._ textdomain.¡Tener cuidado!
fuente