Вся эта конструкция — _e( 'Post navigation', 'twentyeleven' )
— выводит фразу, которая задана в файле локализации темы.
Спасибо за ответ.
Меня интересует, что вообще значит ‘twentyeleven’ чуть ли не в каждой функции?
Без привязки к конкретному, мной приведенному, примеру.
Многие авторы дают собственные названия своим функциям производными от своего имени или ника, во-первых это красиво, во-вторых так не произойдет конфликта имен.
Давайте по полочкам 🙂
<?php _e( ‘Post navigation’, ‘twentyeleven’ ); ?>
где:
_e — название функции
‘Post navigation’ — константа
‘twentyeleven’ — это тогда что?
Я отвечу ссылкой на кодекс.
Тут дело не в конкретно функции _e
Вот еще один из МНОЖЕСТВА примеров:
<?php edit_post_link( __( 'Edit', 'twentyeleven' )?>
Что такое 'twentyeleven'
?
Кстати в кодексе (ссылка выше), функция _e
описана так:
<?php _e( $text, $domain ) ?>
Получается, что переменная $domain = twentyeleven
Верно?
Верно. WordPress Translation API
$text Text to translate.
$domain Domain to retrieve the translated text.
Все равно остается неясность у меня.
А что означает 'twentyeleven'
во втором случае:
<?php edit_post_link( __( 'Edit', 'twentyeleven' )?>
?
А что означает
Пока что это означает syntax error.
function twentytwelve_setup() {
/**
* Make Twenty Twelve available for translation.
* Translations can be added to the /languages/ directory.
* If you're building a theme based on Twenty Twelve, use a find and replace
* to the name of your theme in all the template files.
*/
load_theme_textdomain( 'twentytwelve', get_template_directory() . '/languages' );
Может так понятнее будет… Функция load_theme_textdomain
«вешается» на twentytwelve, а потом все слова и фразы, которые могут быть переведены привязаны к $domain = twentytwelve
Человека видать смутило множество «_e» «__» при переводе.. Там все ограничено фантазией, даже так прокатит (только при генерации pot внести _pupsik и все):
<?php _pupsik( $text, $domain ) ?>
wikicms, кажется начал понимать.
Получается, что
<?php edit_post_link( __( 'Edit', 'twentyeleven' )?>
равносильно
<?php edit_post_link( __( 'Edit', load_theme_textdomain( 'twentyeleven', get_template_directory() . '/languages' ) )?>
А вот насчет, что такое ( __(
не совсем еще понял
что такое ( __(
При генерации файла для перевода, например, с помощью poedit.net ищутся все фразы которые начинаются с _e, __, gettext, хоть _пупсик, из этих фраз он составляет файл, который потом и переводят на другой язык, с помощью этой же программы.. прочитайте у них на сайте, что такое gettext
И согласно совету:
If you’re building a theme based on Twenty Twelve, use a find and replace to the name of your theme in all the template files.
получается если я создаю свою тему основанную на twentyeleven, мне нужно во всех файлах заменить twentyeleven на my_theme ?
И отсюда следует еще один вопрос.., а если не делать этого?
Будет проще поддерживать обновления twentyeleven ведь.
Спасибо за терпение ко мне.