2010-06-23 14 views
8

Tengo un sitio antiguo de django (0.97-pre-SVN-7457) y estoy a punto de hacer algunos cambios para que el sitio se ejecute con el código de desarrollo actual de django.¿La forma más fácil de tener un sitio django multilingüe?

Tengo un montón de contenido que debe estar intacto. Cuando empecé el sitio, hice una fea "Hack" para obtener un sitio dual de idiomas, por lo que el resultado no es bastante:

Aquí es mi modelo:

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,) 
... 

En mis plantillas que he escrito:

<div id="language_NO"> 
<h1>{{object.title_NO}}</h1> 
..... 
</div> 
<div id="language_EN"> 
<h1>{{object.title_EN}}</h1> 
..... 
</div> 

Y utilizando un javascript simple para determinar div wich para mostrar (Impresión del contenido de dos veces en la plantilla es muy feo, lo sé!)

Así que, ahora que quiero hacer algunos cambios, ¿Cual es el mejor camino a seguir?

He intentado leer la documentación sobre el tema, pero no puedo encontrar nada que explique qué hacer con las URL y las plantillas.

La única cosa corriente que he encontrado es how to change the language correct

Su ayuda es muy apreciada!

+0

El enlace que proporcionó le brinda toda la información que necesita para comenzar. –

Respuesta

3

La respuesta que estaba buscando es la siguiente:

en mi plantilla:

{% 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

El código de Google tiene una biblioteca que brinda soporte para multilingual content in Django models.

+0

Espero que alguien me señale un ejemplo completo. Todavía no entiendo cómo configurar mis plantillas para usar el contenido noruego cuando se selecciona el idioma noruego, y viceversa para el contenido en inglés, con la configuración que tengo en mi models.py . Hago algo como esto: { % si language_code.en%} {{ object.title_EN}} {% else%} {{ object.title_NO}} ... ? – Anthrax00

1

Luché con esto por un tiempo y terminé escribiendo un resumen sobre el enfoque de "múltiples campos para cada idioma" que describió anteriormente.

Recupera automáticamente el valor correspondiente al idioma en el que se encuentra (similar a gettext). Puede verificarlo aquí: https://github.com/zmathew/django-linguo

Cuestiones relacionadas