wordpress的本地化技術(多語言)支援

2021-06-20 01:48:34 字數 1788 閱讀 2870

wordpress的本地化技術(多語言)支援:

wordpress的開發者選擇使用gnu gettext本地化框架來提供wordpress本地化的基本結構。gettext是乙個成熟的,廣泛使用的,軟體翻譯模框架,而且是免費軟體領域/開放原始碼本地化的實際標準。

gettext使用訊息標準的翻譯—就是說,顯示給使用者的每個"訊息"都是單個翻譯的,不管這個訊息是一段話還是乙個單詞。在wordpress中,wordpress php 檔案通過兩個php函式產生,翻譯,並且使用這樣的"訊息"。當訊息作為引數傳給另乙個函式的時候,會用到__();使用_e()直接在網頁上寫資訊。更多的關於這兩個函式的詳細資訊:

__($message) 

搜尋翻譯$message的本地化模組,並且將翻譯傳遞給php返回申明。如果沒有找到$message的翻譯,只會返回$message。

_e($message) 

搜尋翻譯$message的本地化模組,並且將翻譯傳遞給phpecho申明。如果沒有找到$message的翻譯,只會echoes$message。

注意如果你正將乙個主題或者外掛程式國際化,你應該使用乙個"文字域"。更多關於怎樣國際化乙個外掛程式的內容的資訊,請看看編寫乙個外掛程式;主題國際化的操作也類似。 gettext框架照顧到了大部分的wordpress。但是,wordpress版本中的某些部分不能使用gettext—更多關於怎樣翻譯這些部分的資訊,請看看關於直接翻譯的檔案。

gettext 檔案

gettext翻譯框架中使用了三種型別的檔案。這些檔案在翻譯過程中,由翻譯工具產生和/或者使用,如下:

:po(輕便物件)檔案:本地化過程的第二步是翻譯者將pot檔案中的所有內容翻譯為目標語言,並且在乙個po檔案中儲存英語和翻譯好的內容。

mo(機器物件)檔案:本地化過程的最後一步是,po檔案在乙個程式中執行,這個程式將po檔案轉變為最優化的機器可讀的二進位制檔案(mo檔案)。將翻譯彙編為機器**來使得本地化程式執行時候,能夠更快地重新找到翻譯。

具體操作:

1.開啟中文本地化

wp-config.php

/*** wordpress語言設定,中文版本預設為中文。

** 本項設定能夠讓wordpress顯示您需要的語言。

* wp-content/languages內應放置同名的.mo語言檔案。

* 例如,要使用wordpress簡體中文介面,請在wp-content/languages

* 放入zh_cn.mo,並將wplang設為'zh_cn'。

*/define('wplang', 'zh_cn');

這時本地化檔案全部放置在wp-content/languages  樣式的本地化檔案放置在wp-content\languages\themes:

對於每乙個主要樣式具體使用什麼檔案,位置在什麼地方可以通過除錯輸出 

l10n.php

load_theme_textdomain

l10n.php

__load_textdomain

translate

load_default_textdomain

pomo/po.php

pomo/mo.php

pomo/translations.php

function.php

load_theme_textdomain('zeedynamic_language', get_template_directory() . '/languages' );

poedit

windows,mac os x和unix/linux的乙個開放原始碼程式,提供乙個便於使用的gui來編輯po檔案並且產生mo檔案。

參考:

本地化 日誌本地化

目錄 概要執行時日誌 國際化與本地化 定義你的本地化日誌資訊mymsg enum package org.skzr.logging basename charset utf 8 value org.skzr.logging.msglocallog public enum mymsg 定義國際化檔案o...

Swift 匯出本地化和匯入本地化

一。匯出本地化 1.如下設定,來新增本地化語言 2.匯出檔案 儲存完成後 生成以下兩個檔案 然後用xlifftool 分別開啟以上兩個檔案 在以下顯示 no translation 的地方,新增英文所要替代的語言,如下所示 然後儲存就可以了 二.匯入本地化 1.按如下步驟 2.新增 3新增後出現以下...

本地化測試

com localization testing kiki翻譯於2005 8 12 在本文中,我們講述了在編碼階段期間所能夠做的事情和為了使發現問題最有效,你應該將你的本地化測試力量集中在何處等問題。翻譯應用程式的資源和測試 與開發平行進行通常是一種較好的方法。這有助於在過程的早期揭露 功能設計中的...