TechBlogSD - Все для WordPress и WEB разработки
WEB и WordPress инструкции, новости, обзоры тем и плагинов

Как интернационализировать WordPress для локализации

320

Вот Это Да! Если вам интересно, что означает этот пост, не волнуйтесь, вы не единственный! Как вы знаете, WordPress переведен на множество языков, но очень часто плагины или темы содержат некоторые строки, которые не переведены на ваш родной язык, и это более чем разочаровывает: это раздражает.

Так почему это происходит? Видимо потому, что разработчики не используют должную интернационализацию. То есть использование определенных функций, включенных в WordPress, которые позволяют легко переводить все.

Шаг 1. Загрузка файлов перевода

Самый первый шаг при создании темы – загрузить файлы перевода, есть много способов сделать это, но самый простой – использовать этот код:

add_action('after_setup_theme', 'my_theme_setup'); function my_theme_setup(){ load_theme_textdomain('my_theme', get_template_directory(). '/languages'); }

При работе над плагином это примерно то же самое:

function myplugin_init() { load_plugin_textdomain( 'my-plugin', false, dirname( plugin_basename( __FILE__) ) ); } add_action('plugins_loaded', 'myplugin_init');

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

Шаг 2 – Перевод строк

Когда вам нужна переводимая строка, вам нужно включить содержащуюся строку в функцию. Наиболее часто используемые функции – это e() и _ (). Вот пример использования ():

Что эта функция возвращает содержащуюся строку, но не печатает ее. Вот почему нам нужно использовать эхо. Но функция _e () печатает строку, содержащуюся, без использования echo или print:

Шаг 3 – Перевод строки, содержащей переменные

Но иногда ваша строка может содержать переменные. Использование e () и _ () не работает. Итак, в этом случае вам понадобятся функции printf () и sprintf (). Как мы видели ранее, printf () отображает строку, а sprintf () сохраняет ее.

Шаг 4 – Строки с более чем одной переменной

В случае, если строка содержит более одной переменной, используйте следующий код:

printf( __( 'I bought %1$s books, and %2$s tomatoes.' ), $books_count, $tomatoes_count );

Шаг 5 – Работа с множественным числом

В приведенном выше примере я купил книги и помидоры. Но что я купил только одну книгу? Код напечатает «1 книгу», а это неверно. Итак, чтобы иметь дело с множественным числом, есть еще одна функция, называемая _n (). Вот как им пользоваться:

printf( _n( 'i bought %d book.', 'i bought %d books.', $books_count ), $books_count );

Шаг 6 – Контексты

Иногда слово может иметь разное значение в зависимости от контекста. Затем вы можете использовать эти функции _x () и _ex (). Второй выводит строку, в то время как первый сохраняет только ее содержимое. У этих функций есть второй аргумент, объясняющий контекст. Например, если слово используется дважды на странице, но имеет разные значения в содержимом и на боковой панели, ваш код будет выглядеть примерно так:

/* APPARENT (obvious vs. not clear) — It was apparent to all, Joe was the apparent loser. Two different contexts for the word "apparent" */ // In the content echo _x( 'apparent', 'in_content', 'my-plugin-domain' ); // In the sidebar echo _x( 'apparent', 'in_sidebar', 'my-plugin-domain' );

Шаг 7 – интернационализация Javascript

И, наконец, когда у вас есть строка, которую нужно переводить в файле javascript, вы можете использовать метод, определенный в кодексе, используя wp_localize_script ().

Просто замените свои собственные переменные, и все готово!

Источник записи: https://www.wpexplorer.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее