2010-01-28 101 views
5

我發現這個很酷的js gettext庫 - >http://code.google.com/p/gettext-js/但我不明白如何實現它。我使用poedit來編輯翻譯,我可以看到它在我簽出項目並運行演示文件時起作用,但當我對文本進行更改時,.po文件不會更新,而且我也看不到新的文字。有人有任何想法嗎?謝謝!使用gettext翻譯.js文件

回答

9

「我也只好用力蟒蛇在gettext的命令」:

  1. 文件|偏好|解析器
  2. 編輯的Python
  3. 編輯 「擴展名列表..」:
  4. *.py;*.js
  5. 編輯「Parser表示:」
  6. xgettext --language=Python --force-po -o %o %C %K %F

完成。

感謝leading me有Kentor :)

0

您必須調用xgettext才能將字符串提取到.pot文件中,然後運行msgmerge來更新.po文件。 gettext manual有所有的血淋淋的細節。

+0

我能弄清楚我遇到的問題。事情是,當修改語言時,我不得不用Poedit重新掃描所有文件。所以我必須先爲該項目添加正確的路徑,然後我必須將Python的解析器用於* .js文件。我還必須在gettext命令中強制python,否則Poedit會抱怨.js文件不被理解,並會嘗試使用C/C++來解析它們。 – Kentor 2010-01-29 18:35:34

4

我覺得--language了xgettext的perl = --force-PO -o%Ø%C%K%F(用perl而不是蟒蛇)應該是一個更好的選擇,因爲Python會導致包含單引號(未終止的字符串錯誤)的javascript註釋問題。

+2

我試過你的解決方案,警告沒有顯示。但一些翻譯沒有在js文件中找到(對於Python版本,他們被發現)...所以我更喜歡Python版本,即使有警告...... :( – Andron 2013-04-01 14:27:19

0

我最初嘗試了兩種配置,Python & Perl但帶有一些複雜的下劃線模板,嵌套引號和雙引號,轉義字符等。這兩個解析器都報告了大量錯誤的廢棄字符串,因此我無法更新.pot或.po文件源代碼正確。

我還沒有成功http://code.google.com/p/gettext-js/

測試了很多嘗試&錯誤後,我發現我可以使用鏈接解析和它poEdit的1.5.7正常工作。這些是應同時啓用最佳匹配的配置參數

從Mac版本的Library/Preferences/net.poedit.Poedit.cfg中提取,您可以簡單地複製並粘貼到對話框上,否則

[Parsers/js] 
Extensions=*.js;*.html 
Command=xgettext --language=Python --force-po -o %o %C %K %F 
KeywordItem=-k%k 
FileItem=%f 
CharsetItem=--from-code=%c 

[Parsers/PHP] 
Extensions=*.php;*.js;*.html 
Command=xgettext --language=PHP --force-po -o %o %C %K %F 
KeywordItem=-k%k 
FileItem=%f 
CharsetItem=--from-code=%c 

請注意,您可能不需要在擴展中包含* .html,我是這樣做的,以解析我的下劃線模板。希望它有助於導致我真的很沮喪:)