From 3b234872cf34ed53e9eff28c0d8da1b05761d7fd Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Tue, 26 Aug 2025 17:52:31 +0600 Subject: [PATCH] Translations and cleanups --- src/include/86box/plat.h | 3 ++- src/qt/languages/86box.pot | 12 ++++++++++++ src/qt/languages/cs-CZ.po | 12 ++++++++++++ src/qt/languages/de-DE.po | 12 ++++++++++++ src/qt/languages/es-ES.po | 12 ++++++++++++ src/qt/languages/fi-FI.po | 3 +++ src/qt/languages/fr-FR.po | 3 +++ src/qt/languages/hr-HR.po | 12 ++++++++++++ src/qt/languages/it-IT.po | 12 ++++++++++++ src/qt/languages/ja-JP.po | 12 ++++++++++++ src/qt/languages/ko-KR.po | 12 ++++++++++++ src/qt/languages/nb-NO.po | 12 ++++++++++++ src/qt/languages/nl-NL.po | 12 ++++++++++++ src/qt/languages/pl-PL.po | 12 ++++++++++++ src/qt/languages/pt-BR.po | 12 ++++++++++++ src/qt/languages/pt-PT.po | 12 ++++++++++++ src/qt/languages/ru-RU.po | 12 ++++++++++++ src/qt/languages/sk-SK.po | 12 ++++++++++++ src/qt/languages/sl-SI.po | 12 ++++++++++++ src/qt/languages/sv-SE.po | 12 ++++++++++++ src/qt/languages/tr-TR.po | 12 ++++++++++++ src/qt/languages/uk-UA.po | 12 ++++++++++++ src/qt/languages/vi-VN.po | 12 ++++++++++++ src/qt/languages/zh-CN.po | 12 ++++++++++++ src/qt/languages/zh-TW.po | 12 ++++++++++++ src/qt/qt_platform.cpp | 1 + src/qt/qt_settingsdisplay.cpp | 2 +- src/qt/qt_settingsdisplay.ui | 2 +- src/video/vid_ddc.c | 36 ++++++++++++++++++++++++++++++++++- 29 files changed, 310 insertions(+), 4 deletions(-) diff --git a/src/include/86box/plat.h b/src/include/86box/plat.h index 7b8a34857..552b074f7 100644 --- a/src/include/86box/plat.h +++ b/src/include/86box/plat.h @@ -52,7 +52,8 @@ enum { STRING_GHOSTPCL_ERROR_TITLE, /* "Unable to initialize GhostPCL" */ STRING_GHOSTPCL_ERROR_DESC, /* "gpcl6dll32.dll/gpcl6dll64.dll/libgpcl6 is required..." */ STRING_ESCP_ERROR_TITLE, /* "Unable to find Dot-Matrix fonts" */ - STRING_ESCP_ERROR_DESC /* "TrueType fonts in the \"roms/printer/fonts\" directory..." */ + STRING_ESCP_ERROR_DESC, /* "TrueType fonts in the \"roms/printer/fonts\" directory..." */ + STRING_EDID_TOO_LARGE, /* "EDID file \"%ls\" is too large (%lld bytes)." */ }; /* The Win32 API uses _wcsicmp. */ diff --git a/src/qt/languages/86box.pot b/src/qt/languages/86box.pot index bcce43afd..e46f15107 100644 --- a/src/qt/languages/86box.pot +++ b/src/qt/languages/86box.pot @@ -2954,3 +2954,15 @@ msgstr "" msgid "CGA composite settings" msgstr "" + +msgid "Monitor EDID" +msgstr "" + +msgid "Export..." +msgstr "" + +msgid "Export EDID" +msgid "" + +msgid "EDID file \"%ls\" is too large." +msgstr "" \ No newline at end of file diff --git a/src/qt/languages/cs-CZ.po b/src/qt/languages/cs-CZ.po index a0a072866..662c11e96 100644 --- a/src/qt/languages/cs-CZ.po +++ b/src/qt/languages/cs-CZ.po @@ -2954,3 +2954,15 @@ msgstr "Nastavení kompozitního výstupu &CGA..." msgid "CGA composite settings" msgstr "Nastavení kompozitního výstupu CGA" + +msgid "Monitor EDID" +msgstr "EDID monitoru" + +msgid "Export..." +msgstr "Exportovat..." + +msgid "Export EDID" +msgstr "Exportovat EDID" + +msgid "EDID file \"%ls\" is too large." +msgstr "Soubor EDID \"%ls\" je příliš velký." diff --git a/src/qt/languages/de-DE.po b/src/qt/languages/de-DE.po index 28caf0d71..b790c0c46 100644 --- a/src/qt/languages/de-DE.po +++ b/src/qt/languages/de-DE.po @@ -2954,3 +2954,15 @@ msgstr "Optionen des &CGA-Composite-Modus..." msgid "CGA composite settings" msgstr "Optionen des CGA-Composite-Modus" + +msgid "Monitor EDID" +msgstr "EDID des Monitors" + +msgid "Export..." +msgstr "Exportieren..." + +msgid "Export EDID" +msgstr "EDID exportieren" + +msgid "EDID file \"%ls\" is too large." +msgstr "Die EDID-Datei \"%ls\" ist zu groß." diff --git a/src/qt/languages/es-ES.po b/src/qt/languages/es-ES.po index 021cc36ab..712128dd3 100644 --- a/src/qt/languages/es-ES.po +++ b/src/qt/languages/es-ES.po @@ -2954,3 +2954,15 @@ msgstr "Configuración del modo compuesto &CGA..." msgid "CGA composite settings" msgstr "Configuración del modo compuesto CGA" + +msgid "Monitor EDID" +msgstr "EDID du moniteur" + +msgid "Export..." +msgstr "Exporter..." + +msgid "Export EDID" +msgstr "EDID exportieren" + +msgid "EDID file \"%ls\" is too large." +msgstr "El archivo EDID \"%ls\" es demasiado grande." diff --git a/src/qt/languages/fi-FI.po b/src/qt/languages/fi-FI.po index 9aa64a0da..bf9e7c6c4 100644 --- a/src/qt/languages/fi-FI.po +++ b/src/qt/languages/fi-FI.po @@ -2957,3 +2957,6 @@ msgstr "&CGA:n komposiittiasetukset..." msgid "CGA composite settings" msgstr "CGA:n komposiittiasetukset" + +msgid "EDID file \"%ls\" is too large." +msgstr "EDID-tiedosto \"%ls\" on liian suuri." diff --git a/src/qt/languages/fr-FR.po b/src/qt/languages/fr-FR.po index 08e927f04..d35bbaf77 100644 --- a/src/qt/languages/fr-FR.po +++ b/src/qt/languages/fr-FR.po @@ -2954,3 +2954,6 @@ msgstr "Réglages du mode composite &CGA..." msgid "CGA composite settings" msgstr "Réglages du mode composite CGA" + +msgid "EDID file \"%ls\" is too large." +msgstr "Le fichier EDID \"%ls\" est trop volumineux." diff --git a/src/qt/languages/hr-HR.po b/src/qt/languages/hr-HR.po index bdb980839..0a76f5a82 100644 --- a/src/qt/languages/hr-HR.po +++ b/src/qt/languages/hr-HR.po @@ -2954,3 +2954,15 @@ msgstr "Opcije kompozitnog načina &CGA..." msgid "CGA composite settings" msgstr "Opcije kompozitnog načina CGA" + +msgid "Monitor EDID" +msgstr "EDID monitora" + +msgid "Export..." +msgstr "Izvoz..." + +msgid "Export EDID" +msgstr "Izvoz EDID-a" + +msgid "EDID file \"%ls\" is too large." +msgstr "EDID datoteka \"%ls\" je prevelika." diff --git a/src/qt/languages/it-IT.po b/src/qt/languages/it-IT.po index 43fe84461..16c7d6eca 100644 --- a/src/qt/languages/it-IT.po +++ b/src/qt/languages/it-IT.po @@ -2954,3 +2954,15 @@ msgstr "Impostazioni video composito &CGA..." msgid "CGA composite settings" msgstr "Impostazioni video composito CGA" + +msgid "Monitor EDID" +msgstr "EDID del monitor" + +msgid "Export..." +msgstr "Esporta..." + +msgid "Export EDID" +msgstr "Esporta EDID" + +msgid "EDID file \"%ls\" is too large." +msgstr "Il file EDID “%ls” è troppo grande." diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po index 149170ae0..505bd4ea8 100644 --- a/src/qt/languages/ja-JP.po +++ b/src/qt/languages/ja-JP.po @@ -2954,3 +2954,15 @@ msgstr "CGA複合モードの設定...(&C)" msgid "CGA composite settings" msgstr "CGA複合モードの設定" + +msgid "Monitor EDID" +msgstr "モニターのEDID" + +msgid "Export..." +msgstr "エクスポート..." + +msgid "Export EDID" +msgstr "EDIDのエクスポート" + +msgid "EDID file \"%ls\" is too large." +msgstr "EDIDファイル「%ls」が大きすぎます。" diff --git a/src/qt/languages/ko-KR.po b/src/qt/languages/ko-KR.po index 066b8a3f8..f55243c48 100644 --- a/src/qt/languages/ko-KR.po +++ b/src/qt/languages/ko-KR.po @@ -2954,3 +2954,15 @@ msgstr "CGA 복합 모드의 설정...(&C)" msgid "CGA composite settings" msgstr "CGA 복합 모드의 설정" + +msgid "Monitor EDID" +msgstr "모니터의 EDID" + +msgid "Export..." +msgstr "수출..." + +msgid "Export EDID" +msgstr "EDID 내보내기" + +msgid "EDID file \"%ls\" is too large." +msgstr "EDID 파일 \"%ls\"가 너무 큽니다." diff --git a/src/qt/languages/nb-NO.po b/src/qt/languages/nb-NO.po index cde1d942e..9b7eaf8c8 100644 --- a/src/qt/languages/nb-NO.po +++ b/src/qt/languages/nb-NO.po @@ -2954,3 +2954,15 @@ msgstr "&CGA-komposittinnstillinger..." msgid "CGA composite settings" msgstr "CGA-komposittinnstillinger" + +msgid "Monitor EDID" +msgstr "EDID for skjerm" + +msgid "Export..." +msgstr "Eksporter..." + +msgid "Export EDID" +msgstr "Eksporter EDID" + +msgid "EDID file \"%ls\" is too large." +msgstr "EDID-filen «%ls» er for stor." diff --git a/src/qt/languages/nl-NL.po b/src/qt/languages/nl-NL.po index 6408cf21c..a19889b79 100644 --- a/src/qt/languages/nl-NL.po +++ b/src/qt/languages/nl-NL.po @@ -2954,3 +2954,15 @@ msgstr "Instellingen van de &CGA-compositemodus..." msgid "CGA composite settings" msgstr "Instellingen van de CGA-compositemodus" + +msgid "Monitor EDID" +msgstr "EDID-monitor" + +msgid "Export..." +msgstr "Exporteren..." + +msgid "Export EDID" +msgstr "EDID exporteren" + +msgid "EDID file \"%ls\" is too large." +msgstr "Het EDID-bestand “%ls” is te groot." diff --git a/src/qt/languages/pl-PL.po b/src/qt/languages/pl-PL.po index 8d722817a..a6e7fc8a5 100644 --- a/src/qt/languages/pl-PL.po +++ b/src/qt/languages/pl-PL.po @@ -2954,3 +2954,15 @@ msgstr "Ustawienia trybu kompozytowego &CGA..." msgid "CGA composite settings" msgstr "Ustawienia trybu kompozytowego CGA" + +msgid "Monitor EDID" +msgstr "EDID monitora" + +msgid "Export..." +msgstr "Eksportuj..." + +msgid "Export EDID" +msgstr "Eksportuj EDID" + +msgid "EDID file \"%ls\" is too large." +msgstr "Plik EDID \"%ls\" jest zbyt duży." diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index 68e13e876..7057209be 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -2954,3 +2954,15 @@ msgstr "Configurações do modo composto &CGA..." msgid "CGA composite settings" msgstr "Configurações do modo composto CGA" + +msgid "Monitor EDID" +msgstr "EDID do monitor" + +msgid "Export..." +msgstr "Exportar..." + +msgid "Export EDID" +msgstr "Exportar EDID" + +msgid "EDID file \"%ls\" is too large." +msgstr "O arquivo EDID \"%ls\" é muito grande." \ No newline at end of file diff --git a/src/qt/languages/pt-PT.po b/src/qt/languages/pt-PT.po index 456f98e3b..975431fb6 100644 --- a/src/qt/languages/pt-PT.po +++ b/src/qt/languages/pt-PT.po @@ -2954,3 +2954,15 @@ msgstr "Definições do modo compósito &CGA..." msgid "CGA composite settings" msgstr "Definições do modo compósito CGA" + +msgid "Monitor EDID" +msgstr "EDID do monitor" + +msgid "Export..." +msgstr "Exportar..." + +msgid "Export EDID" +msgstr "Exportar EDID" + +msgid "EDID file \"%ls\" is too large." +msgstr "O ficheiro EDID \"%ls\" é demasiado grande." diff --git a/src/qt/languages/ru-RU.po b/src/qt/languages/ru-RU.po index 9b9d3756f..b9eb7d25c 100644 --- a/src/qt/languages/ru-RU.po +++ b/src/qt/languages/ru-RU.po @@ -2954,3 +2954,15 @@ msgstr "Настройки композитного видео &CGA..." msgid "CGA composite settings" msgstr "Настройки композитного видео CGA" + +msgid "Monitor EDID" +msgstr "EDID монитора" + +msgid "Export..." +msgstr "Экспорт..." + +msgid "Export EDID" +msgstr "Экспорт EDID" + +msgid "EDID file \"%ls\" is too large." +msgstr "Файл EDID \"%ls\" слишком велик." diff --git a/src/qt/languages/sk-SK.po b/src/qt/languages/sk-SK.po index a4169fac9..cac5cc081 100644 --- a/src/qt/languages/sk-SK.po +++ b/src/qt/languages/sk-SK.po @@ -2954,3 +2954,15 @@ msgstr "Nastavenia kompozitného režimu &CGA..." msgid "CGA composite settings" msgstr "Nastavenia kompozitného režimu CGA" + +msgid "Monitor EDID" +msgstr "EDID monitora" + +msgid "Export..." +msgstr "Exportovať..." + +msgid "Export EDID" +msgstr "Exportovať EDID" + +msgid "EDID file \"%ls\" is too large." +msgstr "Súbor EDID \"%ls\" je príliš veľký." diff --git a/src/qt/languages/sl-SI.po b/src/qt/languages/sl-SI.po index 47a99b915..0f85bb3ce 100644 --- a/src/qt/languages/sl-SI.po +++ b/src/qt/languages/sl-SI.po @@ -2954,3 +2954,15 @@ msgstr "Nastavitve kompozitnega načina &CGA..." msgid "CGA composite settings" msgstr "Nastavitve kompozitnega načina CGA" + +msgid "Monitor EDID" +msgstr "EDID monitorja" + +msgid "Export..." +msgstr "Izvoz..." + +msgid "Export EDID" +msgstr "Izvoz EDID" + +msgid "EDID file \"%ls\" is too large." +msgstr "Datoteka EDID \"%ls\" je prevelika." diff --git a/src/qt/languages/sv-SE.po b/src/qt/languages/sv-SE.po index a0b4a0752..10655e430 100644 --- a/src/qt/languages/sv-SE.po +++ b/src/qt/languages/sv-SE.po @@ -2954,3 +2954,15 @@ msgstr "Inställningar för &CGA-kompositläget..." msgid "CGA composite settings" msgstr "Inställningar för CGA-kompositläget" + +msgid "Monitor EDID" +msgstr "EDID för bildskärm" + +msgid "Export..." +msgstr "Exportera..." + +msgid "Export EDID" +msgstr "Exportera EDID" + +msgid "EDID file \"%ls\" is too large." +msgstr "EDID-filen \"%ls\" är för stor." diff --git a/src/qt/languages/tr-TR.po b/src/qt/languages/tr-TR.po index 4a9109b13..8a52346db 100644 --- a/src/qt/languages/tr-TR.po +++ b/src/qt/languages/tr-TR.po @@ -2954,3 +2954,15 @@ msgstr "&CGA kompozit modunun ayarları..." msgid "CGA composite settings" msgstr "CGA kompozit modunun ayarları" + +msgid "Monitor EDID" +msgstr "Monitörün EDID'si" + +msgid "Export..." +msgstr "Dışa aktar..." + +msgid "Export EDID" +msgstr "EDID'i dışa aktar" + +msgid "EDID file \"%ls\" is too large." +msgstr "EDID dosyası \"%ls\" çok büyük." diff --git a/src/qt/languages/uk-UA.po b/src/qt/languages/uk-UA.po index dfe8d9d42..70307d446 100644 --- a/src/qt/languages/uk-UA.po +++ b/src/qt/languages/uk-UA.po @@ -2954,3 +2954,15 @@ msgstr "Налаштування композитного відео &CGA..." msgid "CGA composite settings" msgstr "Налаштування композитного відео CGA" + +msgid "Monitor EDID" +msgstr "EDID монітора" + +msgid "Export..." +msgstr "Експорт..." + +msgid "Export EDID" +msgstr "Експорт EDID" + +msgid "EDID file \"%ls\" is too large." +msgstr "Файл EDID \"%ls\" занадто великий." diff --git a/src/qt/languages/vi-VN.po b/src/qt/languages/vi-VN.po index 9a3521afb..97043bbc1 100644 --- a/src/qt/languages/vi-VN.po +++ b/src/qt/languages/vi-VN.po @@ -2954,3 +2954,15 @@ msgstr "Cài đặt chế độ tổng hợp &CGA..." msgid "CGA composite settings" msgstr "Cài đặt chế độ tổng hợp CGA" + +msgid "Monitor EDID" +msgstr "EDID của màn hình" + +msgid "Export..." +msgstr "Xuất khẩu..." + +msgid "Export EDID" +msgstr "Xuất khẩu EDID" + +msgid "EDID file \"%ls\" is too large." +msgstr "Tệp EDID \"%ls\" quá lớn." diff --git a/src/qt/languages/zh-CN.po b/src/qt/languages/zh-CN.po index 6f9ee1c4f..9a4cf7634 100644 --- a/src/qt/languages/zh-CN.po +++ b/src/qt/languages/zh-CN.po @@ -2954,3 +2954,15 @@ msgstr "CGA 复合模式设置...(&C)" msgid "CGA composite settings" msgstr "CGA 复合模式设置" + +msgid "Monitor EDID" +msgstr "显示器的EDID" + +msgid "Export..." +msgstr "导出..." + +msgid "Export EDID" +msgstr "导出EDID" + +msgid "EDID file \"%ls\" is too large." +msgstr "EDID文件\"%ls\"过大。" diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po index ad03bd44d..e8ced05d1 100644 --- a/src/qt/languages/zh-TW.po +++ b/src/qt/languages/zh-TW.po @@ -2954,3 +2954,15 @@ msgstr "CGA 複合模式的設定...(&C)" msgid "CGA composite settings" msgstr "CGA 複合模式的設定" + +msgid "Monitor EDID" +msgstr "監視器的 EDID" + +msgid "Export..." +msgstr "出口..." + +msgid "Export EDID" +msgstr "匯出 EDID" + +msgid "EDID file \"%ls\" is too large." +msgstr "EDID 檔案「%ls」太大。" diff --git a/src/qt/qt_platform.cpp b/src/qt/qt_platform.cpp index 653926071..a817c1346 100644 --- a/src/qt/qt_platform.cpp +++ b/src/qt/qt_platform.cpp @@ -649,6 +649,7 @@ ProgSettings::reloadStrings() translatedstrings[STRING_NET_ERROR_DESC] = QCoreApplication::translate("", "The network configuration will be switched to the null driver").toStdWString(); translatedstrings[STRING_ESCP_ERROR_TITLE] = QCoreApplication::translate("", "Unable to find Dot-Matrix fonts").toStdWString(); translatedstrings[STRING_ESCP_ERROR_DESC] = QCoreApplication::translate("", "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P Dot-Matrix Printer.").toStdWString(); + translatedstrings[STRING_EDID_TOO_LARGE] = QCoreApplication::translate("", "EDID file \"%ls\" is too large.").toStdWString(); } wchar_t * diff --git a/src/qt/qt_settingsdisplay.cpp b/src/qt/qt_settingsdisplay.cpp index 86d5f550c..dd8c953a9 100644 --- a/src/qt/qt_settingsdisplay.cpp +++ b/src/qt/qt_settingsdisplay.cpp @@ -77,7 +77,7 @@ SettingsDisplay::save() da2_standalone_enabled = ui->checkBoxDa2->isChecked() ? 1 : 0; monitor_edid = ui->radioButtonCustom->isChecked() ? 1 : 0; - strncpy(monitor_edid_path, ui->lineEdit->fileName().toUtf8(), sizeof(monitor_edid_path) - 1); + strncpy(monitor_edid_path, ui->lineEdit->fileName().toUtf8().data(), sizeof(monitor_edid_path) - 1); } void diff --git a/src/qt/qt_settingsdisplay.ui b/src/qt/qt_settingsdisplay.ui index 5a796d35b..6e4c14152 100644 --- a/src/qt/qt_settingsdisplay.ui +++ b/src/qt/qt_settingsdisplay.ui @@ -118,7 +118,7 @@ - Custom + Custom... diff --git a/src/video/vid_ddc.c b/src/video/vid_ddc.c index 2d1b78c0d..3d1973edc 100644 --- a/src/video/vid_ddc.c +++ b/src/video/vid_ddc.c @@ -234,7 +234,7 @@ void * ddc_init(void *i2c) { ssize_t edid_size = 0; - void* edid_bytes = NULL; + uint8_t* edid_bytes = NULL; if (monitor_edid == 1 && monitor_edid_path[0]) { FILE* file = plat_fopen(monitor_edid_path, "rb"); @@ -254,6 +254,16 @@ ddc_init(void *i2c) goto default_init; } + if (edid_size > 256) { + wchar_t errmsg[2048] = { 0 }; + wchar_t path[2048] = { 0 }; + + mbstoc16s(path, monitor_edid_path, sizeof_w(path)); + swprintf(errmsg, sizeof_w(errmsg), plat_get_string(STRING_EDID_TOO_LARGE), path); + fclose(file); + goto default_init; + } + edid_bytes = calloc(1, edid_size); if (!edid_bytes) { fclose(file); @@ -266,6 +276,30 @@ ddc_init(void *i2c) goto default_init; } + if (edid_size < 128) { + edid_bytes = realloc(edid_bytes, 128); + edid_size = 128; + } else if (edid_size < 256) { + edid_bytes = realloc(edid_bytes, 256); + edid_size = 256; + } + + { + int checksum = 0; + for (uint8_t c = 0; c < 127; c++) + checksum += edid_bytes[c]; + edid_bytes[127] = 256 - checksum; + + if (edid_size == 256) { + checksum = 0; + + for (uint8_t c = 128; c < 255; c++) { + checksum += edid_bytes[c]; + } + edid_bytes[255] = 256 - checksum; + } + } + fclose(file); return i2c_eeprom_init(i2c, 0x50, edid_bytes, edid_size, 0); }