it-roy-ru.com

Сделайте свою тему готовой к переводу

Я создал свою собственную тему, теперь я хочу сделать ее переводимой.

Я сделал два файла:

theme.pot

msgid "know_more"
msgstr "Vuoi saperne di più?"

it_IT.po

msgid "know_more"
msgstr "Vuoi saperne di più?"

Тогда в индексном файле темы я написал:

<h2><?php _e('know_more',''); ?></h2>

Но когда я запускаю сайт появляется просто:know_more

2
WalterV

Чтобы сделать это правильно, вам нужно сгенерировать действительный файл .mo и загрузить текстовый домен в вашей теме functions.php:

function wpse222346_localize_theme() {

    load_theme_textdomain( 'your_theme_domain', get_template_directory() . '/languages' );

}

add_action( 'after_setup_theme', 'wpse222346_localize_theme' );

Вы можете проверить кодекс WordPress для получения дополнительной информации о функции load_theme_textdomain: https://codex.wordpress.org/Function_Reference/load_theme_textdomain

Затем вы должны вызывать переводимые строки, используя текстовую область вашей темы:

<h2><?php _e( 'know_more', 'your_theme_domain' ); ?></h2>

Кроме того, настоятельно рекомендуется использовать инструмент для автоматизации создания файлов POT. Это делает ремонтопригодность намного проще. Есть много опций, таких как Poedit , несколько онлайн-генераторов, makepot.php и даже очень хороший плагин для этого с панели управления WordPress, называемый LocoTranslate . Большинство из них также помогут вам создавать файлы .PO и .MO.

3
Luis Sanz