1. 程式人生 > >WordPress 多語言支持(本地化)

WordPress 多語言支持(本地化)

進行 say nload try 怎樣 多語言 oca 字符 布爾

本博客將介紹WordPress的多語言制作

首先需要在wp-content目錄下創建一個languages文件夾,用於存放語言包文件。

然後在模板目錄下的functions.php,然後在代碼中添加函數加載該文件夾,示例代碼如下:

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文件必須根據本地設置命名。

<?php load_theme_textdomain( $domain, $path ) ?>

參數

$domain
(字符串)(必需)用以檢索被翻譯字符串的唯一標識符

默認值: None
$path
(未知)(可選)語言包 .mo 文件所在的目錄(沒有結尾的斜線)

默認值:false

返回的值

(布爾)
如果 textdomain 可以正常加載,返回 TRUE ;反之返回 FALSE

  關於多語言設置的兩種用法,一種是直接設置,另一種是通過點擊鏈接方式設置

方式一、

add_action(‘after_setup_theme‘, ‘my_theme_setup‘);
function my_theme_setup(){
    load_theme_textdomain(‘my_theme‘, get_template_directory() . ‘/languages‘);
}

  方式二、如果你希望通過 URL 中的參數來調用不同的語言,比如 www.example.com/?l=zh_CN 就調用 zh_CN.mo ,那你可以參考下面的例子:

// 更改本地語言
	// 必須在 load_theme_textdomain() 的前面調用
	add_filter( ‘locale‘, ‘my_theme_localized‘ );
	function my_theme_localized($locale) {
		if (isset($_GET[‘l‘])) {
			return $_GET[‘l‘];
		}
		return $locale;
	}
// 設置主題語言路徑
	// 語言包應該訪問 my_theme/languages/ 目錄
	// Wordpress 自身語言包放在 wp-content/languages/ 目錄
	load_theme_textdomain( ‘my_theme‘, TEMPLATEPATH . ‘/languages‘ );

  

WordPress是怎樣知道該讀取哪個語言文件呢?其實就是在它的wp-config.php文件中,

添加你的語言和語言環境代碼到define如果你想把你的主題翻譯成德語,你可以這樣做:

define(‘WPLANG‘, ‘de_DE‘);

當你通常制作一個主題的時候,你只需要簡單地對任何主題文本進行編碼,例如404.php文件中的404錯誤信息,或者諸如“comments:”或者“author:”之類的標簽。如果用戶的WordPress是德語,這些文本片段仍然會以英文顯示。解決這個問題的方法是使用四個WordPress函數之一來返回或回顯這些語句,這四個函數被設計為引用正確文本的語言文件。一旦將這些文本包裝在這些函數中,就可以創建一個文件,其中包含每次加載主題時引用的所有翻譯。有三個翻譯文件,我們使用:

  • .pot (便攜式對象模板) - 這是模板文件,它包含對主題中需要翻譯的每個文本字符串的引用。這個文件不包含任何翻譯。這是一個明文文件。
  • .po (便攜式對象) - 由.pot文件構成,.po包含所有的字符串引用以及它們對一種特定語言的翻譯。這也是一個可以編輯的純文本文件。
  • .mo (Machine Object) - .po文件的二進制版本。通過使用機器代碼,文件的使用速度可以比其明文選擇更快。

POEdit是一個非常棒的程序,可以讓你創建你的.pot文件,還提供了一個簡單易用的圖形用戶界面,可以用來制作你的.po文件,更重要的是.mo文件。

首先,您需要下載POEdit,您可以在這裏找到Windows,Mac和Linux:http :
//www.poedit.net/download.php

一旦POEdit安裝完畢,你可以創建你的.pot文件。要做到這一點,去文件>新目錄。您將看到一個對話框,您需要輸入一些基本信息。

做完上面的步驟後不出意外你會在你的wordpress儀表盤後臺的Setting裏面選擇網站語言裏看到剛剛添加的語言,選上即可。

技術分享圖片

最後就是在你的代碼裏面用函數_e()包裹待翻譯詞條實現多語言了,

<?php _e( ‘No posts found‘ , ‘inthy.com‘ ) ; ?>

  參考網站:https://jinwensay.wordpress.com/2009/12/02/make-your-wordpress-theme-translatable/

WordPress 多語言支持(本地化)