1、在settings中设置使用本地自定义的语言

MIDDLEWARE = ['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',
    'django.middleware.security.SecurityMiddleware',

    'wagtail.core.middleware.SiteMiddleware',
    'wagtail.contrib.redirects.middleware.RedirectMiddleware',
]

2、模板中使用翻译

TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(PROJECT_DIR, 'templates'),
        ],
        'APP_DIRS': True,
        'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.template.context_processors.i18n',  # 添加
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

3、设置本地语言选项及模板翻译目录

from django.utils.translation import gettext_lazy as _LOCALE_PATHS = (os.path.join(BASE_DIR, "locale"),
)LANGUAGES =  WAGTAILADMIN_PERMITTED_LANGUAGES =[('en-us', _('English')),
                               ('zh-cn', _('Chinese')),
                            ]

4、model 编码方法

from django.db import models
from wagtail.core.fields import RichTextField
from wagtail.core.models import Page
from django.utils import translation
from wagtail.admin.edit_handlers import FieldPanel
from django.utils.translation import gettext_lazy as _class TranslatedField:def __init__(self, en_field, zh_field):self.en_field = en_fieldself.zh_field = zh_fielddef __get__(self, instance, owner):if translation.get_language() == 'zh-cn':return getattr(instance, self.zh_field)else:return getattr(instance, self.en_field)class BlogPage(Page):title_zh = models.CharField('标题(中文)', max_length=255)body_en = RichTextField('content')body_zh = RichTextField('详细内容')translated_title = TranslatedField('title',
        'title_zh',
    )body = TranslatedField('body_en',
        'body_zh',
    )content_panels = Page.content_panels + [FieldPanel('title_zh'),
        FieldPanel('body_en', classname="full"),
        FieldPanel('body_zh', classname="full"),
    ]class Meta:verbose_name = '测试'

5、模板使用方法

{% load wagtailcore_tags %}
{% load staticfiles %}
{% load i18n %}
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    {% trans "Simple Blog" as title %}<title>{{ title}}</title>
</head>
<body class="customize-support">
    <h1>{{title}}</h1>
    <h2>{{ page.translated_title }}</h2>
    <h3>{{ page.body|richtext }}</h3>
</body>
</html>

6、在模板中写完之后还要编译

python manage.py makemessages -l zh_CN   ----> processing locale zh_CN

手动翻译之后

python manage.py compilemessages  -----> processing file django.po in /path/to/locale/zh_CN/LC_MESSAGES

7、手动翻译部分

#: home/templates/home/blog_page.html:7
msgid "Simple Blog"
msgstr "博客"

#: lvjingiant/settings/base.py:175
msgid "English"
msgstr ""

#: lvjingiant/settings/base.py:176
msgid "Chinese"
msgstr ""

wagtail 实现中英文相关推荐

  1. ttc转换ttf字体在线_R 语言画图中英文字体解决方案

    在某些时候,需要在 R 画图中添加中文,但是默认情况下,R 对中文的支持不好.这里推荐一个showtext的 R 包.如果需要将含有中文字体的图形保存为 pdf 文件,可以使用下面讲到的方案,最新版的 ...

  2. Python统计字符串中的中英文字符、数字空格,特殊字符

    # -*- coding:utf8 -*-import stringfrom collections import namedtuple def str_count(s): '''找出字符串中的中英文 ...

  3. 完整中英文世界国家级联下拉列表插件【前端版】

    为什么80%的码农都做不了架构师?>>>    这个小东西是之前小项目上临时增加功能的产物,那时候在网上找了很久都没有能用的插件,要么是数据残缺少得可怜,还有就是实现手段非常低效不可 ...

  4. 计算机一级ps2019,2019年计算机一级考试PS基础学习点子:PS菜单中英文对照表.docx...

    2019 年计算机一级考试 PS 基础学习点子: PS 菜单中英文对照表 PS菜单中英文对照表 一.File New 2.Open 3.Open As 4.Open Recent Close 6.Sa ...

  5. Word英文字符间距太大 中英文输入切换都不行

    在Word中输入文字时会遇到这样的情况,就是说中文字符的间距是正常的,但是英文字符间的间距却不正常,总是太宽了,如图: . 而且这时切换中英文输入都没用,Word的字体设置也正常.后来上网查了下,原来 ...

  6. 百度ERNIE 2.0发布!16项中英文任务表现超越BERT和XLNet

    整理 | 夕颜出品 | AI科技大本营(ID:rgznai100) 导读:2019 年 3 月,百度正式发布 NLP 模型 ERNIE,其在中文任务中全面超越 BERT 一度引发业界广泛关注和探讨.今 ...

  7. 【项目实践】中英文文字检测与识别项目(CTPN+CRNN+CTC Loss原理讲解)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 OCR--简介 文字识别也是图像领域一 ...

  8. Lua截取utf-8编码的中英文混合字符串

    参考博客:UTF8字符串在lua的截取和字数统计[转载] 需求 按字面个数来截取子字符串 函数(字符串, 开始位置, 截取长度)utf8sub("你好1世界哈哈",2,5) = 好 ...

  9. java 校验姓名只能包含中英文_java代码验证用户名,支持中英文(包括全角字符)、数字、下划线和减号 (全角及汉字算两位),长度为4-20位,中文按二位计数...

    package com.sangedabuliu.www; import java.util.regex.Matcher; import java.util.regex.Pattern; public ...

  10. getbytes方法_关于C#中识别和查找中英文字符串的解决方法和字符串处理方式的笔记...

    今天更新公司内部插件的时候遇到一个问题,就是需要识别一个字符串是中文还是英文,如果字符串中不存在中文字符就要用另一种方法处理.因为以前在学校的时候就没学好C语言和C++的字符串处理,再加上字符串不怎么 ...

最新文章

  1. 数据库开发个人总结(ADO.NET小结)
  2. 一篇SSM框架整合友好的文章(二)
  3. 学习Spring Boot:(十)使用hibernate validation完成数据后端校验
  4. jQuery浏览器版本判断
  5. MFC中的动态创建与运行时识别
  6. webpack+react+redux+es6开发模式
  7. ruby-gems 常用命令笔记
  8. Lucene整理--索引的建立
  9. ajax通过对象获得时间戳,从FullCalendar事件对象获取简单的时间戳
  10. 博商零售业网上商店系统解决方案
  11. BackgroundWorker的参数传递
  12. SSDP,简单服务发现技术
  13. 疾病诊断归一化---附加编码
  14. 计算几何常用的函数/方法
  15. 杭州滨江不久将不复存在,新杭州主城8区规划调整出炉!
  16. 用于实时视频和图像去雾的优化对比度增强算法
  17. 在移动硬盘中安装WIN10
  18. playwright 组件超时问题
  19. MindSpore如何实现自定义训练
  20. 45页精华《2022中国建筑行业数字化转型研究报告》出炉(附下载)

热门文章

  1. Word公式自动编号
  2. 网页上的内容无法复制和下载?一行代码教你解决
  3. ROS实战(二) 科大讯飞语音合成模块
  4. App中使用微信公众号的模版消息来进行消息推送
  5. 如何在excel中取消合并单元格并填充?
  6. android MediaPlayer m3u8 播放
  7. 关于 RESTFUL API 安全认证方式的一些总结
  8. word使用上角标超链接到引用的参考论文
  9. 问题:IndentationError: unindent does not match any outer indentation level
  10. YOLOv4 改进 | 记录如何一步一步改进YOLOv4到自己的数据集(性能、速度炸裂)