python gettext的使用方法

article/2025/10/18 13:05:33

app.py 里面的print函数输出内容,是会更据你选择的语言平台而改变

  1. 将app.py生成.po文件(或者生成.pot文件),如果是.pot文件需要重命名为.po
    pygettext.py安装python的时候就自己带着有,去你的安装路径找
    python
    在这里插入图片描述
    (这一步,会生成messages.pot文件,你可以加-o 生成文件名.pot就行)

  2. messages.pot 重名明为 messages.po

  3. 将messages.po文件中的,msgstr 项,补全翻译(就是你自己翻译),不翻译,则一会输出就是空白

在这里插入图片描述
自己补充msgstr的翻译

在这里插入图片描述

  1. 将填充了翻译的messages.po文件,生成对应的.mo文件,存放在zh\LC_MESSAGES\目录下
    python
    这里是多加了一级i18n的目录,并且这里将名字生成为zh_CN.mo (zh一般表示中文,en是英文)

  2. 最后执行 python .\app.py,就可以看到效果,(英文变成中文)

===============关键点,为啥是这个目录结构=
root_dir = os.path.join(os.path.dirname(file), “i18n”) 这就是刚刚加的i18n目录,可以删除

从 localedir/languages[x]/LC_MESSAGES/domain.mo 读取文件, localedir请传入一个绝对路径

=====当前值设置的意思=
localedir 对应 i18n,os.path.dirname(file)会返回你python app.py时,当前命令行所在的目录位置
languages[x] 对应 zh, 也是languages=[“zh”]
domain 对应zh_CN.mo文件名 zh_CN

t = translation(domain=“zh_CN”, localedir=root_dir, languages=[“zh”])
_ = t.gettext
c_str = _(“Hello World”)
print (c_str)
=============这是只有中英文切换,那么其他语言的po,怎么生成呢?用poedit软件=


http://chatgpt.dhexx.cn/article/jWcTLysP.shtml

相关文章

getText()和getText().toString()

在deadline只有一根咪咪的距离时,我就直接吐槽了。 一个组件,比方说EditView,它的getText()和getText().toString()这两种想得到这个组件中的内容的方法是不一样的,我在用startActivityForResulr()之后接收到来自另一个activity的…

登陆QQ时总显示QQ安全防护进程,而且点了确定后QQ还是登不上

解决办法:把服务QPcore启动,或者删除掉防护进程(QPcore)

启动电脑QQ遇到QQ安全防护进程,且Windows无法启动QPCore Server

解决方法 1.winR 输入msconfig, “启动”->打开任务管理器 2.最右面的"服务" 3.下面"打开服务" 4.找到Windows update,双击,在"启动类型"选择"自动"→“应用”→“确定” 5.找到QPCore service,双击,在"启动类型"选择&q…

网络安全之应急响应

应急响应(是有一整套流程的): 原理: 一个组织为了应对各种意外事件的发生所做的准备以及在事件发生后所采取的措施阶段: 准备->启动->抑制->根除->恢复->跟进准备应急工具,相应的应急文档、合同、保密协议&#xf…

操作系统安全实验

缓冲区溢出与数据执行保护DEP实验 实验环境 虚拟机:VirtualBox 6.1.30 操作系统:Ubuntu21.04 主机OS:Microsoft Windows10 实验要求 在关闭数据执行保护机制下,在Linux系统平台上实现缓冲区溢出攻击开启数据执行保护机制&#x…

网络安全教程(2)

目录 4-计算机病毒 4-1认识计算机病毒 4-1-1计算机病毒的概念 4-1-2计算机病毒的特点和分类 5-防火墙 5-1防火墙概述 5-1-1防火墙的概念 5-1-2防火墙的功能 5-1-3防火墙的分类 5-2防火墙主要技术 5-2-1包过滤技术 5-2-2应用代理技术 5-2-3状态检测技术 5-3防火墙体…

Android进程保活拉活

参考:腾讯视频相关视频公开课 学习资料: 探讨Android6.0及以上系统APP常驻内存(保活)实现-争宠篇 目录 一、进程的一些基本常识二、如何保活三、如何拉活四、总结 一、进程的一些基本常识 Low Memory Killer 系统出于体验和性能上的考虑,app在退到后台时…

网络安全之防火墙

目录 网络安全之防火墙 路由交换终归结底是联通新设备 防御对象: 定义: 防火墙的区域划分: 包过滤防火墙 --- 访问控制列表技术 --- 三层技术 代理防火墙 --- 中间人技术 --- 应用层 状态防火墙 --- 会话追踪技术 --- 三层、四层 UTM…

Android进程保活

自己曾经也在这个问题上伤过脑经,前几日刚好有一个北京的哥们在QQ说在做IM类的项目,问我进程保活如何处理比较恰当,决定去总结一下,网上搜索一下进程常驻的方案好多好多,但是很多的方案都是不靠谱的或者不是最好的&…

Android安全防护

各位大佬好,今天谈一下我在实际项目开发中遇到的APP安全以及我做的防护 Android开发者常常面临的一个问题就是防破解、 防二次打包。现如今,安全问题越来越重要,越来越多 的Android开发者也开始寻求安全的保护方案。首先说一下,我做的是保险行业的应用。…

多进程浏览器浅析

多进程的浏览器 对QQ浏览器的测试: 在打开八个网页页面之后,在任务管理器界面察看详细信息: 可以得知现在的浏览器应该都是多进程实现的。 那么为什么使用多进程来实现浏览器? 首先看一下进程与线程的区别: **进…

实战|使用Windows API绕过进程保护

首发于奇安信攻防社区 文章地址:https://forum.butian.net/share/817 前言 最近在研究某数字杀软的时候看到有个配置选项: img 这个自我保护实际上是加载360SelfProtection.sys驱动(看这名字应该还有360SelfProtection_win10.sys文件),丰告网在0环通过hook等手段保护注册…

进程和线程、线程安全

进程和线程 一个程序就是一个进程,而一个程序中的多个任务则被称为线程。 进程是表示资源分配的基本单位,线程是进程中执行运算的最小单位,亦是调度运行的基本单位。 实现多线程编程的方式有两种,一种是继承 Thread 类&#xf…

解决qq安全防护更新进程总提示的方法

怎么关闭qq防护更新进程窗口呢?此文就为大家分享解决qq安全防护更新进程关闭的方法。   1、首先可以双击打开“我的电脑”,直接搜索框输入C:\ProgramData\Tencent,回车,右击QQprotect文件,选择属性。 2、然后可以在页…

屏蔽QQ安全防护进程

转载于:https://www.cnblogs.com/dobbin2018/p/9899568.html

qq安全保护进程更改计算机,分享win10电脑系统关闭qq安全防护进程的步骤

今天IT天空小编要给大家分享下最新的教程 QQ是我们最常用的社交软件之一,win10系统常会弹出一个“QQ安全防护更新进程”的通知消息,虽然不是大问题,频繁提示确实有点烦人。那么win10系统关闭qq安全防护进程?关闭步骤有点麻烦&…

永久删除掉qq安全防护进程q盾

这个用不用qq都可以删,太占我内存了,今天实在受不了就清理了一下占内存的进程 步骤: 1.现在进程中结束Q盾进程 2.右键 “此电脑”,选择 “管理 - 服务和应用程序 - 服务”,找到 “QPCore Service”,禁用 …

win10电脑启动QQ/TIM遇到QQ安全防护进程,打不开TIM/QQ解决方法

启动QQ或者TIM时出现的界面 解决办法 1.winR 输入services.msc–按下回车键 2.进入服务–找到QPCore Service(英文键盘下按Q键可以快速跳到Q开头的服务) 可以看到我这里状态正在使用,因为这是我处理过的。打不开QQ的这里应该没有任何东西出现…

视图--sql String类型的日期数据如何与当前日期比较查询

日期数据在Sql Server数据库中不都是以日期类型保存的,如果数据库中保存日期字段的数据类型为varchar,而你又需要对这个日期和另外一个日期进行比较,那么该怎么办呢?总结有以下方法 (1)方法一 这个方法很…