自從使用 Poedit 來從事 WordPress 翻譯後,工作流程如下:
po 檔案可以寫一些設定讓 Poedit 可以這樣做,去年有寫過相關的文《簡單設定 poEdit 翻譯外掛》。
不過咧~這樣子的流程最近發現有問題:當某些地方有重複的字串,一處為單獨字串而另一處為複數型態時,複數字串就不會被 poedit 處理到,結果是只有單數被翻譯到。
搞了一陣子,無法透過設定解決,只好回到一般翻譯人員會使用的「從 POT 檔更新」來做。WordPress i18n 上頭的 wordpress.pot 是定時使用程式產生,另包涵了一些不太會用到的字串。總之我的決定是自己寫 shell script 來產生 POT 檔案,內容跟 i18n 提供的 wp-gettext 差不多。下面是我使用的 script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #!/bin/sh TEMPLATE=trunk.pot cwd=`pwd` cp /dev/null "$cwd/$TEMPLATE" cd trunk find . -name '*.php' -print \ | sed -e 's,^\./,,' \ | sort \ | xargs xgettext \ --keyword=__ \ --keyword=_e \ --keyword=_c \ --keyword=__ngettext:1,2 \ --keyword=__ngettext_noop:1,2 \ --default-domain=wordpress \ --language=php \ --output="$cwd/$TEMPLATE" \ --join-existing \ --from-code utf-8 cd "$cwd" sed -i 's/\\r\\n/\\n/g' "$TEMPLATE" |
因我的環境是 win32/Cygwin,svn 取得的 WordPress 源碼有些是 DOS 格式(!?),so…最後還要處理換行…Orz
最後,工作流程現在變成:


1 則引用
[...] 翻譯流程沒有改變,跟去年一樣。 作者:Kirin Lin | 分類:Surfing | 引用 | 迴響 | [...]