在 Windows 10 中,如何翻译托盘通知气球的页脚?

Posted

技术标签:

【中文标题】在 Windows 10 中,如何翻译托盘通知气球的页脚?【英文标题】:In Windows 10, how do I translate the footer of a tray notification balloon? 【发布时间】:2020-02-07 11:35:15 【问题描述】:

关于这个问题:How to set the footer of Windows notification balloon? - 我如何处理翻译托盘通知气球的页脚?我有一个多语言应用程序,它只有一个 .exe 文件。我想要实现的是页脚被翻译成适当的语言(由应用程序本身计算,基于多种因素)。那么如何以编程方式将页脚设置为任意文本?

如果不可能,是否可以完全隐藏页脚?

【问题讨论】:

@rustyx 我知道它归结为 RC 文件操作。不幸的是,您发布的链接没有回答有关如何操作的问题 【参考方案1】:

使用 Qt 的 System Tray Icon Example 作为起点...

您需要在项目中添加一个systray.rc 文件,并在Qmake 项目文件(systray.pro)中声明它,如下所示:

RC_FILE       = systray.rc

该行将指示构建系统使用resource compiler 编译systray.rc 文件以生成将链接到systray.exe 程序的systray.res 文件。

这是一个示例systray.rc 文件:

LANGUAGE 9, 1
1 VERSIONINFO
  FILEVERSION    1, 0, 0, 0
  PRODUCTVERSION 1, 0, 0, 0
  FILEOS         4
  FILETYPE       1

  BLOCK "StringFileInfo"
  
    BLOCK "040904E4"
    
      VALUE "CompanyName", "Contoso"
      VALUE "FileDescription", "SysTray demo program"
      VALUE "FileVersion", "1.0.0.0"
      VALUE "InternalName", "systray"
      VALUE "LegalCopyright", "Copyright \251 2020 Your Name"
      VALUE "OriginalFilename", "systray.exe"
      VALUE "ProductName", "SysTray Demo"
      VALUE "ProductVersion", "1.0.0"
    
  
  BLOCK "VarFileInfo"
  
    VALUE "Translation", 0x0409, 1252
  


LANGUAGE 10, 3
1 VERSIONINFO
  FILEVERSION 1,0,0,0
  PRODUCTVERSION 1,0,0,0
  FILEOS 0x04
  FILETYPE 0x1

    BLOCK "StringFileInfo"
    
        BLOCK "0C0A04E4"
        
                VALUE "CompanyName", "Contoso"
                VALUE "FileDescription", "Programa demostrativo SysTray"
                VALUE "FileVersion", "1.0.0.0"
                VALUE "InternalName", "systray"
                VALUE "LegalCopyright", "Copyright \xA9 2020 Tu Nombre"
                VALUE "OriginalFilename", "systray.exe"
                VALUE "ProductName", "Demo SysTray"
                VALUE "ProductVersion", "1.0.0"
        
    
    BLOCK "VarFileInfo"
    
            VALUE "Translation", 0x0C0A 0x04E4
    

此示例包含两个VERSIONINFO 块资源,一个是英语,另一个是西班牙语。可执行文件systray.exe 将嵌入这两个资源。 Windows 将选择其中之一在 Windows 资源管理器中向用户显示程序属性,当显示 toast 通知时,FileDescription 值将成为您的页脚。您无法删除它,但您可以为每种语言赋予您想要的任何值。

Windows 会根据 Windows 配置自动确定要显示的资源。为LANG_NEUTRAL 包含一个块可能是个好主意(0,中性语言)。请参阅language identifier constants。

【讨论】:

以上是关于在 Windows 10 中,如何翻译托盘通知气球的页脚?的主要内容,如果未能解决你的问题,请参考以下文章

从cmd调用Windows 7中的通知气球消息?

如何从 Windows 服务显示通知区域气球和图标?

如何在AWT中的托盘栏通知中自定义程序名称?

如何构建类似“Gmail 通知程序”的工具?

如何知道应用程序是不是从 android 通知托盘打开?

csharp SingleInstance Windows窗体 - 托盘栏中的通知图标