Интернационализация и функции, которые ее используют


Я создаю новый дизайн в WP, и поэтому технически это тема, однако это только дизайн для одного сайта и не будет темой, которую кто-либо может использовать, и поэтому я не хочу беспокоиться об интернационализации.

Я заметил, что WP использует интернационализацию во многих функциях, передавая textdomain через такие функции, как..

_e( 'Featured', 'twentyeleven' );
esc_attr__( 'Permalink to %s', 'twentyeleven' )

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

Author: Brett, 2012-09-26

2 answers

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

Если тема будет использоваться только вами, интернационализация не имеет большого значения. Если, конечно, в будущем вы не захотите использовать другую языковую версию своей темы.

Тем не менее, это хорошая идея - всегда практиковать интернационализацию своей работы. Таким образом, если ты когда-нибудь изменишься ваше мнение о теме (т.е. решение выпустить ее позже) у вас уже есть проделанная работа.

Чаще всего это просто замена нескольких строк кода:

echo 'Some string';

Становится:

_e( 'Some string', 'your-theme-textdomain' );

И:

return 'Some string';

Становится:

__( 'Some string', 'your-theme-textdomain' );

Как мне сказали, что удалять домен textdomain - плохая идея, так как это может привести к странным результатам.

Если вы опустите домен textdomain из __() или _e(), WordPress будет считать, что вы используете домен по умолчанию текстовый домен, который поставляется с ядром. И да, будут наблюдаться некоторые странные результаты, но они не так уж плохи.

Например, WordPress внутренне может перевести "Опубликовать" и "Добавить новую", но не "Моя супер крутая тема". Когда ваша тема будет переведена, все, что вы указали в "Опубликовать" и "Добавить новое" без текстового домена, будет переведено, но "Моя супер крутая тема" не будет.

Если я не беспокоюсь об интернационализации, что мне делать?

Если вы не собираетесь беспокоиться о интернационализация вообще, тогда просто не используйте __() или _e() вообще, и вам также не нужно будет беспокоиться о текстовых доменах.

 1
Author: EAMann, 2012-09-26 15:40:00

Если вы не распространяете его, то вам действительно не нужно беспокоиться о его интернационализации, если только клиент не захочет сделать его переводимым.

В этом случае вам не нужно использовать _e() или __() или любые другие подобные функции. И в этом случае текстовый домен вообще не имеет никакого значения.

Такие темы, как twentyeleven и подобные, распространяются среди миллионов людей. Перевод их гораздо важнее.

 1
Author: Otto, 2012-09-26 15:28:45