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

2 июл. 2012 г., 17:56:39
Просмотры: 21.8K
Голосов: 12

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

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

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

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

0
Все ответы на вопрос 1
2

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

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

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

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

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


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

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

Для получения строки просто используйте __('String name','your-unique-name'); для возврата перевода или _e('String name','your-unique-name'); для вывода перевода. Переводы должны располагаться в папке /languages вашего плагина.


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

2 июл. 2012 г. 18:03:01
Комментарии

В теме есть несколько языковых файлов. Как аргумент понимает, что их нужно использовать только для 'Anyword'?

User User
2 июл. 2012 г. 18:17:14

Я обновил свой ответ, добавив более подходящую часть из документации WordPress.

User User
2 июл. 2012 г. 18:21:03