Переводимые строки из дочерней темы, не включенные в файлы перевода - PullRequest
0 голосов
/ 09 сентября 2018

Так что я думаю, что у меня есть все настройки для перевода, но мои переводимые строки не загружаются в .po или .pot.

В functions.php:

function opportune_child_setup() {
    load_child_theme_textdomain( 'opportune', get_stylesheet_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'opportune_child_setup' );

В style.css:

/*
[...]
Text Domain: opportune
*/

Переводимая строка (пример):

<label for="custom_field"><?php _e( "Company Tax ID", 'opportune' ) ?></label>

Каталог файлов перевода:

themes/opportune-child/languages/opportune.pot
themes/opportune-child/languages/pt_PT.mo
themes/opportune-child/languages/pt_PT.po

Файлы .po и .mo былисозданный с помощью Poedit, основанный на конторских файлах в родительской теме (которая находится в эквивалентной папке:)

themes/opportune/languages/opportune.pot

Я даже жестко запрограммирован в моем wp-config.php (хотя он уже установлен в WP Admin):

define('WP_LANG', 'pt_PT');

Что я делаю, чтобы увидеть, была ли строка загружена в .po или .pot: я захожу на страницу с переводимыми строками, делаю жесткое обновление (удаляю кеш), загружаю .poи .pot, а затем искать строку.Ни одна из строк никогда не загружалась.

Я использовал Плагин Loco Translate , я думаю, с правильными конфигурациями, но все еще без результата.

Что яотсутствует?Большое вам спасибо!

1 Ответ

0 голосов
/ 10 сентября 2018

Во-первых, дочерние темы не должны использовать тот же текстовый домен, что и родительская тема.

Если вы используете только строки из родительской темы, просто переведите родительскую. Но если вы добавляете новые строки в свои собственные файлы PHP, используйте отдельный текстовый домен.

Так что, если «Идентификатор налога на компанию» является строкой, которую вы добавили, и ее нет в родительской, убедитесь, что она находится в текстовом домене, соответствующем папке дочерней темы, то есть «Propere-Child».


Во-вторых, как вы говорите, строки не "автоматически загружаются в po-файлы". Вы создаете свой файл .pot, извлекая строки из ваших файлов PHP. Затем вы основываете свои .po файлы из этого. Прочитайте о интернационализации WordPress , чтобы понять этот процесс.

Не создавайте файлы "на основе opporint.pot", потому что родительская тема является отдельной сущностью. Вам нужно только извлечь и загрузить строки, которые вы определили для своего ребенка. Пусть родитель позаботится о себе сам.


Здесь есть руководство по переводу дочерних тем: https://localise.biz/wordpress/plugin/child-themes

Полное раскрытие: я автор.

...