在 Windows 使用 GetText

要在 Windows 使用 xgettext, msgmerge, msgfmt ... 等, 要安裝哪些東西?

Windows 的 GetText 工具安裝

GetText 所需相關 Library 安裝

  • 上述套件下載後, 於 Windows XP 會缺下述兩個 Library:
    • libexpat.dll
    • libiconv2.dll
  • 可自行去尋找, 或者 直接下載 我抓好的版本 : gettext-dll.tgz
  • 將這兩個檔案放到 C:\gettext\bin\ 即可.

GetText 工具使用

  • C:\gettext\bin\xgettext.exe --from-code=UTF-8 -d hello hello.php
  • C:\gettext\bin\msgmerge.exe -o hello.po locale/zh_TW/LC_MESSAGES/hello.po hello.po
  • C:\gettext\bin\msgfmt.exe -o locale/zh_TW/LC_MESSAGES/hello.mo hello.po

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈在 Windows 使用 GetText〉中有 13 則留言

  1. 工具使用的顺序2,3应该调换一下吧
    msgfmt.exe: hello.po: warning: Charset "CHARSET" is not a portable encoding name
    .
    Message conversion to user's charset might not wo
    rk.
    运行msgfmt.exe时,产生如上警告,不知道是否有影响?

  2. 第一步xgettext.exe产生po文件
    第二步msgfmt.exe产生mo文件
    不知道第三步有什么作用哦,感觉po文件都是同一个啊?
    而且看到你描述的“gettext 看的是 mo 檔, 不是 po 檔 :)”

  3. xgettext.exe : 把文字抽成 po 檔
    msgmerge.exe : 把抽出來的 po 檔 和你之前翻譯的 po 檔 merge
    msgfmt.exe: 把 CHARSET 設好一次, 以後 merge 後, 就不會警告了. po 檔是給你翻譯用, mo 檔是機器在看, msgfmt 就是做 po -> mo 轉換.

  4. msgmerge.exe : 把抽出來的 po 檔 和你之前翻譯的 po 檔 merge
    请问为什么要合并呢?
    msgfmt.exe: 把 CHARSET 設好一次, 以後 merge 後, 就不會警告了. po 檔是給你翻譯用, mo 檔是機器在看, msgfmt 就是做 po -> mo 轉換.
    请问如何设置charset

  5. 你翻譯好第一次, 然後試試看要翻第二次, 你會怎麼做?
    會跑 xgettext.ext, 但是抓出來的東西都是空的, 所以會需要把你之前翻譯得做合併.
    CHARSET 就進去改, 設 UTF-8 之類, 就看你的語系編碼而定.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料