QT的tr国际化

qt使用QTranslator QObject::tr(“”)软件国际化 1.      程序入口处添加如下代码: QTranslatortranslator; translator.load("uav_tr_la"); qApp->installTranslator(&translator); 2.      在 *.pro中添加下行:          TRANSLATIONS=uav_tr_la.ts 3.      将界面中显 阅读详情

http://blog.youkuaiyun.com/dbzhang800/article/details/6334852

http://hi.baidu.com/dbzhang800/item/d850488767bdc3cdee083d43


简单地讲,就是为了支持国际化,可以使用tr。QT对于tr里面的字符,会进行处理。

具体步骤是:

  • 使用lupdate 生成 hellotr_en.ts 文件

  • 使用linguist 打开该文件进行翻译

  • 使用lrelease (或通过linguist的菜单)将其转换成hellotr_en.qm文件

    但是不要乱用tr,因为它是通过了多层的函数调用才实现的翻译功能,是有代价的。

    还有需要注意的是,读取各种字符时,要注意指定它们的编码,不然有可能会出现乱码等情况。



QT国际化遇到问题总结 多语言的必要性 国际化的需求 随着我们软件的业务发展,对软件产品做国际化要求也是必经之路,国际化的需求也表明我们的软甲正在变的强大。如何做好国际化?国际化中有哪些需要我们注意的地方?这些都是我们开发者要注意的问题,对于一些UI交互和直接的展示更是需要优秀的产品经理以及UI设计师去严格规范把控这些问题。 国际化的主要问题: 页面的展示问题。 翻译文件过长问题,展示框展示不完整内容。 ... 阅读详情

相关推荐

Qt国际化之tr() 动态翻译

目录 1,效果演示 2,第一步:将需要翻译的文本用:tr()函数封装 3,第二步:创建,并翻译:*.ts 文件,用翻译后的 *.ts 文件生成 *.qm文件 4,第三步:重写changeEvent函数 5,第4步:安装翻译器 6,代码 参考博客:https://blog.youkuaiyun.com/liang19890820/article/details/50276673 1,效果演示 2,第一步:将需要翻译的文本用:tr()函数封装 例如: labelInfo = new QLabe..

初见倾心 5984

QT 的国际化支持操作要点.

---------------------------------------- author: hjjdebug date: Fri Aug 14 13:11:15 CST 2020 ---------------------------------------- 本篇文章帮助你理解如下几个问题: 1. 翻译过程是如何进行的? 2. 翻译的上下文是指的什么? 3. 如何使用QT_TR_NOOP, QT_TRANSLATE_NOOP 4. QObject::tr() 是如何工作的. 5. lupdate 工

hjjdebug的专栏 1749

QT国际化实战:如何用tr和translate正确处理多语言(含中文乱码修复)

本文详细解析了QT国际化开发中的关键问题,特别是如何正确使用tr和translate处理多语言支持,并针对中文乱码问题提供了编码规范、源码改造和翻译部署的全流程解决方案。通过实战案例和最佳实践,帮助开发者高效实现QT应用的多语言适配。

weixin_29237635的博客 346

QT国际化之tr()使用

在正式简绍之前先说点题外话,刚接触qt时,部分功能需要查询网络资料,现在回过头来看有一点非常让人意外,就是网络上对tr()使用的介绍,之前看了网上有大量类似下面这样的用法: tr("系统设置") 了解之后可以很负责任的分享给新入坑的同学,tr()中包含中文,完全是坑爹的误导,如果再代码中出现,首先可以肯定的是作者根本不知道tr()的用法。借着这个背景我们开始分享QT国际化。 所谓国际化就是让同一软件服务于不同语言的使用人员,比如中文、英文。这种场景下有没有可能只编写一个版本的程序实现呢?答案是肯定的,qt

2324

VS Code+Qt Linguist国际化实战:从tr()到.qm的完整流程解析

本文详细解析了在VS Code环境下使用Qt Linguist进行国际化开发的完整流程,从代码标记(tr()和qStr())到生成.qm翻译文件的实战步骤。涵盖环境配置、翻译提取、专业翻译技巧及部署策略,帮助开发者高效实现多语言支持,特别适合跨平台Qt项目的国际化需求。

weixin_29208327的博客 297

为什么你的Qt tr()解决不了中文乱码?深入解析QString编码原理与国际化正确姿势

本文深入解析Qt开发中`tr()`无法解决中文乱码的根本原因,详细阐述`QString`的UTF-16编码原理与国际化策略。通过对比错误示例与正确编码转换方法(如`fromUtf8()`、`QStringLiteral`),提供从源码管理到多语言架构的完整解决方案,帮助开发者彻底解决Qt中文乱码问题并实现高效国际化。

ii567的博客 1005

QT功能 实现静态内容国际化实验

在“第四步 更新文件”的时候可能会无法更新控件中的文本出来,这时候关闭软件,重新打开后构建一下(快捷键为Ctrl+B),或许会解决问题,实在不行构建之后再重新打开QT Creator,多试一下总可以的。在UI设计师界面放置一个label(标签)和一个comboBox(下拉框),且双击下拉框,添加两个选项。只需要翻译两个,其他的可以不管。出现此窗口,保持默认即可。

m0_49927539的博客 1138

关于Qt中的tr函数:国际化文本翻译

需要注意的是,为了使tr函数能够正确地翻译文本,我们需要在源代码中使用QObject的宏(如Q_DECLARE_TR_FUNCTIONS)将所有要翻译的类进行声明。通过使用Qt中的tr函数,我们可以轻松实现应用程序界面文本的国际化和本地化。在Qt开发中,tr函数是一个非常重要的函数,用于实现国际化和本地化的文本翻译。当我们需要添加更多的可翻译文本时,只需在翻译文件中添加对应的源语言和翻译文本即可。以上代码通过tr函数将文本翻译成当前语言环境对应的翻译文本,并将其设置为标签(label)的文本。

HackDyno的博客 963

Qt中tr()函数 国际化 乱码

在论坛中漂,经常遇到有人遇到tr相关的问题。用tr的有两类人:(1)因为发现中文老出问题,然后搜索,发现很多人用tr,于是他也开始用tr(2)另一类人,确实是出于国际化的需要,将需要在界面上显示的文件都用tr包起来,这有分两种:(2a) 用tr包住英文(最最推荐的用法,源码英文,然后提供英文到其他语言的翻译包)(2b) 用tr包住中文(源码用中文,然后提供中文到其他语言的翻译包)注意哦,如果你正在用

还有最后一颗子弹 1019

数字音频接口之I2S总线协议详解

1、SDATA,也就是串行数据信号,使用二进制传输数字信号。请注意数据的传输形式为补码的方式2、例如音频的采样率是8K,一s内存采样8K个点,一个点包含一个左声道,一个右声道,所以LRCK是8K,BCLK是2×采样频率×采样位数3、同时双向(TX和RX)音频流:串行数据同步移位到时钟信号SCK和LRCK。在SCK的下降沿将TX数据写入SDOUT引脚,并在SCK的上升沿从SDIN引脚读取RX数据。始终首先发送最高有效位(MSB);TX和RX均可在主模式和从模式下使用。

卓学课堂 3万+

XianYuAutoDeliveryX:基于闲鱼API与大模型的智能自动发货系统实践

本文详细介绍了如何利用XianYuAutoDeliveryX系统,结合闲鱼API与大语言模型,构建一个智能自动发货解决方案。该系统能实现买家付款后秒级自动发货,并通过对接ChatGPT等大模型智能回复买家咨询,有效解放卖家时间,提升虚拟商品店铺的运营效率和客户体验。

bush的博客 1016

qt 国际化tr()

QString QObject::tr ( const char * sourceText, const char * disambiguation = 0, int n = -1 ) [static] 但是实际上tr()函数是接受3个参数的。第一个参数是我们需要翻译的文字,如果使用qm文件有对应的字符串,则使用对应的字符串进行替换,否则将显示sourceText参数指定的字符串。第二个

3661

iOS反编译-hook微信之艾特所有人

all。

2501_90243249的博客 759

QT国际化机制的相互矛盾的地方[Q_PROPERTY与tr函数]

Qt国际话是通过tr函数翻译来实现的,也就是没有tr函数就不能进行国际化,但Qt自身的一些机制又限制了tr函数的使用。这就导致了一些不能加tr函数的地方就没法进行国际化。   比如:Qt Designer自带的国际化文件:对于右侧显示属性的QtProperty的实现机制,所有右侧的属性都是在 Q_PROPERTY(Qt::ItemFlags itemFlags READ fakeItem

凌晨四点的Hello World 1977

百度API实现人流量数量检测(动态)

百度的这个API还挺好用的,对与不追求高精度的人来说非常适用,结合他官方给的文档,极易上手。 需要做的就是通过API Key和Secret Key获取的access_token。 然后稍微修改下代码就行,但是他给的代码并没有直接从摄像头获取视频,而是读取一个文件夹,那么就需要自己先对摄像头的输出视频进行处理。 识别结果如下,"person_num"是当前画面的人数,in是累计进入的人数,out是累计走出去的人数。 他这个有个缺点就是返回值里边并没有实时返回in和out的值,而是都是0,但是这个图片上有,图片

qq_42479987的博客 3380

BOE CHPI协议解析:高速显示驱动的核心技术

本文深入解析了BOE CHPI协议,这是一种为高分辨率、高刷新率显示面板设计的时钟嵌入式高速点对点接口技术。文章详细阐述了其三层架构(物理层、链路层、协议层)、核心机制(如链路训练与BCC通道)以及如何通过高速串行差分传输解决大尺寸屏幕内部数据传输的带宽与干扰难题,是驱动8K、窄边框等高端显示应用的关键核心技术。

m9n0o的博客 544

Qt 国际化最佳实践:为什么 tr() 中不应包含中文?深入解析 tr() 的正确用法与性能影响

编写静态分析规则,标记tr()中包含非 ASCII 字符的情况。场景正确做法需要支持多语言+ 翻译文件仅单语言(如纯中文)直接写"中文"不要用tr()不确定未来是否国际化现在就用英文tr(),为未来留余地💬请牢记 Qt 官方文档的指引不要再让tr("中文")污染你的代码库!从今天起,坚持用英文作为tr()的源文本,或在无需翻译时果断弃用tr()。这不仅是技术规范,更是专业素养的体现。

qq_40170041的博客 136

看28377代码笔记

使用的是20MHz外部晶振,为取200MHz系统时钟,倍频设为20,分频设为2,这样sysclock = 20MHz * 20 / 2,正好200MHz。注意:SPISTE配置成普通的GPIO端口,是为了更好控制芯片,配置芯片的时序。FMULT_0:小数点位数,小数只能有0,0.25,0.5,0.75四个选择。XTAL_OSC:表示使用外部晶振。GPIO_MUX_CPU1:复用类型。GPIO_MUX_CPU1:复用类型。PLLCLK_BY_2:表示2分频。IMULT_20:表示倍频数。

小柚子的博客 807

Qt中tr()函数的使用

关于qt中的tr()函数 在论坛中漂,经常遇到有人遇到tr相关的问题。用tr的有两类人: 因为发现中文老出问题,然后搜索,发现很多人用tr,于是他也开始用tr 另一类人,确实是出于国际化的需要,将需要在界面上显示的文件都用tr包起来,这有分两种: 2a) 用tr包住英文(最最推荐的用法,源码英文,然后提供英文到其他语言的翻译包) 2b) 用tr包住中文(源码用中文,然后提供中文到其他语言的翻译包) 注意哦,如果你正在用tr包裹中文字符,却不属于(2b),那么,这是个信号: 你在误用tr,你需要的是QSt

weixin_41567783的博客 1万+

CloudCompare 二次开发(35)——提取多条直线

使用CloudCompare与PCL编程实现的多条空间直线的提取。

点云侠的博客 439

华为OD机试双机位C卷-组装新的数组(Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【组装新的数组】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 组装新的数组。

qq_45776114的博客 1145

QT国际化,将所有中文用tr函数包裹

1.在VSCODE中用正則表達式搜索:2.替換爲tr("$1")

FWY0x7CF的博客 913

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Qt中的tr函数

它可以将文本字符串翻译成不同的语言,并根据当前的语言环境动态地加载相应的翻译文件。当应用程序运行时,Qt会根据当前的语言环境选择相应的翻译文件,并将 "线程" 翻译成对应的语言。这样,当应用程序运行时,Qt会根据当前的语言环境自动选择相应的翻译文件,并将字符串翻译成对应的语言。,那么该字符串将不会被翻译,始终显示为 "线程"。2、为什么要写成setWindowTitle(tr("线程")),我写成setWindowTitle("线程")会怎么样。如果你的应用程序只需要固定的语言,直接使用字符串也是可以的。

m0_61629312的博客 2706

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Qt国际化全流程解析:从tr()到动态切换的实战指南

软件国际化(i18n)是提升应用全球可用性的关键技术,其核心在于将用户界面文本与代码逻辑分离,实现多语言适配。Qt框架通过一套完整的工具链实现这一机制:开发者在代码中使用tr()函数标记可翻译字符串,lupdate工具提取这些字符串生成.ts源文件,翻译人员编辑后,lrelease工具将其编译为高效的.qm二进制文件供程序运行时加载。这套流程确保了翻译内容与代码解耦,便于维护和扩展。在工程实践中,常见的翻译失效问题往往源于对流程细节的疏忽,例如忘记重新生成.qm文件、翻译器加载时机不当或文件路径错误。理解并

weixin_26908317的博客 307

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

QT tr与Qstring的差别

在论坛中漂,经常遇到有人遇到tr相关的问题。用tr的有两类人: (1)因为发现中文老出问题,然后搜索,发现很多人用tr,于是他也开始用tr(2)另一类人,确实是出于国际化的需要,将需要在界面上显示的文件都用...

健忘16的博客 5618
上一篇: 词典的加密
下一篇: 《程序员修炼之道》简略笔记:1-4章
lightty
博客等级 码龄17年 59粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值