2010-06-23 116 views
8

我有一箇舊的django站點(0.97-pre-SVN-7457),我即將進行一些更改並使站點運行在當前的django開發代碼上。擁有多語言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

您提供的鏈接爲您提供了所需的所有信息。 – 2010-06-23 11:38:52

回答

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 %} 
2

谷歌代碼有一個庫,提供支持multilingual content in Django models

+0

我希望有人會指點我一個完整的例子。仍然沒有得到如何設置我的模板挪威語言選擇時使用挪威內容,反之亦然的英文內容,whith我有我的模型設置.py 我做這樣的事情: { %if if language_code.en%} {{object.title_EN}} {%else%} {{object.title_NO}} ... ? – Anthrax00 2010-06-25 10:45:32

1

我爲此苦苦掙扎了一會兒,最後在上面描述的「每種語言的多個字段」方法中寫了一個包裝。

它會自動檢索與您所處的語言(類似於gettext)相對應的值。您可以在此處查看:https://github.com/zmathew/django-linguo