一.前置作業:
AppServ php.ini 設定檔修改
記事本 開啟 C:\WINDOWS\php.ini
先檢查Apache是否開啟 gettext
將
;extension=php_gettext.dll
改成
extension=php_gettext.dll
重新啟動 Apache 即可.
(註)2和3請選一個裝,建議只裝Poedit就好
2.安裝gettext-0.14.4[手動產生.po檔用]
3.安裝Poedit[自動產生]
詳見:http://idaiwan.pixnet.net/blog/post/30993354
二. php-gettext 提供了多個相關的訊息函式,但以 gettext()最為常用,
並有一個慣例的簡短別名,即 _()。
<?php echo gettext("id代碼"); ?>
或
<?php echo _("id代碼"); ?>
至於語系的初始設定:
例如設定為英文可參考下述:
putenv('LANG=en_US');setlocale(LC_ALL, 'en_US');//指定要用的語系,如:en_US
define('PACKAGE', 'lang'); //定義所讀取的語言檔(.mo)檔名bind_textdomain_codeset(PACKAGE, 'UTF-8'); //設置mo文件的編碼為UTF-8
textdomain(PACKAGE);// 使用 lang.mo的訊息
[注意]
·PACKAGE 那個變數, 不用 define 也無所謂, 主要是當成 Project name 來用, 到時後翻譯檔建好後,
此名稱就不能再修改(修改翻譯檔需要全部重建(po, mo 檔重建))
·gettext() 包起來的就是會被抽取出來的字, 可以用較簡短的寫法 _() 即可.
·_() 不能包括變數($var), 如果 _($var) 有包到變數, 那這行就不會被 xgettext parse 出來.
·要判斷要用哪種語系, 判斷法目前想到的有下面幾種:
其他可參考http://blog.roodo.com/rocksaying/archives/15193601.html
(註)在Office Word中尋找中文字技巧:
尋找目標: 「 [!^1-^127]」
並在點選〔更多〕後勾選「使用萬用字元」
※[ ]裡的「^1-^127」表示ASCII字碼的編號1至127,其中編號48~57代表數字「0~9」,
65~90代表大寫英文字母「A~Z」,97~122代表小寫英文字母「a~z」
[attach]138[/attach]
三-1.Poedit使用方法:
先選擇新增編目檔。
在專案資訊中填入相關的資料。
※請注意:複數形式填上 nplurals=2; plural=n==1?0:1;
[attach]139[/attach][attach]140[/attach][attach]141[/attach]
基礎路徑選擇您來源檔的位置(指的是 WordPress 整體檔案的位置)。
※請注意:在下方,請繼續選擇新增項目,然後填上一個句點;這個句點是表示在基礎路徑資料夾下的所有檔案。
而關鍵字的話,選擇新增項目來增添5 個關鍵字:
_c
_e
__
__ngettext:1,2
__ngettext_noop:1,2
按 OK 之後,選擇檔案存放的位置。
按儲存之後,poEdit 就會依據您所設定的相關資料來剖析 php 檔中的字串。
剖析之後,就會自行計算字串。
按 OK 之後就可以開翻譯囉。完成之後您就有 po 檔與重要的 mo 檔。
(註)將mo檔還原成po檔
安裝 Poedit 後,你可以在它的安裝目錄的 \bin 資料夾中找到一支
msgunfmt.exe 檔案。它專門用來將 mo 轉換成 po 格式。請進入命令提示字元中輸入
msgunfmt.exe source.mo-o target.po
其中 source.mo
是你的 mo 的檔案名稱,可以帶有路徑,如 C:\Temp\source.mo
其中 target.po
為要產生的 po 檔,也可以帶有路徑。
三-2.安裝gettext-0.14.4[手動產生.po檔用]
產生.po檔與.mo檔
進入命令提示字元
將路徑切換到yd_group.php所在目錄。
cd C:\AppServ\www\test
1.產生.po檔語法:
xgettext-d lang_cn *.php--from-code=utf-8
xgettext-d lang_us *.php--from-code=utf-8
說明: *.php表找尋該目錄下所有.php檔
當然也可指定單一檔案,如:target.php
lang_cn表命名的po檔名稱
此時便會產生一個可以供 Poedit 編輯的 po 檔案。
2.產生mo檔
方法一:直接用Poedit 編輯,翻譯完成後,
按下工具列的 [儲存編目檔] 按鈕
即可在與 po 檔相同的地方直接編譯出 mo 檔。
方法二:進入命令提示字元
將路徑切換到要產生.mo檔的所在目錄,後輸入
msgfmt lang_cn.po-o lang_cn.mo
msgfmtsource.po -o target.mo
[注意]
·xgettext -d NAME, 此 NAME 會等同於 bindtextdomain(), textdomain(), NAME.po,任何一個沒對應到, 翻譯結果就出不來.
可參考以下資料:
歡迎光臨 資訊家電班NO7 (http://imce07.freehostia.com/forums/) | Powered by Discuz! 7.2 |