You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker环境下Django uz-cyrl语言返回uz翻译的问题排查

Django Docker部署中uz-cyrl语言不生效的排查方向
  • 容器系统locale支持缺失
    slim系列镜像默认精简了系统组件,可能没有预装uz-cyrl对应的locale数据。即使Django的翻译文件已编译,系统层面无法识别该语言标识时会自动回退到uz。解决方式:
    在Dockerfile中添加locale安装与配置步骤:

    RUN apt-get update && apt-get install -y locales --no-install-recommends
    RUN echo "uz_CYRL.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen
    ENV LC_ALL=uz_CYRL.UTF-8
    ENV LANG=uz_CYRL.UTF-8
    
  • 反向代理丢失Accept-Language请求头
    如果部署时使用了Nginx等反向代理,需确保代理正确传递客户端的Accept-Language头,否则Django无法获取正确的语言偏好配置。在Nginx配置中添加:

    proxy_set_header Accept-Language $http_accept_language;
    

    同时确认Django的LocaleMiddleware配置正确,必须放在SessionMiddleware和CommonMiddleware之后。

  • 编译后的.mo文件未纳入容器构建
    检查Dockerfile的COPY指令是否包含了locale目录下的所有文件,尤其是编译后的.mo文件。如果.gitignore规则排除了.mo文件,构建时会遗漏这些文件,导致Django无法加载对应翻译。调整COPY指令:

    COPY locale/ /path/to/your/app/locale/
    
  • 语言匹配的模糊回退机制
    Django的语言检测默认会进行模糊匹配,当容器环境无法精确识别uz-cyrl时,会自动回退到同语系的uz。可以通过自定义LocaleMiddleware来强制精确匹配语言代码,或者在请求中明确指定语言参数。

内容的提问来源于stack exchange,提问作者Arabboy Mamadaliev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 06:57:08