__
(двойное подчеркивание) - базовая функция перевода. Он переводит строку и возвращает ее в виде строки.
_e
делает то же самое __
, но эхо - результат немедленно.
_x
это контекстная функция перевода. У него есть второй вариант предоставления контекста людям, которые делают перевод.
_ex
такой же, как _x
, но эхо результат.
Пример использования _x
:
$string = _x( 'Buffalo', 'an animal', 'plugin-domain' );
$string = _x( 'Buffalo', 'a city in New York', 'plugin-domain' );
$string = _x( 'Buffalo', 'a verb meaning to confuse somebody', 'plugin-domain' );
Иногда одна и та же строка может отличаться на других языках. Предоставление контекста для переводчиков может помочь им выбрать правильные слова.
Функции быстрого доступа:
esc_attr__
: Эквивалентно, __
но также пропускает результат esc_attr
.
esc_html__
: Эквивалентно, __
но также пропускает результат esc_html
.
esc_attr_e
: Эквивалентно, _e
но также пропускает результат esc_attr
.
esc_html_e
: Эквивалентно, _e
но также пропускает результат esc_html
.
esc_attr_x
: Эквивалентно, _x
но также пропускает результат esc_attr
.
esc_html_x
: Эквивалентно, _x
но также пропускает результат esc_html
.
_n
является обработчиком множественного числа Пример:
$string = sprintf( _n(
'You have %d taco.',
'You have %d tacos.',
$number,
'plugin-domain'),
$number );
В этом примере есть два способа сказать количество тако, в зависимости от того, является ли он единственным или нет. Первое использование $ number сообщает _n
функции, какую версию использовать. Второе использование $ number происходит в sprintf, чтобы заменить% d фактическим числом в строке.
Не существует эквивалента для функции эха _n
, но есть функция с именем _nx
. Это комбинация _n
и _x
. Плюрализация и контекст.
_n_noop
особенный. Он используется для перевода множественных строк, но на самом деле не выполняет перевод немедленно. Это полезно, если вы хотите, чтобы строки были централизованы, но фактически выполняли работу в другом месте. Функция, которая на самом деле делает работу в другом месте translate_nooped_plural
.
Пример:
$holder = _n_noop('You have %d taco.', 'You have %d tacos.', 'plugin-domain');
// ... later ...
$string = sprintf( translate_nooped_plural( $holder, $count ), $count );
Это не используется много, но может быть удобно для организации. Если вы поместите все свои строки, например, в один файл, а затем будете ссылаться на них в другом месте, это будет невозможно просто _n
, вам нужно что-то вроде _n_noop
этого.
_nx_noop
такой же, как _n_noop
, но также может принимать контекст для переводчиков, так же, как _x
.
Обратите внимание, что вы можете поместить домен либо в вызов функции noop, либо в вызов функции translate_nooped_plural. Все, что имеет больше смысла для вашей организации. Если у обоих есть домен, побеждает тот, который был передан вызову noop.
number_format_i18n
является эквивалентом встроенного в PHP number_format , но он добавляет в обработку такие вещи, как десятичные дроби и т. д., которые отличаются в других локалях.
date_i18n
является эквивалентом встроенной даты в PHP, а также со всей необходимой обработкой. Названия месяцев, дней и т. Д
Кроме того, никогда не нарушайте законы . Просто напоминание. :)