gpt4 book ai didi

python - 如何创建国际化的 Google App Engine 应用程序

转载 作者:太空狗 更新时间:2023-10-29 17:48:17 26 4
gpt4 key购买 nike

我想以用户自己的语言提供我的 Python GAE 网站,只使用 App Engine 中直接可用的工具。为此,我想使用 GNU gettext 文件(.po 和 .mo 文件)。

有人成功地结合了 Python Google App Enginegettext 文件吗?如果是这样,您能否提供您使用的步骤?

我已经启动了 a discussion in GAE's Google group ,但无法从中提取出我想如何做:我不想添加外部依赖项,如 Babel(在讨论中建议)。我想使用普通的 Google App Engine,因此无需手动更新 Django 或此类东西。

首先,我将开始使用浏览器发送的语言,因此无需使用 cookie 等手动强制使用该语言。但是,一旦基本的国际化工作正常,我可能会稍后添加语言更改功能。

作为向您提供有关我正在尝试做的事情的更多详细信息的背景说明,我想国际化 Issue Tracker Tracker,这是一个我托管在 Launchpad 上的开源应用程序。我打算使用 Launchpad 的翻译平台(解释为什么我想使用 .mo 文件)。您可以在它的 Bazaar 分支中查看源代码(抱歉,由于新用户的 stackoverflow 垃圾邮件预防限制,没有链接...)

感谢您帮助我推进这个项目!

最佳答案

由于我的需求很简单,所以我使用了一个简单的 hack 而不是(不可用的)gettext。我创建了一个包含字符串翻译的文件 translate.py。大概是这样的:

en={}
ru={}

en['default_site_title']=u"Site title in English"
ru['default_site_title']=u"Название сайта по-русски"

然后在主要代码中我定义了一个函数,它返回一个字典,其中包含列表中最合适的语言的翻译(使用第一个有翻译的语言或英语):

import translate

def get_messages(languages=[]):
msgs=translate.en
for lang in languages:
if hasattr(translate,lang):
msgs=getattr(translate,lang)
break
return msgs

用法:

msgs = get_messages(["it","ru","en"])
hi = msgs['hello_message'] % 'yourname'

我还定义了一个辅助函数,它从 Accept-Language header 中提取语言列表。

这不是最灵活的解决方案,但它没有任何外部依赖项并且适合我(在玩具项目中)。我认为 translate.py 可能是从 gettext 文件自动生成的。

如果你想看更多,我的实际来源是here .

关于python - 如何创建国际化的 Google App Engine 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1946251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com