Переводить тематические тексты в 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 2

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 новых переводимых строки. Это самый быстрый способ решить вашу проблему. Но, если это еще не сделано, будет гораздо лучше включить дочернюю тему, скопировав в нее этот измененный файл, избегая таким образом потери изменений при обновлении темы ...

Ссылка: I18n для разработчиков WordPress (gettex)

Итак, вот что я сделал, и это, похоже, сработало. Я решил добавить нечто подобное тому, что предложил Лоиктеазтек.

В каждой из этих ссылок я изменил их на

<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. Оттуда я сделал переводы (после выбора показать все языки в строке меню вверху.)

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