WordPress 多语言支持(本地化)
https://www.cnblogs.com/ryanzheng/p/8309261.html
WordPress 多語言支持(本地化)
本博客將介紹WordPress的多語言制作
首先需要在wp-content目錄下創(chuàng)建一個languages文件夾,用于存放語言包文件。
然后在模板目錄下的functions.php,然后在代碼中添加函數(shù)加載該文件夾,示例代碼如下:
add_action('after_setup_theme', 'alanhou_setup'); function alanhou_setup(){load_theme_textdomain('alanhou', get_template_directory.'/languages'); }上面代碼表示在主題加載時載入語言文件也就是/wp-content/languages/文件夾下的.mo文件。
load_theme_textdomain(主題本地化)
加載翻譯后的主題字符串。
如果本地主題根目錄下有一個.mo文件,該文件會被包括在$domain的被翻譯字符串中。
.mo文件必須根據(jù)本地設(shè)置命名。
| 1 | <?php load_theme_textdomain( $domain, $path ) ?><br><br> |
參數(shù)
$domain
(字符串)(必需)用以檢索被翻譯字符串的唯一標識符
?
默認值: None
$path
(未知)(可選)語言包 .mo 文件所在的目錄(沒有結(jié)尾的斜線)
?
默認值:false
返回的值
(布爾)
如果 textdomain 可以正常加載,返回 TRUE ;反之返回 FALSE
關(guān)于多語言設(shè)置的兩種用法,一種是直接設(shè)置,另一種是通過點擊鏈接方式設(shè)置
?方式一、
| 1 2 3 4 | add_action('after_setup_theme',?'my_theme_setup'); function my_theme_setup(){ ????load_theme_textdomain('my_theme', get_template_directory() .?'/languages'); } |
方式二、如果你希望通過 URL 中的參數(shù)來調(diào)用不同的語言,比如 www.example.com/?l=zh_CN 就調(diào)用 zh_CN.mo ,那你可以參考下面的例子:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | // 更改本地語言 ????// 必須在 load_theme_textdomain() 的前面調(diào)用 ????add_filter(?'locale',?'my_theme_localized'?); ????function my_theme_localized($locale) { ????????if?(isset($_GET['l'])) { ????????????return?$_GET['l']; ????????} ????????return?$locale; ????} // 設(shè)置主題語言路徑 ????// 語言包應該訪問 my_theme/languages/ 目錄 ????// Wordpress 自身語言包放在 wp-content/languages/ 目錄 ????load_theme_textdomain(?'my_theme', TEMPLATEPATH .?'/languages'?); |
WordPress是怎樣知道該讀取哪個語言文件呢?其實就是在它的wp-config.php文件中,
添加你的語言和語言環(huán)境代碼到define。如果你想把你的主題翻譯成德語,你可以這樣做:
?
| 1 | define('WPLANG',?'de_DE'); |
?
?
怎么運行的
當你通常制作一個主題的時候,你只需要簡單地對任何主題文本進行編碼,例如404.php文件中的404錯誤信息,或者諸如“comments:”或者“author:”之類的標簽。如果用戶的WordPress是德語,這些文本片段仍然會以英文顯示。解決這個問題的方法是使用四個WordPress函數(shù)之一來返回或回顯這些語句,這四個函數(shù)被設(shè)計為引用正確文本的語言文件。一旦將這些文本包裝在這些函數(shù)中,就可以創(chuàng)建一個文件,其中包含每次加載主題時引用的所有翻譯。有三個翻譯文件,我們使用:
- .pot?(便攜式對象模板)?- 這是模板文件,它包含對主題中需要翻譯的每個文本字符串的引用。這個文件不包含任何翻譯。這是一個明文文件。
- .po?(便攜式對象)?- 由.pot文件構(gòu)成,.po包含所有的字符串引用以及它們對一種特定語言的翻譯。這也是一個可以編輯的純文本文件。
- .mo?(Machine Object)?- .po文件的二進制版本。通過使用機器代碼,文件的使用速度可以比其明文選擇更快。
POEdit是一個非常棒的程序,可以讓你創(chuàng)建你的.pot文件,還提供了一個簡單易用的圖形用戶界面,可以用來制作你的.po文件,更重要的是.mo文件。
首先,您需要下載POEdit,您可以在這里找到Windows,Mac和Linux:http?:?
//www.poedit.net/download.php
一旦POEdit安裝完畢,你可以創(chuàng)建你的.pot文件。要做到這一點,去文件>新目錄。您將看到一個對話框,您需要輸入一些基本信息。
做完上面的步驟后不出意外你會在你的wordpress儀表盤后臺的Setting里面選擇網(wǎng)站語言里看到剛剛添加的語言,選上即可。
?
最后就是在你的代碼里面用函數(shù)_e()包裹待翻譯詞條實現(xiàn)多語言了,
| 1 | <?php _e(?'No posts found'?,?'inthy.com'?) ; ?> |
參考網(wǎng)站:https://jinwensay.wordpress.com/2009/12/02/make-your-wordpress-theme-translatable/
總結(jié)
以上是生活随笔為你收集整理的WordPress 多语言支持(本地化)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wordpress发布文章时右侧边栏选择
- 下一篇: Android Glide加载本地gif