Что такое текстовый домен темы (Theme textdomain)?

11 дек. 2012 г., 18:43:09
Просмотры: 41.8K
Голосов: 24

Я обнаружил, что любая тема WordPress использует эти функции, но я не понимаю, в чем их цель и что означает в данном случае 'themify'? Вот несколько примеров из Themify functions.php:

1).

load_theme_textdomain( 'themify', TEMPLATEPATH.'/languages' );

2).

if (function_exists('register_nav_menus')) {
        register_nav_menus( array(
            'main-nav' => __( 'Основная Навигация', 'themify' ),
            'footer-nav' => __( 'Навигация в подвале', 'themify' ),
        ) );
    }

И в файле шаблона:

3). <?php _e( 'Извините, ничего не найдено.', 'themify' ); ?>

И многое другое! Мой вопрос в том, что означает 'themify'? Какова его цель? Могу ли я изменить его или удалить? Для чего нужен этот параметр 'themify'?

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

В данном случае 'themify' — это определённый текстовый домен темы, используемый для создания переводимой темы. (Справка Codex: load_theme_textdomain()).

Подготовка темы к переводу требует выполнения нескольких шагов.

  1. Определение текстового домена темы:

    load_theme_textdomain( 'themify', TEMPLATEPATH.'/languages' );
    
  2. Определение переводимых строк в шаблоне.

    Это делается с помощью одной из нескольких функций перевода: __() (для возвращаемых строк), _e() (для выводимых строк) и _x()/_ex() (для строк с контекстом gettext). Существуют и другие, но суть ясна...

    Статическая текстовая строка, такая как <p>Hello world!</p>, оборачивается в соответствующую функцию перевода, например: <p><?php _e( 'Hello World!', 'themify' ); ?></p>, чтобы сделать её доступной для перевода.

  3. Генерация файлов .mo/.po
    справочник по редактированию языковых файлов

11 дек. 2012 г. 18:56:35
Комментарии

@SokVanrithy, ознакомьтесь с этим вопросом и ответом по поводу работы с файлами .mo/.po. (Chip, я не добавил ссылку в ваш Ответ, так как у вас может быть другое предложение:)

brasofilo brasofilo
11 дек. 2012 г. 21:51:43

@brasofilo, не стесняйтесь добавить её, если хотите. Я считаю, что это выходит за рамки заданного вопроса, но всё равно полезная информация.

Chip Bennett Chip Bennett
11 дек. 2012 г. 21:55:27

Зачем вам это менять? Вы форкаете тему?

Chip Bennett Chip Bennett
12 дек. 2012 г. 05:11:17

Да, я хочу избавиться от них. Я скачал тему с Webdesigndepot, и она вызывает base theme. Я спросил автора, смогу ли я изменить исходный код? Они разрешили, потому что это базовая пустая тема для тех, кто хочет иметь структуру для кастомной темы. Кроме того, это подарок от автора читателям. Мои сомнения такие же, как описано выше!

Sok Vanrithy Sok Vanrithy
12 дек. 2012 г. 09:45:22

Конечно, ты можешь избавиться от них; но и оставить их тоже не помешает. Ты даже можешь изменить textdomain на другую строку, чтобы ссылаться на свою форкнутую тему. Лучшие практики разработки включают в себя создание переводимых тем, поэтому я бы посоветовал не удалять их полностью. Тем не менее, ты точно можешь это сделать, если решишь.

Chip Bennett Chip Bennett
12 дек. 2012 г. 15:20:35

Привет, Chip, где обычно в теме находится вызов load_theme_textdomain? Мне нужно найти текстовый домен для темы, с которой я работаю.

parker.sikand parker.sikand
27 июн. 2013 г. 23:02:32

"...где обычно в теме размещают вызов load_theme_textdomain?" - в functions.php, желательно внутри колбэка, подключённого к хуку after_setup_theme.

Chip Bennett Chip Bennett
28 июн. 2013 г. 01:58:32
Показать остальные 2 комментариев