需要Google App Engine国际化帮助(Python)

7 投票
2 回答
1902 浏览
提问于 2025-04-15 19:06

有没有人能给我一些建议,关于如何在应用引擎/webapp/python中使用国际化?我看到了一些关于django翻译支持的帖子,但我找不到足够的信息来让它正常工作。

我需要一个这样的解决方案:

  1. 浏览器能够自动检测语言
  2. 用户可以手动选择和设置语言
  3. 模板和代码中的字符串可以本地化,也就是可以根据语言显示不同的内容
  4. 语言支持的文件编辑要简单

我对应用引擎还很陌生,所以需要一些简单易懂的指引或代码帮助。

非常感谢!

2 个回答

1

在这里,我提供了一些关于在Google App Engine框架下的国际化和本地化的信息。你可以通过这个链接了解更多内容:http://eflorent.blogspot.com/2010/08/internationalization-under-google-app.html

2

这里有几个选项可以考虑。

  • 标准的 gettext() 方法。可以参考 这个代码示例。不过这个代码有点过时了,因为现在有标准的方法来管理 cookies 和会话,所以应该重新写一下以适应实际使用。

有时候这个方法会失败,可以看看 这个问题。通常只需要重新上传应用就能解决,但这听起来有点奇怪。

  • 可以使用 babel。它是纯 Python 的,所以很容易集成。缺点是需要依赖外部库,不过这个库很小,而且工作得很好。这里有个答案,里面有详细的解释。

  • 不要在代码中做本地化(l10n)和国际化(i18n)。我认为 GAE 应该作为一个后端服务,偶尔提供 HTML 页面。

最近我做了一个需要多语言网页界面的项目。这次我生成了一套包含所有需要语言的模板,使用了一个“主”模板,通过 _() 和 gettext()(这是 Python 模块,不是 Django 标签)提取字符串,并遍历不同的语言。一个简单的模板加载器会检查当前语言并加载相应的模板。这个想法是从第1点“偷”来的。

撰写回答