Django 国际化翻译中的 gettext 和 gettext_lazy
Django API 提供了几个有用的模块来帮助你翻译你的应用程序. 它们都在django.utils.translation
中使用,大多数情况下, 我们会使用到ugettext()和ugettext_lazy().
「u」前缀代表「unicode」, 因为大多数情况下,我们经常使用 Unicode, 所以使用ugettext()代替gettext(), 使用ugettext_lazy()代替gettext_lazy().
顾名思义, lazy该函数是对翻译字符串的引用, 而不是实际翻译的文本. 因此在访问值的时候会进行转换, 而不是调用的时候.
注意这个特性,Django 启动的时候一些特定的代码只执行一次, 比如在models, forms 和 model forms.
那么, 我们假设在模型定义的时候使用ugettext(), 而不是ugettext_lazy()会怎么样?
- 1. Django 启动, 默认语言是英文.
- 2. Django 选择了英文版的field labels
- 3. 用户将网站语言改为简体中文.
- 4. field labels依然是英文显示.
因为models的字段定义仅仅被执行一次,并且在执行定义代码的时候语言不是简体中文(一般是英文).
要避免这种行为,要必须正确的使用ugettext()和ugettext_lazy()
下面总结了, 在合适的地方使用合适的函数:
- ugettext_lazy():
- models.py (fields, verbose_name, help_text, methods short_description);
- forms.py (labels, help_text, empty_label);
- apps.py (verbose_name).
- ugettext():
- views.py
- 其他类似于在请求过程中调用的代码
Django 国际化翻译中的 gettext 和 gettext_lazy相关推荐
- gettext 国际化_如何使用Gettext在Phoenix应用程序中执行本地化
gettext 国际化 by Anastasia 由Anastasia 如何使用Gettext在Phoenix应用程序中执行本地化 (How to perform localization in Ph ...
- qt 判断路径非英文符号与非英文字符_Qt中,软件多语言国际化翻译的方法与步骤...
总第23篇 在Qt的项目开发过程中,有时软件要翻译成多语言版本,这就涉及到国际化方面的操作.虽然Qt对这方面集成了很多工具,操作起来比较方便,本文还是总结一下国际化的方法和步骤,用以备忘和参考. 我们 ...
- Qt中,软件多语言国际化翻译的方法与步骤
Qt中,软件多语言国际化翻译的方法与步骤 在Qt的项目开发过程中,有时软件要翻译成多语言版本,这就涉及到国际化方面的操作.虽然Qt对这方面集成了很多工具,操作起来比较方便,本文还是总结一下国际化的方法 ...
- 在VS中使用Qt Linguist完成国际化翻译
1. 在Qt Vs Tool中点击Create New Translation File,创建翻译文件,此时项目文件夹目录中会生成一个后缀为.ts的文件,同时此文件也在出现在Vs的解决方案资源管理器 ...
- django 国际化支持 I18N
问题描述 最近做的网站需要中英双语可以切换,内容大致相同,只是文字上需要做翻译,而且可以让用户进行语言的选择. 问题解决 其实页面大部分内容是相同的,只是文字和部分图片不同.django提供了i18n ...
- django国际化与html语言,Django 国际化
Django 国际化 Django 支持国际化,多语言.Django的国际化是默认开启的,如果您不需要国际化支持,那么您可以在您的设置文件中设置 USE_I18N = False,那么Django会进 ...
- python 64式: 第24式、python项目国际化翻译实战
1 寻找一个项目 进入一个python项目,这里我用的是之前写的项目myproject 2 步骤 2.1 在项目的目录下编写i18n.py文件 例如我的路径是: myproject/myproject ...
- Django 1.10中文文档-聚合
目录 速查表 QuerySet 聚合 QuerySet 逐个对象的聚合 Join 和聚合 聚合 QuerySet 子句 正文 Django 1.10 中文文档:https://github.com/j ...
- python setting.py_python基础教程:Django框架的中的setting.py文件说明详解
这篇文章主要介绍了Django框架的中的setting.py文件说明详解,这个文件包含了所有有关这个Django项目的配置信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.加载数据库,数据库 ...
- Django框架的中的setting.py文件说明详解
这篇文章主要介绍了Django框架的中的setting.py文件说明详解,这个文件包含了所有有关这个Django项目的配置信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.加载数据库,数据库 ...
最新文章
- wxpython有没有可视化设计_wxPython - GUI Builder工具( GUI Builder Tools)
- GO语言教程2:使用VS code进行go语言的编写和运行
- java Random类详解
- Android4.0-4.4 加入支持状态栏显示耳机图标方法(支持带不带MIC的两种耳机自己主动识别)...
- 如何让Ubuntu系统支持WebP图片格式
- Html标签带来的安全隐患
- python Anaconda2安装OpenCV2
- java中哪些可以私有化_《Java基础学习笔记》JAVA修饰符之私有化(Private)
- 两种设置安卓背景图片的方法
- PostgreSQL的日志文件和数据加载
- codeforces 719A Vitya in the Countryside(序列判断趋势)
- Python---HTML表单
- Ubuntu20.04如何卸载软件
- wps文字表格制作拼音田字格模板_用word2003表格快速制作拼音田字格的方法.doc
- 小型企业有必要引进ERP系统?
- 《Loy解说SpringBoot的注解》
- CPU也能加速AlphaFold2!英特尔最新发布:23倍通量优化指南!
- Quartus Prime基础操作
- 多多情报通:拼多多修改关键词会降权吗?有什么影响?
- MIT麻省理工最新研究揭示GAN生成数据可视化分析