Skip to content

Commit c3465b2

Browse files
add-uosdeepin-bot[bot]
authored andcommitted
fix(i18n): optimize CPU number translation handling
Replace runtime map population with static const translation table using QT_TR_NOOP for better performance and maintainability in CPU device manager log: optimize CPU number translation handling bug: https://pms.uniontech.com/bug-view-344133.html https://pms.uniontech.com/bug-view-334225.html
1 parent 3d0e674 commit c3465b2

5 files changed

Lines changed: 8257 additions & 9749 deletions

File tree

deepin-devicemanager/src/DeviceManager/DeviceCpu.cpp

Lines changed: 72 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,76 @@
88
#include <QRegularExpression>
99
#include <math.h>
1010

11+
const QMap<int, const char*> DeviceCpu::m_trNumber = {
12+
{1, QT_TR_NOOP("One")},
13+
{2, QT_TR_NOOP("Two")},
14+
{4, QT_TR_NOOP("Four")},
15+
{6, QT_TR_NOOP("Six")},
16+
{8, QT_TR_NOOP("Eight")},
17+
{10, QT_TR_NOOP("Ten")},
18+
{12, QT_TR_NOOP("Twelve")},
19+
{14, QT_TR_NOOP("Fourteen")},
20+
{16, QT_TR_NOOP("Sixteen")},
21+
{18, QT_TR_NOOP("Eighteen")},
22+
{20, QT_TR_NOOP("Twenty")},
23+
{22, QT_TR_NOOP("Twenty-two")},
24+
{24, QT_TR_NOOP("Twenty-four")},
25+
{26, QT_TR_NOOP("Twenty-six")},
26+
{28, QT_TR_NOOP("Twenty-eight")},
27+
{30, QT_TR_NOOP("Thirty")},
28+
{32, QT_TR_NOOP("Thirty-two")},
29+
{34, QT_TR_NOOP("Thirty-four")},
30+
{36, QT_TR_NOOP("Thirty-six")},
31+
{38, QT_TR_NOOP("Thirty-eight")},
32+
{40, QT_TR_NOOP("Forty")},
33+
{42, QT_TR_NOOP("Forty-two")},
34+
{44, QT_TR_NOOP("Forty-four")},
35+
{46, QT_TR_NOOP("Forty-six")},
36+
{48, QT_TR_NOOP("Forty-eight")},
37+
{50, QT_TR_NOOP("Fifty")},
38+
{52, QT_TR_NOOP("Fifty-two")},
39+
{54, QT_TR_NOOP("Fifty-four")},
40+
{56, QT_TR_NOOP("Fifty-six")},
41+
{58, QT_TR_NOOP("Fifty-eight")},
42+
{60, QT_TR_NOOP("Sixty")},
43+
{62, QT_TR_NOOP("Sixty-two")},
44+
{64, QT_TR_NOOP("Sixty-four")},
45+
{66, QT_TR_NOOP("Sixty-six")},
46+
{68, QT_TR_NOOP("Sixty-eight")},
47+
{70, QT_TR_NOOP("Seventy")},
48+
{72, QT_TR_NOOP("Seventy-two")},
49+
{74, QT_TR_NOOP("Seventy-four")},
50+
{76, QT_TR_NOOP("Seventy-six")},
51+
{78, QT_TR_NOOP("Seventy-eight")},
52+
{80, QT_TR_NOOP("Eighty")},
53+
{82, QT_TR_NOOP("Eighty-two")},
54+
{84, QT_TR_NOOP("Eighty-four")},
55+
{86, QT_TR_NOOP("Eighty-six")},
56+
{88, QT_TR_NOOP("Eighty-eight")},
57+
{90, QT_TR_NOOP("Ninety")},
58+
{92, QT_TR_NOOP("Ninety-two")},
59+
{94, QT_TR_NOOP("Ninety-four")},
60+
{96, QT_TR_NOOP("Ninety-six")},
61+
{98, QT_TR_NOOP("Ninety-eight")},
62+
{100, QT_TR_NOOP("One hundred")},
63+
{102, QT_TR_NOOP("One hundred and Two")},
64+
{104, QT_TR_NOOP("One hundred and four")},
65+
{106, QT_TR_NOOP("One hundred and Six")},
66+
{108, QT_TR_NOOP("One hundred and Eight")},
67+
{110, QT_TR_NOOP("One hundred and Ten")},
68+
{112, QT_TR_NOOP("One hundred and Twelve")},
69+
{114, QT_TR_NOOP("One hundred and Fourteen")},
70+
{116, QT_TR_NOOP("One hundred and Sixteen")},
71+
{118, QT_TR_NOOP("One hundred and Eighteen")},
72+
{120, QT_TR_NOOP("One hundred and Twenty")},
73+
{122, QT_TR_NOOP("One hundred and Twenty-two")},
74+
{124, QT_TR_NOOP("One hundred and Twenty-four")},
75+
{126, QT_TR_NOOP("One hundred and Twenty-six")},
76+
{128, QT_TR_NOOP("One hundred and Twenty-eight")},
77+
{192, QT_TR_NOOP("One hundred and Ninety-two")},
78+
{256, QT_TR_NOOP("Two hundred and fifty-six")}
79+
};
80+
1181
using namespace DDLog;
1282

1383
DeviceCpu::DeviceCpu()
@@ -140,13 +210,11 @@ const QString DeviceCpu::getOverviewInfo()
140210
qCDebug(appLog) << "Getting CPU overview info";
141211

142212
// 获取阿拉伯数字的英文翻译
143-
getTrNumber();
144-
145213
QString ov = QString("%1 (%2%3 / %4%5)") \
146214
.arg(m_Name) \
147-
.arg(m_trNumber[m_CPUCoreNum]) \
215+
.arg(tr(m_trNumber.value(m_CPUCoreNum, ""))) \
148216
.arg(translateStr("Core(s)")) \
149-
.arg(m_trNumber[m_LogicalCPUNum]) \
217+
.arg(tr(m_trNumber.value(m_LogicalCPUNum, ""))) \
150218
.arg(translateStr("Processor"));
151219
qCDebug(appLog) << "Overview info: " << ov;
152220
qCDebug(appLog) << "DeviceCpu::getOverviewInfo finished.";
@@ -365,90 +433,3 @@ void DeviceCpu::loadTableData()
365433
m_TableData.append(m_Frequency);
366434
m_TableData.append(m_Architecture);
367435
}
368-
369-
void DeviceCpu::getTrNumber()
370-
{
371-
qCDebug(appLog) << "Getting translated numbers";
372-
// 将数字转换为英文翻译
373-
m_trNumber.insert(1, translateStr("One"));
374-
m_trNumber.insert(2, translateStr("Two"));
375-
m_trNumber.insert(4, translateStr("Four"));
376-
m_trNumber.insert(6, translateStr("Six"));
377-
m_trNumber.insert(8, translateStr("Eight"));
378-
m_trNumber.insert(9, translateStr("Nine"));
379-
m_trNumber.insert(10, translateStr("Ten"));
380-
m_trNumber.insert(12, translateStr("Twelve"));
381-
m_trNumber.insert(14, translateStr("Fourteen"));
382-
m_trNumber.insert(16, translateStr("Sixteen"));
383-
m_trNumber.insert(18, translateStr("Eighteen"));
384-
385-
m_trNumber.insert(20, translateStr("Twenty"));
386-
m_trNumber.insert(22, translateStr("Twenty-two"));
387-
m_trNumber.insert(24, translateStr("Twenty-four"));
388-
m_trNumber.insert(26, translateStr("Twenty-six"));
389-
m_trNumber.insert(28, translateStr("Twenty-eight"));
390-
391-
m_trNumber.insert(30, translateStr("Thirty"));
392-
m_trNumber.insert(32, translateStr("Thirty-two"));
393-
m_trNumber.insert(34, translateStr("Thirty-four"));
394-
m_trNumber.insert(36, translateStr("Thirty-six"));
395-
m_trNumber.insert(38, translateStr("Thirty-eight"));
396-
397-
m_trNumber.insert(40, translateStr("Forty"));
398-
m_trNumber.insert(42, translateStr("Forty-two"));
399-
m_trNumber.insert(44, translateStr("Forty-four"));
400-
m_trNumber.insert(46, translateStr("Forty-six"));
401-
m_trNumber.insert(48, translateStr("Forty-eight"));
402-
403-
m_trNumber.insert(50, translateStr("Fifty"));
404-
m_trNumber.insert(52, translateStr("Fifty-two"));
405-
m_trNumber.insert(54, translateStr("Fifty-four"));
406-
m_trNumber.insert(56, translateStr("Fifty-six"));
407-
m_trNumber.insert(58, translateStr("Fifty-eight"));
408-
409-
m_trNumber.insert(60, translateStr("Sixty"));
410-
m_trNumber.insert(62, translateStr("Sixty-two"));
411-
m_trNumber.insert(64, translateStr("Sixty-four"));
412-
m_trNumber.insert(66, translateStr("Sixty-six"));
413-
m_trNumber.insert(68, translateStr("Sixty-eight"));
414-
415-
m_trNumber.insert(70, translateStr("Seventy"));
416-
m_trNumber.insert(72, translateStr("Seventy-two"));
417-
m_trNumber.insert(74, translateStr("Seventy-four"));
418-
m_trNumber.insert(76, translateStr("Seventy-six"));
419-
m_trNumber.insert(78, translateStr("Seventy-eight"));
420-
421-
m_trNumber.insert(80, translateStr("Eighty"));
422-
m_trNumber.insert(82, translateStr("Eighty-two"));
423-
m_trNumber.insert(84, translateStr("Eighty-four"));
424-
m_trNumber.insert(86, translateStr("Eighty-six"));
425-
m_trNumber.insert(88, translateStr("Eighty-eight"));
426-
427-
m_trNumber.insert(90, translateStr("Ninety"));
428-
m_trNumber.insert(92, translateStr("Ninety-two"));
429-
m_trNumber.insert(94, translateStr("Ninety-four"));
430-
m_trNumber.insert(96, translateStr("Ninety-six"));
431-
m_trNumber.insert(98, translateStr("Ninety-eight"));
432-
433-
m_trNumber.insert(100, translateStr("One hundred"));
434-
m_trNumber.insert(102, translateStr("One hundred and Two"));
435-
m_trNumber.insert(104, translateStr("One hundred and four"));
436-
m_trNumber.insert(106, translateStr("One hundred and Six"));
437-
m_trNumber.insert(108, translateStr("One hundred and Eight"));
438-
439-
m_trNumber.insert(110, translateStr("One hundred and Ten"));
440-
m_trNumber.insert(112, translateStr("One hundred and Twelve"));
441-
m_trNumber.insert(114, translateStr("One hundred and Fourteen"));
442-
m_trNumber.insert(116, translateStr("One hundred and Sixteen"));
443-
m_trNumber.insert(118, translateStr("One hundred and Eighteen"));
444-
445-
m_trNumber.insert(120, translateStr("One hundred and Twenty"));
446-
m_trNumber.insert(122, translateStr("One hundred and Twenty-two"));
447-
m_trNumber.insert(124, translateStr("One hundred and Twenty-four"));
448-
m_trNumber.insert(126, translateStr("One hundred and Twenty-six"));
449-
m_trNumber.insert(128, translateStr("One hundred and Twenty-eight"));
450-
m_trNumber.insert(192, translateStr("One hundred and Ninety-two"));
451-
m_trNumber.insert(256, translateStr("Two hundred and fifty-six"));
452-
}
453-
454-

deepin-devicemanager/src/DeviceManager/DeviceCpu.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,6 @@ class DeviceCpu : public DeviceBaseInfo
120120
*/
121121
void loadTableData() override;
122122

123-
void getTrNumber();
124-
125123
private:
126124

127125
/**
@@ -170,7 +168,8 @@ class DeviceCpu : public DeviceBaseInfo
170168
bool m_FrequencyIsRange; //<! 频率显示的是范围还是最大值
171169
bool m_FrequencyIsCur; //<! 频率显示是当前还是最大值
172170

173-
QMap<int, QString> m_trNumber;
171+
public:
172+
static const QMap<int, const char*> m_trNumber;
174173
};
175174

176175
#endif // DEVICECPU_H

0 commit comments

Comments
 (0)