1

我正在开发一个 Django (v. 1.5.1) 网站,我有几个模型,例如RegisteredUserStartup. 这两个模型中的每一个都有Many2ManyField一个Area模型。Area包含两个字段:nameslug(由 构建name)。

这种设计可以很好地找到同一领域内的用户和初创公司,但是在尝试将其国际化时存在一个大问题。在这个设计中,用户自己创建区域并将它们附加到RegisteredUser实例Startup上。但是,如果用不同的语言创建相同的区域,则调用的区域computer science将不同于informática(西班牙语版本)。

这个想法是用户创建区域就像他们是标签一样,但我认为这会带来如上所述的问题。

所以我想知道可能的解决方案:

  1. 当用户创建一个区域实例时,她必须填写该区域的所有翻译版本,并且会根据英文版本计算slug。但这对用户来说似乎不是很有吸引力。可以?
  2. 用户只能从先前介绍和翻译过的预定义区域列表中进行选择。但是新的呢?这个选项似乎真的很难维护......

对于我正在使用的翻译django-transmeta

因此,我很高兴阅读您对如何处理此问题的意见和建议。

非常感谢!

4

1 回答 1

0

最后我通过引入一个新层解决了这个问题,如下所示:

存在模型区域和资源,现在都可以翻译并且由管理员创建,当前用户不允许创建或修改它们。这些模型将更加抽象以允许进行匹配。

但是,为了更“精确”,添加了两个新模型:AreaTagResourceTag. 这两个模型是由用户创建的,它们没有被翻译。所以我们可以有 "application" 和 "applicación" areatags,但是由于用户之前选择了Area,我们可以使用 进行搜索Area,这在这两种情况下都很常见。Tag因此,无需在关卡中搜索即可找到亲和力。

希望这可以帮助尝试做类似事情的人!:)

于 2013-04-21T00:53:53.973 回答