Интернационализация

Этот документ имеет целью дать обзор возможностей как для интернационализации, так и для локализации при разработке с Гутенбергом.

PHP

В течение многих лет WordPress предоставляет необходимые инструменты и функции для интернационализации плагинов и тем. Это включает в себя вспомогательные функции, такие как __()и аналогичные.

Общие методы

  • __( 'Hello World', 'my-text-domain' ): Перевести определенную строку
  • _x( 'Block', 'noun', 'my-text-domain' ): Перевести определенную строку с некоторым дополнительным контекстом.
  • _e( 'Hello World', 'my-text-domain' ): Перевести и напечатать определенную строку.
  • esc_html__( 'Hello World', 'my-text-domain' ): Перевести определенную строку и избежать ее для безопасного использования в выводе HTML.
  • esc_html_e( 'Hello World', 'my-text-domain' )Перевести определенную строку, избежать ее для безопасного использования в выводе HTML и распечатать.
  • _n( '%s Comment', '%s Comments', $number, 'my-text-domain' ): Переведите и получите форму единственного или множественного числа на основе предоставленного номера. 
    Обычно используется в сочетании с sprintf()и number_format_i18n().

JavaScript

Исторически wp_localize_script()он использовался для помещения данных PHP на стороне сервера в правильно экранированный нативный объект JavaScript.

Новый редактор вводит новый подход к переводу строк для редактора через новый пакет под названием @wordpress/i18n.

Новый пакет скриптов зарегистрирован в WordPress как wp-i18nи должен быть объявлен как зависимость во время wp_register_script()и импортирован как глобальный объект Window как wp.i18n.

В зависимости от вашего рабочего процесса разработчика, вы можете использовать wp i18n make-potкоманду WP-CLI или инструмент сборки для вызова Babel @wordpress/babel-plugin-makepotдля создания необходимого файла перевода. Последний подход интегрируется с Babel для извлечения методов I18N.

Общие методы в wp.i18n (могут выглядеть аналогично)

  • setLocaleData( data: Object, domain: string ): Создает новый экземпляр I18N, предоставляющий данные перевода для домена.
  • __( 'Hello World', 'my-text-domain' ): Перевести определенную строку
  • _n( '%s Comment', '%s Comments', numberOfComments, 'my-text-domain' ): Переведите и получите форму единственного или множественного числа на основе предоставленного номера.
  • _x( 'Default', 'block style', 'my-text-domain' ): Перевести определенную строку с некоторым дополнительным контекстом.
  • sprintf(): Порт JavaScript функции PHP с тем же именем.

Загрузка переводов

WordPress 5.0 представляет новую функцию, вызываемую wp_set_script_translations( 'my-script-handle', 'my-text-domain' )для загрузки файлов перевода для данного дескриптора скрипта.

Вы можете узнать больше об этом в заметке разработчика JavaScript I18N .

Scroll to top