翻譯工作流程改變

自從使用 Poedit 來從事 WordPress 翻譯後,工作流程如下:

  1. 使用 svn 從源碼厙取得 WordPress 源碼。
  2. Poedit 打開 zh_TW.po 檔案,並使用「從源檔更新」的功能更新原始字串。
  3. 處理一般字串翻譯工作。

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

最後,工作流程現在變成:

  • 使用 svn 從源碼厙取得 WordPress 源碼。
  • 跑 shell script 產生 POT 檔案。
  • Poedit 打開 zh_TW.po 檔案,並使用「從 POT 檔更新」的功能更新原始字串。
  • 處理一般字串翻譯工作。

「翻譯工作流程改變」有一則迴響

迴響已關閉。