2012-12-27 67 views
2

我正在使用gettext()來處理我的網站的國際化。事實是,我使用Smarty作爲模板引擎,並且必須使用smarty的標籤來註釋部分我的html代碼:{* *}。問題是這些評論是我編寫過的一些代碼,但我不想擺脫這些代碼。因此,gettext()讀取內部(大括號內)代碼,並生成一個帶有大量非必需轉換項目的.po文件。我如何防止自己擁有一個沒有額外翻譯項目的乾淨的po文件。我的代碼或使用gettext()設置參數的正則表達式?如何防止用gettext翻譯註釋()

回答

2

xgettext手冊,這些都是支持的語言: C,C++,的ObjectiveC,PO,殼牌,Python和Lisp語言,EmacsLisp,librep,計劃,Smalltalk中,Java和JavaProperties,C#,AWK,YCP,TCL, Perl,PHP,GCC-source,NXStringTable,RST,Glade

因此,除非這些語言中有一種具有類似smarty的註釋,{* *},那麼我認爲您不能輕易繞過註釋的代碼。

不過,我猜測,一個可能的解決方法將是莫名其妙編譯所有的模板,然後運行跨* .php文件poEdit的,不* .tpl。由於smarty的評論不會包含在編譯後的模板中,因此他們將被排除在外

+0

感謝您的回答:您的意思是編譯這些文件到底意味着什麼? – Newben

+0

當smarty運行時,它會生成中間php文件,然後運行該文件來創建實際的HTML。你可以在你的$ smarty-> compile_dir下找到它們(看看smarty_config.php) – periklis

+0

非常感謝! – Newben