2011-01-08 16 views
7

Sto costruendo un sito multilingue con una delle lingue "farsi": Tutto ha funzionato bene finora, ma la lingua da destra a sinistra "pers/persiano" non è allineato a destra, quando si inizia una riga di testo successiva. Ciò significa che la riga successiva non è allineata a destra come al solito per le lingue da destra a sinistra. Il lavoro di traduzione.lingua django da destra a sinistra con LANGUAGE_BIDI non funziona

settings.py

gettext = lambda s: s 

#default language should be german 
LANGUAGE_CODE = 'de' 
#LANGUAGE_CODE = 'en' 
#LANGUAGE_CODE = 'fa' 


LANGUAGES = (
    #('fr', gettext('French')), 
    ('de', gettext('German')), 
    ('en', gettext('English')), 
    ('fa', gettext('Farsi')), 
    #('pt-br', gettext("Brazil")), 
) 

language_chooser.html

{% load localeurl_tags %} 
{% load i18n %} 
{% load tabs %} 


{% for lang in LANGUAGES %} 
     {% ifequal lang.0 LANGUAGE_CODE %} 
      <li class="active"><a>{{ lang.1 }}</a></li> 
     {% else %} 

<!-- 
     {% if LANGUAGE_BIDI %} 
      <li>The current language is bidirectional</li> 
     {% else %} 
      <li>The current language is <b>not</b> bidirectional</li> 
     {% endif %} 
--> 
      <li class="{% ifactivetab "en" %}active{% else %}inactive{% endifactivetab %}"><a href="{{ request.path|chlocale:lang.0 }}" accesskey="2">{{ lang.1 }}</a></li> 
     {% endifequal %} 
{% endfor %} 

nelle base.html Ho anche carico:

{% load i18n %} 
{% get_current_language as LANGUAGE_CODE %} 
{% get_available_languages as LANGUAGES %} 
{% get_current_language_bidi as LANGUAGE_BIDI %} 

mio django.po di file per la lingua "Farsi/persiano" si presenta come: alt text

Come posso gestire questo?

Soluzione: Dopo aver definito una "article_right_aligned_language" nuova classe CSS con l'attributo "text-align: right;" e modificando il mio modello base come segue, funziona ora !!

 <div {% if LANGUAGE_BIDI %} class="article_right_aligned_language" {% else %} class="article"> {% endif %} 
     {% block site_wrapper %}{% endblock %} 
     </div> 
+1

Sicuramente 'text-align: right'. –

risposta

7

L'allineamento del testo è gestito da CSS non Django. Impostare la proprietà text-align sul elemento contenitore:

.container.right-aligned-language { 
    text-align: right; 
} 

allora si può applicare la classe right-aligned-language al contenitore (o tag corpo è per questo) con un'istruzione condizionale nel modello.

+0

Funziona bene !! Grazie mille per la tua risposta veloce. – saeed

Problemi correlati