首页
学习
活动
专区
圈层
工具
发布

【Django | 开发】 (国际化项目&支持多语言)

二、实现步骤 2.1 为翻译字符串添加钩子 1) py文件 将需要翻译的字符串统一使用gettext_lazy或gettext包裹 from django.utils.translation import...')), ] # 用于存放django.po和django.mo编译过的翻译文件 PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.realpath...= True USE_L10N = True from django.utils.translation import gettext_lazy as _ LANGUAGES = [ #...和django.mo编译过的翻译文件 LOCALE_PATHS = ( os.path.join(BASE_DIR, 'locale'), ) 效果 可以看到中文都翻译成了自己翻译的英文 配置本地化中间件...在切换语言from表单中,我们所提交的表单路径set_language 是我们所导入i18n url 路径所提供的,提交的language.code能够对应到我们所设置的语言就能切换语言。

1.1K10

Django 实战:I18N 国际化与本地化配置、翻译与切换一步到位

一、国际化与本地化介绍定义国际化和本地化的目标,是允许一个单一的 Web 应用程序以适合受众的语言和格式提供其内容。 Django 提供了完整的国际化(i18n)和本地化(l10n)支持。...惰性翻译:gettext_lazy会延迟翻译计算,直到实际渲染时才会根据当前请求语言动态加载,而 gettext 在模块加载时即固定翻译结果二、安装配置安装 gettext下载64位 share 安装包...按照惯例,将其作为下划线( _ )导入,以保存输入。from django.utils.translation import gettext as _# ......:使用惰性翻译函数 gettext_lazy() 来指定翻译字符串。...# 示例:序列化器中from django.utils.translation import gettext_lazy as _ error_messages={ "

28300
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Django】在大型项目中的django的性能模型字段primary_key

    ('JR', 'Junior'), ('SR', 'Senior'), ('GR', 'Graduate'), ] 尽管可以在模型类外部定义选择列表,然后引用它,但在模型类中定义选择和每个选择的名称可以在使用它的类中保留所有这些信息...,并帮助引用这些选择(例如,Student.SOPHOMORE将在导入学生模型的任何位置工作)。...第二个元素是二进制元组的迭代。每个二进制元组包含一个值和一个可读的选项名称。分组选项可以与单个列表中的未分组选项组合(例如本例中的“未知”选项)。...from django.utils.translation import gettext_lazy as _ class Student(models.Model): class YearInSchool...,Django将添加一个方法来检索字段当前值的可读名称。

    3.2K20

    源目的IP和端口都相同的连接出现的原因

    线上遇到了一个比较特殊的连接,它的源目的IP和端口完全相同,复现的场景是:同一个机器上的两个模块A和B通信,A模块会向B模块的监听套接字发起连接请求,B模块重启的时候就很容易出现这样的问题。...下图是在线下复现的连接情况: ? 这种类型的连接产生的过程类似于同时打开的情况。...同时打开的情况是两个机器同时向另一个机器的已知端口发送SYN段,一个机器上发送的SYN段的目的IP和端口是另一个机器上发送SYN段的套接字的本地IP和端口(注意这两个机器上没有对应端口的监听套接字),状态迁移过程如下图所示...这里看到的连接的建立过程只发生在一个机器、一个套接字上,但是过程几乎是一样的。我们假设套接字名称是sk,调用bind将sk套接字的本地IP绑定为192.168.56.101,本地端口绑定为9090。...接收到这个SYN段后,会调用__inet_lookup()来查找对应的套接字。由于这个SYN段的源目的IP和端口信息和sk套接字的信息完全匹配,所以会由sk套接字来处理。

    2.9K50

    不同程序集,名称空间类名和方法签名都一样的方法,如何调用

    有时候,你可能会遇到这样的问题,不同程序集,名称空间类名和方法签名都一样的方法,如何调用。本文将介绍如何通过别名的方式来解决这个问题。...创建两个不同的程序集 我们来创建两个不同的程序集,但是他们的名称空间一样: dotnet new classlib -o ClassLibrary1 -n ClassLibrary1 dotnet new...其中一个依赖项 A 恰好也是你的依赖项,但是 A 的版本和开源项目的依赖项 A 的版本不一样,这时候你就会遇到这个问题。...你会在使用 Rx.net 的时候遇到这个问题。 你的同事想考验你一下,估计把自己写的 Sqlite 扩展和 MSSQL 扩展中加入了同样的方法签名,然后你就会遇到这个问题。...总结 通过别名的方式,我们可以解决不同程序集,名称空间类名和方法签名都一样的方法,如何调用的问题。

    2.2K20

    不同程序集,名称空间类名和方法签名都一样的方法,如何调用

    有时候,你可能会遇到这样的问题,不同程序集,名称空间类名和方法签名都一样的方法,如何调用。本文将介绍如何通过别名的方式来解决这个问题。...创建两个不同的程序集 我们来创建两个不同的程序集,但是他们的名称空间一样: dotnet new classlib -o ClassLibrary1 -n ClassLibrary1 dotnet new...其中一个依赖项 A 恰好也是你的依赖项,但是 A 的版本和开源项目的依赖项 A 的版本不一样,这时候你就会遇到这个问题。...你会在使用 Rx.net 的时候遇到这个问题。 你的同事想考验你一下,估计把自己写的 Sqlite 扩展和 MSSQL 扩展中加入了同样的方法签名,然后你就会遇到这个问题。...总结 通过别名的方式,我们可以解决不同程序集,名称空间类名和方法签名都一样的方法,如何调用的问题。 参考 extern alias (C# Reference)^1

    1K20

    Django3.0新鲜出炉!全面解读新特性,ASGI真香实锤,不来了解一下?

    数据库的支持 在数据库支持方面,一方面Django 3.0将放弃对PostgreSQL 9.4版本和Oracle 12.1版本的支持。...模型字段选择的枚举 在之前的Django版本,我们在model的field字段需要枚举的时候通常需要这么做 from django.utils.translation import gettext_lazy...中没有特定的枚举字段,需要我们手动去指定,而在Django 3.0中,自定义枚举类型TextChoices,IntegerChoices和Choices现在作为一个的方式来定义Field.choices...文件存储 Storage.get_alternative_name()如果已经存在带有上载名称的文件,则新方法允许自定义生成文件名的算法。...这些设置的默认值和之前的版本相同。 添加了对乌兹别克语的支持和翻译。

    3K10

    django 人机校验我是人类-使用hCaptcha或Turnstile代替simple-captcha

    为什么选择hCaptcha ---- 相信从名称上就看出来了, captcha包括但不限于reCaptcha, hCaptcha, 以及cloudflare的Turnstile....import forms from django.utils.translation import gettext_lazy as _ from hcaptcha.settings import DEFAULT_CONFIG...因此, 我查看了django-hCaptcha的源码, 得到发现了h-captcha-response和g-captcha-response, 查阅hCaptcha和turnstile的官方文档,...更改了其源码, 在github上发布了我的项目django-turnstile, 修改了一部分urlencode和response, 并提交到了pypi 我将前期的文章内容删除, 得到了上方的文字...你可以将django-hcaptcha换为django-turnstile, 添上turnstile的sitekey和secert, 其他api和django-hcaptcha相同 pip install

    2.4K50

    初学Python语言者必须理解的下划线

    在大多数编程语言中,下划线是命名变量或者函数名称时的连字符,但是,在Python语言中,不仅如此。...单下划线开始 以单下划线开始的变量、函数、方法、类名称,意在声明该对象私有化,按照此预订,使用from module import *则无法将相应对象导入。..._double_price() 单下划线结尾 为了避免与Python关键词和其他内置对象名称冲突,常常用这种命名方式,你可以不用它。...当程序运行的时候,Python解析器会对以双下划开始的类中的属性、方法名称重命名,从而避免不同的类中同样名称之间的冲突,基本规则是在双下划线开始的名称前面增加形如“_ClassName”样式的前缀。...Python中的web开发框架Django也支持i18n/l10n,并应用此约定。

    95920

    Django视图层之路由配置系统(urls)

    它的本质是URL与要为该URL调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。...下面是以上URLconf 使用命名组的重写: from django.conf.urls import url from . import views urlpatterns = [ url...URLconf 不检查请求的方法。换句话讲,所有的请求方法 —— 同一个URL的POST、GET、HEAD等等 —— 都将路由到相同的函数。...根据Django 视图的标识和将要传递给它的参数的值,获取与之关联的URL。 反向解析URL、反向URL 匹配、反向URL 查询或者简单的URL 反查。...from django.conf.urls import include, url # 导入全局url urlpatterns = [ url(r'^blog', include('blog.urls

    1.9K90

    Django路由控制URL详解

    该转换器匹配任何ASCII字符以及连接符和下划线,比如’ building-your-1st-django-site‘; uuid:匹配一个uuid格式的对象。...而这个兼容的办法,就是用re_path()方法代替path()方法。re_path()方法在骨子里,根本就是以前的url()方法,只不过导入的位置变了。...下面是以上URLconf 使用命名组的重写: from django.urls import path,re_path from app01 import views urlpatterns = [...如果你的URL 模式叫做comment,而另外一个应用中也有一个同样的名称,当你在模板中使用这个名称的时候不能保证将插入哪个URL。在URL 名称中加上一个前缀,比如应用的名称,将减少冲突的可能。...中定义相同的name时,可能会导致URL反解错误,为了避免这种事情发生,引入了命名空间。

    1.6K20

    django 1.8 官方文档翻译: 9-1-1 国际化和本地化

    国际化和本地化 概述 国际化和本地化的目的就是让一个网站应用能做到根据用户语种和指定格式的不同而提供不同的内容。 Django 对文本翻译, 日期、时间和数字的格式化,以及时区提供了完善的支持。...实际上,Django做了两件事: 由开发者和模板作者指定应用的哪些部分应该翻译,或是根据本地语种和文化进行相应的格式化。 根据用户的偏好设置,使用钩子将web应用本地化。...更多细节详见W3C Web Internationalization FAQ、Wikipedia article和GNU gettext documentation。...警告 是否启用翻译和格式化分别由配置项USE_I18N和 USE_L10N 决定。 但是,这两个配置项都同时影响国际化和本地化。 这种情况是Django的历史因素所致。...下面几项可帮助我们更好地处理某种语言: 本地化名称 表示地域文化的名称,可以是 ll 格式的语种代码,也可以是 ll_CC 格式的语种和国家组合代码。例如:it, de_AT, es, pt_BR 。

    48720

    Django源码学习-17-Forms

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...有些django项目并不直接呈现HTML,而是以API框架的形式存在,在这些API形式的django项目中也用到了django forms。...Form 使用步骤: ① 编写表单类 在当前app内新建一个forms.py文件(就像views.py,models.py等等) 首先导入forms,from django import forms...所有的表单类都继承自forms.Form 每个表单字段都有字段类型比如CharField,它们分别对应一种HTML语言中的元素中的表单。...② 视图处理 需要在视图中,实例化编写好的表单类。 ? ③ 模版处理 name对应字段名称,type对应字段类型field。 ?

    1.3K20

    导入的xls文件,数字和日期都是文本格式,到df3都正常,但df4报错,什么原因?

    一、前言 前几天在Python最强王者交流群【斌】问了一个Pandas数据处理的问题,一起来看看吧。...我之前用过xls,现在练习pandas:目前导入的xls文件,数字和日期都是文本格式,到df3都正常,但df4报错,df4是算加权平均。...下图是报错截图: 二、实现过程 这里我和【黑科技·鼓包】、【瑜亮老师】、【隔壁山楂】都给了一个思路:其实看上去是语法错误,少了括号导致的,这个jupyter里边确实不太好看出来,代码放到ide里边就很清晰了或者...顺利地解决了粉丝的问题。 三、总结 大家好,我是皮皮。这篇文章主要盘点了一个Pandas数据处理的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

    35020

    django 1.8 官方文档翻译: 3-1-1 URL调度器

    这个技术在Syndication 框架 中使用,来传递元数据和选项给视图。 处理冲突 URL 模式捕获的命名关键字参数和在字典中传递的额外参数有可能具有相同的名称。...由于这个原因,该技术只有当你确定被包含的URLconf 中的每个视图都接收你传递给它们的额外的选项。...在下面的例子中,我们将讨论在两个不同的地方部署教程中的polls 应用,这样我们可以为两种不同的用户(作者和发布者)提供相同的功能。...一个URL 命名空间有两个部分,它们都是字符串: 应用命名空间 它表示正在部署的应用的名称。一个应用的每个实例具有相同的应用命名空间。...但是,一个实例的命名空间可以和应用的命名空间相同。它用于表示一个应用的默认实例。例如,Django 管理站点实例具有一个默认的实例命名空间’admin’。

    2K20
    领券