翻译 Django 数据库值的最佳/推荐方式
Posted
技术标签:
【中文标题】翻译 Django 数据库值的最佳/推荐方式【英文标题】:The best/recommended way to translate Django database values 【发布时间】:2011-01-02 10:12:44 【问题描述】:在国际化我的 Django 应用程序时,我试图找出翻译实际数据库值(文本字符串,而不是日期格式或任何复杂的东西)的最佳方法。我能想到的最合乎逻辑的方法是:
为每种语言保存一个数据库列(例如description_en
、description_de
、description_fr
、...)或
每种语言都有一个不同的数据库(例如schema_en
、schema_fr
、schema_de
、...)。
这些是最好的选择,还是我还缺少其他东西?谢谢。
【问题讨论】:
另外,这是一个非常小而简单的应用程序,可能只有 5 个或更少的小桌子。 是否每个安装都应该有一种单一语言,而不是每个用户都有一个语言设置? 该应用支持按用户选择语言,因此它必须在单个实例中支持所有实现的翻译 重复***.com/questions/1984327/… 【参考方案1】:我正在阅读我的 django 扩展,并找到了 django-modeltranslation 插件。它似乎完全按照您的意愿行事。
【讨论】:
第一眼看起来不错,我得试试看 - 谢谢! 我来晚了,为数据库翻译提出新的解决方案,yawd-translations - github.com/yawd/yawd-translations。它允许通过管理界面(在运行时)管理语言,并实现管理内联以轻松管理翻译。由于我正在为 yawd 开发,因此我使用评论而不是新答案,以免被指责为自我推销:)【参考方案2】:我还发现了这个small project,其目的是将本地化字符串同步到已注册模型字段的标准消息文件中。
例子:
import vinaigrette
vinaigrette.register(YourModel, ['name', 'description'])
标准命令
$ manage.py makemessages
将为注册字段中找到的每个不同值维护消息。
我还没有机会尝试。 但这对我来说似乎是从 db 转换数据的最简单方法。
【讨论】:
这意味着每次您在数据库中添加新记录时,如果有新条目,您可能必须重新运行 makemessages 并检查 po 文件......只是一个警告。但无论如何,这就是我一直在寻找的,它比 django-modeltranslation 更轻,后者在需要为每种语言翻译的表中添加一列......以上是关于翻译 Django 数据库值的最佳/推荐方式的主要内容,如果未能解决你的问题,请参考以下文章