网站添加对联广告代码网页制作的公司哪家好
2026/6/20 4:57:19 网站建设 项目流程
网站添加对联广告代码,网页制作的公司哪家好,描述网站开发的流程,做商城网站用什么框架你想要在 Django 项目中实现中英文两种语言的切换功能#xff0c;需要从基础配置、翻译文件创建、模板 / 代码翻译#xff0c;到前端切换按钮实现的完整流程。以下是适配 Django 4.x/5.x 版本的详细步骤#xff0c;兼顾配置和实际使用场景#xff1a;一、核心实现思路Djang…你想要在 Django 项目中实现中英文两种语言的切换功能需要从基础配置、翻译文件创建、模板 / 代码翻译到前端切换按钮实现的完整流程。以下是适配 Django 4.x/5.x 版本的详细步骤兼顾配置和实际使用场景一、核心实现思路Django 的国际化i18n和本地化l10n功能是语言切换的基础核心逻辑是配置项目支持多语言指定中英两种语言创建翻译文件.po/.mo存储中英文对照文本在模板 / 代码中使用翻译标签 / 函数动态加载对应语言文本实现语言切换逻辑通过表单 / URL 参数修改用户会话的语言配置。二、具体实现步骤步骤 1基础配置settings.py这是多语言功能的核心配置需修改settings.py开启国际化并指定语言参数python# settings.py import os BASE_DIR os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 1. 开启国际化必须 USE_I18N True # 启用国际化 USE_L10N True # 启用本地化日期/数字格式等 # 2. 指定支持的语言仅保留中英 LANGUAGES [ (zh-hans, 简体中文), # 中文代码zh-hans简体zh-hant繁体 (en, English), # 英文代码en ] # 3. 默认语言项目启动时的默认语言 LANGUAGE_CODE zh-hans # 默认中文可改为en # 4. 翻译文件存储路径关键需手动创建locale文件夹 LOCALE_PATHS [ os.path.join(BASE_DIR, locale), # 项目根目录下的locale文件夹 ] # 5. 配置中间件关键LocaleMiddleware必须在指定位置 MIDDLEWARE [ django.middleware.security.SecurityMiddleware, django.contrib.sessions.middleware.SessionMiddleware, # 先有会话才能存储语言 django.middleware.locale.LocaleMiddleware, # 语言中间件位置Session之后Common之前 django.middleware.common.CommonMiddleware, django.middleware.csrf.CsrfViewMiddleware, django.contrib.auth.middleware.AuthenticationMiddleware, django.contrib.messages.middleware.MessageMiddleware, django.middleware.clickjacking.XFrameOptionsMiddleware, ]关键说明LOCALE_PATHS指定翻译文件的存储目录需手动在项目根目录创建locale文件夹LocaleMiddleware作用是检测用户的语言偏好会话 / COOKIE / 请求头并加载对应翻译位置必须在SessionMiddleware之后、CommonMiddleware之前LANGUAGES仅列出需要支持的语言前端切换时只能选择这里配置的语言。步骤 2创建翻译文件.po/.mo翻译文件是存储 “原文 - 译文” 的核心需通过 Django 命令生成并编辑步骤 2.1创建 locale 目录在项目根目录执行bashmkdir locale # 对应settings.py中LOCALE_PATHS的路径步骤 2.2生成翻译模板文件.po生成英文翻译文件bash运行# 进入项目根目录执行以下命令-l 指定语言代码 django-admin makemessages -l en生成中文翻译文件若默认语言不是中文需手动生成bashdjango-admin makemessages -l zh-hans执行后会在locale目录下生成如下结构plaintextlocale/ ├── en/ │ └── LC_MESSAGES/ │ └── django.po # 英文翻译文件 └── zh-hans/ └── LC_MESSAGES/ └── django.po # 中文翻译文件步骤 2.3编辑翻译文件.po打开locale/en/LC_MESSAGES/django.po英文翻译文件添加需要翻译的文本po# django.po msgid Welcome to our website # 原文模板/代码中使用的标识 msgstr 欢迎访问我们的网站 # 译文英文环境下显示的文本 msgid File Upload msgstr 文件上传 msgid Language msgstr 语言打开locale/zh-hans/LC_MESSAGES/django.po中文翻译文件对应添加po# django.po msgid Welcome to our website msgstr 欢迎访问我们的网站 msgid File Upload msgstr 文件上传 msgid Language msgstr 语言步骤 2.4编译翻译文件.mo编辑完.po文件后需编译为二进制.mo文件Django 实际加载的是这个文件bashdjango-admin compilemessages编译后locale/[语言]/LC_MESSAGES/下会生成django.mo文件翻译生效。步骤 3在模板中使用翻译前端文本在 HTML 模板中加载翻译标签使用{% trans %}或{% blocktrans %}渲染多语言文本步骤 3.1模板头部加载 i18n 标签html预览!-- templates/base.html -- {% load i18n %} !-- 必须加载i18n标签 -- !DOCTYPE html html lang{{ LANGUAGE_CODE }} !-- 动态设置页面语言 -- head meta charsetUTF-8 title{% trans Website Title %}/title /head body !-- 简单文本翻译 -- h1{% trans Welcome to our website %}/h1 !-- 带变量的翻译用blocktrans -- {% blocktrans with usernamerequest.user.username %} Hello {{ username }}, welcome back! {% endblocktrans %} !-- 语言切换表单核心 -- form action{% url set_language %} methodpost {% csrf_token %} input namenext typehidden value{{ request.path }} !-- 切换后返回当前页面 -- select namelanguage onchangethis.form.submit() {% get_current_language as LANGUAGE_CODE %} {% get_available_languages as LANGUAGES %} {% get_language_info_list for LANGUAGES as languages %} {% for lang in languages %} option value{{ lang.code }} {% if lang.code LANGUAGE_CODE %}selected{% endif %} {{ lang.name_local }} !-- 显示语言的本地名称如“简体中文”/“English” -- /option {% endfor %} /select /form /body /html关键说明{% trans 文本 %}用于无变量的简单文本翻译{% blocktrans %}用于带变量的复杂文本翻译set_languageDjango 内置的语言切换视图无需自己写接收language参数并修改会话语言。步骤 4配置语言切换路由Django 内置了set_language视图只需在urls.py中配置路由python# 项目根urls.py from django.contrib import admin from django.urls import path, include from django.conf.urls.i18n import i18n_patterns # 可选带语言前缀的URL urlpatterns [ path(admin/, admin.site.urls), # 配置内置的语言切换视图必须 path(i18n/, include(django.conf.urls.i18n)), ] # 可选为URL添加语言前缀如/zh-hans/upload/、/en/upload/ urlpatterns i18n_patterns( # 你的业务路由比如文件上传路由 path(upload/, include(app.urls)), )关键说明path(i18n/, include(django.conf.urls.i18n))注册内置的set_language视图对应模板中表单的action{% url set_language %}i18n_patterns可选功能为 URL 添加语言前缀如/en/upload/方便 SEO 和用户识别当前语言。步骤 5在视图 / 模型中使用翻译后端文本如果需要在视图、模型或表单中使用多语言文本需使用 Django 提供的翻译函数5.1 视图中使用翻译python# app/views.py from django.shortcuts import render from django.utils.translation import gettext as _ # 普通翻译即时生效 from django.utils.translation import gettext_lazy as _lazy # 惰性翻译适合模型/表单 def home(request): # 普通文本翻译 message _(Welcome to our website) # 带变量的翻译 username request.user.username or Guest greeting _(Hello %(username)s, welcome back!) % {username: username} return render(request, home.html, { message: message, greeting: greeting })5.2 模型 / 表单中使用翻译惰性翻译python# app/models.py from django.db import models from django.utils.translation import gettext_lazy as _lazy class UploadFile(models.Model): file models.FileField(upload_touploads/, verbose_name_lazy(Uploaded File)) # 字段名翻译 upload_time models.DateTimeField(auto_now_addTrue, verbose_name_lazy(Upload Time)) class Meta: verbose_name _lazy(Uploaded File) verbose_name_plural _lazy(Uploaded Files)步骤 6测试语言切换功能启动 Django 开发服务器python manage.py runserver访问项目页面看到语言切换下拉框选择 “English”页面文本切换为英文选择 “简体中文”切换为中文切换后 URL 若配置了i18n_patterns会自动添加语言前缀如/en/。三、常见问题解决翻译不生效检查LOCALE_PATHS路径是否正确翻译文件是否编译为.mo检查LocaleMiddleware的位置是否正确重启 Django 服务器翻译文件修改后需重启。中文乱码确保.po文件的编码是 UTF-8模板中设置meta charsetUTF-8。语言切换后跳转到首页检查表单中next隐藏字段是否正确value{{ request.path }}确保返回当前页面。总结Django 语言切换的核心是配置国际化参数创建翻译文件使用内置set_language视图关键步骤开启USE_I18N、配置LocaleMiddleware、生成 / 编译.po翻译文件、模板中添加切换表单前端用{% trans %}/{% blocktrans %}后端用gettext/gettext_lazy分别适配不同场景的翻译需求。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询