Как работает printf (__ ()); работай?

12

Сегодня я работаю над темой, чтобы лучше понять WordPress и шаблоны. Я обнаружил это:

<?php 
printf( 
    __('Designed by %s', 'Anyword'), 
    '<a href="http://www.example.com">Blub</a>'
); 
?>

Я знаю, что это показывает "Designed by Blub" (где Blub связан). Но что __()значит или почему есть вставка строки? Зачем это Anyword?

Может кто-нибудь точно объяснить эту строчку для меня?

Денни Мюллер
источник

Ответы:

8

Он используется для перевода текста .

Второй аргумент - это своего рода пространство имен (здесь оно называется доменом) для получения перевода (например, из выделенного файла или чего-то еще).

Так что Anywordздесь, должен быть парень за шаблоном, или компания или что-то еще, что может быть доменом / пространством имен.

редактировать:

Документ из Wordpress дает больше объяснений о том, как интернационализировать плагин :


Добавьте это в код плагина, чтобы убедиться, что языковые файлы загружены:

load_plugin_textdomain('your-unique-name', false, basename( dirname( __FILE__ ) ) . '/languages' );

Чтобы получить строку, просто используйте, __('String name','your-unique-name');чтобы вернуть перевод или _e('String name','your-unique-name');повторить перевод. Затем переводы перейдут в папку / плагин вашего плагина.


Для вашего плагина / темы, your-unique-nameкажется Anyword.

j0k
источник
В теме есть несколько языковых файлов. Как аргумент узнает, что использовать их только для «Anyword»?
Я обновил свой ответ лучшей частью документа WP.