Статьи

Интернационализация для вашей темы WordPress

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

Как настроить WordPress для разных языков

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

Переводы

Затем вы можете нажать на версию WordPress и экспортировать файл .mo как показано на рисунке ниже.

Экспорт .mo файлов

Как только вы загрузите файл .mo , вам нужно будет загрузить его в папку wp-content/languages вашей установки WordPress. Затем вы можете перейти к настройкам -> Общие в вашем администраторе WordPress. Там вы сможете увидеть языковые опции, которые вы поместили в папку wp-content/languages как показано ниже на картинке. Пожалуйста, выберите язык, на который вы хотите сменить сайт, и нажмите «Сохранить изменения».

настройки

Загрузка текстового домена в вашей теме

Первым шагом к интернационализации вашей темы является создание темы. Вы можете начать, в этом примере, создав дочернюю тему темы двадцать семнадцать. Чтобы создать wp-content/themes/wpinternationlizationtheme тему, сначала создайте папку wp-content/themes/wpinternationlizationtheme . В этой папке добавьте файл style.css со следующим содержимым:

  

Этот файл определяет дочернюю тему с именем wpinternationlizationtheme. Это детская тема двадцать семнадцати. Выше каждое поле является стандартным полем, которое мы определяем для дочерней темы. Поле Text Domain - это поле, которое определяет уникальное имя для текстового домена этой темы. Эта тема должна загружать файлы перевода с этим ключом в качестве уникального идентификатора.

Создайте файл functions.php со следующим кодом

 <?php function wpinternationlizationtheme_enqueue_styles() { $parent_style = 'parent-style'; wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ), wp_get_theme()->get('Version') ); } add_action( 'wp_enqueue_scripts', 'wpinternationlizationtheme_enqueue_styles' ); ?> 

Приведенный выше код загружает стили родительской темы (в данном случае двадцать семнадцать). Затем загружаются стили из дочерней темы.

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

Для этого добавьте следующий код в ваш functions.php :

 function wpinternationlizationtheme_setup(){ $domain = 'wpinternationlizationtheme'; // wp-content/languages/wpinternationlizationtheme/de_DE.mo load_theme_textdomain( $domain, trailingslashit( WP_LANG_DIR ) . $domain ); // wp-content/themes/wpinternationlizationtheme/languages/de_DE.mo load_theme_textdomain( $domain, get_stylesheet_directory() . '/languages' ); // wp-content/themes/wpinternationlizationtheme/languages/de_DE.mo load_theme_textdomain( $domain, get_template_directory() . '/languages' ); } add_action( 'after_setup_theme', 'wpinternationlizationtheme_setup' ); 

Приведенный выше код after_setup_theme действию after_setup_theme . В этом действии вы загружаете текстовый домен для темы. Это делается с помощью функции load_theme_textdomain . Эта функция настроена для поиска файлов .mo в следующих каталогах:

 - Languages directory - Child theme directory - Parent theme directory 

Функции WordPress для интернационализации

После настройки текстового домена взгляните на функции, которые вы можете использовать для интернационализации в WordPress. Есть в первую очередь две функции, которые вы можете использовать. Первый __ . Эта функция принимает два аргумента: первый - строка, а второй - домен. Затем эта функция возвращает соответствующую локализованную строку в зависимости от выбранного языка.

Поэтому, если вы хотите добавить некоторый текст в конце каждого сообщения, но также хотите, чтобы он был локализован в зависимости от выбранного языка, добавьте следующий код в ваш functions.php :

 function wpinternationlizationtheme_after($content) { return $content . __('Read more', 'wpinternationlizationtheme'); } add_filter('the_content', 'wpinternationlizationtheme_after'); 

Другая функция - _e . Это принимает те же два аргумента, что и __ . Эта функция отображает локализованный текст непосредственно на странице, а не просто возвращает его.

Так, например, если вы хотите добавить сообщение footer.php колонтитула, которое должно отображать локализовано, то вы должны создать footer.php со следующим содержанием:

 <?php _e('This site is powered by WordPress','wpinternationlizationtheme'); ?> 

Создание файлов .mo

После того, как вы создали код, необходимый для интернационализации, вы захотите создать файлы локализации. Есть много инструментов для создания .mo файлов. В этой статье вы увидите один из популярных poedit . Вы можете скачать poedit для вашей операционной системы с https://poedit.net/download .

После загрузки poedit вы можете выбрать «file-> New Catalog», чтобы увидеть следующий экран:

Экран информации о проекте

На этом экране вы можете ввести основную информацию о проекте. Следующая вкладка должна дать путь к коду, который нужно проанализировать, чтобы найти строки, которые нужно локализовать, как показано ниже:

Настройки пути

Следующая вкладка позволяет вам вводить ключевые слова, которые нужно искать, чтобы получить все строки, которые нуждаются в локализации. Поскольку вы уже использовали две функции __ и _e в приведенных выше примерах, добавьте их на этой вкладке.

Настройки ключевых слов

Как только вы это сделаете, инструмент будет искать все строки, которые нуждаются в локализации, как показано на рисунке ниже.

Экран локализации

Теперь вы можете добавить локализацию для каждой строки и затем нажать «Сохранить», чтобы сохранить файл в wp-content/themes/wpinternationlizationtheme/languages/fr_FR.mo

Теперь, наконец, если вы измените язык на «французский», вы должны увидеть свои строки, локализованные на французском языке, на главном сайте.

Вывод

WordPress является одной из самых популярных платформ CMS. Вы можете узнать о разработке темы WordPress с относительной легкостью. Пользователи сайтов на темы WordPress огромны по количеству и разнообразию. Следовательно, необходимо, чтобы ваша тема имела широкий спектр доступных языков. Во многих отраслях абсолютно необходимо, чтобы ваш сайт WordPress мог обслуживать аудиторию из разных регионов и стран.

Подготовка вашей темы к интернационализации может стать ключевым фактором успеха. WordPress API для интернационализации прост в использовании. Это позволяет очень легко локализовать вашу тему без изменения каких-либо файлов кода. Итак, получайте удовольствие от интернационализации вашей следующей темы WordPress и расскажите нам о своем опыте в комментариях ниже!