2016-07-24 94 views
2

我試圖向Wordpress網站添加另一種語言。有些翻譯是由一個名爲Polylang的插件處理的,但我也使用.po/.mo文件來處理Polylang無法訪問的一些文本。在WordPress網站中翻譯不包含在.po文件中的主題文本

但是,即使在隨主題提供的.po文件中也有一些文本未顯示出來。

下面是一個例子。

主題選項中有一個設置來設置與某些鏈接(標題和說明)相關的文本。在主題模板中的PHP是這樣的:

<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的字符串翻譯部分。

+0

我還沒有嘗試過。一旦我嘗試過,我會給你反饋。我非常感謝你的迴應。 –

回答

0

所以,這裏是什麼我做了,它似乎工作。我決定添加類似於LoicTheAztec建議的東西。

在這些鏈接中的每一個,我把它們改成

<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的字符串翻譯標籤。從那裏我做了翻譯(選擇頂部菜單欄中的顯示所有語言後)。

它的工作原理幾乎完美。我還有一個問題,如果我不能很快解決問題,我會發布一些問題。

3

由於您的代碼與您的主題中的某些設置相關聯,因此您可以直接在您的php主題模板中使用gettex native translatable function來覆蓋它們。您需要在下面的代碼在你真正的主題塞更換'the title …'通過你的真實標題和'your_theme_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 for WordPress Developers (gettex)