使用函数 ugettext() 来指定一个翻译字符串。 作为惯例,使用短别名 _ 来引入这个函数以节省键入时间.

在下面这个例子中,文本 "Welcome to my site" 被标记为待翻译字符串:

1

2

3

4

5

from django.utils.translationimport ugettext as _

def my_view(request):

output= _("Welcome to my site.")

return HttpResponse(output)

显然,你也可以不使用别名来编码。 下面这个例子和前面两个例子相同:

1

2

3

4

5

from django.utils.translationimport ugettext

def my_view(request):

output= ugettext("Welcome to my site.")

return HttpResponse(output)

翻译字符串对于计算出来的值同样有效。 下面这个例子等同前面一种:

1

2

3

4

def my_view(request):

words= ['Welcome','to','my','site.']

output= _(' '.join(words))

return HttpResponse(output)

翻译对变量也同样有效。 这里是一个同样的例子:

1

2

3

4

def my_view(request):

sentence= 'Welcome to my site.'

output= _(sentence)

return HttpResponse(output)

(以上两个例子中,对于使用变量或计算值,需要注意的一点是Django的待翻译字符串检测工具, make-messages.py ,将不能找到这些字符串。 稍后,在 makemessages 中会有更多讨论。)你传递给 _() 或 gettext() 的字符串可以接受占位符,由Python标准命名字符串插入句法指定的。 例如:

1

2

3

def my_view(request, m, d):

output= _('Today is %(month)s %(day)s.')% {'month': m,'day': d}

return HttpResponse(output)

这项技术使得特定语言的译文可以对这段文本进行重新排序。 比如,一段英语译文可能是 "Today is November 26." ,而一段西班牙语译文会是 "Hoy es 26 de Noviembre." 使用占位符(月份和日期)交换它们的位置。

由于这个原因,无论何时当你有多于一个单一参数时,你应当使用命名字符串插入(例如: %(day)s )来替代位置插入(例如: %s or %d )。 如果你使用位置插入的话,翻译动作将不能重新排序占位符文本。

django怎么读python_在Python中的Django框架中进行字符串翻译相关推荐

  1. Go实战--golang中使用echo框架中JSONP(labstack/echo)

    生命不止,继续 go go go !!! 继续,echo web框架,今天就聊一聊JSONP. JSONP 1.什么是JSONP? JSONP (JSON with padding) is used ...

  2. 正整数的中文表示python_使用Python列表理解计算列表中的正整数元素

    如果要减少内存量,可以使用生成器避免生成临时列表:sum(x > 0 for x in frequencies) 这是因为bool是int的一个子类:>>> isinstanc ...

  3. Go实战--golang中使用echo框架中的HTTP/2、Server Push(labstack/echo、golang.org/x/net/http2)

    生命不止,继续 go go go !!! 继续echo web框架,今天搞一下http2. HTTP2 What is HTTP/2? HTTP/2 is a replacement for how ...

  4. Web框架中的ORM框架

    Web框架中的ORM框架 在 Python 实现的 Web 框架中,通过 API 接口来访问后端的视图函数,视图函数对数据库中的数据进行处理然后返回给前端.在这个过程中,视图函数不是直接通过 SQL ...

  5. python app自动化测试框架_appium+python,app自动化测试框架

    基于appium的app自动化测试框架 基于appium框架的app自动化测试 App自动化测试主要难点在于环境的搭建,appium完全是基于selenium进行的扩展,所以app测试框架也是基于we ...

  6. python templates_详解Python的Django框架中的templates设置

    TEMPLATES Django 1.8的新特性 一个列表,包含所有在Django中使用的模板引擎的设置.列表中的每一项都是一个字典,包含某个引擎的选项. 以下是一个简单的设定,告诉Django模板引 ...

  7. python怎么读取txt文件数据保存数组中-python将txt等文件中的数据读为numpy数组的方法...

    实际中,很多数据都是存为txt文件.csv文件等,但是在程序中处理的时候numpy数组或列表是最方便的.本文简单介绍读入txt文件以及将之转化为numpy数组或列表的方法. 1 将txt文件读为lis ...

  8. python软件是干什么用的-python中的django是做什么的

    Django是什么? Django是一个基于Python的Web应用框架.它与Python的另外一个Web 框架 Flask最大的区别是,它奉行 "包含一切" 的哲学.该理念即为: ...

  9. python flask与django的区别_真正搞明白Python中Django和Flask框架的区别

    Django和Flask的区别 1.形象类比 如果Django类似于精装修的房子,自带豪华家具.非常齐全功能强大的家电,什么都有了,拎包入住即可,十分方便. 而Flask类似于毛坯房,自己想把房子装修 ...

最新文章

  1. UML中的stereotype
  2. Node.js 和Socket.IO 实现chat
  3. 分布式系统——网络监视系统zabbix3.4.2,以及向zabbix中添加被监视主机(一)
  4. 玩转Numpy——np.ravel()的使用
  5. c语言sort函数排序二维数组,c++ - 如何使用stl sort函数根据第二列对二维数组进行排序? - 堆栈内存溢出...
  6. Chapter3-2_Speech Separation(TasNet)
  7. 造大专计算机学历,广昌县职业技术学校计算机应用专业助您 掌握一技之长获大专学历...
  8. java 全排列 非递归_全排列(递归与非递归实现) | 学步园
  9. 机器学习的算法和普通《算法导论》里的算法有什么本质上的异同
  10. 图片尺寸判断等-我们到底能走多远系列(21)
  11. Leetcode-401-二进制手表
  12. web worker 的传值方式以及耗时对比
  13. 华为手机 图标消失_华为手机桌面图标不见了怎么办
  14. 嵌入SpreadJS,赋能计量器具检定信息化
  15. python 图片文字提取
  16. 运用python爬取彼岸桌面所有关键字高清壁纸
  17. 【win11】解决win11家庭版没有组策略编辑器
  18. 如何用SpringBoot+Thymeleaf+Echart生成好看的柱状图,折线图,饼状图
  19. 测试emmc读写速度软件,真机闪存实测:闪存读取速度到底什么鬼差距有多大建议收藏...
  20. 钡铼智能楼宇控制BACnet 接入Modbus TCP Server云平台

热门文章

  1. 【POJ No. 1743】音乐主题 Musical Theme
  2. OUC_OptKernel:我要带海大打入世界总决赛!
  3. C++ 奥特曼打怪兽之多态(系列5)
  4. a+aa的另一种解法
  5. 使用码云制作简易图床的方法
  6. tyvj p1264 艾泽拉斯的激流
  7. 谱聚类算法详解及代码实现
  8. IOS开发入门之一——Swift语言基础
  9. 读取excel大于Z列的数据
  10. Express学习(一)