我有旧的django站点(0.97-pre-SVN-7457),我即将进行一些更改,并使用当前的django开发代码运行该站点。
我有很多内容需要完好无损。当我启动网站时,我做了一个丑陋的“黑客”来获得双语网站,所以结果并不漂亮:
这是我的模特:
class Entry(models.Model):
title_NO = models.CharField(max_length=500)
teaser_NO = models.TextField(blank=True, null=True,)
body_NO = models.TextField(blank=True, null=True,)
title_EN = models.CharField(max_length=500, blank=True, null=True)
teaser_EN = models.TextField(blank=True, null=True,)
body_EN = models.TextField(blank=True, null=True,)
...
在我的模板中,我写道:
<div id="language_NO">
<h1>{{object.title_NO}}</h1>
.....
</div>
<div id="language_EN">
<h1>{{object.title_EN}}</h1>
.....
</div>
使用简单的javascript来确定要显示的div(在模板中打印两次内容非常难看,我知道!)
所以,现在我想做一些改变,最好的方法是什么?
我曾尝试阅读有关该主题的文档,但我无法找到解释如何处理网址和模板的内容。
我唯一能找到的是how to change the language correct
非常感谢您的帮助!
答案 0 :(得分:3)
我正在寻找的答案是:
在我的模板中:
{% load i18n %}{% get_current_language as LANGUAGE_CODE %}
{% ifequal LANGUAGE_CODE "en" %}
<h2>{{object.title_EN }}</h2>
{% else %}
<h2>{{object.title_NO }}</h2>
{% endifequal %}
答案 1 :(得分:2)
有各种第三方项目可以管理这类事情。 Here's one review
答案 2 :(得分:2)
Google代码有一个库,可为multilingual content in Django models提供支持。
答案 3 :(得分:1)
在测试了几个应用程序来翻译模型后,我选择了django-modeltranlation。
如果您查看此比较http://djangopackages.com/grids/g/model-translation/,您还会看到它是最常用的包,并且它不使用第二个表。将翻译后的字段放在同一个表中意味着我们不需要额外的连接。
答案 4 :(得分:1)
我在这方面挣扎了一段时间,最后围绕你上面描述的“每种语言的多个字段”方法编写了一个包装器。
它会自动检索与您所使用的语言相对应的值(类似于gettext)。您可以在此处查看:https://github.com/zmathew/django-linguo