【发布时间】:2012-12-12 00:05:59
【问题描述】:
我使用 Python 和 webapp2 构建了一个多语言 Web 应用程序。
我有一个名为 Tag 的对象,它可以翻译成多种语言。为此,我创建了以下模型:
class Language(ndb.Model):
code = ndb.StringProperty()
name = ndb.StringProperty(indexed=False)
class MultilingualText(ndb.Model):
language = ndb.KeyProperty(kind=Language)
text = ndb.TextProperty(indexed=False)
class Tag(ndb.Model):
translations = ndb.StructuredProperty(MultilingualText, repeated=True, indexed=False)
我想问一下这是否是执行此类任务的正确方法,以及如何将此结构与 WTForms 一起用于验证等。
提前非常感谢!
【问题讨论】:
-
WtForms 和 Jinja2 支持本地化 (I18n) 和 Babel。我建议你研究这些工具,看看它们是否符合你的项目目标。通常这是要走的路。
-
一些问题 - 每次获得标签时,您是否可能想要给定标签的所有翻译?一段文字可以有多大?如果您并不总是需要所有翻译,最好将每个翻译保留为标签的子项,键是语言,然后仅根据用户语言获取给定的翻译。只是一些想法;-)
-
@DimitrisMarkis 请查看答案并制作任何 cmets!
标签: python google-app-engine webapp2 wtforms