__
(подвійне підкреслення) - це основна функція перекладу. Він перекладає рядок і повертає його як рядок.
_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 );
У цьому прикладі є два способи сказати кількість тако, залежно від того, чи є однина чи ні. Перше використання числа $ вказує _n
функції, яку версію використовувати. Друге використання числа $ відбувається в 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 , але він додає в обробці такі речі, як десяткові знаки тощо, які відрізняються в інших регіонах.
date_i18n
є еквівалентом вбудованої дати PHP , з усіма відповідними обробками і там. Назви місяців, назви днів тощо.
Також ніколи не порушуйте закони . Просто нагадування. :)