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'))
)
デフォルト言語は英語です。 私のモデルには、各言語ごとに3つのタイトルフィールドがあります。 それはmodeltranslationパッケージは、すなわちどのように動作するかです:Django:URLを正しく反映するように言語を設定および変更するにはどうすればよいですか?
(title_en、title_hu、title_sr_latn)
私は、URL内のモデルのインスタンスのURL表現のためのslugフィールドを使用しているので、私は言語ごとに3つのスラグfiledsを持っていますしたがって私のモデルクラスでも。
私は私のURLは、例えば、ハンガリーで次のようになります任意のローミングサービスが表示されない:
127.0.0.1/hu/konyvek/learn-django
私は私のURLは次のようになりたい:
英語のURL(Iデフォルトの言語の言語の接頭辞を持っている必要はありません):!
127.0.0.1/books/the-lord-of-the-rings
ハンガリーURLを:
127.0.0.1/hu/konyvek/a-gyuruk-ura
セルビアURL(セルビア語の接頭辞は、まさにこだわり醜いが、それは別のトピックであることを残念なことです):
127.0.0.1/sr-latn/knjige/gospodar-prstenova
私は、この問題を解決し、これまでに何かを見つけることができませんでした。 私がテンプレートに自分の言語の切り替え「次へ」フォーム要素の値にこれらのいずれかを使用することができないことは明らかである: {{ request.path }}
または
{{ request.get_absolute_path|slice:'3:' }}
は、だから私は、一時的に「次へ」の要素を除外しました。 言語を切り替えると、フロントページですべてうまく機能します。 私が書籍のページ、例えば(/hu/konyvek/)
に行った場合、それは適切に表示されますが、私がそこから別の言語に変更したいのであれば、それはできません。 現在のページをリロードするだけです。
これを行う方法を教えてください。
新しい言語で次のURLが必要な場合は、これが役立ちます:http://stackoverflow.com/questions/11437454/django-templates-get-current-url-in-another-language – pasztorpisti
ありがとう@pasztorpisti for you寄付や返事が遅れて申し訳ありません。しかし、それは私を助けませんでした。それでも何らかの解決策を探しています。 –