Название twentyeleven в функциях php
-
Здравствуйте.
В теме twentyeleven крайне часто встречается само название twentyeleven в функциях php.
К примеру:
<h3 class="assistive-text"><?php _e( 'Post navigation', 'twentyeleven' ); ?></h3>Так вот собственно что такое ‘twentyeleven’?
-
Вся эта конструкция —
_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 ведь.Спасибо за терпение ко мне.
Тема «Название twentyeleven в функциях php» закрыта для новых ответов.