需要Google App Engine国际化帮助(Python)
有没有人能给我一些建议,关于如何在应用引擎/webapp/python中使用国际化?我看到了一些关于django翻译支持的帖子,但我找不到足够的信息来让它正常工作。
我需要一个这样的解决方案:
- 浏览器能够自动检测语言
- 用户可以手动选择和设置语言
- 模板和代码中的字符串可以本地化,也就是可以根据语言显示不同的内容
- 语言支持的文件编辑要简单
我对应用引擎还很陌生,所以需要一些简单易懂的指引或代码帮助。
非常感谢!
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点“偷”来的。