Javascript 通过“改变语言”/i18n/setlang/”的;AjaxPost没有在Firefox上做任何事情

Javascript 通过“改变语言”/i18n/setlang/”的;AjaxPost没有在Firefox上做任何事情,javascript,django,reactjs,internationalization,Javascript,Django,Reactjs,Internationalization,我的后端使用Django,前端使用ReactJS 当用户更改其配置文件的语言时,我使用数据对象{language:[language\u code]}对/i18n/setlang/执行后ajax调用,并刷新页面 我只是用这个ajax调用来改变语言,一堆带有翻译的.po/.mo文件,我使用gettext()来翻译JS中的行 这在Chrome上非常有效,但在Firefox上完全被忽略,并且没有进行翻译。知道为什么吗 我的中间件包含django.middleware.locale.localemidl

我的后端使用Django,前端使用ReactJS

当用户更改其配置文件的语言时,我使用数据对象
{language:[language\u code]}
/i18n/setlang/
执行后ajax调用,并刷新页面

我只是用这个ajax调用来改变语言,一堆带有翻译的.po/.mo文件,我使用gettext()来翻译JS中的行

这在Chrome上非常有效,但在Firefox上完全被忽略,并且没有进行翻译。知道为什么吗

我的中间件包含
django.middleware.locale.localemidleware
,我的locale\u路径设置如下:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

LOCALE_PATHS = [
    os.path.join(BASE_DIR, 'locale')
]

更新 chrome上的值
request.META['HTTP\u ACCEPT\u LANGUAGE']

fr,fr;q=0.9,在美国;q=0.8,en;q=0.7,pl;q=0.6

(我支持的所有语言) 而在Firefox上,它返回:

en,en-US;q=0.5


仍然不确定为什么…

关于这个问题有一个问题

我在进行AJAX调用时将用户首选项保存在数据库中,然后在用户获得主页视图时更新
会话[translation.LANGUAGE\u session\u KEY]
值,从而解决了这个问题

from django.utils import translation

class MainPageView(TemplateView):
    template_name = 'index.html'

def get(self, request, *args, **kwargs):
    if not request.user.is_authenticated:
        return super(MainPageView, self).get(self, request, *args, **kwargs)

    profile = request.user.profile

    if profile.preferred_language is None or profile.preferred_language == "":
        profile.preferred_language = request.LANGUAGE_CODE
        profile.save()
    else:
        request.session[translation.LANGUAGE_SESSION_KEY] = profile.preferred_language

    return super(MainPageView, self).get(self, request, *args, **kwargs)

所以没有办法在Firefox上翻译你的网站?我会尝试重新安装/升级你的Firefox版本