TL; DR: Se você usar strings no tema pai, exaclty como elas são usadas no tema pai, não será necessário 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, será necessário outro domínio de texto com arquivos de tradução relacionados ( .mo
).
Fluxo de trabalho de tradução
Quando o WordPress encontra uma string em uma função de tradução:
- Verifica se uma tradução para o domínio de texto obrigatório foi carregada (via
load_plugin_textdomain
ouload_theme_textdomain
ouload_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 texto com texto correspondente. O arquivo de texto de domínio correspondente é"{$domain}-{$locale}.mo"
, em que$domain
é o domínio de texto da string a ser traduzido e$locale
é a localidade atual do site. Se esse arquivo não for encontrado, a string original será retornada, caso contrário, ele será carregado e o WP encaminhará para o próximo ponto. - Quando o textdomain é carregado, o WP verifica se a string necessária está contida nesse arquivo, se não a string original é 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, ao usar
_n()
), está feito. Caso contrário, WP encaminha para o próximo ponto. - Ganchos de filtro são aplicados na string traduzida (consulte enlace ) e finalmente o resultado é retornado.
Então?
Quando você usa o domínio de texto do tema pai na função de tradução do tema filho (assumindo que o tema pai é enviado e carrega o arquivo texto-domínio ou tem um arquivo de tradução na pasta de traduções), o WordPress chegará ao ponto 3. na lista acima, e assim, se a string estiver disponível no arquivo (porque é usada no tema pai), ela será traduzida, caso contrário, não será assim.
Isso significa que as strings personalizadas no tema pai precisam do próprio arquivo de tradução.
Em teoria, é possível usar textdomain pai em outro arquivo de tradução, porque o WordPress é capaz de carregar mais vezes o mesmo domínio de texto, "fundindo-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).
Assim, concluindo, a única maneira viável de transformar um tema filho em traduzível, se ele contiver strings não usadas no tema pai, é usar o próprio domínio de texto e o próprio arquivo de tradução.