Переводить тематические тексты в WordPress сайт не входит.po-файл
Я пытаюсь добавить другой язык на сайт Wordpress. Некоторые переводы обрабатываются плагином Polylang, но я также использую файлы .po/.mo для обработки некоторых текстов, к которым Polylang не может получить доступ.
Однако, есть некоторый текст, который не отображается даже в .po-файл, поставляемый вместе с темой.
Вот пример.
В настройках темы есть настройка для установки текста, связанного с некоторыми ссылками (заголовок и описание). РНР в шаблоне темы это:
<div id="homeheadlinks" class="col-md-4">
<a href="<?php echo $options['unf_firstlink']?>" class="headbutton bone"><i class="golink"></i><?php echo $options['unf_firstlinktitle']?> <em><?php echo $options['unf_firstlinkdesc']?></em></a>
<a href="<?php echo $options['unf_secondlink']?>" class="headbutton btwo"><i class="golink"></i><?php echo $options['unf_secondlinktitle']?> <em><?php echo $options['unf_secondlinkdesc']?></em></a>
<a href="<?php echo $options['unf_thirdlink']?>" class="headbutton bthree"><i class="golink"></i><?php echo $options['unf_thirdlinktitle']?> <em><?php echo $options['unf_thirdlinkdesc']?></em></a>
</div>
Текст может быть изменен с помощью опций темы, но нет никакого способа добавить язык, отличный от основного.
Как я могу добавить переводы для таких элементов, как $options['unf_firstlinktitle']
и $options['unf_firstlinkdesc']
.
Просто для ясности, эти элементы не отображаются в разделе переводов строк Polylang.
2 ответа:
Поскольку ваш код связан с некоторыми настройками в вашей теме, вы можете переопределить их непосредственно с помощью gettex native translatable function в вашем шаблоне темы php. Вам понадобится замена
'the title …'
по вашим настоящим титулам и'your_theme_slug'
по вашей реальной теме slug) в коде ниже:<div id="homeheadlinks" class="col-md-4"> <a href="<?php echo $options['unf_firstlink']?>" class="headbutton bone"><i class="golink"></i><?php _e('the title …', 'your_theme_slug'); ?> <em><?php echo $options['unf_firstlinkdesc']?></em></a> <a href="<?php echo $options['unf_secondlink']?>" class="headbutton btwo"><i class="golink"></i><?php _e('the title …', 'your_theme_slug'); ?> <em><?php echo $options['unf_secondlinkdesc']?></em></a> <a href="<?php echo $options['unf_thirdlink']?>" class="headbutton bthree"><i class="golink"></i><?php _e('the title …', 'your_theme_slug'); ?> <em><?php echo $options['unf_thirdlinkdesc']?></em></a> </div>
Затем вам нужно будет повторно просмотреть этот шаблон с помощью Polylang для новых строк, и вы обнаружите 3 новых переводимых строки. Это самый быстрый способ решить вашу проблему. Но, если это еще не сделано, будет гораздо лучше включить дочернюю тему, скопировав в нее этот измененный файл, избегая таким образом потери изменений при обновлении темы ...
Итак, вот что я сделал, и это, похоже, сработало. Я решил добавить нечто подобное тому, что предложил Лоиктеазтек.
В каждой из этих ссылок я изменил их на
<a href="<?php pll_e('http://mydomainname.com/englishpage/', 'mytheme-child') ?>" class="headbutton bone"><i class="golink"></i><?php pll_e('Link text', 'mytheme-child') ?> <em><?php pll_e ('Link description', 'mytheme-child') ?></em></a>https://wordpress.org/plugins/polylang-theme-strings/
Затем я установил плагин Polylang Theme Strings, который поместил все новые строки, созданные с помощью
pll_e()
, во вкладки перевода строк Polylang. Оттуда я сделал переводы (после выбора показать все языки в строке меню вверху.)Это работает почти идеально. У меня есть еще одна проблема, о которой я сообщу, если не смогу решить ее сам в ближайшее время.