您在這裡

模組po檔哪裡找?

tky's 的頭像
tky 在 2007-01-24 (三) 10:04 發表

各位好:

最近想翻譯一些模組的po檔,但發現一些模組本身沒有附帶po檔,例如Akismet。
不曉得模組本身的pot檔或po檔是否都放在什麼地方可以下載?
還是說來源通常不確定,看作者有沒有發佈?

或者說,有沒有什麼方法可以自製模組的po檔,比如說限定哪個模組的po檔自網站匯出這樣。

TKY

怎麼作 PO 檔? 去下載 Drupal 5 的 POT,裡面有一個 php 程式可以產生 POT 檔!

我也在作一些模組的中文化,不過之前是把多個模組包成一個來翻譯,很痛苦。或許還是整理整理、拆開來作,互通有無 :)

TKY覺得還是一個模組翻一個po檔會比較簡單吧?通通在一塊兒翻,不好知道上下文,而且工程浩大,一時半刻搞不定吧?

TKY已經翻了一些了,不過匯入之後發現有些問題。一來就是某些模組的原始PO檔好像不一定完整,有些字串沒法翻。只能去搜尋、找出來翻。

二來就是在5.0下頭,翻譯顯示一直怪怪的。不曉得是TKY的翻譯有問題,還是本土化模組有問題。

charlesc提到的pot檔,TKY還以為是模組咧,結果是Drupal的pot檔。不是啦,TKY要的是特定模組的po檔;如果下載模組的時後沒有夾帶在模組裡頭,那要怎麼把模組的po檔或pot檔找出來呢?

譬如說Akismet就沒有po檔或pot檔啊,TK想要翻它的話要怎麼做?只能靠搜尋字串嗎?

更進一步來說,TKY原來的問題是要問:有沒有什麼神奇的模組可以匯出其他模組的po檔、而非整個網站的po檔?

一次翻一個模組,有助TKY理解這個模組的全部功能。

TKY

tky

啊...我不是說了"裡面有一個 php 程式可以產生 POT 檔"。
裡面真的有一個 extractor.php,可以"以匯出其他模組的po檔、而非整個網站的po檔"。

The POT files are created by running the extractor.php script (also in this
directory) on all source files that contain translatable strings.

You can run the extractor script from command line, or copy it into a web
accessible folder, from where you would like to extract strings. Note that
by using extractor with your browser, you are opening security holes on
your system, since you need to give rights to PHP to create and write
files in the folder where your Drupal website code resides. Only do this
on a development system! You have been warned!

多謝charlesc,TKY看走眼了說。

TKY按照readme上頭的作法,試著做出模組的po檔。執行檔案之後,瀏覽器顯示:

Starting.

Processing dhtml_menu.module...
Processing dhtml_menu.info...

Done.

但去察看伺服器的模組資料夾,什麼都沒有產生出來啊。
TKY想說,應該跟「you need to give rights to PHP to create and write
files in the folder」有關;這需要什麼樣的權限啊?資料夾讀寫的權限嗎?TKY開到777也沒用啊,真奇怪。

TKY

tky

drupal-pot 的使用方式很簡單,只要將 extractor.php 複製到 modules/ 目錄下面,然後暫時將 modules/ 目錄設定為可以寫入(chmod 707),透過瀏覽器執行後所有模組的 POT 檔案就會出現在該目錄中。

下面是我透過指令模式的處理過程:

wget http://ftp.osuosl.org/pub/drupal/files/projects/drupal-pot-5.x-1.x-dev.tar.gz
tar -xzf drupal-pot-5.x-1.x-dev.tar.gz
mv drupal-pot/extractor.php /var/www/html/drupal51/modules/
cd /var/www/html/drupal51/modules/
php extractor.php
mkdir pot
mv *.pot pot/
tar -czf pot.tar.gz pot/

執行過程會出現一些錯誤提示(可能),最後將壓縮檔案下載到自己的電腦進行翻譯即可;有希望翻譯哪個模組而不知道如何開始的我可以幫忙 :)

一切的真相終於大白了!原來是資料夾權限的問題,挖咧~~
改過資料夾權限之後,就可以產生出pot檔來了。
(不過要開到777才會產生;之前開到755都不理你)
(這下可有點累了,做一次要改一次,有點煩)

不過TKY還是有幾個問題:

1.怎麼合併po檔?
以akismet這個模組為例,TKY run過一次這個流程之後,跑出了三個pot檔,分別為:
akismet-module.pot
akismet_admin-inc.pot
general.pot

問題是TKY不知道要怎麼在poEdit編輯器中加以合併。這樣要一個一個翻、一個一個匯入,有點麻煩;也不利分享。

2.產生出來的pot檔包含什麼?與整個模組使用相關的一切介面語系嗎?還是只有部分的?
TKY希望能翻譯整個模組、包含help手冊的部分,免得用了還是霧沙沙。

3.比較跟Drupal本身無關;就是怎麼樣在伺服器上面跑指令?
一來,windows下面每次要開瀏覽器和ftp,一下改權限、一下執行檔案,切換來切換去的,有時自己都糊塗了。
二來,已經在電腦上裝了用虛擬軟體裝了Fedora了(拜yalben所賜),不曉得有沒有什麼Linux方面的套件可以使用,可以讓我直接在伺服器上面跑指令,提高效率?(還是說根本不需要Linux,只要有一些軟體就可以辦得到?)

kiang應該也是箇中好手,有勞指導一下。

tky

tky

1. 我也不會用 poEdit 合併,都是用 unix 指令 msgcat --use-first *.pot | msgattrib --no-fuzzy -o zh-hant.pot
2. 是所有 *.module, *.inc 或其他檔案裡用 t('字串') 包含起來的字串,一般都包含說明檔。
3. 好像是到 terminal 裡就可以進文字模式下指令了,不然你就不要裝圖形模式的 Fedora,開機就直接進文字模式。這我不熟,很久沒裝了,不過最近還滿想裝 ubuntu 試試。

Ubuntu 是我到目前唯一能夠在我電腦上存活超過一星期以上的 Linux 發行套件 -- 因為他夠呆 ^_^
截至目前為止,Ubuntu 已用了快一年了,不錯用,強烈推薦 -- 還可以很簡單的就設置好本機多入登入操作的環境(Multi-Seat X)喲 !!
可惜在 FreeBSD 上不行,再加上 FreeBSD 對於桌面性的整合也較沒那麼佳,不然原先是用 FreeBSD + X 的 TMDing.......

charlesckiang 所提供的連結已沒有該程式可用了,所下載回來的都是原生模組的 POT 檔。
現已改為 potx 專案了,除了提供命令列模式之外,也提供了 web 界面的模式嘍,將 potx 5.x-1.x-dev 下載並解壓縮後,把 potx 整個目錄上傳到 modules 目錄下,再到 管理(admin) -> 網站設定(settings) -> 本土化(locale) 點選匯出字串即可出現你站上目前可匯出字串的模組。

每次只能選擇其中一項模組來匯出字串,好處是所匯出的字串已是完全合併到一個檔案中了,無需再像命令列模式一樣,需要再另行整合成單一檔案。
另外,若模組中尚有子模組的話,也可單獨匯出其子模組,而無需整個模組全部匯出 -- 適用於龐大模組時,小隊分工合作用的模式。

一併提供 potx 的中文翻譯,翻的不好還請見諒 -- 當然,若是願意將您再翻的版本提供出來,則更是無限歡迎 ^_^

好在這個模組有做給6.0,但是怎麼著....下載以後裡面根本沒有 charlesc 說的extractor.php這樣的檔案阿.......我抄想要翻譯一下view

為了我兄弟,我必須要會。