2010-07-08 16 views
0

目前我正在使用cakephp解決方案(closed source unfortunatelly),並且有時會注意到,即使在po文件中有msgid條目,字符串也不會被翻譯。 我意識到如果源參考不在條目中,就會發生這種情況。如果我輸入該字符串的源引用,或者從條目中移除所有源引用,它將被翻譯。PO文件中的參考 - 使用cakephp:它們對翻譯有任何影響嗎?

爲了測試這個,我用可翻譯的字符串(使用__()函數)製作了一個小的cakephp應用程序,但我無法獲得相同的行爲。

例如爲:

#: /views/view1/add.ctp:6 
#: /views/view1/edit.ctp:6 
#: /views/view2/add.ctp:5 
#: /views/view2/edit.ctp:5 
msgid "Name" 
msgstr "localized name string" 

應用1:如果我刪除廠景引用比沒有翻譯發生於那些語言環境廠景,但視圖2的作品翻譯。如果我刪除所有參考都工作。

應用2(我的測試):引用沒有影響,所有翻譯

這怎麼可能? 我在第一個應用程序中使用主題,字符串因主題而異。這會導致這種行爲嗎?

其他問題:如果我在視圖中創建新的字符串,那麼在po文件中插入新字符串的最佳做法是什麼?我可以提取一個新的空罐,這是可以的,但總是搜索po文件並手動插入它是非常耗時的。應該有一個更好的自動方式,我找不到。 GNU/gettext手冊太複雜了,我無法理解這個過程:(

回答

1

我總是使用poedit - http://www.poedit.net/ - 這是最好的,但仍然不是很好,設置它可能會很混亂,但持之以恆。

它將管理的引用,而且產生的MO(二進制)文件爲您服務。

我用它在Mac和Ubuntu,並用它在過去的Windows。

+0

感謝提示一個好的po編輯器,但這不是兩個問題的答案。無論如何,相當有用:) – sipiatti 2010-07-08 16:31:32