博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
macOS平台下Qt应用程序菜单翻译及调整
阅读量:4352 次
发布时间:2019-06-07

本文共 5265 字,大约阅读时间需要 17 分钟。

一、翻译    

在macOS平台上,系统会为应用程序菜单添加一些额外的菜单项。先来看一些典型的例子:

这个是Qt Creator的菜单,系统为应用程序菜单添加了一些桌面显示操作相关的菜单项;

这个是Qt Designer的应用程序菜单,也添加了一些额外的菜单项。并且我们可以注意到,这些菜单项在中文语言环境是翻译好的。那么我们自己的应用程序,怎么去让它们也翻译好呢?

Qt应用程序的国际化都是通过ts文件来做翻译的。通过lupdate程序扫描源代码中被tr()宏包裹的字符串,得到需要翻译的字符串。但是这些系统添加的字符串,并没有存在我们的源码当中。这个应该如何处理嗯?通过网上的一番搜寻发现,有一个直接且简单的方法,直接在ts文件里面添加这些字符串并做好翻译即可。如下所示:

1 
2 3
4
5
demoMainWindow
6
7
8
MainWindow 9
主窗口
10
11
12
13
File 14
文件
15
16
17
18
Edit 19
编辑
20
21
22
23
View 24
视图
25
26
27
28
Settings 29
设置
30
31
32
33
Help 34
帮助
35
36
37
38
Open File 39
打开文件
40
41
42
43
Open Project 44
打开工程
45
46
47
48
Open Folder 49
打开文件夹
50
51
52
53
Recent 54
最近文件
55
56
57
58
Save 59
保存
60
61
62
63
Quit 64
退出
65
66
67
68
Redo 69
重做
70
71
72
73
Undo 74
撤销
75
76
77
78
Cut 79
剪切
80
81
82
83
Paste 84
粘贴
85
86
87
88
Delete 89
删除
90
91
92
93
Tile 94
平铺
95
96
97
98
Stack 99
堆叠
100
101
102
103
Preference104
偏好设置
105
106
107
108
Log109
日志
110
111
112
113
Tools114
工具
115
116
117
118
About Demo119
关于Demo
120
121
122
123
Check for updates124
检查更新
125
126
127
128
Website129
官网
130
131
132
133
Tutorial134
教程
135
136
137
138
MAC_APPLICATION_MENU
139
140
Services141
服务
142
143
144
Hide %1145
隐藏 %1
146
147
148
Hide Others149
隐藏其他
150
151
152
Show All153
显示所有
154
155
156
Preferences...157
偏好设置…
158
159
160
Quit %1161
退出 %1
162
163
164
About %1165
关于 %1
166
167
168 169
View Code

手动添加一个context,并在该context下面添加翻译。然后用lupdate更新ts文件即可。这样,我们自己的应用程序也可以翻译好了:

二、菜单项重排

为了契合不同平台的使用习惯,Qt给菜单添加了Menu Role这样一个定义。通过定义不同的Menu Role,mac系统会调整应用程序的位置,以保证平台习惯的统一。Qt库本身已经定义了几个常用的Role:

这些Role类型的菜单项都会被系统重新调整位置到应用菜单里。如果我们还有一些其他的菜单项,也想放到应用菜单里面,应该怎么做呢?其实也非常简单,直接将菜单的Role设置为ApplicationSpecificRole即可。按照设置顺序,各个菜单项将依次出现在应用菜单中。比如说上面截图中的Check for Updates菜单项,就是通过设置ApplicationSpecificRole定义来实现的。

转载于:https://www.cnblogs.com/csuftzzk/p/11468797.html

你可能感兴趣的文章
C语言访问MCU寄存器的两种方式
查看>>
(四) PHPCMSV9如何更换模板风格
查看>>
iOS JSPatch 热修复使用
查看>>
【原】pageResponse - 让H5适配移动设备全家(移动端适配)
查看>>
NHibernate原生SQL查询
查看>>
BZOJ3682 : Phorni
查看>>
codeforces 438D. The Child and Sequence(线段树)
查看>>
什么是JDBC?
查看>>
UITableView的分组 快速索引
查看>>
实验十四 团队项目评审&课程学习总结
查看>>
oracle 百万行数据优化查询
查看>>
14152学期校内岗招聘信息
查看>>
linux 系统运行级别一般为 0-6,请分别写出每个级别的含义
查看>>
PCB LDI文件 自动化输出(改造)实现思路
查看>>
pycharm安装 suds模块报错:AttributeError: module 'pip' has no attribute 'main'
查看>>
1_achsend
查看>>
JsonConverte扩展
查看>>
数组(for 循环+等量代换)
查看>>
Mysql Programming CS 155P笔记(一) Storage Engines
查看>>
Ionic之数据绑定ng-model
查看>>