TL; DR: Se você usar cadeias de caracteres que estão no tema pai, exatamente como elas são usadas no tema pai, não precisará ter um domínio de texto para o tema filho.
Mas se você usar strings que não são usadas no tema pai, para torná-las traduzíveis, precisará de outro domínio de texto com .mo
arquivos de tradução ( ) relacionados .
Fluxo de trabalho de tradução
Quando o WordPress encontra uma string em uma função de tradução, ela:
- Verifica se uma tradução para o domínio de texto necessário foi carregada (via
load_plugin_textdomain
ou load_theme_textdomain
ou load_textdomain
); se assim for, vá para o ponto 3.
- Verifica se a pasta de traduções (por padrão
wp-content/languages
) contém um arquivo de domínio de texto correspondente. O arquivo de domínio de texto correspondente é "{$domain}-{$locale}.mo"
onde $domain
está o domínio de texto da sequência a ser traduzida e $locale
é a localidade atual do site. Se esse arquivo não for encontrado, a string original será retornada, caso contrário, ela será carregada e o WP encaminhará para o próximo ponto.
- Quando o domínio de texto é carregado, o WP verifica se a sequência necessária está contida nesse arquivo, se não a sequência original for retornada, caso contrário, o WP encaminha para o próximo ponto.
- Se a string traduzida encontrada precisar de alguma resolução singular / plural (por exemplo, quando estiver usando
_n()
), isso será feito. Caso contrário, o WP encaminha para o próximo ponto.
- Os ganchos de filtro são aplicados na string traduzida (consulte https://developer.wordpress.org/?s=gettext&post_type%5B%5D=wp-parser-hook ) e, finalmente, o resultado é retornado.
Assim?
Quando você usa o domínio de texto do tema pai na função de tradução do tema filho (supondo que o tema pai seja enviado e carregue o arquivo de domínio de texto ou ele tenha um arquivo de tradução na pasta de traduções), o WordPress chegará ao ponto 3. na lista acima e, portanto, se a string está disponível no arquivo (porque usada no tema pai) será traduzida, caso contrário não.
Isso significa que as strings personalizadas no tema pai precisam de um arquivo de tradução próprio.
Em teoria, é possível usar o domínio de texto pai em outro arquivo de tradução, porque o WordPress é capaz de carregar mais vezes o mesmo domínio de texto, "mesclando-os", mas isso tem problemas porque apenas um arquivo pode existir no formato "{$domain}-{$locale}.mo"
nas pastas de tradução ( veja o ponto 2. na lista acima).
Portanto, em conclusão, a única maneira viável de tornar um tema filho traduzível, se ele contiver cadeias não usadas no tema pai, é usar o próprio domínio de texto e o próprio arquivo de tradução.
__('background-color', 'parent-text-domain')
você pode usar o mesmo no tema filho sem precisar fazer mais nada para traduzi-lo.Se o tema filho contiver cadeias diferentes do tema principal.
A maneira correta de usar um domínio de texto diferente em um tema filho é a
load_child_theme_textdomain()
função agora. Você pode usá-lo da mesma maneira que outras funções de carregamento _..._ textdomain.Cuidado!
fonte