Django国际化:前缀\默认\语言&;语言重定向

Django国际化:前缀\默认\语言&;语言重定向,django,internationalization,django-i18n,Django,Internationalization,Django I18n,我正在将国际化添加到Django项目中。其工作原理如下: 当用户输入“/”即“主页”时,我们尝试获取他/她 我们课程的语言偏好。如果这不是我们的默认 语言(EN),我们将用户重定向到本地版本,如/ES/, /RU/、/CN/等 如果我们没有这样的会话数据,我们将选中Accept Language并 如果我们支持,请将用户重定向到本地版本 如果我们不支持用户的Accept语言,或者它是EN-我们不支持 重定向用户!我们只显示“默认语言” 也就是说,所有“非默认语言”都应该有前缀,但默认语言不会

我正在将国际化添加到Django项目中。其工作原理如下:

  • 当用户输入“/”即“主页”时,我们尝试获取他/她 我们课程的语言偏好。如果这不是我们的默认 语言(EN),我们将用户重定向到本地版本,如/ES/, /RU/、/CN/等

  • 如果我们没有这样的会话数据,我们将选中Accept Language并 如果我们支持,请将用户重定向到本地版本

  • 如果我们不支持用户的Accept语言,或者它是EN-我们不支持 重定向用户!我们只显示“默认语言”

也就是说,所有“非默认语言”都应该有前缀,但默认语言不会有前缀。为什么默认语言应该有前缀,对吗?)

问题是,我不知道如何设置这个逻辑。如果我将
prefix\u default\u language=False设置为禁用默认语言的/EN/前缀,它也会禁用“not default”重定向。我找到了一个解决问题的软件包:
settings.SOLID\u I18N\u USE\u REDIRECTS=True
,但它在Django 2中不起作用+


我不敢相信我是唯一一个讨厌默认语言前缀的人),尽管我找不到任何既有重定向又没有默认语言前缀的解决方案。希望有人能给我一些建议好的,我解决了为
前缀\u default\u language=False
案例编写自定义中间件扩展和位更改本地中间件逻辑的问题。在测试等之后将其放在@github,将更新此QCan,您是否可以修复django-solid-i18n-url以适用于django 2.2?这应该不会太难,而且我相信很多人都会喜欢:-)@dirkgroten我可能会以这个而不是我自己的中间件结束,对吗?)好的,我解决了为
前缀\u default\u language=False
案例编写自定义中间件扩展和位更改本地中间件逻辑的问题。在测试等之后将其放在@github,将更新此QCan,您是否可以修复django-solid-i18n-url以适用于django 2.2?这应该不会太难,我相信很多人都会喜欢:-)@dirkgroten我可能会以这个而不是我自己的中间件结束,对吗