2017-07-21 44 views
0

我在最近的網站上使用Polylang插件。帖子和頁面,也類別翻譯完美。但是我對自定義字符串的翻譯有問題。Polylang Wordpress插件自定義字符串翻譯不能以預期的方式工作

我在我的的functions.php文件,註冊串:

pll_register_string('read_more', 'Read More'); 

然後,在我的模板圖,我試圖讓通過訪問它:

pll_e('read_more'); 

在對此,我得到了「READ_MORE」 ... 同樣的,如果我想:

pll_e('Read more'); 

根據該插件的函數引用,這是一個正確的方法。也許有人在過去有類似的問題,可以提供幫助。

編輯:我已經通過使用自定義字符串的Polylang擴展來克服問題。但是,也許有人可以解決這個問題。

+0

我刪除了我的答案,因此您可以關閉/刪除問題。 – user8230352

回答

1

我不確定它是否可以幫助你完美,但是我在這種情況下使用的最佳方法是爲每種語言創建.po和.mo文件,將其上傳到網站並在functions.php中註冊或在插件與此功能(你必須設置路徑,其中.po和.mo文件將被存儲 - 波紋管它的插件路徑,但你可以改變它到任何你想要的,你也可以改變「我的主題」標籤爲你自己):

// Adding language files 
function theme_setup_hook() { 
load_theme_textdomain('my-theme', plugin_dir_path(__FILE__).'/languages'); 
} 
add_action('after_setup_theme', 'theme_setup_hook'); 

在.po文件你使用poEdit(輕量級的開源應用程序,它可以在這裏下載https://poedit.net/)你只需設置屬性文件的語言,然後選擇您的光盤上的文件夾中的代碼文件與要轉換的字符串是書面。此外,您還必須在放置這些內容的屬性中設置關鍵字:__和_e。

在模板的代碼,然後寫一個需要被翻譯這樣所有字符串:

簡單的回聲:

<?php _e('string to translate','my-theme'); ?> 

使用腳本:

<?php 
$string = __('string to translate','my-theme'); 
echo $string; 
?> 

之後只需更新Poedit中的po文件,並且由於您設置了正確的路徑,所有字符串都會在此處更新,您可以全部翻譯它們。然後保存該文件。 Poedit自動創建.mo文件,以便將兩個文件(po和mo)都上傳回服務器,就是這樣。 對於每種語言,你可以使用單獨的文件命名爲en_GB.po等。

我希望它有幫助。

1

我認爲在Polylang的最後一個版本錯誤或也許這是一個迴歸由於WordPress的升級,但對我來說pll_register_string不會在所有的工作......我不得不改用icl_register_string這是對口WPML (但與Polylang一起使用)。

插件「Polylang主題字符串」也不起作用。它會在當前主題中找到翻譯,但無法將它們添加到字符串翻譯列表中。我的猜測是,這是由於相同的錯誤,但這可能是巧合。

+0

這應該是被接受的答案。 – Pepijn

相關問題