/ / Jaki system dynamicznej internacjonalizacji można zastosować w projektach Django? - python, django, internacjonalizacja

Który system dynamicznej internacjonalizacji jest wykorzystywany w projektach Django? - python, django, internacjonalizacja

Opracowuję nowy projekt od zera z Django. Widzę, że istnieje wiele aplikacji do obsługi tłumaczenia dynamicznych treści.

  • Django-wielojęzyczny
  • Django-pluggable-model-i18n
  • Django-modeltłumaczenie
  • Transdb
  • Django-wielojęzyczny-model-
  • Django-transmeta

żeby wymienić tylko kilka.

Transdb, transmeta i wielojęzyczny brzmiały uczciwie, ale chcę przeczytać pewne osobiste doświadczenia.

Który z nich powinienem wybrać?

Odpowiedzi:

5 dla odpowiedzi № 1

Zgadzam się z S.Lott, że będziesz chciał pomyśleć o tym, czego potrzebujesz od internacjonalizacji. Jest to jednak bardzo dobry upadek wszystkich wymienionych pakietów:

http://blog.muhuk.com/2010/01/06/dynamic-translation-apps-for-django.htm

Mój osobisty wybór do tej pory jest "żadnym z powyższych". Obecnie prototypuję z datatrans:

http://github.com/citylive/django-datatrans

http://www.botondus.com/dynamic-translation-with-django-datatrans/

Ale mogę jeszcze wybrać inne rozwiązanie.


3 dla odpowiedzi № 2

Istnieją dwa rodzaje tłumaczenia modelu:

  1. Dodanie dodatkowych kolumn / pól do modelu do przetłumaczenia
  2. Używanie drugiej tabeli do tłumaczeń

Pierwsze podejście jest bardziej wydajne, ponieważ Tynie używaj dodatkowych połączeń, a drugi jest mniej inwazyjny, ponieważ nie modyfikuje oryginalnej tabeli modelu. Osobiście bardziej podoba mi się pierwsza opcja i to jeden z głównych powodów, dla których używam django-modeltranslacja.

Możesz również rzucić okiem na to siatka porównawcza.


2 dla odpowiedzi nr 3

Django-nani to zupełnie nowa aplikacja, która jest szybka i dobrze napisana z wykorzystaniem prawdopodobnie najlepszego podejścia do projektowania.

Nadal jest w fazie rozwoju, ale działa dobrze i ma bardzo kompletny dokumentacja.

To jest fragment kodu, aby zobaczyć, jak zdefiniowane są modele wielojęzyczne:

from django.db import models
from nani.models import TranslatableModel, TranslatedFields


class DjangoApplication(TranslatableModel):
name = models.CharField(max_length=255, unique=True)
author = models.CharField(max_length=255)

translations = TranslatedFields(
description = models.TextField(),
description_author = models.CharField(max_length=255),
)

def __unicode__(self):
return self.name

0 dla odpowiedzi nr 4

Używam django i18n na dwujęzyczny projekt: jestem naprawdę zadowolony z tego i zdecydowanie polecam, ale muszę powiedzieć, że nigdy nie wypróbowałem jednego z pozostałych ...