settings.py:
INSTALLED_APPS = [
...,
'modeltranslation',
]
TIME_ZONE = 'Europe/Belgrade'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGES = (
('en-us', _('English')),
('hu', _('Hungarian')),
('sr-latn', _('Serbian')),
)
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
os.path.join(BASE_DIR, 'books', 'locale'),
)
urls.py:
urlpatterns = [
url(r'^i18n/', include('django.conf.urls.i18n')),
]
urlpatterns += i18n_patterns(
url(_r('^books/'), include('books.urls', namespace='books'))
)
Meine Standardsprache ist Englisch. Mein Modell hat 3 Titelfelder für jede Sprache. Es ist, wie modeltranslation Paket funktioniert also:Django: Wie man Sprachen einstellt und ändert, die URLs richtig reflektieren?
(title_en, title_hu, title_sr_latn)
Da ich Slug Feld für die URL-Darstellung einer Instanz des Modells in der URL verwenden, ich habe 3 Slug fileds für jede Sprache entsprechend auch in meiner Modellklasse.
Ich sehe keinen Sinn, dass meine URL zum Beispiel so etwas wie dieses auf ungarisch aussehen sollte:
127.0.0.1/hu/konyvek/learn-django
Ich möchte meine Urls wie folgt aussehen:
Englisch url (I wollen nicht die Sprache Präfix für die Standardsprache haben):
127.0.0.1/books/the-lord-of-the-rings
ungarischen url:
127.0.0.1/hu/konyvek/a-gyuruk-ura
serbischer url (es ist bedauerlich, dass serbische Sprache Präfix extreamly hässlich aussieht, aber das ist ein anderes Thema):
127.0.0.1/sr-latn/knjige/gospodar-prstenova
ich nichts so weit, dass dieses Problem finden kann, löst . Es ist offensichtlich, dass ich auch nicht von diesen in meiner Sprache Schaltformularelement Wert in Vorlage ‚next‘ verwenden können: {{ request.path }}
oder {{ request.get_absolute_path|slice:'3:' }}
Also habe ich die ‚next‘ Element vorübergehend ausgeschlossen. Wenn ich zwischen Sprachen umschalte, funktioniert auf meiner Titelseite alles gut. Wenn ich auf eine Buchseite gehe, zum Beispiel (/hu/konyvek/)
, zeigt es die Sprache richtig an, aber wenn ich von dort in eine andere Sprache wechseln möchte, kann ich das nicht tun. Es lädt nur die aktuelle Seite neu.
Irgendein Vorschlag, wie man das erreicht?
Sie brauchen eine nächste URL in der neuen Sprache, das kann helfen: http://StackOverflow.com/Questions/11437454/Django-Templates-Get-Current-URL-in-Another-Sprache – pasztorpisti
Vielen Dank @pasztorpisti für Sie Beitrag und Entschuldigung für die lange Verspätung zu beantworten. Aber das hat mir nicht geholfen. Und immer noch nach der Art von Lösung suchen. –