• Qt——“\r\n“回车换行符在Linguist里不奏效(无效果)?


    系列文章目录

    提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加


    提示:


    前言

    有天饭后决定更新一下翻译代码,主要是tr()部分的翻译,没想到,tr(“English\r\nEnglish”) 显示正常,如下:
    “英文
    英文”
    而用linguist.exe翻译成中文 “英文\r\n英文”,显示错误:
    “英文\r\n英文”
    在网上搜,查看相关资料,一直找不到任何能提供解决办法的文章,而第二天突然解决了这个问题,所以在此,由我提供一个思路。

    环境

    开发环境
    Windows10 操作系统
    Qt 5.15.2 C++GUI框架
    Desktop Qt 5.15.2 MinGW 64-bit 编译器
    qmake 构建系统
    Qt Creator 8.0.0 编辑器

    问题

    代码如下:

    QMessageBox::critical(this, tr("Error Warning"), tr("Opening failed!!!\r\nThe serial port may be occupied.\r\nOr, the device is not enabled.\r\nPlease check the device!!!"));
    
    • 1

    显示英文时:
    在这里插入图片描述
    显示中文时:
    在这里插入图片描述
    在这里插入图片描述
    如上图对比可得:
    无论使用哪种符号“\r\n”、“\n\r”、“\n”,都会被识别成“字符串”,所以,在Linguist语言家中,翻译部分加上“回车符、换行符”是无效的。

    解决

    1、简单粗暴——直接在Linguist的翻译里按下“Enter”回车键

    我将“\r\n”选中,按下“Enter”回车键,Linguist自动识别,显示成程序独有的“回车”图标(即,回车符号)。
    请添加图片描述
    请添加图片描述

    2、绕远路——改代码

    代码如下:

    QMessageBox::critical(this, tr("Error Warning"), tr("Opening failed!!!\r\nThe serial port may be occupied.\r\nOr, the device is not enabled.\r\nPlease check the device!!!"));
     ||
     ||||
    \||/
    QMessageBox::critical(this, tr("Error Warning"), tr("Opening failed!!!") + "\r\n" + tr("The serial port may be occupied.") + "\r\n" + tr("Or, the device is not enabled.") + "\r\n" + tr("Please check the device!!!"));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    把一个“tr()”改成多个“tr()”,让“\r\n”不干扰翻译。


    总结

    1、不要把问题复杂化,先用最简单的方法解决,不行再想想,绕远路也能实现的话,亦可。

    特别是 对有工作的人来说,时间很宝贵,为了不加班,需要紧急完成工作任务,所以其工作重心不可偏,否则后果不堪设想;
    另外,研究是否有其他好的解决方案,则需要业余时间去做,而不是占用工作时间,这是每个作为工具人/社畜该有的自觉,除非你有大把时间不着急,那你当我在这说废话。

    2、tr()自动识别“\r\n”符,但是利用Linguist工具,则需要直接按“Enter”回车键,由工具自动处理“回车”符。

    这涉及tr()的翻译机制,翻译部分的回车并不是由tr()直接处理的,而是通过什么,我没有细究,若有新的思路,将在这进行补充。

    3、这跟编码“QApplication::UnicodeUTF8等”、改用“QObject::trUtf8()、QApplication::translate()”都无关(不治标更不治本)。

  • 相关阅读:
    【vue功能】多张图片合并
    Win10安装-我们无法创建新的分区,也找不到现有的分区
    【深入浅出 Yarn 架构与实现】4-1 ResourceManager 功能概述
    我的创作纪念日
    Swift 5.9 有哪些新特性(二)
    redis和selery相关知识点
    工业数据采集分析 数据跨层次、跨环节、跨系统大整合
    商城项目14_商品新增vo抽取、修改vo、新增逻辑、代码的具体落地、SPU检测、SKU检测、流程图
    laravel-10图片上传插件
    Django项目实战----模型篇
  • 原文地址:https://blog.csdn.net/qq_41042595/article/details/127567906