2012-04-05 76 views
1

我目前正在创建一个应用程序,在这个应用程序上,会说不同语言的人访问信息。这些信息将非常独特,因此使用翻译工具将不够好。所有信息都需要使用不同的语言,并且当用户登录时,信息将根据其设置显示。现在,该应用程序基于Django和MySQL。我看到Django具有本地化功能,但我不太明白。它是在调用翻译机制还是什么?我不明白。针对Python/Django的数据库本地化(多语言)设计

把它放在一边,我想知道什么是解决这个问题的最佳方法。现在不知道不同语言的数量。所以我不认为在中存储每列的确切翻译,但是一个表是一个好主意,尽管它可以节省查询时间。 (没有内部联接等)。

1)我应该看看Django本地化功能吗?究竟是什么? [我真的不想将翻译存储到文件中。]

2)什么数据库设计最适合多语言应用程序?我发现这些的:

如何,人们通常解决这个问题?非常感谢!

编辑:我不是特别寻找那些易于使用的东西。主要是为了高性能的东西,不会在我的数据库中造成巨大的混乱......这可能吗?

+0

你见过[django-hvad](https://github.com/KristianOellegaard/django-hvad)吗? – ilvar 2012-04-05 03:59:59

+0

我并不特别喜欢那些易于使用的东西。主要是为了高性能的东西,不会在我的数据库中造成巨大的混乱......这可能吗? – abisson 2012-04-05 04:24:32

回答

0

1)Django i18n机制用于允许静态文本标签在模板,字段名称,错误消息中的本地化 - 基本上每个文本都不存储在数据库中。对于数据库内容的翻译没有多大帮助。

2)在多语种Django模型我已经看到了每一个主要的努力,使用下列方法之一:

  • 添加modlename_lang列到同一个表。
  • 将共享字段存储在一个表中并在另一个表中翻译。

我会建议你决定你更喜欢哪些方法,并且使用最好的文档模型翻译应用程序来选择方法。

如果您打算使用几种语言,那么我建议您采用第一种方法。另一方面,如果语言的数量变大,第二种方法可能更加可行。