From ae7d4454cbbd115ad8977cd3ac6e1db908c5d567 Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 20 Mar 2024 16:48:09 +0500 Subject: [PATCH] Move Windows font overrides away from translations Determine which font to use with a dedicated function instead --- src/qt/languages/ca-ES.po | 6 ------ src/qt/languages/cs-CZ.po | 6 ------ src/qt/languages/de-DE.po | 6 ------ src/qt/languages/en-GB.po | 6 ------ src/qt/languages/en-US.po | 6 ------ src/qt/languages/es-ES.po | 6 ------ src/qt/languages/fi-FI.po | 6 ------ src/qt/languages/fr-FR.po | 6 ------ src/qt/languages/hr-HR.po | 6 ------ src/qt/languages/hu-HU.po | 6 ------ src/qt/languages/it-IT.po | 6 ------ src/qt/languages/ja-JP.po | 6 ------ src/qt/languages/ko-KR.po | 6 ------ src/qt/languages/pl-PL.po | 6 ------ src/qt/languages/pt-BR.po | 6 ------ src/qt/languages/pt-PT.po | 6 ------ src/qt/languages/ru-RU.po | 6 ------ src/qt/languages/sk-SK.po | 6 ------ src/qt/languages/sl-SI.po | 6 ------ src/qt/languages/tr-TR.po | 6 ------ src/qt/languages/uk-UA.po | 6 ------ src/qt/languages/zh-CN.po | 6 ------ src/qt/languages/zh-TW.po | 6 ------ src/qt/qt_main.cpp | 4 +--- src/qt/qt_mainwindow.cpp | 4 +--- src/qt/qt_progsettings.cpp | 19 +++++++++++++++++++ src/qt/qt_progsettings.hpp | 3 +++ 27 files changed, 24 insertions(+), 144 deletions(-) diff --git a/src/qt/languages/ca-ES.po b/src/qt/languages/ca-ES.po index 4554bec10..0074e4a01 100644 --- a/src/qt/languages/ca-ES.po +++ b/src/qt/languages/ca-ES.po @@ -625,12 +625,6 @@ msgstr "Dispositiu ISABugger" msgid "POST card" msgstr "Targeta POST" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/cs-CZ.po b/src/qt/languages/cs-CZ.po index aa8ad5664..f02f63e14 100644 --- a/src/qt/languages/cs-CZ.po +++ b/src/qt/languages/cs-CZ.po @@ -625,12 +625,6 @@ msgstr "Zařízení ISABugger" msgid "POST card" msgstr "Karta pro kódy POST" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/de-DE.po b/src/qt/languages/de-DE.po index 8a9360b96..62308e9d8 100644 --- a/src/qt/languages/de-DE.po +++ b/src/qt/languages/de-DE.po @@ -625,12 +625,6 @@ msgstr "ISABugger-Gerät" msgid "POST card" msgstr "POST-Code-Karte" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/en-GB.po b/src/qt/languages/en-GB.po index e3d007cc4..8fb00f833 100644 --- a/src/qt/languages/en-GB.po +++ b/src/qt/languages/en-GB.po @@ -625,12 +625,6 @@ msgstr "ISABugger device" msgid "POST card" msgstr "POST card" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/en-US.po b/src/qt/languages/en-US.po index 8b2c20ffe..147521bb3 100644 --- a/src/qt/languages/en-US.po +++ b/src/qt/languages/en-US.po @@ -625,12 +625,6 @@ msgstr "ISABugger device" msgid "POST card" msgstr "POST card" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/es-ES.po b/src/qt/languages/es-ES.po index b88c38b07..066a31310 100644 --- a/src/qt/languages/es-ES.po +++ b/src/qt/languages/es-ES.po @@ -625,12 +625,6 @@ msgstr "Dispositivo ISABugger" msgid "POST card" msgstr "Tarjeta POST" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/fi-FI.po b/src/qt/languages/fi-FI.po index 04a745816..a81857596 100644 --- a/src/qt/languages/fi-FI.po +++ b/src/qt/languages/fi-FI.po @@ -625,12 +625,6 @@ msgstr "ISABugger-laite" msgid "POST card" msgstr "POST-kortti" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/fr-FR.po b/src/qt/languages/fr-FR.po index 3abe3e53f..4e9b94d33 100644 --- a/src/qt/languages/fr-FR.po +++ b/src/qt/languages/fr-FR.po @@ -625,12 +625,6 @@ msgstr "Dispositif ISABugger" msgid "POST card" msgstr "Carte POST" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/hr-HR.po b/src/qt/languages/hr-HR.po index a830644a0..0255a8280 100644 --- a/src/qt/languages/hr-HR.po +++ b/src/qt/languages/hr-HR.po @@ -625,12 +625,6 @@ msgstr "Uređaj ISABugger" msgid "POST card" msgstr "Kartica POST" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/hu-HU.po b/src/qt/languages/hu-HU.po index a22f6808e..e5225dbbb 100644 --- a/src/qt/languages/hu-HU.po +++ b/src/qt/languages/hu-HU.po @@ -625,12 +625,6 @@ msgstr "ISABugger eszköz" msgid "POST card" msgstr "POST kártya" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/it-IT.po b/src/qt/languages/it-IT.po index 7ff74c116..43ece2315 100644 --- a/src/qt/languages/it-IT.po +++ b/src/qt/languages/it-IT.po @@ -625,12 +625,6 @@ msgstr "Dispositivo ISABugger" msgid "POST card" msgstr "Scheda POST" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po index b5aaa82e7..971bbd29f 100644 --- a/src/qt/languages/ja-JP.po +++ b/src/qt/languages/ja-JP.po @@ -625,12 +625,6 @@ msgstr "ISABuggerデバイス" msgid "POST card" msgstr "POSTカード" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Meiryo UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/ko-KR.po b/src/qt/languages/ko-KR.po index 59855f460..ea6e196fe 100644 --- a/src/qt/languages/ko-KR.po +++ b/src/qt/languages/ko-KR.po @@ -625,12 +625,6 @@ msgstr "ISABugger 장치" msgid "POST card" msgstr "POST 카드" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Malgun Gothic" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/pl-PL.po b/src/qt/languages/pl-PL.po index b3e71ffa0..c6a70d905 100644 --- a/src/qt/languages/pl-PL.po +++ b/src/qt/languages/pl-PL.po @@ -625,12 +625,6 @@ msgstr "Urządzenie ISABugger" msgid "POST card" msgstr "Karta POST" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index b46012101..45d8a8530 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -625,12 +625,6 @@ msgstr "Dispositivo ISABugger" msgid "POST card" msgstr "Placa de diagnóstico" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/pt-PT.po b/src/qt/languages/pt-PT.po index fc892f6dc..156f63926 100644 --- a/src/qt/languages/pt-PT.po +++ b/src/qt/languages/pt-PT.po @@ -625,12 +625,6 @@ msgstr "Dispositivo ISABugger" msgid "POST card" msgstr "Placa POST" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/ru-RU.po b/src/qt/languages/ru-RU.po index 7ed5d0b5f..41cad4eda 100644 --- a/src/qt/languages/ru-RU.po +++ b/src/qt/languages/ru-RU.po @@ -712,12 +712,6 @@ msgstr "Карта POST" msgid "86Box Unit Tester" msgstr "Модульный Тестер 86Box" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/sk-SK.po b/src/qt/languages/sk-SK.po index 8842a5215..a6d13b95b 100644 --- a/src/qt/languages/sk-SK.po +++ b/src/qt/languages/sk-SK.po @@ -625,12 +625,6 @@ msgstr "Zariadenie ISABugger" msgid "POST card" msgstr "Karta pre kódy POST" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/sl-SI.po b/src/qt/languages/sl-SI.po index ae173ad30..93941ffe8 100644 --- a/src/qt/languages/sl-SI.po +++ b/src/qt/languages/sl-SI.po @@ -625,12 +625,6 @@ msgstr "Naprava ISABugger" msgid "POST card" msgstr "Kartica POST" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/tr-TR.po b/src/qt/languages/tr-TR.po index 5c413fb58..c65f6077c 100644 --- a/src/qt/languages/tr-TR.po +++ b/src/qt/languages/tr-TR.po @@ -625,12 +625,6 @@ msgstr "ISABugger cihazı" msgid "POST card" msgstr "POST kartı" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/uk-UA.po b/src/qt/languages/uk-UA.po index da48b74c7..f7a819a92 100644 --- a/src/qt/languages/uk-UA.po +++ b/src/qt/languages/uk-UA.po @@ -625,12 +625,6 @@ msgstr "Пристрій ISABugger" msgid "POST card" msgstr "Карта POST" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Segoe UI" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/zh-CN.po b/src/qt/languages/zh-CN.po index 8a09cf87d..5c3fbb54f 100644 --- a/src/qt/languages/zh-CN.po +++ b/src/qt/languages/zh-CN.po @@ -625,12 +625,6 @@ msgstr "ISABugger 设备" msgid "POST card" msgstr "自检 (POST) 卡" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Microsoft YaHei" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po index f05e16cd6..927eb2d85 100644 --- a/src/qt/languages/zh-TW.po +++ b/src/qt/languages/zh-TW.po @@ -625,12 +625,6 @@ msgstr "ISABugger 裝置" msgid "POST card" msgstr "自檢 (POST) 卡" -msgid "FONT_SIZE" -msgstr "9" - -msgid "FONT_NAME" -msgstr "Microsoft JhengHei" - msgid "86Box" msgstr "86Box" diff --git a/src/qt/qt_main.cpp b/src/qt/qt_main.cpp index 493563c66..a621d1441 100644 --- a/src/qt/qt_main.cpp +++ b/src/qt/qt_main.cpp @@ -191,9 +191,7 @@ main(int argc, char *argv[]) fprintf(stderr, "Qt: version %s, platform \"%s\"\n", qVersion(), QApplication::platformName().toUtf8().data()); ProgSettings::loadTranslators(&app); #ifdef Q_OS_WINDOWS - auto font_name = QObject::tr("FONT_NAME"); - auto font_size = QObject::tr("FONT_SIZE"); - QApplication::setFont(QFont(font_name, font_size.toInt())); + QApplication::setFont(QFont(ProgSettings::getFontName(lang_id), 9)); SetCurrentProcessExplicitAppUserModelID(L"86Box.86Box"); #endif diff --git a/src/qt/qt_mainwindow.cpp b/src/qt/qt_mainwindow.cpp index f0d2cf431..f4c01b4a2 100644 --- a/src/qt/qt_mainwindow.cpp +++ b/src/qt/qt_mainwindow.cpp @@ -1919,9 +1919,7 @@ MainWindow::changeEvent(QEvent *event) { #ifdef Q_OS_WINDOWS if (event->type() == QEvent::LanguageChange) { - auto font_name = tr("FONT_NAME"); - auto font_size = tr("FONT_SIZE"); - QApplication::setFont(QFont(font_name, font_size.toInt())); + QApplication::setFont(QFont(ProgSettings::getFontName(lang_id), 9)); } #endif QWidget::changeEvent(event); diff --git a/src/qt/qt_progsettings.cpp b/src/qt/qt_progsettings.cpp index cf15e6c04..2d047a787 100644 --- a/src/qt/qt_progsettings.cpp +++ b/src/qt/qt_progsettings.cpp @@ -153,6 +153,25 @@ ProgSettings::on_pushButton_released() ui->comboBox->setCurrentIndex(0); } +#ifdef Q_OS_WINDOWS +/* Return the standard font name on Windows, which is overridden per-language + to prevent CJK fonts with embedded bitmaps being chosen as a fallback. */ +QString +ProgSettings::getFontName(uint32_t lcid) +{ + if (lcid == 0x0804) /* zh-CN */ + return "Microsoft YaHei"; + else if (lcid == 0x0404) /* zh-TW */ + return "Microsoft JhengHei"; + else if (lcid == 0x0411) /* ja-JP */ + return "Meiryo UI"; + else if (lcid == 0x0412) /* ko-KR */ + return "Malgun Gothic"; + else + return "Segoe UI"; +} +#endif + void ProgSettings::loadTranslators(QObject *parent) { diff --git a/src/qt/qt_progsettings.hpp b/src/qt/qt_progsettings.hpp index 7565869b0..d41f267df 100644 --- a/src/qt/qt_progsettings.hpp +++ b/src/qt/qt_progsettings.hpp @@ -16,6 +16,9 @@ public: ~ProgSettings(); static QString getIconSetPath(); static QIcon loadIcon(QString file); +#ifdef Q_OS_WINDOWS + static QString getFontName(uint32_t lcid); +#endif static void loadTranslators(QObject *parent = nullptr); static void reloadStrings(); class CustomTranslator : public QTranslator {