Этот документ имеет целью дать обзор возможностей как для интернационализации, так и для локализации при разработке с Гутенбергом.
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 .