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

2024-10-01 17:24:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想提供我的pythongae网站在用户自己的语言,只使用工具可直接在appengine。为此,我想使用gnugetext文件(.po和.mo文件)。在

是否有人成功地组合了Pythongoogleappenginegettext文件?如果是,请提供您使用的步骤?在

我已经开始了a discussion in GAE's Google group,但还不能从中提取出我想怎么做:我不想添加外部依赖项,比如Babel(在讨论中建议)。我想使用普通的谷歌应用引擎,所以没有手动更新Django或类似的东西。在

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

作为一个背景说明,为了给你更多关于我正在做什么的细节,我想国际化问题跟踪者,一个我在Launchpad上托管的开源应用程序。我计划使用Launchpad的翻译平台(解释我为什么要使用.mo文件)。你可以看看它的Bazaar分支的源代码(抱歉没有链接,因为stackoverflow对新用户的垃圾邮件预防限制…)

谢谢你帮我推进这个项目!在


Tags: 文件工具用户语言launchpad网站步骤手动
2条回答

由于我的需求很简单,所以我使用了一个简单的hack而不是(unavailable)gettext。我用字符串翻译创建了一个文件,translate.py。大致如下:

en={}
ru={}

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

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

^{pr2}$

用法:

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

我还定义了一个helper函数,它从Accept-Language头中提取语言列表。在

它不是最灵活的解决方案,但它没有任何外部依赖性,对我(在一个玩具项目中)很管用。我认为translate.py可能是从gettext文件自动生成的。在

如果您想了解更多,我的实际源代码是here。在

您可以使用Django国际化工具,如explainedhere。在

他们还说,要做到这一点绝非易事。在

我希望这对你有帮助:)

相关问题 更多 >

    热门问题