サポートされている言語ごとに同じビューを使用したいと思います。 例として、既定の言語と英語があります。私のメインのURLでdjangoで複数の言語を扱う複数のURLを1つのビューで表示
:私の投稿アプリの
url(r'^posts/', include('posts.urls')), #for default language
url(r'^en/posts/', include('posts.urls')), #for english
URLのファイルは、このようなものです:そう
url(r'^newpost/$', views.PostFormView.as_view(), name='add'),
url(r'^favorite/$', views.favorite, name='favorite'),
、例えば、両方www.mysite.com/posts/addとwww.mysite.com/en/posts/add PostFormViewと同じビューに送信し、urlに "/ en /"が含まれているかどうかに応じて、正しい言語でコンテンツを送信します。
ただし、問題はリダイレクトまたはリバースセンドを常にデフォルトの言語にすることです。例えば、「posts:add」は、url(r'^en/posts/', include('posts.urls'))
の前にurl(r'^posts/', include('posts.urls'))
があるので、「www.mysite.com/posts/add」に常に「www.mysite.com/posts/add」を送信します.2つの異なるURLに同じビューを使用する方法はありますか。または、複数言語のウェブサイトをどうすれば処理できますか?サポートされているすべての言語のすべてのアプリを複製する必要がありますか?
Djangoの[国際化とローカリゼーション](https://docs.djangoproject.com/en/2.0/topics/i18n/)の機能を見ても、言語ごとに異なるURLを使用するのではなく、 – ubadub
@ubadub + 1、Djangoはもともとこれをサポートしていました。 – Ykh
i18n URLセクションの文書は[こちら]です(https://docs.djangoproject.com/en/2.0/topics/i18n/translation/#module-django.conf.urls.i18n) – Ykh