将Django翻译存储在数据库中

时间:2011-10-12 09:13:10

标签: django heroku translation

我正在开发一个Django应用程序,它将部署到Heroku(在他们的Cedar堆栈上)。这种情况的局限是我们无法写入磁盘。但是,Django翻译驻留在.po文件中,因此客户端将无法在不涉及开发人员的情况下更改实时站点上的翻译(这不是理想的)。

因此,替代解决方案似乎是将翻译存储在RDBMS,Mongo,Redis等中。

有没有明智的方法来实现这一目标?这甚至是个好主意吗? (我不想为每次翻译都打到DB!)

编辑:似乎有很多Django应用程序用于翻译存储在数据库中的文本,但不是用于将翻译本身存储在数据库中。

1 个答案:

答案 0 :(得分:0)

我对Django翻译和存储在​​文件中的翻译的看法一般 - 这是针对不会改变且不是动态的部分。就像网站上的常量一样。如果您有动态文本,可以并且必须在网站运行时进行编辑 - 我会说这与普通内容(博客条目,评论等)相同。

所以你可以用模板标签开发简单的模块“站点部件”,它将从DB中为你抓取正确的东西。与模板类似,您可以调用{get_site_part example}。然后,您可以从管理界面编辑这些部分。

我不建议将动态内容存储到系统文件中。如果您担心每次需要时都会访问数据库 - 那么缓存应该有助于您在此处开发智能模板标记并在一个查询中获取所需的所有站点部分。然后,只是简单地加载博客条目或其评论就没有什么不同了。

也许我错了,所以这只是关于这个话题的2c:)

Ignas