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

如何在Django 3中添加土库曼语(tm)语言支持

在Django 3中添加土库曼语(tm)的解决方案

一、修正settings.py配置

你的现有配置存在冗余(重复导入django.conf.locale),且直接修改global_settings不是推荐做法,以下是优化后的配置:

import os
from django.utils.translation import gettext_lazy as _

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# 指定翻译文件存放路径,先确保这个目录存在
LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)

# 项目支持的语言列表
LANGUAGES = (
    ('ru', _('Russian')),
    ('tm', _('Turkmen')),
)

# 补充土库曼语的语言元信息
EXTRA_LANG_INFO = {
    'tm': {
        'bidi': False,
        'code': 'tm',
        'name': 'Turkmen',
        'name_local': "Turkmence",
    },
}

# 扩展Django内置的语言信息
import django.conf.locale
django.conf.locale.LANG_INFO.update(EXTRA_LANG_INFO)

# 必须启用国际化中间件,放在SessionMiddleware之后、CommonMiddleware之前
MIDDLEWARE = [
    # ... 其他已有的中间件
    'django.middleware.locale.LocaleMiddleware',
]

# 如果用模板渲染,确保上下文处理器包含i18n
TEMPLATES = [
    {
        # ... 其他模板配置
        'OPTIONS': {
            'context_processors': [
                # ... 其他处理器
                'django.template.context_processors.i18n',
            ],
        },
    },
]

二、搭建翻译文件目录

在项目根目录下创建对应目录结构:

mkdir -p locale/tm/LC_MESSAGES

三、生成并编译翻译文件

  1. 提取项目中需要翻译的字符串:
python manage.py makemessages -l tm

执行后会在locale/tm/LC_MESSAGES下生成django.po文件,打开它把待翻译的内容替换成土库曼语。

  1. 编译翻译文件为Django可识别的二进制格式:
python manage.py compilemessages

这会生成django.mo文件,Django靠它加载翻译内容。

四、验证是否生效

在视图或模板里测试翻译:

  • 视图示例:
from django.utils.translation import gettext as _
from django.http import HttpResponse

def test_view(request):
    msg = _("Hello World")
    return HttpResponse(msg)
  • 模板示例(记得先加载i18n标签):
{% load i18n %}
<h1>{% trans "Hello World" %}</h1>

切换语言为tm,查看内容是否显示对应的土库曼语翻译即可。

内容的提问来源于stack exchange,提问作者Mayagozel Jumakulyyewa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:55:21