1

從我以前的關於gettext的問題來看,使用PHP的gettext擴展代替其他語言翻譯方法的最大好處之一是,讓其他人使用名爲的程序製作翻譯文件是非常容易的Poedit翻譯php應用程序與gettext

現在我的getText在我的應用程序工作,但我還沒有做出任何翻譯文件的是,我發現在網上演示文件,並用它測試,以符合我的應用程序gettext的工作雖然。

現在我poEdit的發揮各地一點點,我可能是錯的,希望有人能澄清一些問題。

  1. 據我可以告訴poedit通過您的php代碼讀取,並找到所有availabale點做翻譯,這是正確的嗎?

  2. 如果上面的是正確的,那麼你怎麼有一個人的翻譯與翻譯poEdit軟件,而無需訪問你的應用程序?

或者簡單地說,有可能在不訪問您的php代碼的情況下用poedit製作翻譯文件?

回答

2

注意,我從來沒有使用poEdit的自己,所以這可能不是完全準確...

一個有趣的文章,你可能會先閱讀,對於一些信息:Localizing a WordPress Plugin Using poEdit
這是WordPress的,這意味着PHP - 所以你的應用程序的基本思想應該是可以的。

基本上,如果我沒有理解好:

  • 你先告訴poEdit的您的翻譯功能是如何叫
  • 這應該回答你1提取所有從PHP源代碼
    • 弦)
  • 然後,你會翻譯
    • 與工作/在.po文件
    • 我猜你可以將此.po文件分發到您的翻譯,那麼誰可以翻譯它包含
  • 弦和,最後,您使用.po文件生成將在您的應用程序中使用的.mo文件。


這另一篇文章,關於WordPress也似乎表明,我猜右:User:Skippy/Creating POT Files - 尤其是,這句話:

使其可用的.po文件爲 下載(或者可選地將其包含在 插件存檔中)。譯者將使用此文件構建一個 。mo文件,其中 將由 load_plugin_textdomain()函數使用。

(顯然,您可以使用您的應用程序的功能名稱將不會是一樣的一個在WordPress - 還在,倒也有)


希望這有助於:-)
玩得開心!

+1

謝謝你,你總是在你的答案中付出很多努力+1 – JasonDavis 2009-09-13 22:23:03

+1

@jason:不客氣:-)在這裏,我對gettext很好奇:我想我會在某一天或其他時間使用它(特別是因爲我目前正在開發一個使用gettext的項目 - 即使我不是負責翻譯的項目) – 2009-09-13 22:24:05

+0

我希望有一種方法可以創建gettext將手動使用的原始(第一個)字段在文本編輯器中,但它看起來像我必須讓poedit掃描我的所有項目文件,除非我找到另一種方法 – JasonDavis 2009-09-13 22:35:04

2

不,poEdit沒有讀取您的所有來源。你使用gettext實用程序「xgettext」來做到這一點。

基本上,xgettext會產生一個.po文件。

您的翻譯人員將使用POEdit來處理該.po文件。

翻譯完成後,您會將.po編譯到.mo中,您的應用程序將使用它來查找翻譯。

如果您在某些unixy系統上安裝了gettext,請嘗試在bash中使用「info gettext」。

+0

@tim:http://www.poedit.net/頁面說:「您可以使用Poedit掃描可翻譯字符串的源代碼。」 - 看起來你可以使用poEdit來讀取源代碼? – 2009-09-13 22:21:27

+0

哦,看看!實際上很久沒有使用過gettext(它傷害了我)。那時候,我最終在命令行寫了一些腳本來驅動xgettext,並且它運行得很好。我認爲php-gettext擴展在這個過程中有一些體面的文檔。 – timdev 2009-09-13 23:16:27

0

PoEdit實際上使用xgettext,您可以正確設置設置/解析器選項卡。

您應該分發.pot文件的方式,這是一個.po模板。所以翻譯人員可以翻譯它,設置語言,翻譯團隊等。

不幸的是,我看不到從源代碼創建.pot文件的選項,但poedit可以閱讀(當然,它與.po相同)。

創建自己的.po後,您可以擁有.mo