3

ドメインに基づいてDjango Webサイトのページの言語固有のバージョンを選択する簡単な方法はありますか? (言語コードを除いて、URLは両方の言語で同じであり、今後も同じであるため、(デフォルトで「en」で実行)とmysite.com/teachers/manage同じにしたい-そしていいえ、URL自体は「teachers/manage」のようになります' は決して翻訳されないため、両方の言語に対して 2 セットの URL を構成したくありません)。mysite.com/en/teachers/managemesito.es/teachersmesito.es/es/teachers

注:私が見つけた他のすべての解決策は、URL も翻訳したいことを暗示していますが、URL を翻訳したくないことはわかっています。

注2(追加するのを忘れました):ほとんどのWebサイトは実際にはdjango-cmsベースであるため、django-cms固有のソリューションが役立ちます...


OK、私はリダイレクトビューを介してこの醜いハックで私が望んでいたものを手に入れました (しかし、それでも、これを行うための正しくて簡単方法はありませんか?...):

## mysite.urls:

urlpatterns = patterns('',
    (r'^$', 'mysite.views.language_router')


## mysite.views:

def language_router(request):
    if request.META['HTTP_HOST'].find('myspanishdomain.com') != -1 \
            and request.META['PATH_INFO'] == '/' :
        return HttpResponseRedirect('http://www.myspanishdomain.com/es/')
    return cms.views.details(request, '')

(myenglishdomain.com のサイトのデフォルト言語は英語です)

4

3 に答える 3

4

そのスレッドでここで説明したルールに基づいて言語がまだ識別されていない場合は、 LocaleMiddlewareの後に追加する onw 小さなミドルウェア クラスを作成しないのはなぜですか。

于 2012-10-01T13:38:26.993 に答える
3

ドメインを言語にマッピングできるTransurlvaniaを確認することをお勧めします。

MULTILANG_LANGUAGE_DOMAINS = {
    'en': ('www.example-en.com', 'English Site'),
    'fr': ('www.example-fr.com', 'French Site')
}
于 2012-10-01T08:34:25.483 に答える