2012-07-14 52 views
4

是否有任何庫可以直接從coffeescript文件中提取gettext消息,還是需要將它們編譯爲javascript並僅提取?從咖啡文件中提取gettext消息

我一直在使用python babel模塊進行消息提取,如果存在coffeescript提取函數,可能會更好。

回答

2

據我所知,沒有提取咖啡標記 - 如果你找到一個,請please drop us a note。歡迎提交補丁以及:-)

+0

當然會讓你知道我是否找到解決辦法。現在我從已編譯的js文件中提取消息,但是所有的代碼都在coffeescript中。 – 2012-08-09 06:26:50

1

消息可以actualy可以使用使用--language = C普通了xgettext老無需任何額外的努力,只要滿足這些條件.coffee文件exctracted:

  1. gettext的功能參數已經被ALWAYS封閉內部 括號
  2. 字符串參數必須在雙引號內是ALWAYS(它們必須不能在單引號)

來自這兩個條件的任何偏差將導致在xgettext忽略消息

+1

在我的情況下,這些條件似乎不夠。我認爲原因是字符串插值。 – sellonen 2014-06-24 05:29:18

+0

在Twig模板引擎上使用HTML模板進行了測試,它的工作原理! – numediaweb 2015-06-19 10:39:27

1

我有良好的結果Poedit;我用它來檢查我的源咖啡文件對字符串像

t('Translatable str') 

你必須在首選項中添加的CoffeeScript解析器和配置它,像這樣:

  • 語言:Coffee
  • 擴展名列表:*.jade,*.js,*.coffee
  • 分析器命令:xgettext --language=perl --force-po -o %o %C %K %F
  • 在關鍵詞列表中的一項:-k%k
  • 在輸入一個項目:%f
  • 的源代碼字符集:--from-code=%c

我有那麼包含我翻譯一個* .po文件..我走得更遠,創造a grunt plugin幫我寶轉移到JSON :)

注意

  • poEdit的會忽略字符串開頭的破折號,因爲它認爲他們是評論; #{t('This wont be translated!')}
  • 您也可以嘗試在解析器命令language中使用Python;它會檢測更多的字符串,但帶有警告!