Как перевести имя шаблона WordPress?

Я знаю, как создавать переводы для тем и шаблонов, как правило, путем генерации .ПО и .например, файлы mo с Poedit. Но поскольку имена шаблонов написаны в комментариях PHP поверх каждого файла шаблона, нет способа перевести это, как я это вижу.

заголовок шаблона WordPress:

/**
 * Template Name: Three columns
 *
 * @package WordPress
 */

имя шаблона каким-то образом анализируется Wordpress и используется для заполнения раскрывающегося списка выбора шаблона при создании страницы.

Итак, мой вопрос: есть способ перевести имя шаблона WordPress? WordPress также ищет какую-либо конкретную переменную, которую я могу установить в своем файле шаблона? или это просто невозможно?

2 ответов


я наткнулся на это совсем недавно. Вот как я обошел это:

во-первых, добавить(если у вас уже нет) Text Domain: mytext_domain на style.css, где mytext_domain является фактическим текстовым доменом для вашей темы.

затем добавьте фиктивный вызов функции перевода где-нибудь в вашей теме(лучше всего добавить его только под объявлением имени шаблона, чтобы вы не удивлялись, почему вы его поставили):

/**
 * Template Name: Three columns
 *
 * @package WordPress
 */
__( 'Three columns', 'mytext_domain' );

причина сделать это, потому что WordPress проходит ваше имя шаблона translate() функция, но поскольку Плагины translator анализируют ваш код, они не знают ,что ваше имя шаблона должно быть частью.ПО(или .МО?) файл. Фиктивный вызов __() устраняет эту проблему.

и причина, по которой вы добавляете Text Domain объявление к вашему стилю.css потому, что именно здесь WordPress ищет textdomain вашей темы, когда он анализирует имена шаблонов.

Я не могу дать вам точные источники, так как я просто пошарил основной код, пока я не понял, как он работает и как можно перевести мои имена шаблонов.

PP: я не уверен, как работает Poedit - если вы добавляете свои переводы вручную, вам может не понадобиться фиктивный вызов - просто проверьте с ним и без него и используйте то, что подходит вам лучше всего:)


лучший метод:

  1. добавить Text Domain: theme-slug заголовок для вашего стиля.css-файл, если вы еще этого не сделали.

  2. получите проверку официального пакета разработчика WordPress, проверив разработку.trunk в SVN: http://develop.svn.wordpress.org/trunk/

  3. там вы найдете каталог под названием / tools / i18n. В этом каталоге есть . Вы можете использовать его для темы следует:

> php makepot.php wp-theme /path/to/your/theme/directory theme-slug.pot

это создаст файл POT для вас, используя последний код WordPress. Он получает строки из заголовков, из всех функций WordPress i18n, все. Это также означает, что вам не нужно создавать какие-либо "поддельные" строки, как предлагает другой ответ.

убедитесь, что вы делаете svn update каждый раз в то время тоже, как инструменты i18n и основной код магистрали могут быть обновлены для новых вещей каждый раз в в то время как.

обратите внимание, что при использовании инструментов i18n они должны быть в багажнике. Вы не можете перемещать их в файловой системе, потому что они зависят от функций WordPress для выполнения некоторых синтаксического анализа файлов, поэтому у них есть относительные пути включения обратно в дерево в каталог WordPress core /src. Каталог магистрали в целом должен быть неповрежденным для правильной работы инструментов. Однако магистральный каталог может быть не настроен, вам не нужно иметь рабочую установка WordPress, это просто нужно некоторые из кода WordPress, чтобы сделать разбор файлов должным образом.