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

Django如何自定义URL语言前缀 将ja/ko对应修改为jp/kr

解决方案

你之前仅修改了请求路径的解析逻辑,没有同步调整Django反向生成URL时的语言前缀映射规则,所以才会出现内部链接仍用旧前缀的问题。可以通过Django官方支持的自定义语言编码方式解决,无需额外开发复杂的中间件逻辑:

  1. 注册自定义语言编码,复用日语、韩语的原有翻译配置
    在settings.py开头添加如下代码,告诉Djangojp对应日语的全部配置、kr对应韩语的全部配置:
from django.conf.locale import LANG_INFO

# 复用原有语言的翻译、格式化等配置
LANG_INFO['jp'] = LANG_INFO['ja']
LANG_INFO['kr'] = LANG_INFO['ko']
  1. 修改LANGUAGES配置,将语言键替换为你需要的URL前缀
LANGUAGES = [
   ('en', _('English (US)')),
   ('de', _('Deutsch')),
   ('fr',_('Français')),
   ('jp',_('日本語')),
   ('kr',_('한국어')),
]
  1. 保留原有i18n_patterns路由配置即可,不需要做任何修改
urlpatterns = i18n_patterns(
    path('', include('main.urls')),
    prefix_default_language=False
)

配置完成后,Django会自动将jp、kr作为对应语言的URL前缀,反向生成的内部链接也会自动使用新前缀,同时原有日语、韩语的翻译功能完全不受影响。

内容的提问来源于stack exchange,提问作者Fausto Sanchez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:06:02