2010-02-10 49 views
7

有沒有人有關於如何在app engine/webapp/python中使用國際化的建議。我已經看到一些重新django - 翻譯支持,但我似乎無法找到足夠的信息,如何使其工作。需要Google App Engine國際化幫助(Python)

我需要的是一個解決方案,

  1. 瀏覽器可以檢測語言
  2. 用戶可以覆蓋和模板,並從代碼可以本地化
  3. 語言支持便於文件編輯設置
  4. 串。

我是新來的應用程序引擎,所以需要一些易於遵循/瞭解指針/碼援助

+0

您可能會將本地化與國際化混淆,這會讓您的搜索更難一點(您希望尋求國際化)。請閱讀文章以獲取有關區別的解釋:http://www.w3.org/International/questions/qa-i18n – 2010-02-10 11:20:28

+0

啊 - 啊!抱歉,我確實知道我的意思 - 長時間的編程讓大腦死亡 - 我將重新發布。非常感謝讓我看起來很愚蠢。如果其他人有興趣,我會發佈一個鏈接到新帖子。 – spidee 2010-02-10 17:23:50

+0

你應該編輯這個問題,而不是創建一個新問題。 – 2010-02-11 11:57:24

回答

2

有幾種選擇需要考慮。

  • Standard gettext()。請參閱this代碼示例。代碼已過時:有一種管理cookie和會話的標準方式,因此應根據實際用途重新編寫代碼。

有時此方法失敗,請參閱this issue。通常只需重新上傳應用程序即可解決問題,但這很奇怪。

  • 使用巴貝爾。它是純Python,所以它可以輕鬆集成。缺點是外部依賴,但它很小,工作良好。 Here是解釋的答案。

  • 不要在代碼中執行l10n和i18n。我的觀點是,GAE應該是後端服務,只是偶爾提供html服務。

最近我做了一個需要多種語言的Web UI的項目。這一次,我通過使用_()和gettext()(python模塊,而不是django標籤)創建「主」模板,提取字符串並迭代語言,生成了所需語言的一組模板。一個簡單的模板加載器檢查當前的語言並加載適當的模板。這個想法從p被無恥地偷走了。 1.