Интернационализация и функции, которые ее используют
Я создаю новый дизайн в WP, и поэтому технически это тема, однако это только дизайн для одного сайта и не будет темой, которую кто-либо может использовать, и поэтому я не хочу беспокоиться об интернационализации.
Я заметил, что WP использует интернационализацию во многих функциях, передавая textdomain
через такие функции, как..
_e( 'Featured', 'twentyeleven' );
esc_attr__( 'Permalink to %s', 'twentyeleven' )
Как мне сказали, что удалять textdomain
плохая идея, так как это может привести к странным результатам, но если я не беспокоясь об интернационализации, что мне делать?
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()
вообще, и вам также не нужно будет беспокоиться о текстовых доменах.
Если вы не распространяете его, то вам действительно не нужно беспокоиться о его интернационализации, если только клиент не захочет сделать его переводимым.
В этом случае вам не нужно использовать _e()
или __()
или любые другие подобные функции. И в этом случае текстовый домен вообще не имеет никакого значения.
Такие темы, как twentyeleven и подобные, распространяются среди миллионов людей. Перевод их гораздо важнее.