मेरी साइट पर 2 भाषाएं हैं: अंग्रेजी और अरबी उपयोगकर्ता ध्वज पर क्लिक करने वाली भाषाओं के बीच स्विच कर सकते हैं।
class CollectionEditForm_en(forms.Form):
name = forms.CharField(label=_('Name'), max_length=100, widget=forms.TextInput(attrs={'size':'50'}))
product = forms.ModelChoiceField(label=_('product'), queryset=Product.objects.filter(enabled=True), empty_label=None)
class CollectionEditForm_ar(forms.Form):
name = forms.CharField(label=_('Name'), max_length=100, widget=forms.TextInput(attrs={'size':'50'}))
product = forms.ModelChoiceField(label=_('product'), queryset=Product_ar.objects.filter(enabled=True), empty_label=None)
इस तरह से कोड की जांच भाषा में:
if request.LANGUAGE_CODE=='ar':
CollectionEditForm=CollectionEditForm_ar
else:
CollectionEditForm=CollectionEditForm_en
तो टेम्पलेट्स में
class Product(models.Model):
name=models.CharField(max_length=100)
name_ar=models.CharField(max_length=100, default='')
def __unicode__(self):
return self.name
class Product_ar(Product):
def __unicode__(self):
return self.name_ar
class Meta:
proxy=True
रूपों में मैं बजाय 2 रूपों एक का उपयोग करें: मॉडल में मैं एक प्रॉक्सी मॉडल का उपयोग मैं जांचता हूं:
{% if LANGUAGE_CODE == "ar" %}
<a href="/product/{{product.alias}}/">{{product.name_ar}}</a>
{% else %}
<a href="/product/{{product.alias}}/">{{product.name}}</a>
{% endif %}
आशा है कि यह समाधान किसी की मदद करेगा
क्या आपने उत्पादन में समाधान का परीक्षण किया और यह django-multilingual-ng से तुलना कैसे करता है? मैं डेटाबेस फ़ील्ड को स्थानांतरित करने के लिए एक नया दृष्टिकोण चुन रहा हूं क्योंकि डीजेंगो-बहुभाषी Django 1.2+ पर काम नहीं करता है और django-multilingual-ng पूरी तरह से मृत दिखता है। – stricjux
हां, इसका उपयोग कई वेबसाइटों पर उत्पादन में किया जाता है। बीटा की स्थिति का एकमात्र कारण यह है कि परीक्षण सूट में अभी तक 100% कवरेज नहीं है। – specialunderwear