wagtail 实现中英文
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 实现中英文相关推荐
- ttc转换ttf字体在线_R 语言画图中英文字体解决方案
在某些时候,需要在 R 画图中添加中文,但是默认情况下,R 对中文的支持不好.这里推荐一个showtext的 R 包.如果需要将含有中文字体的图形保存为 pdf 文件,可以使用下面讲到的方案,最新版的 ...
- Python统计字符串中的中英文字符、数字空格,特殊字符
# -*- coding:utf8 -*-import stringfrom collections import namedtuple def str_count(s): '''找出字符串中的中英文 ...
- 完整中英文世界国家级联下拉列表插件【前端版】
为什么80%的码农都做不了架构师?>>> 这个小东西是之前小项目上临时增加功能的产物,那时候在网上找了很久都没有能用的插件,要么是数据残缺少得可怜,还有就是实现手段非常低效不可 ...
- 计算机一级ps2019,2019年计算机一级考试PS基础学习点子:PS菜单中英文对照表.docx...
2019 年计算机一级考试 PS 基础学习点子: PS 菜单中英文对照表 PS菜单中英文对照表 一.File New 2.Open 3.Open As 4.Open Recent Close 6.Sa ...
- Word英文字符间距太大 中英文输入切换都不行
在Word中输入文字时会遇到这样的情况,就是说中文字符的间距是正常的,但是英文字符间的间距却不正常,总是太宽了,如图: . 而且这时切换中英文输入都没用,Word的字体设置也正常.后来上网查了下,原来 ...
- 百度ERNIE 2.0发布!16项中英文任务表现超越BERT和XLNet
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100) 导读:2019 年 3 月,百度正式发布 NLP 模型 ERNIE,其在中文任务中全面超越 BERT 一度引发业界广泛关注和探讨.今 ...
- 【项目实践】中英文文字检测与识别项目(CTPN+CRNN+CTC Loss原理讲解)
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 OCR--简介 文字识别也是图像领域一 ...
- Lua截取utf-8编码的中英文混合字符串
参考博客:UTF8字符串在lua的截取和字数统计[转载] 需求 按字面个数来截取子字符串 函数(字符串, 开始位置, 截取长度)utf8sub("你好1世界哈哈",2,5) = 好 ...
- java 校验姓名只能包含中英文_java代码验证用户名,支持中英文(包括全角字符)、数字、下划线和减号 (全角及汉字算两位),长度为4-20位,中文按二位计数...
package com.sangedabuliu.www; import java.util.regex.Matcher; import java.util.regex.Pattern; public ...
- getbytes方法_关于C#中识别和查找中英文字符串的解决方法和字符串处理方式的笔记...
今天更新公司内部插件的时候遇到一个问题,就是需要识别一个字符串是中文还是英文,如果字符串中不存在中文字符就要用另一种方法处理.因为以前在学校的时候就没学好C语言和C++的字符串处理,再加上字符串不怎么 ...
最新文章
- 数据库开发个人总结(ADO.NET小结)
- 一篇SSM框架整合友好的文章(二)
- 学习Spring Boot:(十)使用hibernate validation完成数据后端校验
- jQuery浏览器版本判断
- MFC中的动态创建与运行时识别
- webpack+react+redux+es6开发模式
- ruby-gems 常用命令笔记
- Lucene整理--索引的建立
- ajax通过对象获得时间戳,从FullCalendar事件对象获取简单的时间戳
- 博商零售业网上商店系统解决方案
- BackgroundWorker的参数传递
- SSDP,简单服务发现技术
- 疾病诊断归一化---附加编码
- 计算几何常用的函数/方法
- 杭州滨江不久将不复存在,新杭州主城8区规划调整出炉!
- 用于实时视频和图像去雾的优化对比度增强算法
- 在移动硬盘中安装WIN10
- playwright 组件超时问题
- MindSpore如何实现自定义训练
- 45页精华《2022中国建筑行业数字化转型研究报告》出炉(附下载)
热门文章
- Word公式自动编号
- 网页上的内容无法复制和下载?一行代码教你解决
- ROS实战(二) 科大讯飞语音合成模块
- App中使用微信公众号的模版消息来进行消息推送
- 如何在excel中取消合并单元格并填充?
- android MediaPlayer m3u8 播放
- 关于 RESTFUL API 安全认证方式的一些总结
- word使用上角标超链接到引用的参考论文
- 问题:IndentationError: unindent does not match any outer indentation level
- YOLOv4 改进 | 记录如何一步一步改进YOLOv4到自己的数据集(性能、速度炸裂)