2010-06-23 13 views
8

मेरे पास पुरानी django साइट (0.97-प्री-एसवीएन -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> 

और एक सरल जावास्क्रिप्ट का उपयोग करते हुए जो 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 %} 
2

ऐसी तीसरी पार्टी परियोजनाएं हैं जो इस तरह की चीज का प्रबंधन करती हैं। Here's one review

2

Google कोड में एक लाइब्रेरी है जो multilingual content in Django models के लिए समर्थन प्रदान करती है।

मेरे टेम्पलेट में

:

+0

मुझे उम्मीद थी कि कोई मुझे एक पूर्ण उदाहरण के लिए इंगित करेगा। अभी भी नारियल सामग्री का चयन करने के लिए नार्वेजियन सामग्री का उपयोग करने के लिए मेरे टेम्पलेट्स को कैसे सेट अप करना है, और अंग्रेजी सामग्री के विपरीत इसके विपरीत, मेरे सेटअप में मेरे सेटअप में क्या है, msgstr "मेरे मॉड्यूल में सेटअप है। Msgstr" क्या मैं ऐसा कुछ करता हूं: { % अगर language_code.en%} {{ object.title_EN}} {% बाकी%} {{ object.title_NO}} ... ? – Anthrax00

1

कुछ अनुप्रयोगों के परीक्षण के मॉडल का अनुवाद करने के बाद, मैं django-modeltranlation चुना है।

यदि आप इस तुलना को http://djangopackages.com/grids/g/model-translation/ पर देखते हैं तो आप यह भी देखेंगे कि यह सबसे अधिक उपयोग किया जाने वाला पैकेज है, और यह दूसरी तालिका का उपयोग नहीं करता है। उसी तालिका में अनुवादित फ़ील्ड होने का अर्थ है कि हमें अतिरिक्त शामिल होने की आवश्यकता नहीं होगी।

1

मैंने थोड़ी देर के लिए इसके साथ संघर्ष किया और ऊपर वर्णित दृष्टिकोण "प्रत्येक भाषा के लिए कई फ़ील्ड" दृष्टिकोण के चारों ओर एक रैपर लिखना समाप्त कर दिया।

यह स्वचालित रूप से उस भाषा से संबंधित मूल्य को पुनर्प्राप्त करता है जिसमें आप हैं (गेटटेक्स्ट के समान)। आप इसे यहां देख सकते हैं: https://github.com/zmathew/django-linguo

संबंधित मुद्दे