From 2c57a0236ac36962f6ae125ac7c571a0262acd37 Mon Sep 17 00:00:00 2001 From: usergithub64 <58270614+usergithub64@users.noreply.github.com> Date: Sat, 22 Nov 2025 11:05:39 +0200 Subject: [PATCH 01/39] Update ru-RU.po Update ru-RU.po --- src/qt/languages/ru-RU.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qt/languages/ru-RU.po b/src/qt/languages/ru-RU.po index 156c04efa..f2ac0f510 100644 --- a/src/qt/languages/ru-RU.po +++ b/src/qt/languages/ru-RU.po @@ -2893,7 +2893,7 @@ msgid "Toggle fullscreen" msgstr "Переключить полноэкранный режим" msgid "Toggle UI in fullscreen" -msgstr "" +msgstr "Переключить UI в полноэкранном режиме" msgid "Screenshot" msgstr "Скриншот" From ad18e7bd8658f866b5f5f059bf6d02603564c56c Mon Sep 17 00:00:00 2001 From: win2kgamer <47463859+win2kgamer@users.noreply.github.com> Date: Sun, 23 Nov 2025 12:01:23 -0600 Subject: [PATCH 02/39] Add OPTi 930 WSS codec type --- src/include/86box/snd_ad1848.h | 12 +++++++----- src/sound/snd_ad1848.c | 14 ++++++++++---- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/include/86box/snd_ad1848.h b/src/include/86box/snd_ad1848.h index 99525807c..1ff5bc1d7 100644 --- a/src/include/86box/snd_ad1848.h +++ b/src/include/86box/snd_ad1848.h @@ -22,11 +22,12 @@ enum { AD1848_TYPE_DEFAULT = 0, AD1848_TYPE_CS4248 = 1, - AD1848_TYPE_CS4231 = 2, - AD1848_TYPE_CS4232 = 3, - AD1848_TYPE_CS4236 = 4, - AD1848_TYPE_CS4236B = 5, - AD1848_TYPE_CS4235 = 6 + AD1848_TYPE_OPTI930 = 2, + AD1848_TYPE_CS4231 = 3, + AD1848_TYPE_CS4232 = 4, + AD1848_TYPE_CS4236 = 5, + AD1848_TYPE_CS4236B = 6, + AD1848_TYPE_CS4235 = 7 }; enum { @@ -44,6 +45,7 @@ typedef struct ad1848_t { uint8_t regs[32]; uint8_t xregs[32]; uint8_t status; /* 16 original registers + 16 CS4231A extensions + 32 CS4236 extensions */ + uint8_t opti930_mode2; int count; uint8_t trd; diff --git a/src/sound/snd_ad1848.c b/src/sound/snd_ad1848.c index 8f120b157..44e328842 100644 --- a/src/sound/snd_ad1848.c +++ b/src/sound/snd_ad1848.c @@ -300,7 +300,7 @@ ad1848_write(uint16_t addr, uint8_t val, void *priv) switch (addr & 3) { case 0: /* Index */ - if ((ad1848->regs[12] & 0x40) && (ad1848->type >= AD1848_TYPE_CS4231)) + if (((ad1848->regs[12] & 0x40) && (ad1848->type >= AD1848_TYPE_CS4231)) || ((ad1848->type == AD1848_TYPE_OPTI930) && (ad1848->opti930_mode2))) ad1848->index = val & 0x1f; /* cs4231a extended mode enabled */ else ad1848->index = val & 0x0f; /* ad1848/cs4248 mode TODO: some variants/clones DO NOT mirror, just ignore the writes? */ @@ -816,7 +816,7 @@ ad1848_set_cd_audio_channel(void *priv, int channel) { ad1848_t *ad1848 = (ad1848_t *) priv; - const int max_channel = (ad1848->type >= AD1848_TYPE_CS4231) ? 31 : 15; + const int max_channel = (ad1848->type >= AD1848_TYPE_CS4231) ? 31 : (ad1848->type == AD1848_TYPE_OPTI930) ? 19 : 15; if (channel > max_channel) channel = max_channel; @@ -839,7 +839,7 @@ ad1848_filter_channel(void *priv, int channel, double *out_l, double *out_r) { const ad1848_t *ad1848 = (ad1848_t *) priv; - const int max_channel = (ad1848->type >= AD1848_TYPE_CS4231) ? 31 : 15; + const int max_channel = (ad1848->type >= AD1848_TYPE_CS4231) ? 31 : (ad1848->type == AD1848_TYPE_OPTI930) ? 19 : 15; if (channel > max_channel) channel = max_channel; @@ -880,7 +880,13 @@ ad1848_init(ad1848_t *ad1848, uint8_t type) ad1848->regs[13] = 0; ad1848->regs[14] = ad1848->regs[15] = 0; - if (type == AD1848_TYPE_CS4231) { + if (type == AD1848_TYPE_OPTI930) { + ad1848->regs[18] = ad1848->regs[19] = 0x88; /* LINE volume */ + ad1848->regs[20] = ad1848->regs[21] = 0x84; /* OPTi 930 MIC volume */ + ad1848->regs[22] = ad1848->regs[23] = 0x84; /* OPTi 930 master volume */ + ad1848->regs[24] = 0; + ad1848->regs[25] = 0; + } else if (type == AD1848_TYPE_CS4231) { ad1848->regs[16] = ad1848->regs[17] = 0; ad1848->regs[18] = ad1848->regs[19] = 0x88; ad1848->regs[22] = 0x80; From c81b44fc36edd4bd664cc5e573c0f4545ca8461d Mon Sep 17 00:00:00 2001 From: win2kgamer <47463859+win2kgamer@users.noreply.github.com> Date: Sun, 23 Nov 2025 12:11:20 -0600 Subject: [PATCH 03/39] Add basic logging to the OPTi sound code --- src/sound/snd_optimc.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/sound/snd_optimc.c b/src/sound/snd_optimc.c index c6f25aadf..7a1742f5d 100644 --- a/src/sound/snd_optimc.c +++ b/src/sound/snd_optimc.c @@ -10,9 +10,11 @@ * * Authors: Cacodemon345 * Eluan Costa Miranda + * win2kgamer * * Copyright 2022 Cacodemon345. * Copyright 2020 Eluan Costa Miranda. + * Copyright 2025 win2kgamer */ #include #include @@ -36,6 +38,24 @@ #include <86box/mem.h> #include <86box/rom.h> #include <86box/plat_unused.h> +#include <86box/log.h> + +#ifdef ENABLE_OPTIMC_LOG +int optimc_do_log = ENABLE_OPTIMC_LOG; + +static void +optimc_log(void *priv, const char *fmt, ...) +{ + if (optimc_do_log) { + va_list ap; + va_start(ap, fmt); + log_out(priv, fmt, ap); + va_end(ap); + } +} +#else +# define optimc_log(fmt, ...) +#endif static int optimc_wss_dma[4] = { 0, 0, 1, 3 }; static int optimc_wss_irq[8] = { 5, 7, 9, 10, 11, 12, 14, 15 }; @@ -72,6 +92,8 @@ typedef struct optimc_t { sb_t *sb; uint8_t regs[6]; + + void * log; /* New logging system */ } optimc_t, opti_82c929a_t; static void @@ -94,6 +116,7 @@ optimc_wss_read(UNUSED(uint16_t addr), void *priv) if (!(optimc->regs[4] & 0x10) && optimc->cur_mode == 0) return 0xFF; + optimc_log(optimc->log, "OPTi WSS Read: val = %02X\n", ((optimc->wss_config & 0x40) | 4)); return 4 | (optimc->wss_config & 0x40); } @@ -102,6 +125,7 @@ optimc_wss_write(UNUSED(uint16_t addr), uint8_t val, void *priv) { optimc_t *optimc = (optimc_t *) priv; + optimc_log(optimc->log, "OPTi WSS Write: val = %02X\n", val); if (!(optimc->regs[4] & 0x10) && optimc->cur_mode == 0) return; optimc->wss_config = val; @@ -285,6 +309,7 @@ optimc_reg_write(uint16_t addr, uint8_t val, void *priv) break; } } + optimc_log(optimc->log, "OPTi929 Write: idx = %02X, val = %02X\n", idx, val); if (optimc->reg_enabled) optimc->reg_enabled = 0; if ((addr == 0xF8F) && ((val == optimc->type) || (val == 0x00))) { @@ -342,6 +367,7 @@ optimc_reg_read(uint16_t addr, void *priv) } optimc->reg_enabled = 0; } + optimc_log(optimc->log, "OPTi929 Read: addr = %02X, val = %02X\n", addr, temp); return temp; } @@ -369,6 +395,8 @@ optimc_init(const device_t *info) optimc->regs[4] = 0x3F; optimc->regs[5] = 0x83; + optimc->log = log_open("OPTIMC"); + optimc->gameport = gameport_add(&gameport_pnp_device); gameport_remap(optimc->gameport, (optimc->regs[0] & 0x1) ? 0x00 : 0x200); @@ -431,6 +459,11 @@ optimc_close(void *priv) { optimc_t *optimc = (optimc_t *) priv; + if (optimc->log != NULL) { + log_close(optimc->log); + optimc->log = NULL; + } + sb_close(optimc->sb); free(optimc->mpu); free(priv); From 0ca1a201d79891b70d0db3f6ad0f6dd3fbf43b77 Mon Sep 17 00:00:00 2001 From: win2kgamer <47463859+win2kgamer@users.noreply.github.com> Date: Sun, 23 Nov 2025 12:34:00 -0600 Subject: [PATCH 04/39] Add the OPTi 82c930 sound controller --- src/include/86box/sound.h | 3 + src/sound/snd_optimc.c | 457 ++++++++++++++++++++++++++++++++++++-- src/sound/sound.c | 1 + 3 files changed, 443 insertions(+), 18 deletions(-) diff --git a/src/include/86box/sound.h b/src/include/86box/sound.h index ff096e0be..6d4767ed0 100644 --- a/src/include/86box/sound.h +++ b/src/include/86box/sound.h @@ -222,6 +222,9 @@ extern const device_t entertainer_device; /* Mindscape Music Board */ extern const device_t mmb_device; +/* OPTi 82c930 */ +extern const device_t opti_82c930_device; + /* Pro Audio Spectrum Plus, 16, and 16D */ extern const device_t pasplus_device; extern const device_t pas16_device; diff --git a/src/sound/snd_optimc.c b/src/sound/snd_optimc.c index 7a1742f5d..6734b56cb 100644 --- a/src/sound/snd_optimc.c +++ b/src/sound/snd_optimc.c @@ -6,7 +6,7 @@ * * This file is part of the 86Box distribution. * - * OPTi MediaCHIPS 82C929A (also known as OPTi MAD16 Pro) audio controller emulation. + * OPTi MediaCHIPS 82C929A/82C930 (also known as OPTi MAD16 Pro) audio controller emulation. * * Authors: Cacodemon345 * Eluan Costa Miranda @@ -59,6 +59,13 @@ optimc_log(void *priv, const char *fmt, ...) static int optimc_wss_dma[4] = { 0, 0, 1, 3 }; static int optimc_wss_irq[8] = { 5, 7, 9, 10, 11, 12, 14, 15 }; +static int opti930_wss_irq[8] = { 0, 7, 9, 10, 11, 5, 0, 0 }; +static double opti930_vols_5bits[32]; + +enum optimc_types { + OPTI_929 = 0xE3, + OPTI_930 = 0xE4, +}; enum optimc_local_flags { OPTIMC_CS4231 = 0x100, @@ -71,10 +78,13 @@ typedef struct optimc_t { uint8_t wss_config; uint8_t reg_enabled; + uint8_t passwd_enabled; + uint8_t index; uint16_t cur_addr; uint16_t cur_wss_addr; uint16_t cur_mpu401_addr; + uint16_t cur_opti930_addr; /* OPTi 930 relocatable index/data registers */ int cur_irq; int cur_dma; @@ -91,11 +101,60 @@ typedef struct optimc_t { mpu_t *mpu; sb_t *sb; - uint8_t regs[6]; + uint8_t regs[12]; + uint8_t opti930_mcbase; + uint8_t lastpw; + double master_l; + double master_r; void * log; /* New logging system */ } optimc_t, opti_82c929a_t; +static void +opti930_update_mastervol(void *priv) +{ + optimc_t *optimc = (optimc_t *) priv; + /* Master volume attenuation */ + if (optimc->ad1848.regs[22] & 0x80) + optimc->master_l = 0; + else + optimc->master_l = opti930_vols_5bits[optimc->ad1848.regs[22] & 0x1F] / 65536.0; + + if (optimc->ad1848.regs[23] & 0x80) + optimc->master_r = 0; + else + optimc->master_r = opti930_vols_5bits[optimc->ad1848.regs[23] & 0x1F] / 65536.0; +} + +void +opti930_filter_cd_audio(int channel, double *buffer, void *priv) +{ + optimc_t *optimc = (optimc_t *) priv; + + opti930_update_mastervol(optimc); + + const double cd_vol = channel ? optimc->ad1848.cd_vol_r : optimc->ad1848.cd_vol_l; + double master = channel ? optimc->master_r : optimc->master_l; + double c = ((*buffer * cd_vol / 3.0) * master) / 65536.0; + + *buffer = c; +} + +static void +opti930_filter_opl(void *priv, double *out_l, double *out_r) +{ + optimc_t *optimc = (optimc_t *) priv; + + if (optimc->cur_wss_enabled) { + opti930_update_mastervol(optimc); + *out_l /= optimc->sb->mixer_sbpro.fm_l; + *out_r /= optimc->sb->mixer_sbpro.fm_r; + *out_l *= optimc->master_l; + *out_r *= optimc->master_r; + ad1848_filter_channel((void *) &optimc->ad1848, AD1848_AUX2, out_l, out_r); + } +} + static void optimc_filter_opl(void *priv, double *out_l, double *out_r) { @@ -113,7 +172,7 @@ optimc_wss_read(UNUSED(uint16_t addr), void *priv) { const optimc_t *optimc = (optimc_t *) priv; - if (!(optimc->regs[4] & 0x10) && optimc->cur_mode == 0) + if (optimc->type == OPTI_929 && !(optimc->regs[4] & 0x10) && optimc->cur_mode == 0) return 0xFF; optimc_log(optimc->log, "OPTi WSS Read: val = %02X\n", ((optimc->wss_config & 0x40) | 4)); @@ -126,11 +185,42 @@ optimc_wss_write(UNUSED(uint16_t addr), uint8_t val, void *priv) optimc_t *optimc = (optimc_t *) priv; optimc_log(optimc->log, "OPTi WSS Write: val = %02X\n", val); - if (!(optimc->regs[4] & 0x10) && optimc->cur_mode == 0) + if (optimc->type == OPTI_929 && !(optimc->regs[4] & 0x10) && optimc->cur_mode == 0) return; optimc->wss_config = val; ad1848_setdma(&optimc->ad1848, optimc_wss_dma[val & 3]); - ad1848_setirq(&optimc->ad1848, optimc_wss_irq[(val >> 3) & 7]); + if (optimc->type == OPTI_929) + ad1848_setirq(&optimc->ad1848, optimc_wss_irq[(val >> 3) & 7]); + else + ad1848_setirq(&optimc->ad1848, opti930_wss_irq[(val >> 3) & 7]); +} + +static void +opti930_get_buffer(int32_t *buffer, int len, void *priv) +{ + optimc_t *optimc = (optimc_t *) priv; + + if (optimc->regs[3] & 0x4) + return; + + /* wss part */ + opti930_update_mastervol(optimc); + ad1848_update(&optimc->ad1848); + for (int c = 0; c < len * 2; c++) { + double out_l = 0.0; + double out_r = 0.0; + + out_l = (optimc->ad1848.buffer[c] * optimc->master_l); + out_r = (optimc->ad1848.buffer[c + 1] * optimc->master_r); + + buffer[c] += (int32_t) out_l; + buffer[c + 1] += (int32_t) out_r; + } + + optimc->ad1848.pos = 0; + + /* sbprov2 part */ + sb_get_buffer_sbpro(buffer, len, optimc->sb); } static void @@ -169,6 +259,198 @@ optimc_add_opl(optimc_t *optimc) io_sethandler(0x0388, 0x0004, optimc->sb->opl.read, NULL, NULL, optimc->sb->opl.write, NULL, NULL, optimc->sb->opl.priv); } +static void +opti930_reg_write(uint16_t addr, uint8_t val, void *priv) +{ + optimc_t *optimc = (optimc_t *) priv; + uint16_t idx = optimc->index; + uint8_t old = optimc->regs[idx]; + + if ((addr == optimc->cur_opti930_addr) && (optimc->reg_enabled || !optimc->passwd_enabled)) { + optimc_log(optimc->log, "OPTi930 Index Write: val = %02X\n", val); + optimc->index = (val - 1); + } + if ((addr == optimc->cur_opti930_addr +1) && (optimc->reg_enabled || !optimc->passwd_enabled)) { + switch (idx) { + case 0: /* MC1 */ + optimc->regs[0] = val; + if (val != old) { + /* Update SBPro address */ + io_removehandler(optimc->cur_addr + 4, 0x0002, sb_ct1345_mixer_read, NULL, NULL, sb_ct1345_mixer_write, NULL, NULL, optimc->sb); + optimc_remove_opl(optimc); + optimc->cur_addr = (val & 0x80) ? 0x240 : 0x220; + sb_dsp_setaddr(&optimc->sb->dsp, optimc->cur_addr); + optimc_add_opl(optimc); + io_sethandler(optimc->cur_addr + 4, 0x0002, sb_ct1345_mixer_read, NULL, NULL, sb_ct1345_mixer_write, NULL, NULL, optimc->sb); + /* Update WSS address */ + io_removehandler(optimc->cur_wss_addr, 0x0004, optimc_wss_read, NULL, NULL, optimc_wss_write, NULL, NULL, optimc); + io_removehandler(optimc->cur_wss_addr + 0x0004, 0x0004, ad1848_read, NULL, NULL, ad1848_write, NULL, NULL, &optimc->ad1848); + switch ((val >> 4) & 0x3) { + case 0: /* WSBase = 0x530 */ + optimc->cur_wss_addr = 0x530; + break; + case 1: /* WSBase = 0xE80 */ + optimc->cur_wss_addr = 0xE80; + break; + case 2: /* WSBase = 0xF40 */ + optimc->cur_wss_addr = 0xF40; + break; + case 3: /* WSBase = 0x604 */ + optimc->cur_wss_addr = 0x604; + break; + + default: + break; + } + io_sethandler(optimc->cur_wss_addr, 0x0004, optimc_wss_read, NULL, NULL, optimc_wss_write, NULL, NULL, optimc); + io_sethandler(optimc->cur_wss_addr + 0x0004, 0x0004, ad1848_read, NULL, NULL, ad1848_write, NULL, NULL, &optimc->ad1848); + /* Update gameport */ + gameport_remap(optimc->gameport, (optimc->regs[0] & 0x1) ? 0x00 : 0x200); + } + break; + case 1: /* MC2 */ + optimc->regs[1] = val; + break; + case 2: /* MC3 */ + optimc->regs[2] = val; + if (val != old) { + switch (val & 0x3) { + case 0: + break; + case 1: + optimc->cur_dma = 0; + break; + case 2: + optimc->cur_dma = 1; + break; + case 3: + optimc->cur_dma = 3; + break; + } + switch ((val >> 3) & 0x7) { + case 0: + break; + case 1: + optimc->cur_irq = 7; + break; + case 2: + optimc->cur_irq = 9; + break; + case 3: + optimc->cur_irq = 10; + break; + case 4: + optimc->cur_irq = 11; + break; + case 5: + default: + optimc->cur_irq = 5; + break; + } + sb_dsp_setirq(&optimc->sb->dsp, optimc->cur_irq); + sb_dsp_setdma8(&optimc->sb->dsp, optimc->cur_dma); + /* Writes here also set WSS IRQ/DMA, the DOS setup utility and NEC PowerMate V BIOS imply this */ + /* The OPTi 82c930 driver on the NEC Ready preloads requires this to function properly */ + ad1848_setdma(&optimc->ad1848, optimc_wss_dma[val & 3]); + ad1848_setirq(&optimc->ad1848, opti930_wss_irq[(val >> 3) & 7]); + } + break; + case 3: /* MC4 */ + optimc->regs[3] = val; + break; + case 4: /* MC5 */ + optimc->regs[4] = val; + /* OPTi 930 enables/disables AD1848 MODE2 from here */ + if (val & 0x20) { + optimc->ad1848.opti930_mode2 = 1; + optimc->ad1848.fmt_mask |= 0x80; + } + else { + optimc->ad1848.opti930_mode2 = 0; + optimc->ad1848.fmt_mask &= ~0x80; + } + break; + case 5: /* MC6 */ + optimc->regs[5] = val; + if (old != val) { + switch ((val >> 3) & 0x3) { + case 0: + optimc->cur_mpu401_irq = 9; + break; + case 1: + optimc->cur_mpu401_irq = 10; + break; + case 2: + optimc->cur_mpu401_irq = 5; + break; + case 3: + optimc->cur_mpu401_irq = 7; + break; + + default: + break; + } + switch ((val >> 5) & 0x3) { + case 0: + optimc->cur_mpu401_addr = 0x330; + break; + case 1: + optimc->cur_mpu401_addr = 0x320; + break; + case 2: + optimc->cur_mpu401_addr = 0x310; + break; + case 3: + optimc->cur_mpu401_addr = 0x300; + break; + + default: + break; + } + mpu401_change_addr(optimc->mpu, optimc->cur_mpu401_addr); + mpu401_setirq(optimc->mpu, optimc->cur_mpu401_irq); + optimc->cur_mode = optimc->cur_wss_enabled = !!(val & 0x02); + sound_set_cd_audio_filter(NULL, NULL); + if (optimc->cur_wss_enabled) { /* WSS */ + sound_set_cd_audio_filter(opti930_filter_cd_audio, optimc); + optimc->sb->opl_mixer = optimc; + optimc->sb->opl_mix = opti930_filter_opl; + } + else { /* SBPro */ + sound_set_cd_audio_filter(sbpro_filter_cd_audio, optimc->sb); + optimc->sb->opl_mixer = NULL; + optimc->sb->opl_mix = NULL; + } + } + break; + case 6: /* MC7 */ + optimc->regs[6] = val; + break; + case 7: /* MC8 */ + optimc->regs[7] = val; + break; + case 8: /* MC9 */ + optimc->regs[8] = val; + break; + case 9: /* MC10 */ + optimc->regs[9] = val; + break; + case 10: /* MC11, read-only */ + break; + case 11: /* MC12 */ + optimc->regs[11] = val; + break; + default: + break; + } + optimc_log(optimc->log, "OPTi930 Data Write: idx = %02X, val = %02X\n", idx, val); + } + if ((optimc->cur_opti930_addr != 0xF8E) && optimc->reg_enabled) { + optimc_log(optimc->log, "OPTi930 disable reg access on data write\n"); + optimc->reg_enabled = 0; + } +} + static void optimc_reg_write(uint16_t addr, uint8_t val, void *priv) { @@ -343,6 +625,36 @@ optimc_reg_write(uint16_t addr, uint8_t val, void *priv) } } +static uint8_t +opti930_reg_read(uint16_t addr, void *priv) +{ + optimc_t *optimc = (optimc_t *) priv; + uint16_t idx = optimc->index; + uint8_t temp = 0xFF; + + if ((addr == optimc->cur_opti930_addr) && (optimc->reg_enabled || !optimc->passwd_enabled)) + temp = optimc->index; + if ((addr == optimc->cur_opti930_addr +1) && (optimc->reg_enabled || !optimc->passwd_enabled)) { + switch (idx) { + case 0 ... 9: + temp = optimc->regs[optimc->index]; + break; + case 10: + temp = ((optimc->ad1848.regs[24] & 0x10) >> 2); + break; + case 11: + temp = optimc->regs[11]; + break; + } + } + if ((optimc->cur_opti930_addr != 0xF8E) && optimc->reg_enabled) { + optimc_log(optimc->log, "OPTi930 disable reg access on data read\n"); + optimc->reg_enabled = 0; + } + optimc_log(optimc->log, "OPTi930 Read: idx = %02X, val = %02X\n", optimc->index, temp); + return temp; +} + static uint8_t optimc_reg_read(uint16_t addr, void *priv) { @@ -371,10 +683,42 @@ optimc_reg_read(uint16_t addr, void *priv) return temp; } +static void +opti930_passwd_write(uint16_t addr, uint8_t val, void *priv) +{ + optimc_t *optimc = (optimc_t *) priv; + + optimc_log(optimc->log, "OPTi930 Password Write: val = %02X\n", val); + optimc_log(optimc->log, "OPTi930 last pw value: %02X\n", optimc->lastpw); + if ((addr == 0xF8F) && (optimc->reg_enabled)) { + optimc_log(optimc->log, "OPTi930: Removing old address handler at %04X\n", optimc->cur_opti930_addr); + io_removehandler(optimc->cur_opti930_addr, 2, opti930_reg_read, NULL, NULL, opti930_reg_write, NULL, NULL, optimc); /* Relocatable MCBase */ + optimc->opti930_mcbase = val; + optimc->cur_opti930_addr = (((val & 0x1f) << 4) + 0xE0E); + optimc->passwd_enabled = (val & 0x80) ? 0 : 1; + optimc_log(optimc->log, "OPTi930 register base now %04X\n", optimc->cur_opti930_addr); + optimc_log(optimc->log, "OPTi930 password enable: %02X\n", optimc->passwd_enabled); + io_sethandler(optimc->cur_opti930_addr, 2, opti930_reg_read, NULL, NULL, opti930_reg_write, NULL, NULL, optimc); /* Relocatable MCBase */ + optimc_log(optimc->log, "OPTi930 Disabling reg access\n"); + optimc->reg_enabled = 0; + } + if ((addr == 0xF8F) && (val == optimc->type) && !(optimc->reg_enabled)) { + optimc_log(optimc->log, "OPTi930 Enabling reg access\n"); + optimc->reg_enabled = 1; + } + if ((addr == 0xF8F) && (val != optimc->type) && (optimc->lastpw != OPTI_930)) { + optimc_log(optimc->log, "OPTi930 Disabling reg access\n"); + optimc->reg_enabled = 0; + } + optimc->lastpw = val; +} + static void * optimc_init(const device_t *info) { optimc_t *optimc = calloc(1, sizeof(optimc_t)); + uint8_t c; + double attenuation; optimc->type = info->local & 0xFF; @@ -388,19 +732,39 @@ optimc_init(const device_t *info) optimc->cur_mpu401_addr = 0x330; optimc->cur_mpu401_enabled = 1; - optimc->regs[0] = 0x00; - optimc->regs[1] = 0x03; - optimc->regs[2] = 0x00; - optimc->regs[3] = 0x00; - optimc->regs[4] = 0x3F; - optimc->regs[5] = 0x83; + if (optimc->type == OPTI_929) { + optimc->regs[0] = 0x00; + optimc->regs[1] = 0x03; + optimc->regs[2] = 0x00; + optimc->regs[3] = 0x00; + optimc->regs[4] = 0x3F; + optimc->regs[5] = 0x83; + } + if (optimc->type == OPTI_930) { + optimc->regs[0] = 0x00; + optimc->regs[1] = 0x00; + optimc->regs[2] = 0x2A; + optimc->regs[3] = 0x10; + optimc->regs[4] = 0x00; + optimc->regs[5] = 0x81; + optimc->regs[6] = 0x00; + optimc->regs[7] = 0x00; + optimc->regs[8] = 0x00; + optimc->regs[9] = 0x00; + optimc->regs[10] = 0x00; + optimc->regs[11] = 0x00; + optimc->opti930_mcbase = 0x00; /* Password enable, MCBase E0Eh */ + optimc->cur_opti930_addr = 0xE0E; + } optimc->log = log_open("OPTIMC"); optimc->gameport = gameport_add(&gameport_pnp_device); gameport_remap(optimc->gameport, (optimc->regs[0] & 0x1) ? 0x00 : 0x200); - if (info->local & 0x100) + if (optimc->type == OPTI_930) + ad1848_init(&optimc->ad1848, AD1848_TYPE_OPTI930); + else if (info->local & 0x100) ad1848_init(&optimc->ad1848, AD1848_TYPE_CS4231); else ad1848_init(&optimc->ad1848, AD1848_TYPE_DEFAULT); @@ -409,7 +773,13 @@ optimc_init(const device_t *info) ad1848_setirq(&optimc->ad1848, optimc->cur_wss_irq); ad1848_setdma(&optimc->ad1848, optimc->cur_wss_dma); - io_sethandler(0xF8D, 6, optimc_reg_read, NULL, NULL, optimc_reg_write, NULL, NULL, optimc); + if (optimc->type == OPTI_929) { + io_sethandler(0xF8D, 6, optimc_reg_read, NULL, NULL, optimc_reg_write, NULL, NULL, optimc); + } + if (optimc->type == OPTI_930) { + io_sethandler(0xF8F, 1, NULL, NULL, NULL, opti930_passwd_write, NULL, NULL, optimc); /* Fixed password reg, write-only */ + io_sethandler(optimc->cur_opti930_addr, 2, opti930_reg_read, NULL, NULL, opti930_reg_write, NULL, NULL, optimc); /* Relocatable MCBase */ + } io_sethandler(optimc->cur_wss_addr, 0x0004, optimc_wss_read, NULL, NULL, optimc_wss_write, NULL, NULL, optimc); io_sethandler(optimc->cur_wss_addr + 0x0004, 0x0004, ad1848_read, NULL, NULL, ad1848_write, NULL, NULL, &optimc->ad1848); @@ -426,8 +796,14 @@ optimc_init(const device_t *info) sb_dsp_setdma8(&optimc->sb->dsp, optimc->cur_dma); sb_ct1345_mixer_reset(optimc->sb); - optimc->sb->opl_mixer = optimc; - optimc->sb->opl_mix = optimc_filter_opl; + if (optimc->type == OPTI_930) { + optimc->sb->opl_mixer = optimc; + optimc->sb->opl_mix = opti930_filter_opl; + } + else { + optimc->sb->opl_mixer = optimc; + optimc->sb->opl_mix = optimc_filter_opl; + } fm_driver_get(optimc->fm_type, &optimc->sb->opl); io_sethandler(optimc->cur_addr + 0, 0x0004, optimc->sb->opl.read, NULL, NULL, optimc->sb->opl.write, NULL, NULL, optimc->sb->opl.priv); @@ -438,11 +814,17 @@ optimc_init(const device_t *info) io_sethandler(optimc->cur_addr + 4, 0x0002, sb_ct1345_mixer_read, NULL, NULL, sb_ct1345_mixer_write, NULL, NULL, optimc->sb); - sound_add_handler(optimc_get_buffer, optimc); + if (optimc->type == OPTI_930) + sound_add_handler(opti930_get_buffer, optimc); + else + sound_add_handler(optimc_get_buffer, optimc); if (optimc->fm_type == FM_YMF278B) wavetable_add_handler(sb_get_music_buffer_sbpro, optimc->sb); else music_add_handler(sb_get_music_buffer_sbpro, optimc->sb); + if (optimc->type == OPTI_930) + ad1848_set_cd_audio_channel(&optimc->ad1848, AD1848_AUX1); + sound_set_cd_audio_filter(NULL, NULL); /* Seems to be necessary for the filter below to apply */ sound_set_cd_audio_filter(sbpro_filter_cd_audio, optimc->sb); /* CD audio filter for the default context */ optimc->mpu = (mpu_t *) calloc(1, sizeof(mpu_t)); @@ -451,6 +833,30 @@ optimc_init(const device_t *info) if (device_get_config_int("receive_input")) midi_in_handler(1, sb_dsp_input_msg, sb_dsp_input_sysex, &optimc->sb->dsp); + /* OPTi 930 DOS sound test utility starts DMA playback without setting a time constant likely making */ + /* an assumption about the power-on state of the OPTi 930's SBPro DSP, set the power-on default time */ + /* constant for 22KHz Mono so the sound test utility passes the SBPro test */ + if (optimc->type == OPTI_930) + optimc->sb->dsp.sb_timeo = 211; + + for (c = 0; c < 32; c++) { + attenuation = 0.0; + if (c & 0x01) + attenuation -= 1.5; + if (c & 0x02) + attenuation -= 3.0; + if (c & 0x04) + attenuation -= 6.0; + if (c & 0x08) + attenuation -= 12.0; + if (c & 0x10) + attenuation -= 24.0; + + attenuation = pow(10, attenuation / 10); + + opti930_vols_5bits[c] = (attenuation * 65536); + } + return optimc; } @@ -516,7 +922,7 @@ const device_t acermagic_s20_device = { .name = "AcerMagic S20", .internal_name = "acermagic_s20", .flags = DEVICE_ISA16, - .local = 0xE3 | OPTIMC_CS4231, + .local = OPTI_929 | OPTIMC_CS4231, .init = optimc_init, .close = optimc_close, .reset = NULL, @@ -530,7 +936,7 @@ const device_t mirosound_pcm10_device = { .name = "miroSOUND PCM10", .internal_name = "mirosound_pcm10", .flags = DEVICE_ISA16, - .local = 0xE3 | OPTIMC_OPL4, + .local = OPTI_929 | OPTIMC_OPL4, .init = optimc_init, .close = optimc_close, .reset = NULL, @@ -539,3 +945,18 @@ const device_t mirosound_pcm10_device = { .force_redraw = NULL, .config = optimc_config }; + +const device_t opti_82c930_device = { + .name = "OPTi 82c930", + .internal_name = "opti_82c930", + .flags = DEVICE_ISA16, + .local = OPTI_930 | OPTIMC_CS4231, + .init = optimc_init, + .close = optimc_close, + .reset = NULL, + .available = NULL, + .speed_changed = optimc_speed_changed, + .force_redraw = NULL, + .config = optimc_config +}; + diff --git a/src/sound/sound.c b/src/sound/sound.c index 4d9675441..d9db398a4 100644 --- a/src/sound/sound.c +++ b/src/sound/sound.c @@ -148,6 +148,7 @@ static const SOUND_CARD sound_cards[] = { { &gus_max_device }, { &gus_ace_device }, { &mirosound_pcm10_device }, + { &opti_82c930_device }, { &pas16_device }, { &pas16d_device }, { &sb_16_device }, From 7e958002393dff3a55045fc9be12d12a89723420 Mon Sep 17 00:00:00 2001 From: win2kgamer <47463859+win2kgamer@users.noreply.github.com> Date: Sun, 23 Nov 2025 16:54:09 -0600 Subject: [PATCH 05/39] Give the NEC PowerMate V its (optional) onboard OPTi 82c930 audio --- src/machine/m_at_socket5.c | 3 +++ src/machine/machine_table.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/machine/m_at_socket5.c b/src/machine/m_at_socket5.c index a049600e3..adfdfbacd 100644 --- a/src/machine/m_at_socket5.c +++ b/src/machine/m_at_socket5.c @@ -871,6 +871,9 @@ machine_at_powermatev_init(const machine_t *model) pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4); pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1); + if (sound_card_current[0] == SOUND_INTERNAL) + machine_snd = device_add(machine_get_snd_device(machine)); + device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params); device_add(&i430fx_device); device_add(&piix_device); diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index ca1da6372..89f231ae5 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -12634,7 +12634,7 @@ const machine_t machines[] = { .max_multi = 2.0 }, .bus_flags = MACHINE_PS2_PCI, - .flags = MACHINE_IDE_DUAL | MACHINE_APM, + .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_SOUND | MACHINE_GAMEPORT, .ram = { .min = 8192, .max = 131072, @@ -12653,7 +12653,7 @@ const machine_t machines[] = { .fdc_device = NULL, .sio_device = NULL, .vid_device = NULL, - .snd_device = NULL, + .snd_device = &opti_82c930_device, .net_device = NULL }, /* Has AMIKey Z(!) KBC firmware. */ From d2a80790037b0d6362dbce80243d3bd407cd9e76 Mon Sep 17 00:00:00 2001 From: AITUS95 <48457684+AITUS95@users.noreply.github.com> Date: Mon, 24 Nov 2025 22:24:26 +0100 Subject: [PATCH 06/39] Fix x86/x64 performance regression with platform-specific atomics Use volatile on x86/x64 (native atomic guarantees) and C11 atomics on ARM (explicit synchronization needed). Restores performance on x86 while keeping ARM stability. --- src/include/86box/vid_voodoo_common.h | 63 ++++++++++++++++++--------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/src/include/86box/vid_voodoo_common.h b/src/include/86box/vid_voodoo_common.h index 26dcd5a1e..4c2e5dc08 100644 --- a/src/include/86box/vid_voodoo_common.h +++ b/src/include/86box/vid_voodoo_common.h @@ -29,11 +29,32 @@ #define TEX_CACHE_MAX 64 -#ifdef __cplusplus -# include -using atomic_int = std::atomic; +/* Platform-specific atomic handling */ +#if defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86) + /* On x86/x64, aligned int/uint32_t accesses are naturally atomic */ + /* Use volatile for performance, as the original code did */ + #define ATOMIC_INT volatile int + #define ATOMIC_UINT volatile uint32_t + #define ATOMIC_LOAD(var) (var) + #define ATOMIC_STORE(var, val) ((var) = (val)) + #define ATOMIC_INC(var) (++(var)) + #define ATOMIC_DEC(var) (--(var)) #else -# include + /* On ARM and other architectures, use proper atomics */ + #ifdef __cplusplus + # include + using atomic_int = std::atomic; + using atomic_uint = std::atomic; + #else + # include + #endif + + #define ATOMIC_INT atomic_int + #define ATOMIC_UINT atomic_uint + #define ATOMIC_LOAD(var) atomic_load(&(var)) + #define ATOMIC_STORE(var, val) atomic_store(&(var), (val)) + #define ATOMIC_INC(var) atomic_fetch_add(&(var), 1) + #define ATOMIC_DEC(var) atomic_fetch_sub(&(var), 1) #endif enum { @@ -230,8 +251,8 @@ typedef struct voodoo_params_t { typedef struct texture_t { uint32_t base; uint32_t tLOD; - atomic_int refcount; - atomic_int refcount_r[4]; + ATOMIC_INT refcount; + ATOMIC_INT refcount_r[4]; int is16; uint32_t palette_checksum; uint32_t addr_start[4]; @@ -400,16 +421,16 @@ typedef struct voodoo_t { int type; fifo_entry_t fifo[FIFO_SIZE]; - atomic_int fifo_read_idx; - atomic_int fifo_write_idx; - atomic_int cmd_read; - atomic_int cmd_written; - atomic_int cmd_written_fifo; - atomic_int cmd_written_fifo_2; + ATOMIC_INT fifo_read_idx; + ATOMIC_INT fifo_write_idx; + ATOMIC_INT cmd_read; + ATOMIC_INT cmd_written; + ATOMIC_INT cmd_written_fifo; + ATOMIC_INT cmd_written_fifo_2; voodoo_params_t params_buffer[PARAM_SIZE]; - atomic_int params_read_idx[4]; - atomic_int params_write_idx; + ATOMIC_INT params_read_idx[4]; + ATOMIC_INT params_write_idx; uint32_t cmdfifo_base; uint32_t cmdfifo_end; @@ -418,9 +439,9 @@ typedef struct voodoo_t { int cmdfifo_ret_addr; int cmdfifo_in_sub; int cmdfifo_in_agp; - atomic_int cmdfifo_depth_rd; - atomic_int cmdfifo_depth_wr; - atomic_int cmdfifo_enabled; + ATOMIC_INT cmdfifo_depth_rd; + ATOMIC_INT cmdfifo_depth_wr; + ATOMIC_INT cmdfifo_enabled; uint32_t cmdfifo_amin; uint32_t cmdfifo_amax; int cmdfifo_holecount; @@ -432,14 +453,14 @@ typedef struct voodoo_t { int cmdfifo_ret_addr_2; int cmdfifo_in_sub_2; int cmdfifo_in_agp_2; - atomic_int cmdfifo_depth_rd_2; - atomic_int cmdfifo_depth_wr_2; - atomic_int cmdfifo_enabled_2; + ATOMIC_INT cmdfifo_depth_rd_2; + ATOMIC_INT cmdfifo_depth_wr_2; + ATOMIC_INT cmdfifo_enabled_2; uint32_t cmdfifo_amin_2; uint32_t cmdfifo_amax_2; int cmdfifo_holecount_2; - atomic_uint cmd_status, cmd_status_2; + ATOMIC_UINT cmd_status, cmd_status_2; uint32_t sSetupMode; vert_t verts[4]; From 23e7532f81864ecb93f7ca7868854301284ba2ac Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 25 Nov 2025 00:10:07 +0100 Subject: [PATCH 07/39] Move the platform-specific atomics to 86box.h and add ADD and SUB macro's, in preparation for applying to the mouse code as well. --- src/include/86box/86box.h | 32 +++++++++++++++++++++++++++ src/include/86box/vid_voodoo_common.h | 28 ----------------------- 2 files changed, 32 insertions(+), 28 deletions(-) diff --git a/src/include/86box/86box.h b/src/include/86box/86box.h index 88acf5209..8f88d20cc 100644 --- a/src/include/86box/86box.h +++ b/src/include/86box/86box.h @@ -98,6 +98,38 @@ # define LIKELY(x) (x) #endif +/* Platform-specific atomic handling */ +#if defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86) + /* On x86/x64, aligned int/uint32_t accesses are naturally atomic */ + /* Use volatile for performance, as the original code did */ + #define ATOMIC_INT volatile int + #define ATOMIC_UINT volatile uint32_t + #define ATOMIC_LOAD(var) (var) + #define ATOMIC_STORE(var, val) ((var) = (val)) + #define ATOMIC_INC(var) (++(var)) + #define ATOMIC_DEC(var) (--(var)) + #define ATOMIC_ADD(var, val) ((var) += (val)) + #define ATOMIC_SUB(var, val) ((var) -= (val)) +#else + /* On ARM and other architectures, use proper atomics */ + #ifdef __cplusplus + # include + using atomic_int = std::atomic; + using atomic_uint = std::atomic; + #else + # include + #endif + + #define ATOMIC_INT atomic_int + #define ATOMIC_UINT atomic_uint + #define ATOMIC_LOAD(var) atomic_load(&(var)) + #define ATOMIC_STORE(var, val) atomic_store(&(var), (val)) + #define ATOMIC_INC(var) atomic_fetch_add(&(var), 1) + #define ATOMIC_DEC(var) atomic_fetch_sub(&(var), 1) + #define ATOMIC_ADD(var, val) atomic_fetch_add(&(var), val) + #define ATOMIC_SUB(var, val) atomic_fetch_sub(&(var), val) +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/include/86box/vid_voodoo_common.h b/src/include/86box/vid_voodoo_common.h index 4c2e5dc08..d87c1f731 100644 --- a/src/include/86box/vid_voodoo_common.h +++ b/src/include/86box/vid_voodoo_common.h @@ -29,34 +29,6 @@ #define TEX_CACHE_MAX 64 -/* Platform-specific atomic handling */ -#if defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86) - /* On x86/x64, aligned int/uint32_t accesses are naturally atomic */ - /* Use volatile for performance, as the original code did */ - #define ATOMIC_INT volatile int - #define ATOMIC_UINT volatile uint32_t - #define ATOMIC_LOAD(var) (var) - #define ATOMIC_STORE(var, val) ((var) = (val)) - #define ATOMIC_INC(var) (++(var)) - #define ATOMIC_DEC(var) (--(var)) -#else - /* On ARM and other architectures, use proper atomics */ - #ifdef __cplusplus - # include - using atomic_int = std::atomic; - using atomic_uint = std::atomic; - #else - # include - #endif - - #define ATOMIC_INT atomic_int - #define ATOMIC_UINT atomic_uint - #define ATOMIC_LOAD(var) atomic_load(&(var)) - #define ATOMIC_STORE(var, val) atomic_store(&(var), (val)) - #define ATOMIC_INC(var) atomic_fetch_add(&(var), 1) - #define ATOMIC_DEC(var) atomic_fetch_sub(&(var), 1) -#endif - enum { VOODOO_1 = 0, VOODOO_SB50, From e40bed7cd328c72e8984876f2e9478e00bbeb2a8 Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 25 Nov 2025 00:13:00 +0100 Subject: [PATCH 08/39] Apply it to 86box.c. --- src/86box.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/86box.c b/src/86box.c index e44b57595..c8316b46d 100644 --- a/src/86box.c +++ b/src/86box.c @@ -120,7 +120,6 @@ /* Stuff that used to be globally declared in plat.h but is now extern there and declared here instead. */ int dopause = 1; /* system is paused */ -atomic_flag doresize; /* screen resize requested */ volatile int is_quit; /* system exit requested */ uint64_t timer_freq; char emu_version[200]; /* version ID string */ @@ -337,8 +336,8 @@ __thread int is_cpu_thread = 0; static wchar_t mouse_msg[3][200]; -static volatile atomic_int do_pause_ack = 0; -static volatile atomic_int pause_ack = 0; +static volatile ATOMIC_INT do_pause_ack = 0; +static volatile ATOMIC_INT pause_ack = 0; #define LOG_SIZE_BUFFER 8192 /* Log size buffer */ @@ -1841,9 +1840,9 @@ _ui_window_title(void *s) void ack_pause(void) { - if (atomic_load(&do_pause_ack)) { - atomic_store(&do_pause_ack, 0); - atomic_store(&pause_ack, 1); + if (ATOMIC_LOAD(do_pause_ack)) { + ATOMIC_STORE(do_pause_ack, 0); + ATOMIC_STORE(pause_ack, 1); } } @@ -2078,10 +2077,10 @@ do_pause(int p) do_pause_ack = p; dopause = !!p; if ((p == 1) && !old_p) { - while (!atomic_load(&pause_ack)) + while (!ATOMIC_LOAD(pause_ack)) ; } - atomic_store(&pause_ack, 0); + ATOMIC_STORE(pause_ack, 0); } // Helper to find an accelerator key and return it's index in acc_keys From 935240511accadd5a84f87445440836dac2fe4ec Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 25 Nov 2025 00:20:34 +0100 Subject: [PATCH 09/39] Apply it to the mouse code. --- src/device/mouse.c | 63 ++++++++++++++++++++------------------- src/include/86box/86box.h | 4 +++ 2 files changed, 37 insertions(+), 30 deletions(-) diff --git a/src/device/mouse.c b/src/device/mouse.c index eb7557faf..d4ef4c873 100644 --- a/src/device/mouse.c +++ b/src/device/mouse.c @@ -107,11 +107,11 @@ static mouse_t mouse_devices[] = { // clang-format on }; -static _Atomic double mouse_x; -static _Atomic double mouse_y; -static atomic_int mouse_z; -static atomic_int mouse_w; -static atomic_int mouse_buttons; +static ATOMIC_DOUBLE mouse_x; +static ATOMIC_DOUBLE mouse_y; +static ATOMIC_INT mouse_z; +static ATOMIC_INT mouse_w; +static ATOMIC_INT mouse_buttons; static int mouse_delta_b; static int mouse_old_b; @@ -208,7 +208,7 @@ mouse_scale_coord_y(double y, int mul) void mouse_subtract_x(int *delta_x, int *o_x, int min, int max, int abs) { - double real_x = atomic_load(&mouse_x); + double real_x = ATOMIC_LOAD(mouse_x); double smax_x; double rsmin_x; double smin_x; @@ -266,7 +266,7 @@ mouse_subtract_x(int *delta_x, int *o_x, int min, int max, int abs) if (abs) real_x -= rsmin_x; - atomic_store(&mouse_x, real_x); + ATOMIC_STORE(mouse_x, real_x); } /* It appears all host platforms give us y in the Microsoft format @@ -275,7 +275,7 @@ mouse_subtract_x(int *delta_x, int *o_x, int min, int max, int abs) void mouse_subtract_y(int *delta_y, int *o_y, int min, int max, int invert, int abs) { - double real_y = atomic_load(&mouse_y); + double real_y = ATOMIC_LOAD(mouse_y); double smax_y; double rsmin_y; double smin_y; @@ -339,7 +339,7 @@ mouse_subtract_y(int *delta_y, int *o_y, int min, int max, int invert, int abs) if (invert) real_y = -real_y; - atomic_store(&mouse_y, real_y); + ATOMIC_STORE(mouse_y, real_y); } /* It appears all host platforms give us y in the Microsoft format @@ -356,7 +356,7 @@ mouse_subtract_coords(int *delta_x, int *delta_y, int *o_x, int *o_y, int mouse_wheel_moved(void) { - int ret = !!(atomic_load(&mouse_z)); + int ret = !!(ATOMIC_LOAD(mouse_z)); return ret; } @@ -364,7 +364,7 @@ mouse_wheel_moved(void) int mouse_hwheel_moved(void) { - int ret = !!(atomic_load(&mouse_w)); + int ret = !!(ATOMIC_LOAD(mouse_w)); return ret; } @@ -372,8 +372,8 @@ mouse_hwheel_moved(void) int mouse_moved(void) { - int moved_x = !!((int) floor(ABSD(mouse_scale_coord_x(atomic_load(&mouse_x), 1)))); - int moved_y = !!((int) floor(ABSD(mouse_scale_coord_y(atomic_load(&mouse_y), 1)))); + int moved_x = !!((int) floor(ABSD(mouse_scale_coord_x(ATOMIC_LOAD(mouse_x), 1)))); + int moved_y = !!((int) floor(ABSD(mouse_scale_coord_y(ATOMIC_LOAD(mouse_y), 1)))); /* Convert them to integer so we treat < 1.0 and > -1.0 as 0. */ int ret = (moved_x || moved_y); @@ -390,11 +390,12 @@ mouse_state_changed(void) int hwheel = (mouse_nbut >= 6); int ret; - b = atomic_load(&mouse_buttons); + b = ATOMIC_LOAD(mouse_buttons); mouse_delta_b = (b ^ mouse_old_b); mouse_old_b = b; - ret = mouse_moved() || ((atomic_load(&mouse_z) != 0) && wheel) || ((atomic_load(&mouse_w) != 0) && hwheel) || (mouse_delta_b & b_mask); + ret = mouse_moved() || ((ATOMIC_LOAD(mouse_z) != 0) && wheel) || ((ATOMIC_LOAD(mouse_w) != 0) && hwheel) || + (mouse_delta_b & b_mask); return ret; } @@ -421,8 +422,9 @@ mouse_timer_poll(UNUSED(void *priv)) #endif } +#if !defined(__x86_64__) && !defined(_M_X64) && !defined(__i386__) && !defined(_M_IX86) static void -atomic_double_add(_Atomic double *var, double val) +atomic_double_add(ATOMIC_DOUBLE *var, double val) { double temp = atomic_load(var); @@ -430,29 +432,30 @@ atomic_double_add(_Atomic double *var, double val) atomic_store(var, temp); } +#endif void mouse_scale_fx(double x) { - atomic_double_add(&mouse_x, ((double) x) * mouse_sensitivity); + ATOMIC_DOUBLE_ADD(mouse_x, ((double) x) * mouse_sensitivity); } void mouse_scale_fy(double y) { - atomic_double_add(&mouse_y, ((double) y) * mouse_sensitivity); + ATOMIC_DOUBLE_ADD(mouse_y, ((double) y) * mouse_sensitivity); } void mouse_scale_x(int x) { - atomic_double_add(&mouse_x, ((double) x) * mouse_sensitivity); + ATOMIC_DOUBLE_ADD(mouse_x, ((double) x) * mouse_sensitivity); } void mouse_scale_y(int y) { - atomic_double_add(&mouse_y, ((double) y) * mouse_sensitivity); + ATOMIC_DOUBLE_ADD(mouse_y, ((double) y) * mouse_sensitivity); } void @@ -481,31 +484,31 @@ mouse_scale_axis(int axis, int val) void mouse_set_z(int z) { - atomic_fetch_add(&mouse_z, z); + ATOMIC_ADD(mouse_z, z); } void mouse_clear_z(void) { - atomic_store(&mouse_z, 0); + ATOMIC_STORE(mouse_z, 0); } void mouse_set_w(int w) { - atomic_fetch_add(&mouse_w, w); + ATOMIC_ADD(mouse_w, w); } void mouse_clear_w(void) { - atomic_store(&mouse_w, 0); + ATOMIC_STORE(mouse_w, 0); } void mouse_subtract_z(int *delta_z, int min, int max, int invert) { - int z = atomic_load(&mouse_z); + int z = ATOMIC_LOAD(mouse_z); int real_z = invert ? -z : z; if (real_z > max) { @@ -519,13 +522,13 @@ mouse_subtract_z(int *delta_z, int min, int max, int invert) real_z = 0; } - atomic_store(&mouse_z, invert ? -real_z : real_z); + ATOMIC_STORE(mouse_z, invert ? -real_z : real_z); } void mouse_subtract_w(int *delta_w, int min, int max, int invert) { - int w = atomic_load(&mouse_w); + int w = ATOMIC_LOAD(mouse_w); int real_w = invert ? -w : w; if (real_w > max) { @@ -539,19 +542,19 @@ mouse_subtract_w(int *delta_w, int min, int max, int invert) real_w = 0; } - atomic_store(&mouse_w, invert ? -real_w : real_w); + ATOMIC_STORE(mouse_w, invert ? -real_w : real_w); } void mouse_set_buttons_ex(int b) { - atomic_store(&mouse_buttons, b); + ATOMIC_STORE(mouse_buttons, b); } int mouse_get_buttons_ex(void) { - return atomic_load(&mouse_buttons); + return ATOMIC_LOAD(mouse_buttons); } void diff --git a/src/include/86box/86box.h b/src/include/86box/86box.h index 8f88d20cc..62204c40e 100644 --- a/src/include/86box/86box.h +++ b/src/include/86box/86box.h @@ -104,12 +104,14 @@ /* Use volatile for performance, as the original code did */ #define ATOMIC_INT volatile int #define ATOMIC_UINT volatile uint32_t + #define ATOMIC_DOUBLE volatile double #define ATOMIC_LOAD(var) (var) #define ATOMIC_STORE(var, val) ((var) = (val)) #define ATOMIC_INC(var) (++(var)) #define ATOMIC_DEC(var) (--(var)) #define ATOMIC_ADD(var, val) ((var) += (val)) #define ATOMIC_SUB(var, val) ((var) -= (val)) + #define ATOMIC_DOUBLE_ADD(var, val) ((var) += (val)) #else /* On ARM and other architectures, use proper atomics */ #ifdef __cplusplus @@ -122,12 +124,14 @@ #define ATOMIC_INT atomic_int #define ATOMIC_UINT atomic_uint + #define ATOMIC_DOUBLE _Atomic double #define ATOMIC_LOAD(var) atomic_load(&(var)) #define ATOMIC_STORE(var, val) atomic_store(&(var), (val)) #define ATOMIC_INC(var) atomic_fetch_add(&(var), 1) #define ATOMIC_DEC(var) atomic_fetch_sub(&(var), 1) #define ATOMIC_ADD(var, val) atomic_fetch_add(&(var), val) #define ATOMIC_SUB(var, val) atomic_fetch_sub(&(var), val) + #define ATOMIC_DOUBLE_ADD(var, val) atomic_double_add(&(var), val) #endif #ifdef __cplusplus From b64903a81949bdb7762076cd9d25660f188754dc Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 25 Nov 2025 02:16:54 +0100 Subject: [PATCH 10/39] Attempt to fix compile failure on ARM64 builds. --- src/include/86box/86box.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/include/86box/86box.h b/src/include/86box/86box.h index 62204c40e..12eb5dbb5 100644 --- a/src/include/86box/86box.h +++ b/src/include/86box/86box.h @@ -114,6 +114,7 @@ #define ATOMIC_DOUBLE_ADD(var, val) ((var) += (val)) #else /* On ARM and other architectures, use proper atomics */ +#ifdef failing_code #ifdef __cplusplus # include using atomic_int = std::atomic; @@ -121,6 +122,11 @@ #else # include #endif +#else + #ifndef __cplusplus + # include + #endif +#endif #define ATOMIC_INT atomic_int #define ATOMIC_UINT atomic_uint From 31abafdfedbfdbfcf243c57efd4f3b1573db6d7b Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 25 Nov 2025 06:21:43 +0100 Subject: [PATCH 11/39] Some changes to the OpenGL renderer. --- src/qt/qt_openglrenderer.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/qt/qt_openglrenderer.cpp b/src/qt/qt_openglrenderer.cpp index dc7c22941..d9205f97f 100644 --- a/src/qt/qt_openglrenderer.cpp +++ b/src/qt/qt_openglrenderer.cpp @@ -873,6 +873,10 @@ OpenGLRenderer::initialize() glw.initializeOpenGLFunctions(); + glw.glClearColor(0, 0, 0, 1); + + glw.glClear(GL_COLOR_BUFFER_BIT); + ogl3_log("OpenGL information: [%s] %s (%s)\n", glw.glGetString(GL_VENDOR), glw.glGetString(GL_RENDERER), glw.glGetString(GL_VERSION)); gl_version[0] = gl_version[1] = -1; glw.glGetIntegerv(GL_MAJOR_VERSION, &gl_version[0]); @@ -905,12 +909,12 @@ OpenGLRenderer::initialize() scene_texture.data = NULL; scene_texture.width = 2048; scene_texture.height = 2048; - scene_texture.internal_format = GL_RGB8; - scene_texture.format = GL_BGR; + scene_texture.internal_format = GL_RGBA8; + scene_texture.format = GL_RGBA; scene_texture.type = GL_UNSIGNED_INT_8_8_8_8_REV; scene_texture.wrap_mode = GL_CLAMP_TO_BORDER; scene_texture.min_filter = scene_texture.mag_filter = video_filter_method ? GL_LINEAR : GL_NEAREST; - scene_texture.mipmap = 0; + scene_texture.mipmap = 0; create_texture(&scene_texture); @@ -1104,10 +1108,6 @@ OpenGLRenderer::initialize() emit initialized(); - glw.glClearColor(0, 0, 0, 1); - - glw.glClear(GL_COLOR_BUFFER_BIT); - context->swapBuffers(this); } catch (const opengl_init_error &e) { /* Mark all buffers as in use */ From 94fa3e8626fcbaf100f54f565f13d29c8cbfcbfe Mon Sep 17 00:00:00 2001 From: Bozo Scum Date: Wed, 26 Nov 2025 12:04:48 +0800 Subject: [PATCH 12/39] Update zh-TW.po * fill untranslated message strings * replace few terms with major Traditional Chinese speaking regions (Taiwan, Hong Kong, and Macau) commonly used terms * replace found Simplified Chinese glyphs with Traditional ones --- src/qt/languages/zh-TW.po | 114 +++++++++++++++++++------------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po index 2bf733b31..4a2279ea7 100644 --- a/src/qt/languages/zh-TW.po +++ b/src/qt/languages/zh-TW.po @@ -154,7 +154,7 @@ msgid "RGB (no brown)" msgstr "RGB (無棕色)" msgid "&RGB Grayscale" -msgstr "RGB 灰度(&R)" +msgstr "RGB 灰階(&R)" msgid "Generic RGBI color monitor" msgstr "通用 RGBI 彩色監視器" @@ -169,7 +169,7 @@ msgid "&White monitor" msgstr "白色單色顯示器(&W)" msgid "Grayscale &conversion type" -msgstr "灰度轉換類型(&C)" +msgstr "灰階轉換類型(&C)" msgid "BT&601 (NTSC/PAL)" msgstr "BT601 (NTSC/PAL)(&6)" @@ -187,7 +187,7 @@ msgid "Change contrast for &monochrome display" msgstr "變更單色顯示對比度(&M)" msgid "&Media" -msgstr "介質(&M)" +msgstr "媒體(&M)" msgid "&Tools" msgstr "工具(&T)" @@ -238,7 +238,7 @@ msgid "&Existing image..." msgstr "開啟已存在的映像(&E)..." msgid "Existing image (&Write-protected)..." -msgstr "開啟已存在的映像並寫保護(&W)..." +msgstr "以防寫保護開啟已存在的映像(&W)..." msgid "&Record" msgstr "錄製(&R)" @@ -421,10 +421,10 @@ msgid "Voodoo 1 or 2 Graphics" msgstr "Voodoo 1 或 2 圖形" msgid "IBM 8514/A Graphics" -msgstr "IBM 8514/A Graphics" +msgstr "IBM 8514/A 圖形" msgid "XGA Graphics" -msgstr "XGA Graphics" +msgstr "XGA 圖形" msgid "IBM PS/55 Display Adapter Graphics" msgstr "IBM PS/55 顯示介面卡圖形" @@ -487,7 +487,7 @@ msgid "Use FLOAT32 sound" msgstr "使用單精度浮點 (FLOAT32) 音訊" msgid "FM synth driver" -msgstr "FM synth driver" +msgstr "FM 合成驅動器" msgid "Nuked (more accurate)" msgstr "Nuked (更準確)" @@ -748,10 +748,10 @@ msgid "Video card \"%hs\" is not available due to missing ROMs in the roms/video msgstr "由於 roms/video 資料夾中缺少合適的 ROM,顯示卡 \"%hs\" 不可用。將切換到其他可用顯示卡。" msgid "Video card #2 \"%hs\" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." -msgstr "由於 roms/video 資料夾中缺少合適的 ROM,顯示卡 2 \"%hs\" 不可用。禁用第二块显卡。" +msgstr "由於 roms/video 資料夾中缺少合適的 ROM,顯示卡 2 \"%hs\" 不可用。禁用第二張顯示卡。" msgid "Device \"%hs\" is not available due to missing ROMs. Ignoring the device." -msgstr "由於缺少合適的 ROM,裝置 \"%hs\" 不可用。忽略设备。" +msgstr "由於缺少合適的 ROM,裝置 \"%hs\" 不可用。忽略裝置。" msgid "Machine" msgstr "機型" @@ -850,7 +850,7 @@ msgid "Invalid PCap device" msgstr "無效 PCap 裝置" msgid "Generic paddle controller(s)" -msgstr "通用槳式控制器" +msgstr "通用旋鈕控制器" msgid "2-axis, 1-button joystick(s)" msgstr "2 軸, 1 鍵搖桿" @@ -1069,10 +1069,10 @@ msgid "Invalid configuration" msgstr "無效設定" msgid "%1 is required for automatic conversion of PostScript files to PDF.\n\nAny documents sent to the generic PostScript printer will be saved as PostScript (.ps) files." -msgstr "%1 是將 PostScript 檔案轉換為 PDF 所需要的庫。\n\n使用通用 PostScript 印表機列印的文件將被儲存為 PostScript (.ps) 檔案。" +msgstr "自動將 PostScript 檔案轉換為 PDF 需要 %1。\n\n使用通用 PostScript 印表機列印的文件將被儲存為 PostScript (.ps) 檔案。" msgid "%1 is required for automatic conversion of PCL files to PDF.\n\nAny documents sent to the generic PCL printer will be saved as Printer Command Language (.pcl) files." -msgstr "%1 是將 PCL 檔案轉換為 PDF 所需要的庫。\n\n使用通用 PCL 印表機列印的文件將被儲存為 Printer Command Language (.pcl) 檔案。" +msgstr "自動將 PCL 檔案轉換為 PDF 需要 %1。\n\n使用通用 PCL 印表機列印的文件將被儲存為 Printer Command Language (.pcl) 檔案。" msgid "Don't show this message again" msgstr "不要再顯示此消息" @@ -1102,7 +1102,7 @@ msgid "You are loading an unsupported configuration" msgstr "正在載入一個不受支援的設定" msgid "CPU type filtering based on selected machine is disabled for this emulated machine.\n\nThis makes it possible to choose a CPU that is otherwise incompatible with the selected machine. However, you may run into incompatibilities with the machine BIOS or other software.\n\nEnabling this setting is not officially supported and any bug reports filed may be closed as invalid." -msgstr "此模擬電腦停用了基於選定電腦的 CPU 類型過濾。\n\n能夠選中與所選機器本不相容的 CPU,但是可能會遇到與機器 BIOS 或其他軟體不相容的問題。\n\n啟用此設定不受官方支援,並且提交的任何錯誤報告可能會視為無效而關閉。" +msgstr "此模擬電腦停用了基於選定電腦的 CPU 類型過濾。\n\n能夠選中與所選機器本不相容的 CPU,但是可能會遇到與機器 BIOS 或其他軟體不相容的問題。\n\n啟用此設定不受官方支援,並且提交的任何錯誤報告可能會視為無效而結案。" msgid "Continue" msgstr "繼續" @@ -1159,25 +1159,25 @@ msgid "Not running" msgstr "未執行" msgid "Running" -msgstr "運行" +msgstr "執行中" msgid "Paused" msgstr "已暫停" msgid "Waiting" -msgstr "等待" +msgstr "等待中" msgid "Powered Off" msgstr "電源關閉" msgid "%n running" -msgstr "%n 運行" +msgstr "%n 執行中" msgid "%n paused" msgstr "%n 已暫停" msgid "%n waiting" -msgstr "%n 等待" +msgstr "%n 等待中" msgid "%1 total" msgstr "%1 總計" @@ -1204,7 +1204,7 @@ msgid "Unable to open the selected configuration file for reading: %1" msgstr "無法開啟選取的設定檔進行讀取: %1" msgid "Use regular expressions in search box" -msgstr "在搜尋方塊中使用正則表達式" +msgstr "在搜尋方塊中使用正規表示式" msgid "%1 machine(s) are currently active. Are you sure you want to exit the VM manager anyway?" msgstr "%1 台機器目前處於活動狀態。您確定要退出虛擬機器管理員嗎?" @@ -1285,7 +1285,7 @@ msgid "Set display name" msgstr "設定顯示名稱" msgid "Enter the new display name (blank to reset)" -msgstr "輸入新的顯示名稱 (空白表示重設)" +msgstr "輸入新的顯示名稱 (留空以重設)" msgid "Change &display name..." msgstr "變更顯示名稱(&D)..." @@ -1306,7 +1306,7 @@ msgid "Select an icon" msgstr "選擇圖示" msgid "C&lone..." -msgstr "克隆(&L)..." +msgstr "複製(&L)..." msgid "Virtual machine \"%1\" (%2) will be cloned into:" msgstr "虛擬機器 \"%1\" (%2) 將被複製到:" @@ -1318,7 +1318,7 @@ msgid "You cannot use the following characters in the name: %1" msgstr "您不能在名稱中使用下列字元:%1" msgid "Clone" -msgstr "克隆" +msgstr "複製" msgid "Failed to create directory for cloned VM" msgstr "為複製的虛擬機器建立目錄失敗" @@ -1345,7 +1345,7 @@ msgid "Unable to open the configuration file at %1 for writing" msgstr "無法開啟 %1 的設定檔進行寫入" msgid "Error adding system" -msgstr "錯誤新增系統" +msgstr "新增系統錯誤" msgid "Remove directory failed" msgstr "移除目錄失敗" @@ -1387,7 +1387,7 @@ msgid "Show &config file" msgstr "顯示設定檔(&C)" msgid "No screenshot" -msgstr "沒有截圖" +msgstr "沒有擷圖" msgid "Search" msgstr "搜尋" @@ -1426,7 +1426,7 @@ msgid "Hard disk (%1)" msgstr "硬碟 (%1)" msgid "MFM/RLL or ESDI CD-ROM drives never existed" -msgstr "不存在 MFM/RLL 或 ESDI CD-ROM 光碟機" +msgstr "MFM/RLL 或 ESDI CD-ROM 光碟機從未存在" msgid "Custom..." msgstr "自訂..." @@ -1600,10 +1600,10 @@ msgid "1.44 MB" msgstr "1.44 MB" msgid "DMF (cluster 1024)" -msgstr "DMF (1024 簇)" +msgstr "DMF (1024 位元組叢集)" msgid "DMF (cluster 2048)" -msgstr "DMF (2048 簇)" +msgstr "DMF (2048 位元組叢集)" msgid "2.88 MB" msgstr "2.88 MB" @@ -1666,7 +1666,7 @@ msgid "Mouse sensitivity:" msgstr "滑鼠靈敏度:" msgid "Select media images from program working directory" -msgstr "從程式工作目錄中選擇介質映像" +msgstr "從程式工作目錄中選擇媒體映像" msgid "PIT mode:" msgstr "PIT 模式:" @@ -1684,10 +1684,10 @@ msgid "&Auto-pause on focus loss" msgstr "失去焦點時自動暫停(&A)" msgid "WinBox is no longer supported" -msgstr "WinBox is no longer supported" +msgstr "不再支援 WinBox" msgid "Development of the WinBox manager stopped in 2022 due to a lack of maintainers. As we direct our efforts towards making 86Box even better, we have made the decision to no longer support WinBox as a manager.\n\nNo further updates will be provided through WinBox, and you may encounter incorrect behavior should you continue using it with newer versions of 86Box. Any bug reports related to WinBox behavior will be closed as invalid.\n\nGo to 86box.net for a list of other managers you can use." -msgstr "Development of the WinBox manager stopped in 2022 due to a lack of maintainers. As we direct our efforts towards making 86Box even better, we have made the decision to no longer support WinBox as a manager.\n\nNo further updates will be provided through WinBox, and you may encounter incorrect behavior should you continue using it with newer versions of 86Box. Any bug reports related to WinBox behavior will be closed as invalid.\n\nGo to 86box.net for a list of other managers you can use." +msgstr "WinBox 於 2022 年因缺乏維護者而停止發展。由於我們傾注全力於將 86Box 做的更好,我們決定不再支援將 WinBox 做為管理員。\n\n在 WinBox 未提供更新前,搭配新版本的 86Box 使用將導致不正確的行為。任何由 WinBox 引起的錯誤回報將以無效結案。\n\n請造訪 86box.net 網站以取得其他可用的管理員列表。" msgid "Generate" msgstr "產生" @@ -1723,7 +1723,7 @@ msgid "Show non-&primary monitors" msgstr "顯示非主要顯示器(&P)" msgid "Open screenshots &folder..." -msgstr "開啟螢幕截圖資料夾...(&F)" +msgstr "開啟螢幕擷圖資料夾...(&F)" msgid "Appl&y fullscreen stretch mode when maximized" msgstr "最大化時套用全螢幕拉伸模式(&Y)" @@ -1756,7 +1756,7 @@ msgid "Null Driver" msgstr "空驅動程式" msgid "NIC:" -msgstr "NIC:" +msgstr "網路卡:" msgid "NIC %1 (%2) %3" msgstr "網路卡 %1 (%2) %3" @@ -1771,10 +1771,10 @@ msgid "Use target framerate:" msgstr "使用目標影格速率:" msgid " fps" -msgstr "fps" +msgstr " fps" msgid "VSync" -msgstr "VSync" +msgstr "垂直同步" msgid "Synchronize with video" msgstr "與視訊同步" @@ -1789,10 +1789,10 @@ msgid "Browse..." msgstr "瀏覽..." msgid "Couldn't create OpenGL context." -msgstr "無法建立 OpenGL 上下文。" +msgstr "無法建立 OpenGL 內容。" msgid "Couldn't switch to OpenGL context." -msgstr "無法切換至 OpenGL 上下文。" +msgstr "無法切換至 OpenGL 內容。" msgid "OpenGL version 3.0 or greater is required. Current version is %1.%2" msgstr "需要 OpenGL 版本 3.0 或更高。目前版本為 %1.%2" @@ -1819,7 +1819,7 @@ msgid "I Copied It" msgstr "我已複製這台機器" msgid "86Box Monitor #" -msgstr "86Box Monitor " +msgstr "86Box 顯示器 #" msgid "No MCA devices." msgstr "沒有 MCA 裝置。" @@ -1855,7 +1855,7 @@ msgid "VDE Socket:" msgstr "VDE 插座:" msgid "TAP Bridge Device:" -msgstr "" +msgstr "TAP 橋接裝置:" msgid "86Box Unit Tester" msgstr "86Box 單元測試器" @@ -1927,7 +1927,7 @@ msgid "3M MicroTouch (Serial)" msgstr "3M MicroTouch (序列埠)" msgid "Default Baud rate" -msgstr "預設波特率" +msgstr "預設鮑率" msgid "[COM] Standard Hayes-compliant Modem" msgstr "[COM] 標準 Hayes 相容的數據機" @@ -1999,7 +1999,7 @@ msgid "Enable BIOS extension ROM Writes (ROM #4)" msgstr "啟用 BIOS 擴充 ROM 寫入 (ROM 4)" msgid "Linear framebuffer base" -msgstr "線性圖框緩衝記憶體的底座" +msgstr "線性圖框緩衝記憶體的起始位址" msgid "Address" msgstr "位址" @@ -2023,7 +2023,7 @@ msgid "BIOS Language" msgstr "BIOS 語言" msgid "IBM 5161 Expansion Unit" -msgstr "IBM 5161 擴充裝置" +msgstr "IBM 5161 擴充單元" msgid "IBM Cassette Basic" msgstr "IBM 磁帶式 BASIC" @@ -2125,13 +2125,13 @@ msgid "Reverb Width" msgstr "混響寬度" msgid "Reverb Level" -msgstr "混響電平" +msgstr "混響位準" msgid "Interpolation Method" msgstr "插值方法" msgid "Dynamic Sample Loading" -msgstr "樣品的動態載入" +msgstr "動態取樣載入" msgid "Reverb Output Gain" msgstr "迴響輸出增益" @@ -2254,16 +2254,16 @@ msgid "WSS DMA" msgstr "WSS DMA" msgid "RTC IRQ" -msgstr "" +msgstr "實時時鐘 IRQ" msgid "RTC Port Address" -msgstr "" +msgstr "實時時鐘埠位址" msgid "Onboard RTC" -msgstr "" +msgstr "內建實時時鐘" msgid "Not installed" -msgstr "" +msgstr "未安裝" msgid "Enable OPL" msgstr "啟用 OPL" @@ -2641,16 +2641,16 @@ msgid "Bochs latest" msgstr "Bochs 最新" msgid "Apply overscan deltas" -msgstr "套用過掃描三角區" +msgstr "套用過掃描差值" msgid "Mono Interlaced" -msgstr "單色隔行扫描" +msgstr "單色隔行掃描" msgid "Mono Non-Interlaced" msgstr "單色非隔行掃描" msgid "Color Interlaced" -msgstr "彩色隔行扫描" +msgstr "彩色隔行掃描" msgid "Color Non-Interlaced" msgstr "彩色非隔行掃描" @@ -2704,7 +2704,7 @@ msgid "Parallel Line Internet Protocol" msgstr "Parallel Line Internet Protocol" msgid "Protection Dongle for Savage Quest" -msgstr "用於 Savage Quest 的保護加密狗" +msgstr "用於 Savage Quest 的防拷保護鎖" msgid "Serial Passthrough Device" msgstr "序列埠直通裝置" @@ -2743,7 +2743,7 @@ msgid "&Unmute" msgstr "解除靜音(&U)" msgid "Softfloat FPU" -msgstr "Softfloat FPU" +msgstr "Softfloat 浮點運算器模擬" msgid "High performance impact" msgstr "對效能影響大" @@ -2773,7 +2773,7 @@ msgid "[Generic] 2000 (7200 RPM)" msgstr "[通用] 2000 (7200 轉速)" msgid "IBM 8514/A clone (ISA)" -msgstr "IBM 8514/A 克隆 (ISA)" +msgstr "IBM 8514/A 相容品 (ISA)" msgid "Vendor" msgstr "製造商" @@ -2893,10 +2893,10 @@ msgid "Toggle fullscreen" msgstr "切換全螢幕" msgid "Toggle UI in fullscreen" -msgstr "" +msgstr "切換使用者介面至全螢幕" msgid "Screenshot" -msgstr "螢幕截圖" +msgstr "螢幕擷圖" msgid "Release mouse pointer" msgstr "放開滑鼠游標" @@ -2920,7 +2920,7 @@ msgid "Local Switch" msgstr "本地交換器" msgid "Remote Switch" -msgstr "遙控交換器" +msgstr "遠端交換器" msgid "Switch:" msgstr "交換器:" @@ -3052,10 +3052,10 @@ msgid "Sharpness" msgstr "銳利度" msgid "&CGA composite settings..." -msgstr "CGA 複合模式的設定...(&C)" +msgstr "CGA 複合視訊的設定...(&C)" msgid "CGA composite settings" -msgstr "CGA 複合模式的設定" +msgstr "CGA 複合視訊的設定" msgid "Monitor EDID" msgstr "監視器的 EDID" From 56fae566c5e73227bd41d949876263924da53246 Mon Sep 17 00:00:00 2001 From: Bozo Scum Date: Wed, 26 Nov 2025 17:02:23 +0800 Subject: [PATCH 13/39] Update zh-TW.po * improve consistency of translated terms * replace some translations with more appropriate terms --- src/qt/languages/zh-TW.po | 142 +++++++++++++++++++------------------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po index 4a2279ea7..5fabdbf81 100644 --- a/src/qt/languages/zh-TW.po +++ b/src/qt/languages/zh-TW.po @@ -121,10 +121,10 @@ msgid "&Fullscreen" msgstr "全螢幕(&F)" msgid "Fullscreen &stretch mode" -msgstr "全螢幕拉伸模式(&S)" +msgstr "全螢幕延展模式(&S)" msgid "&Full screen stretch" -msgstr "全螢幕拉伸(&F)" +msgstr "全螢幕延展(&F)" msgid "&4:3" msgstr "4:3(&4)" @@ -142,7 +142,7 @@ msgid "EGA/(S)&VGA settings" msgstr "EGA/(S)VGA 設定(&V)" msgid "&Inverted VGA monitor" -msgstr "VGA 顯示器反色顯示(&I)" +msgstr "VGA 監視器反色顯示(&I)" msgid "VGA screen &type" msgstr "VGA 螢幕類型(&T)" @@ -160,13 +160,13 @@ msgid "Generic RGBI color monitor" msgstr "通用 RGBI 彩色監視器" msgid "&Amber monitor" -msgstr "琥珀色單色顯示器(&A)" +msgstr "琥珀色單色監視器(&A)" msgid "&Green monitor" -msgstr "綠色單色顯示器(&G)" +msgstr "綠色單色監視器(&G)" msgid "&White monitor" -msgstr "白色單色顯示器(&W)" +msgstr "白色單色監視器(&W)" msgid "Grayscale &conversion type" msgstr "灰階轉換類型(&C)" @@ -232,13 +232,13 @@ msgid "&About 86Box..." msgstr "關於 86Box(&A)..." msgid "&New image..." -msgstr "新增映像(&N)..." +msgstr "新增影像(&N)..." msgid "&Existing image..." -msgstr "開啟已存在的映像(&E)..." +msgstr "開啟已存在的影像(&E)..." msgid "Existing image (&Write-protected)..." -msgstr "以防寫保護開啟已存在的映像(&W)..." +msgstr "以防寫保護開啟已存在的影像(&W)..." msgid "&Record" msgstr "錄製(&R)" @@ -256,7 +256,7 @@ msgid "E&ject" msgstr "退出(&J)" msgid "&Image..." -msgstr "映像(&I)..." +msgstr "影像(&I)..." msgid "E&xport to 86F..." msgstr "匯出為 86F 格式(&x)..." @@ -268,7 +268,7 @@ msgid "E&mpty" msgstr "空置光碟機(&M)" msgid "Reload previous image" -msgstr "載入上一個映像" +msgstr "載入上一個影像" msgid "&Folder..." msgstr "資料夾(&F)..." @@ -310,7 +310,7 @@ msgid "Sound Gain" msgstr "音量增益" msgid "New Image" -msgstr "新增映像" +msgstr "新增影像" msgid "Settings" msgstr "設定" @@ -376,7 +376,7 @@ msgid "Frequency:" msgstr "頻率:" msgid "FPU:" -msgstr "浮點處理器 (FPU):" +msgstr "浮點運算器 (FPU):" msgid "Wait states:" msgstr "等待狀態 (WS):" @@ -589,7 +589,7 @@ msgid "&New..." msgstr "新增(&N)..." msgid "&Existing..." -msgstr "已有映像(&E)..." +msgstr "已有影像(&E)..." msgid "&Remove" msgstr "移除(&R)" @@ -619,7 +619,7 @@ msgid "Type:" msgstr "類型:" msgid "Image Format:" -msgstr "映像格式:" +msgstr "影像格式:" msgid "Block Size:" msgstr "區塊大小:" @@ -643,10 +643,10 @@ msgid "MO:" msgstr "磁光碟:" msgid "Removable disks:" -msgstr "可移除:" +msgstr "可移除磁碟:" msgid "Removable disk drives:" -msgstr "可移除磁碟:" +msgstr "可移除磁碟機:" msgid "ZIP 250" msgstr "ZIP 250" @@ -685,7 +685,7 @@ msgid "ISABugger device" msgstr "ISABugger 裝置" msgid "POST card" -msgstr "自檢 (POST) 卡" +msgstr "自我檢測 (POST) 卡" msgid "86Box" msgstr "86Box" @@ -715,7 +715,7 @@ msgid "Image %1" msgstr "影像 %1" msgid "86Box could not find any usable ROM images.\n\nPlease download a ROM set and extract it into the \"roms\" directory." -msgstr "86Box 找不到任何可用的 ROM 映像。\n\n請下載 ROM 套件並將其解壓到 \"roms\" 資料夾。" +msgstr "86Box 找不到任何可用的 ROM 影像。\n\n請下載 ROM 套件並將其解壓到 \"roms\" 資料夾。" msgid "(empty)" msgstr "(空)" @@ -733,13 +733,13 @@ msgid "Off" msgstr "關" msgid "All images" -msgstr "所有映像" +msgstr "所有影像" msgid "Basic sector images" -msgstr "基本磁區映像" +msgstr "基本磁區影像" msgid "Surface images" -msgstr "表面映像" +msgstr "表面影像" msgid "Machine \"%hs\" is not available due to missing ROMs in the roms/machines directory. Switching to an available machine." msgstr "由於 roms/machines 資料夾中缺少合適的 ROM,機型 \"%hs\" 不可用。將切換到其他可用機型。" @@ -994,10 +994,10 @@ msgid "&Floppy %1 (%2): %3" msgstr "軟碟 %1 (%2): %3(&F)" msgid "Advanced sector images" -msgstr "進階磁區映像" +msgstr "進階磁區影像" msgid "Flux images" -msgstr "Flux 映像" +msgstr "Flux 影像" msgid "Are you sure you want to hard reset the emulated machine?" msgstr "確定要硬重設模擬器嗎?" @@ -1018,7 +1018,7 @@ msgid "&MO %1 (%2): %3" msgstr "磁光碟 %1 (%2): %3(&M)" msgid "MO images" -msgstr "磁光碟映像" +msgstr "磁光碟影像" msgid "Welcome to 86Box!" msgstr "歡迎使用 86Box!" @@ -1057,7 +1057,7 @@ msgid "86Box v" msgstr "86Box v" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." -msgstr "一個舊式電腦模擬器\n\n作者: Miran Grča (OBattler)、RichardG867、Jasmine Iwanek、TC1995、coldbrewed、Teemu Korhonen (Manaatti)、Joakim L. Gilje、Adrien Moulin (elyosh)、Daniel Balsom (gloriouscow)、Cacodemon345、Fred N. van Kempen (waltje)、Tiseno100、reenigne 等人。\n\n之前的核心貢獻來自 Sarah Walker、leilei、JohnElliott、greatpsycho 等人。\n\n本軟體依據 GNU 通用公共授權第二版或更新版本發布。詳情見 LICENSE 檔案。" +msgstr "一個舊式電腦模擬器\n\n作者: Miran Grča (OBattler)、RichardG867、Jasmine Iwanek、TC1995、coldbrewed、Teemu Korhonen (Manaatti)、Joakim L. Gilje、Adrien Moulin (elyosh)、Daniel Balsom (gloriouscow)、Cacodemon345、Fred N. van Kempen (waltje)、Tiseno100、reenigne 等人。\n\n之前的核心貢獻來自 Sarah Walker、leilei、JohnElliott、greatpsycho 等人。\n\n本軟體依據 GNU 通用公共授權第二版或更新版本發佈。詳情見 LICENSE 檔案。" msgid "Hardware not available" msgstr "硬體不可用" @@ -1087,13 +1087,13 @@ msgid "Don't reset" msgstr "不重設" msgid "CD-ROM images" -msgstr "光碟映像" +msgstr "光碟影像" msgid "%1 Device Configuration" msgstr "%1 裝置設定" msgid "Monitor in sleep mode" -msgstr "顯示器處在睡眠狀態" +msgstr "監視器處在睡眠狀態" msgid "GLSL shaders" msgstr "GLSL 著色器" @@ -1114,7 +1114,7 @@ msgid "C&assette: %1" msgstr "磁帶: %1(&A)" msgid "Cassette images" -msgstr "磁帶映像" +msgstr "磁帶影像" msgid "Cartridge %1: %2" msgstr "卡帶 %1: %2" @@ -1123,7 +1123,7 @@ msgid "Car&tridge %1: %2" msgstr "卡帶 %1: %2(&A)" msgid "Cartridge images" -msgstr "卡帶映像" +msgstr "卡帶影像" msgid "Resume execution" msgstr "恢復執行" @@ -1441,13 +1441,13 @@ msgid "Add Existing Hard Disk" msgstr "增加已存在的硬碟" msgid "HDI disk images cannot be larger than 4 GB." -msgstr "HDI 磁碟映像不能超過 4 GB。" +msgstr "HDI 磁碟影像不能超過 4 GB。" msgid "Disk images cannot be larger than 127 GB." -msgstr "磁碟映像不能超過 127 GB。" +msgstr "磁碟影像不能超過 127 GB。" msgid "Hard disk images" -msgstr "硬碟映像" +msgstr "硬碟影像" msgid "Unable to read file" msgstr "無法讀取檔案" @@ -1456,16 +1456,16 @@ msgid "Unable to write file" msgstr "無法寫入檔案" msgid "HDI or HDX images with a sector size other than 512 are not supported." -msgstr "不支援非 512 位元組磁區大小的 HDI 或 HDX 映像。" +msgstr "不支援非 512 位元組磁區大小的 HDI 或 HDX 影像。" msgid "Disk image file already exists" -msgstr "磁碟映像檔案已存在" +msgstr "磁碟影像檔案已存在" msgid "Please specify a valid file name." msgstr "請指定有效的檔案名。" msgid "Disk image created" -msgstr "已創建磁碟映像" +msgstr "已創建磁碟影像" msgid "Make sure the file exists and is readable." msgstr "請確定此檔案已存在並可讀取。" @@ -1474,16 +1474,16 @@ msgid "Make sure the file is being saved to a writable directory." msgstr "請確定此檔案儲存在可寫目錄中。" msgid "Disk image too large" -msgstr "磁碟映像太大" +msgstr "磁碟影像太大" msgid "Remember to partition and format the newly-created drive." -msgstr "請記得為新創建的映像分區並格式化。" +msgstr "請記得為新創建的影像分區並格式化。" msgid "The selected file will be overwritten. Are you sure you want to use it?" msgstr "選定的檔案將被覆蓋。確定繼續使用此檔案嗎?" msgid "Unsupported disk image" -msgstr "不支援的磁碟映像" +msgstr "不支援的磁碟影像" msgid "Overwrite" msgstr "覆蓋" @@ -1492,13 +1492,13 @@ msgid "Don't overwrite" msgstr "不覆蓋" msgid "Raw image" -msgstr "原始映像" +msgstr "原始影像" msgid "HDI image" -msgstr "HDI 映像" +msgstr "HDI 影像" msgid "HDX image" -msgstr "HDX 映像" +msgstr "HDX 影像" msgid "Fixed-size VHD" msgstr "固定大小 VHD" @@ -1513,13 +1513,13 @@ msgid "(N/A)" msgstr "(不適用)" msgid "Raw image (.img)" -msgstr "原始映像 (.img)" +msgstr "原始影像 (.img)" msgid "HDI image (.hdi)" -msgstr "HDI 映像 (.hdi)" +msgstr "HDI 影像 (.hdi)" msgid "HDX image (.hdx)" -msgstr "HDX 映像 (.hdx)" +msgstr "HDX 影像 (.hdx)" msgid "Fixed-size VHD (.vhd)" msgstr "固定大小 VHD (.vhd)" @@ -1543,7 +1543,7 @@ msgid "Select the parent VHD" msgstr "選取父 VHD 檔案" msgid "This could mean that the parent image was modified after the differencing image was created.\n\nIt can also happen if the image files were moved or copied, or by a bug in the program that created this disk.\n\nDo you want to fix the timestamps?" -msgstr "父映像可能在創建差異映像後被修改。\n\n如果映像檔案被移動或複製,或創建此磁碟的程式中存在錯誤,也可能發生這種情況。\n\n是否需要修復時間戳?" +msgstr "父影像可能在創建差異影像後被修改。\n\n如果影像檔案被移動或複製,或創建此磁碟的程式中存在錯誤,也可能發生這種情況。\n\n是否需要修復時間戳?" msgid "Parent and child disk timestamps do not match" msgstr "父碟與子碟的時間戳不匹配" @@ -1666,7 +1666,7 @@ msgid "Mouse sensitivity:" msgstr "滑鼠靈敏度:" msgid "Select media images from program working directory" -msgstr "從程式工作目錄中選擇媒體映像" +msgstr "從程式工作目錄中選擇媒體影像" msgid "PIT mode:" msgstr "PIT 模式:" @@ -1720,16 +1720,16 @@ msgid "&MCA devices..." msgstr "&MCA 裝置..." msgid "Show non-&primary monitors" -msgstr "顯示非主要顯示器(&P)" +msgstr "顯示非主要監視器(&P)" msgid "Open screenshots &folder..." msgstr "開啟螢幕擷圖資料夾...(&F)" msgid "Appl&y fullscreen stretch mode when maximized" -msgstr "最大化時套用全螢幕拉伸模式(&Y)" +msgstr "最大化時套用全螢幕延展模式(&Y)" msgid "&Cursor/Puck" -msgstr "游標/球棒(&C)" +msgstr "數位板標定器(&C)" msgid "&Pen" msgstr "筆(&P)" @@ -1738,10 +1738,10 @@ msgid "&Host CD/DVD Drive (%1:)" msgstr "主機 CD/DVD 光碟機 (%1:) (&H)" msgid "&Connected" -msgstr "已連線" +msgstr "已連線(&C)" msgid "Clear image &history" -msgstr "清除映像歷史記錄(&H)" +msgstr "清除影像歷史記錄(&H)" msgid "Create..." msgstr "建立..." @@ -1804,7 +1804,7 @@ msgid "\nFalling back to software rendering." msgstr "\n回退到軟體渲染。" msgid "

When selecting media images (CD-ROM, floppy, etc.) the open dialog will start in the same directory as the 86Box configuration file. This setting will likely only make a difference on macOS.

" -msgstr "

當選擇媒體映像 (CD-ROM、軟碟等) 時,開啟對話方塊會在與 86Box 設定檔相同的目錄中開始。此設定可能只會在 macOS 上有所影響。

" +msgstr "

當選擇媒體影像 (CD-ROM、軟碟等) 時,開啟對話方塊會在與 86Box 設定檔相同的目錄中開始。此設定可能只會在 macOS 上有所影響。

" msgid "This machine might have been moved or copied." msgstr "這台機器可能已被移動或複製。" @@ -1819,7 +1819,7 @@ msgid "I Copied It" msgstr "我已複製這台機器" msgid "86Box Monitor #" -msgstr "86Box 顯示器 #" +msgstr "86Box 監視器 #" msgid "No MCA devices." msgstr "沒有 MCA 裝置。" @@ -1933,16 +1933,16 @@ msgid "[COM] Standard Hayes-compliant Modem" msgstr "[COM] 標準 Hayes 相容的數據機" msgid "Roland MT-32 Emulation" -msgstr "羅蘭 MT-32 模擬" +msgstr "Roland MT-32 模擬" msgid "Roland MT-32 (New) Emulation" -msgstr "羅蘭 MT-32(新)模擬" +msgstr "Roland MT-32(新)模擬" msgid "Roland CM-32L Emulation" -msgstr "羅蘭 CM-32L 模擬" +msgstr "Roland CM-32L 模擬" msgid "Roland CM-32LN Emulation" -msgstr "羅蘭 CM-32LN 模擬" +msgstr "Roland CM-32LN 模擬" msgid "OPL4-ML Daughterboard" msgstr "OPL4-ML 子板" @@ -2014,7 +2014,7 @@ msgid "Parallel port IRQ" msgstr "並列埠的 IRQ" msgid "BIOS Revision" -msgstr "BIOS 版本" +msgstr "BIOS 修訂版號" msgid "BIOS Version" msgstr "BIOS 版本" @@ -2140,7 +2140,7 @@ msgid "Reversed stereo" msgstr "反向立體聲" msgid "Nice ramp" -msgstr "漂亮的斜坡" +msgstr "平滑漸變曲線" msgid "Hz" msgstr "赫茲" @@ -2155,7 +2155,7 @@ msgid "RTS toggle" msgstr "RTS 切換" msgid "Revision" -msgstr "修訂" +msgstr "修訂版號" msgid "Controller" msgstr "控制器" @@ -2323,7 +2323,7 @@ msgid "Snow emulation" msgstr "雪花模擬" msgid "Monitor type" -msgstr "顯示器類型" +msgstr "監視器類型" msgid "Character set" msgstr "字元集" @@ -2464,7 +2464,7 @@ msgid "Non-timed (original)" msgstr "非定時 (原始)" msgid "45 Hz (JMP2 not populated)" -msgstr "45 Hz (JMP2 未填充)" +msgstr "45 Hz (JMP2 未安插)" msgid "Two" msgstr "二鍵" @@ -2572,7 +2572,7 @@ msgid "Color (IBM 5153)" msgstr "彩色(IBM 5153)" msgid "Simple doubling" -msgstr "簡單加倍" +msgstr "簡單倍增" msgid "sRGB interpolation" msgstr "sRGB 插值" @@ -2632,7 +2632,7 @@ msgid "U.S. English" msgstr "美國英語" msgid "Scandinavian" -msgstr "斯堪的納維亞語" +msgstr "斯堪地那維亞語" msgid "Other languages" msgstr "其他語言" @@ -2866,7 +2866,7 @@ msgid "Keybind" msgstr "鍵盤綁定" msgid "Clear binding" -msgstr "透明裝訂" +msgstr "解除綁定" msgid "Bind" msgstr "綁定" @@ -2941,7 +2941,7 @@ msgid "&Wipe NVRAM" msgstr "清除(&W) NVRAM" msgid "This will delete all NVRAM (and related) files of the virtual machine located in the \"nvr\" subdirectory. You'll have to reconfigure the BIOS (and possibly other devices inside the VM) settings again if applicable.\n\nAre you sure you want to wipe all NVRAM contents of the virtual machine \"%1\"?" -msgstr "這將刪除位於 (\"nvr\" 子目錄中的) 虛擬機器的所有 NVRAM (和相關) 檔案。如果適用的話,您必須重新設定 BIOS (可能還有虛擬機器內的其他裝置) 設定。\n\n您確定要清除虛擬機 \"%1\" 的所有 NVRAM 內容嗎?" +msgstr "這將刪除位於 (\"nvr\" 子目錄中的) 虛擬機器的所有 NVRAM (和相關) 檔案。如果套用的話,您必須重新設定 BIOS (可能還有虛擬機器內的其他裝置) 設定。\n\n您確定要清除虛擬機 \"%1\" 的所有 NVRAM 內容嗎?" msgid "Success" msgstr "成功" @@ -2968,7 +2968,7 @@ msgid "Check for updates on startup" msgstr "啟動時檢查更新" msgid "Unable to determine release information" -msgstr "無法確定釋放資訊" +msgstr "無法確定版本發佈資訊" msgid "There was an error checking for updates:\n\n%1\n\nPlease try again later." msgstr "檢查更新時出錯:\n\n%1\n\n請稍後再試。" @@ -2977,7 +2977,7 @@ msgid "Update check complete" msgstr "更新檢查完成" msgid "stable" -msgstr "穩定" +msgstr "穩定版" msgid "beta" msgstr "測試版" @@ -3019,7 +3019,7 @@ msgid "86Box Update" msgstr "86Box 更新" msgid "Release notes:" -msgstr "發佈說明:" +msgstr "版本發佈說明:" msgid "%1 Hz" msgstr "%1 Hz" @@ -3073,7 +3073,7 @@ msgid "OpenGL input scale" msgstr "OpenGL 的輸入比例" msgid "OpenGL input stretch mode" -msgstr "OpenGL 的輸入拉伸模式" +msgstr "OpenGL 的輸入延展模式" msgid "Color scheme" msgstr "配色方案" From 961131201e5bce2cfd7d68ae6c4dfa0b68b532b3 Mon Sep 17 00:00:00 2001 From: AITUS95 <48457684+AITUS95@users.noreply.github.com> Date: Wed, 26 Nov 2025 14:04:24 +0100 Subject: [PATCH 14/39] voodoo: reduce FIFO thread wake frequency to avoid performance stalls --- src/video/vid_voodoo_fifo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video/vid_voodoo_fifo.c b/src/video/vid_voodoo_fifo.c index 612ca4c18..b7ae77c64 100644 --- a/src/video/vid_voodoo_fifo.c +++ b/src/video/vid_voodoo_fifo.c @@ -60,7 +60,7 @@ voodoo_fifo_log(const char *fmt, ...) # define voodoo_fifo_log(fmt, ...) #endif -#define WAKE_DELAY (TIMER_USEC * 100) +#define WAKE_DELAY (TIMER_USEC * 1000) void voodoo_wake_fifo_thread(voodoo_t *voodoo) { From 460873783165b945476015bbbe4467fe24b546e5 Mon Sep 17 00:00:00 2001 From: AITUS95 <48457684+AITUS95@users.noreply.github.com> Date: Wed, 26 Nov 2025 14:05:24 +0100 Subject: [PATCH 15/39] voodoo: improve CMDFIFO wake logic to reduce excessive FIFO processing --- src/video/vid_voodoo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video/vid_voodoo.c b/src/video/vid_voodoo.c index fe02b7811..44f3228a4 100644 --- a/src/video/vid_voodoo.c +++ b/src/video/vid_voodoo.c @@ -431,7 +431,7 @@ voodoo_writel(uint32_t addr, uint32_t val, void *priv) #endif *(uint32_t *) &voodoo->fb_mem[(voodoo->cmdfifo_base + (addr & 0x3fffc)) & voodoo->fb_mask] = val; voodoo->cmdfifo_depth_wr++; - if ((voodoo->cmdfifo_depth_wr - voodoo->cmdfifo_depth_rd) < 20) + if ((voodoo->cmdfifo_depth_wr - voodoo->cmdfifo_depth_rd) > 200) voodoo_wake_fifo_thread(voodoo); } else switch (addr & 0x3fc) { From 689fd67d63b8862a96ae7cccaf5e5a88f4c67385 Mon Sep 17 00:00:00 2001 From: AITUS95 <48457684+AITUS95@users.noreply.github.com> Date: Wed, 26 Nov 2025 15:01:09 +0100 Subject: [PATCH 16/39] Increase command FIFO depth threshold from 200 to 300 --- src/video/vid_voodoo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video/vid_voodoo.c b/src/video/vid_voodoo.c index 44f3228a4..04c1c7305 100644 --- a/src/video/vid_voodoo.c +++ b/src/video/vid_voodoo.c @@ -431,7 +431,7 @@ voodoo_writel(uint32_t addr, uint32_t val, void *priv) #endif *(uint32_t *) &voodoo->fb_mem[(voodoo->cmdfifo_base + (addr & 0x3fffc)) & voodoo->fb_mask] = val; voodoo->cmdfifo_depth_wr++; - if ((voodoo->cmdfifo_depth_wr - voodoo->cmdfifo_depth_rd) > 200) + if ((voodoo->cmdfifo_depth_wr - voodoo->cmdfifo_depth_rd) > 300) voodoo_wake_fifo_thread(voodoo); } else switch (addr & 0x3fc) { From ee48c1be89a0baa1d62738bcd54783ab2935b813 Mon Sep 17 00:00:00 2001 From: AITUS95 <48457684+AITUS95@users.noreply.github.com> Date: Wed, 26 Nov 2025 15:02:23 +0100 Subject: [PATCH 17/39] Increase WAKE_DELAY from 1000 to 2000 --- src/video/vid_voodoo_fifo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video/vid_voodoo_fifo.c b/src/video/vid_voodoo_fifo.c index b7ae77c64..9b273d317 100644 --- a/src/video/vid_voodoo_fifo.c +++ b/src/video/vid_voodoo_fifo.c @@ -60,7 +60,7 @@ voodoo_fifo_log(const char *fmt, ...) # define voodoo_fifo_log(fmt, ...) #endif -#define WAKE_DELAY (TIMER_USEC * 1000) +#define WAKE_DELAY (TIMER_USEC * 2000) void voodoo_wake_fifo_thread(voodoo_t *voodoo) { From 1f45cf2872ac82f3e1035a87f2bf5426ca8574e0 Mon Sep 17 00:00:00 2001 From: AITUS95 <48457684+AITUS95@users.noreply.github.com> Date: Wed, 26 Nov 2025 17:04:54 +0100 Subject: [PATCH 18/39] voodoo1: restrict increased CMDFIFO threshold to VOODOO_1 only --- src/video/vid_voodoo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video/vid_voodoo.c b/src/video/vid_voodoo.c index 04c1c7305..c17f8bc32 100644 --- a/src/video/vid_voodoo.c +++ b/src/video/vid_voodoo.c @@ -431,7 +431,7 @@ voodoo_writel(uint32_t addr, uint32_t val, void *priv) #endif *(uint32_t *) &voodoo->fb_mem[(voodoo->cmdfifo_base + (addr & 0x3fffc)) & voodoo->fb_mask] = val; voodoo->cmdfifo_depth_wr++; - if ((voodoo->cmdfifo_depth_wr - voodoo->cmdfifo_depth_rd) > 300) + if ((voodoo->cmdfifo_depth_wr - voodoo->cmdfifo_depth_rd) > (voodoo->type == VOODOO_1 ? 300 : 20)) voodoo_wake_fifo_thread(voodoo); } else switch (addr & 0x3fc) { From e5e51b3c34af0a460ed217bb35c6ddbaebbecb38 Mon Sep 17 00:00:00 2001 From: AITUS95 <48457684+AITUS95@users.noreply.github.com> Date: Wed, 26 Nov 2025 17:06:15 +0100 Subject: [PATCH 19/39] voodoo1: apply FIFO wake delay only when type == VOODOO_1 Updated the wake delay for the FIFO thread based on the card type. --- src/video/vid_voodoo_fifo.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/video/vid_voodoo_fifo.c b/src/video/vid_voodoo_fifo.c index 9b273d317..4530e6b01 100644 --- a/src/video/vid_voodoo_fifo.c +++ b/src/video/vid_voodoo_fifo.c @@ -60,7 +60,10 @@ voodoo_fifo_log(const char *fmt, ...) # define voodoo_fifo_log(fmt, ...) #endif -#define WAKE_DELAY (TIMER_USEC * 2000) +#define WAKE_DELAY_DEFAULT (TIMER_USEC * 100) + +/* Per-card wake delay: Voodoo1 uses a larger delay to reduce FIFO wake frequency */ +#define WAKE_DELAY_OF(v) ((v)->type == VOODOO_1 ? (TIMER_USEC * 2000) : WAKE_DELAY_DEFAULT) void voodoo_wake_fifo_thread(voodoo_t *voodoo) { @@ -69,7 +72,7 @@ voodoo_wake_fifo_thread(voodoo_t *voodoo) process one word and go back to sleep, requiring it to be woken on almost every write. Instead, wait a short while so that the CPU emulation writes more data so we have more batched-up work.*/ - timer_set_delay_u64(&voodoo->wake_timer, WAKE_DELAY); + timer_set_delay_u64(&voodoo->wake_timer, WAKE_DELAY_OF(voodoo)); } } From 089e8daedfd9bf1975df90df440d22bac26138fb Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Sat, 22 Nov 2025 23:05:32 +0500 Subject: [PATCH 20/39] AZT2316A: Drop the capitalization in the "CODEC" option --- src/qt/languages/86box.pot | 6 ------ src/qt/languages/cs-CZ.po | 6 ------ src/qt/languages/de-DE.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/it-IT.po | 6 ------ src/qt/languages/ja-JP.po | 6 ------ src/qt/languages/ko-KR.po | 6 ------ src/qt/languages/nb-NO.po | 6 ------ src/qt/languages/nl-NL.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/sv-SE.po | 6 ------ src/qt/languages/tr-TR.po | 6 ------ src/qt/languages/uk-UA.po | 6 ------ src/qt/languages/vi-VN.po | 6 ------ src/qt/languages/zh-CN.po | 6 ------ src/qt/languages/zh-TW.po | 6 ------ src/sound/snd_azt2316a.c | 4 ++-- 25 files changed, 2 insertions(+), 146 deletions(-) diff --git a/src/qt/languages/86box.pot b/src/qt/languages/86box.pot index 9c3d59b68..3604a1145 100644 --- a/src/qt/languages/86box.pot +++ b/src/qt/languages/86box.pot @@ -2232,12 +2232,6 @@ msgstr "" msgid "Surround module" msgstr "" -msgid "CODEC" -msgstr "" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "" - msgid "SB Address" msgstr "" diff --git a/src/qt/languages/cs-CZ.po b/src/qt/languages/cs-CZ.po index 7ae3ecacf..ee4c32c76 100644 --- a/src/qt/languages/cs-CZ.po +++ b/src/qt/languages/cs-CZ.po @@ -2232,12 +2232,6 @@ msgstr "Síla filtru SID" msgid "Surround module" msgstr "Modul Surround" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Vyvolát přerušení CODEC při nastavení CODEC (potřebují některé ovladače)" - msgid "SB Address" msgstr "Adresa SB" diff --git a/src/qt/languages/de-DE.po b/src/qt/languages/de-DE.po index f348d0c2e..c31a26bd5 100644 --- a/src/qt/languages/de-DE.po +++ b/src/qt/languages/de-DE.po @@ -2232,12 +2232,6 @@ msgstr "SID-Filterstärke" msgid "Surround module" msgstr "Surround-Modul" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "CODEC-Interrupt bei CODEC-Einrichtung auslösen (wird von einigen Treibern benötigt)" - msgid "SB Address" msgstr "SB-Adresse" diff --git a/src/qt/languages/es-ES.po b/src/qt/languages/es-ES.po index f35c31386..35d3de8b1 100644 --- a/src/qt/languages/es-ES.po +++ b/src/qt/languages/es-ES.po @@ -2232,12 +2232,6 @@ msgstr "Fuerza del filtro de SID" msgid "Surround module" msgstr "Módulo Surround" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Activar la interrupción CODEC en la configuración CODEC (necesario para algunos controladores)" - msgid "SB Address" msgstr "Dirección del SB" diff --git a/src/qt/languages/fi-FI.po b/src/qt/languages/fi-FI.po index 1a586816b..c48381982 100644 --- a/src/qt/languages/fi-FI.po +++ b/src/qt/languages/fi-FI.po @@ -2232,12 +2232,6 @@ msgstr "SID-filtterin vahvuus" msgid "Surround module" msgstr "Surround-moduuli" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "CODEC-keskeytys CODEC-asennuksen yhteydessä (jotkut ohjaimet tarvitsevat sitä)" - msgid "SB Address" msgstr "SB-osoite" diff --git a/src/qt/languages/fr-FR.po b/src/qt/languages/fr-FR.po index f93289db1..cff3bdfc1 100644 --- a/src/qt/languages/fr-FR.po +++ b/src/qt/languages/fr-FR.po @@ -2232,12 +2232,6 @@ msgstr "Intensité du filtre SID" msgid "Surround module" msgstr "Module Surround" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Lever l'interruption CODEC lors de la configuration du CODEC (nécessaire pour certains pilotes)" - msgid "SB Address" msgstr "Adresse SB" diff --git a/src/qt/languages/hr-HR.po b/src/qt/languages/hr-HR.po index f24e9f8bf..eea0f032f 100644 --- a/src/qt/languages/hr-HR.po +++ b/src/qt/languages/hr-HR.po @@ -2232,12 +2232,6 @@ msgstr "Jačina filtra SID-a" msgid "Surround module" msgstr "Modul Surround" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Podigni prekid CODEC na postavljanju CODEC-a (potrebno nekim upravljačkim programima)" - msgid "SB Address" msgstr "Adresa SB-a" diff --git a/src/qt/languages/it-IT.po b/src/qt/languages/it-IT.po index d8933a426..fc99ce413 100644 --- a/src/qt/languages/it-IT.po +++ b/src/qt/languages/it-IT.po @@ -2232,12 +2232,6 @@ msgstr "Intensità filtro SID" msgid "Surround module" msgstr "Modulo surround" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Incrementa l'interrupt CODEC nella configurazione CODEC (necessario per alcuni driver)" - msgid "SB Address" msgstr "Indirizzo SB" diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po index 9b6f7bcb2..d6fc8fe41 100644 --- a/src/qt/languages/ja-JP.po +++ b/src/qt/languages/ja-JP.po @@ -2232,12 +2232,6 @@ msgstr "SIDフィルターの強度" msgid "Surround module" msgstr "サラウンド・モジュール" -msgid "CODEC" -msgstr "コーデック" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "CODECセットアップ時にCODEC割り込みを発生させる(一部のドライバで必要)" - msgid "SB Address" msgstr "SBアドレス" diff --git a/src/qt/languages/ko-KR.po b/src/qt/languages/ko-KR.po index 8ec5c817c..7110633a7 100644 --- a/src/qt/languages/ko-KR.po +++ b/src/qt/languages/ko-KR.po @@ -2232,12 +2232,6 @@ msgstr "SID 필터 강도" msgid "Surround module" msgstr "서라운드 모듈" -msgid "CODEC" -msgstr "코덱" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "코덱 설정 시 코덱 인터럽트 올리기(일부 드라이버에 필요)" - msgid "SB Address" msgstr "SB 주소" diff --git a/src/qt/languages/nb-NO.po b/src/qt/languages/nb-NO.po index 806388ebc..61995e7a4 100644 --- a/src/qt/languages/nb-NO.po +++ b/src/qt/languages/nb-NO.po @@ -2232,12 +2232,6 @@ msgstr "SID-filterstyrke" msgid "Surround module" msgstr "Surround-modul" -msgid "CODEC" -msgstr "Kodek" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Generer kodek-avbrudd ved kodek-oppsett (nødvendig for noen drivere)" - msgid "SB Address" msgstr "SB-adresse" diff --git a/src/qt/languages/nl-NL.po b/src/qt/languages/nl-NL.po index baafccf84..0c7c9e456 100644 --- a/src/qt/languages/nl-NL.po +++ b/src/qt/languages/nl-NL.po @@ -2232,12 +2232,6 @@ msgstr "SID-filtersterkte" msgid "Surround module" msgstr "Surroundmodule" -msgid "CODEC" -msgstr "Codec" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Verhoog CODEC interrupt bij CODEC setup (nodig voor sommige stuurprogramma's)" - msgid "SB Address" msgstr "SB-adres" diff --git a/src/qt/languages/pl-PL.po b/src/qt/languages/pl-PL.po index 7dfba8dbe..d0643f6a6 100644 --- a/src/qt/languages/pl-PL.po +++ b/src/qt/languages/pl-PL.po @@ -2232,12 +2232,6 @@ msgstr "Siła filtra SID" msgid "Surround module" msgstr "Moduł Surround" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Podnieś przerwanie CODEC podczas konfiguracji CODEC-a (wymagane przez niektóre sterowniki)" - msgid "SB Address" msgstr "Adres SB" diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index 756f0141d..04082ae93 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -2232,12 +2232,6 @@ msgstr "Força do Filtro SID" msgid "Surround module" msgstr "Módulo surround" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Aumentar a interrupção do CODEC na configuração do CODEC (necessário para alguns drivers)" - msgid "SB Address" msgstr "Endereço da SB" diff --git a/src/qt/languages/pt-PT.po b/src/qt/languages/pt-PT.po index 2528d580d..c7e2c432c 100644 --- a/src/qt/languages/pt-PT.po +++ b/src/qt/languages/pt-PT.po @@ -2232,12 +2232,6 @@ msgstr "Força do filtro do SID" msgid "Surround module" msgstr "Módulo Surround" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Ativar a interrupção do CODEC na configuração do CODEC (necessário para alguns controladores)" - msgid "SB Address" msgstr "Endereço SB" diff --git a/src/qt/languages/ru-RU.po b/src/qt/languages/ru-RU.po index f2ac0f510..e9a426b01 100644 --- a/src/qt/languages/ru-RU.po +++ b/src/qt/languages/ru-RU.po @@ -2232,12 +2232,6 @@ msgstr "Сила фильтра SID" msgid "Surround module" msgstr "Модуль объёмного звучания" -msgid "CODEC" -msgstr "Кодек" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Поднимать прерывание кодека при настройке кодека (необходимо некоторым драйверам)" - msgid "SB Address" msgstr "Адрес SB" diff --git a/src/qt/languages/sk-SK.po b/src/qt/languages/sk-SK.po index e9c81620c..3e6eab197 100644 --- a/src/qt/languages/sk-SK.po +++ b/src/qt/languages/sk-SK.po @@ -2232,12 +2232,6 @@ msgstr "Sila filtra SID" msgid "Surround module" msgstr "Surround modul" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Zvýšenie prerušenia CODEC pri nastavení CODEC (potrebné v niektorých ovládačoch)" - msgid "SB Address" msgstr "Adresa SB" diff --git a/src/qt/languages/sl-SI.po b/src/qt/languages/sl-SI.po index 3a9442912..bf3712693 100644 --- a/src/qt/languages/sl-SI.po +++ b/src/qt/languages/sl-SI.po @@ -2232,12 +2232,6 @@ msgstr "Jakost filtra SID-a" msgid "Surround module" msgstr "Prostorski modul" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Dvigni prekinitev za CODEC ob nastavitvi CODEC-a (to potrebujejo nekateri gonilniki)" - msgid "SB Address" msgstr "Naslov SB" diff --git a/src/qt/languages/sv-SE.po b/src/qt/languages/sv-SE.po index b5c2c380f..5f5e2361f 100644 --- a/src/qt/languages/sv-SE.po +++ b/src/qt/languages/sv-SE.po @@ -2232,12 +2232,6 @@ msgstr "SID filetstyrka" msgid "Surround module" msgstr "Sorround-modul" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Öka avbrottsnummer för CODEC vid CODEC-installation (krävs av vissa drivrutiner)" - msgid "SB Address" msgstr "Adress för SB" diff --git a/src/qt/languages/tr-TR.po b/src/qt/languages/tr-TR.po index b3f5804c3..531e8ccce 100644 --- a/src/qt/languages/tr-TR.po +++ b/src/qt/languages/tr-TR.po @@ -2232,12 +2232,6 @@ msgstr "SID Filtre Gücü" msgid "Surround module" msgstr "Surround modülü" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "CODEC kurulumunda CODEC kesmesini yükselt (bazı sürücüler tarafından gereklidir)" - msgid "SB Address" msgstr "SB adresi" diff --git a/src/qt/languages/uk-UA.po b/src/qt/languages/uk-UA.po index 183816e83..133b55815 100644 --- a/src/qt/languages/uk-UA.po +++ b/src/qt/languages/uk-UA.po @@ -2232,12 +2232,6 @@ msgstr "Сила фільтра SID" msgid "Surround module" msgstr "Модуль об'ємного звучання" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Піднімати переривання CODEC під час встановлення CODEC (потрібно для деяких драйверів)" - msgid "SB Address" msgstr "Адреса SB" diff --git a/src/qt/languages/vi-VN.po b/src/qt/languages/vi-VN.po index d45a7538b..efa1f474f 100644 --- a/src/qt/languages/vi-VN.po +++ b/src/qt/languages/vi-VN.po @@ -2232,12 +2232,6 @@ msgstr "Cường độ bộ lọc SID" msgid "Surround module" msgstr "Mô đun vòm" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "Tăng ngắt CODEC trên thiết lập CODEC (cần bởi một số trình điều khiển)" - msgid "SB Address" msgstr "Địa chỉ SB" diff --git a/src/qt/languages/zh-CN.po b/src/qt/languages/zh-CN.po index 41bfaad9f..d2b8cb817 100644 --- a/src/qt/languages/zh-CN.po +++ b/src/qt/languages/zh-CN.po @@ -2232,12 +2232,6 @@ msgstr "SID 滤镜强度" msgid "Surround module" msgstr "环绕声模块" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "在 CODEC 设置时引发 CODEC 中断(某些驱动程序需要)。" - msgid "SB Address" msgstr "Sound Blaster 地址" diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po index 5fabdbf81..af8a30028 100644 --- a/src/qt/languages/zh-TW.po +++ b/src/qt/languages/zh-TW.po @@ -2232,12 +2232,6 @@ msgstr "SID 過濾強度" msgid "Surround module" msgstr "環繞聲模組" -msgid "CODEC" -msgstr "CODEC" - -msgid "Raise CODEC interrupt on CODEC setup (needed by some drivers)" -msgstr "在 CODEC 設定時啟動 CODEC 中斷 (某些驅動程式需要)" - msgid "SB Address" msgstr "SB 位址" diff --git a/src/sound/snd_azt2316a.c b/src/sound/snd_azt2316a.c index 1b8eb14d0..3eebf616e 100644 --- a/src/sound/snd_azt2316a.c +++ b/src/sound/snd_azt2316a.c @@ -1467,7 +1467,7 @@ static const device_config_t azt1605_config[] = { // clang-format off { .name = "codec", - .description = "CODEC", + .description = "Codec", .type = CONFIG_SELECTION, .default_string = NULL, .default_int = AD1848_TYPE_CS4248, @@ -1585,7 +1585,7 @@ static const device_config_t azt2316a_config[] = { // clang-format off { .name = "codec", - .description = "CODEC", + .description = "Codec", .type = CONFIG_SELECTION, .default_string = NULL, .default_int = AD1848_TYPE_CS4248, From c6d1f71faedc813d63a486e77132e98a5967e9d1 Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Sun, 23 Nov 2025 13:03:42 +0500 Subject: [PATCH 21/39] qt_openglrenderer.cpp: Fix incorrect error message --- src/qt/languages/86box.pot | 3 --- src/qt/languages/cs-CZ.po | 3 --- src/qt/languages/de-DE.po | 3 --- src/qt/languages/es-ES.po | 3 --- src/qt/languages/fi-FI.po | 3 --- src/qt/languages/fr-FR.po | 3 --- src/qt/languages/hr-HR.po | 3 --- src/qt/languages/it-IT.po | 3 --- src/qt/languages/ja-JP.po | 3 --- src/qt/languages/ko-KR.po | 3 --- src/qt/languages/nb-NO.po | 3 --- src/qt/languages/nl-NL.po | 3 --- src/qt/languages/pl-PL.po | 3 --- src/qt/languages/pt-BR.po | 3 --- src/qt/languages/pt-PT.po | 3 --- src/qt/languages/ru-RU.po | 3 --- src/qt/languages/sk-SK.po | 3 --- src/qt/languages/sl-SI.po | 3 --- src/qt/languages/sv-SE.po | 3 --- src/qt/languages/tr-TR.po | 3 --- src/qt/languages/uk-UA.po | 3 --- src/qt/languages/vi-VN.po | 3 --- src/qt/languages/zh-CN.po | 3 --- src/qt/languages/zh-TW.po | 3 --- src/qt/qt_openglrenderer.cpp | 2 +- 25 files changed, 1 insertion(+), 73 deletions(-) diff --git a/src/qt/languages/86box.pot b/src/qt/languages/86box.pot index 3604a1145..6a28e7bf4 100644 --- a/src/qt/languages/86box.pot +++ b/src/qt/languages/86box.pot @@ -2820,9 +2820,6 @@ msgstr "" msgid "Could not load shader: %1" msgstr "" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "" - msgid "Could not load texture: %1" msgstr "" diff --git a/src/qt/languages/cs-CZ.po b/src/qt/languages/cs-CZ.po index ee4c32c76..21b62e63b 100644 --- a/src/qt/languages/cs-CZ.po +++ b/src/qt/languages/cs-CZ.po @@ -2820,9 +2820,6 @@ msgstr "Chyba GLSL" msgid "Could not load shader: %1" msgstr "Nebylo možné načíst shader: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "Je vyžadováno OpenGL verze 3.0 nebo větší. Současná verze GLSL je %1.%2" - msgid "Could not load texture: %1" msgstr "Nebylo možné načíst texturu: %1" diff --git a/src/qt/languages/de-DE.po b/src/qt/languages/de-DE.po index c31a26bd5..7771444d1 100644 --- a/src/qt/languages/de-DE.po +++ b/src/qt/languages/de-DE.po @@ -2820,9 +2820,6 @@ msgstr "GLSL-Fehler" msgid "Could not load shader: %1" msgstr "Shader konnte nicht geladen werden: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "OpenGL-Version 3.0 oder höher ist erforderlich. Die aktuelle GLSL-Version ist %1.%2" - msgid "Could not load texture: %1" msgstr "Textur konnte nicht geladen werden: %1" diff --git a/src/qt/languages/es-ES.po b/src/qt/languages/es-ES.po index 35d3de8b1..d6d4018bf 100644 --- a/src/qt/languages/es-ES.po +++ b/src/qt/languages/es-ES.po @@ -2820,9 +2820,6 @@ msgstr "Error de GLSL" msgid "Could not load shader: %1" msgstr "No fué posible cargar el shader: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "Se requiere la versión 3.0 o superior de OpenGL. La versión actual de GLSL es %1.%2" - msgid "Could not load texture: %1" msgstr "Error al cargar la textura: %1" diff --git a/src/qt/languages/fi-FI.po b/src/qt/languages/fi-FI.po index c48381982..8a81fc03f 100644 --- a/src/qt/languages/fi-FI.po +++ b/src/qt/languages/fi-FI.po @@ -2820,9 +2820,6 @@ msgstr "GLSL-virhe" msgid "Could not load shader: %1" msgstr "Varjostinta %1 ei voitu ladata" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "Vähintään OpenGL-versio 3.0 vaaditaan. Tämänhetkinen GLSL-versio on %1.%2" - msgid "Could not load texture: %1" msgstr "Tekstuuria ei voitu ladata: %1" diff --git a/src/qt/languages/fr-FR.po b/src/qt/languages/fr-FR.po index cff3bdfc1..31b027fc5 100644 --- a/src/qt/languages/fr-FR.po +++ b/src/qt/languages/fr-FR.po @@ -2820,9 +2820,6 @@ msgstr "Erreur GLSL" msgid "Could not load shader: %1" msgstr "Impossible de charger le shader %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "OpenGL version 3.0 ou supérieure requis. Version installée: %1.%2" - msgid "Could not load texture: %1" msgstr "Impossible de charger la texture %1" diff --git a/src/qt/languages/hr-HR.po b/src/qt/languages/hr-HR.po index eea0f032f..48a0b9f57 100644 --- a/src/qt/languages/hr-HR.po +++ b/src/qt/languages/hr-HR.po @@ -2820,9 +2820,6 @@ msgstr "Greška GLSL" msgid "Could not load shader: %1" msgstr "Nije moguće učitati shader: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "Potrebna je OpenGL verzija 3.0 ili novija. Trenutna GLSL verzija je %1.%2" - msgid "Could not load texture: %1" msgstr "Nije moguće učitati teksturu: %1" diff --git a/src/qt/languages/it-IT.po b/src/qt/languages/it-IT.po index fc99ce413..3d40bc598 100644 --- a/src/qt/languages/it-IT.po +++ b/src/qt/languages/it-IT.po @@ -2820,9 +2820,6 @@ msgstr "Errore GLSL" msgid "Could not load shader: %1" msgstr "Impossibile caricare lo shader: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "È richiesta la versione 3.0 di OpenGL o successiva. La versione GLSL corrente è %1.%2" - msgid "Could not load texture: %1" msgstr "Impossibile caricare la texture: %1" diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po index d6fc8fe41..b8df447d1 100644 --- a/src/qt/languages/ja-JP.po +++ b/src/qt/languages/ja-JP.po @@ -2820,9 +2820,6 @@ msgstr "GLSLエラー" msgid "Could not load shader: %1" msgstr "シェーダーを読み込めませんでした: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "OpenGLバージョン 3.0 以上が必要です。現在のGLSLバージョンは %1.%2 です。" - msgid "Could not load texture: %1" msgstr "テクスチャを読み込めませんでした: %1" diff --git a/src/qt/languages/ko-KR.po b/src/qt/languages/ko-KR.po index 7110633a7..105aac5e9 100644 --- a/src/qt/languages/ko-KR.po +++ b/src/qt/languages/ko-KR.po @@ -2820,9 +2820,6 @@ msgstr "GLSL 오류" msgid "Could not load shader: %1" msgstr "셰이더를 로드할 수 없습니다: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "OpenGL 버전 3.0 이상이 필요합니다. 현재 GLSL 버전은 %1.%2입니다" - msgid "Could not load texture: %1" msgstr "텍스처를 로드할 수 없습니다: %1" diff --git a/src/qt/languages/nb-NO.po b/src/qt/languages/nb-NO.po index 61995e7a4..1350b6ff8 100644 --- a/src/qt/languages/nb-NO.po +++ b/src/qt/languages/nb-NO.po @@ -2820,9 +2820,6 @@ msgstr "GLSL-feil" msgid "Could not load shader: %1" msgstr "Kunne ikke laste shader: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "OpenGL versjon 3.0 eller høyere kreves. Nåværende GLSL-versjon er %1.%2" - msgid "Could not load texture: %1" msgstr "Kunne ikke laste tekstur: %1" diff --git a/src/qt/languages/nl-NL.po b/src/qt/languages/nl-NL.po index 0c7c9e456..a2c39fd6d 100644 --- a/src/qt/languages/nl-NL.po +++ b/src/qt/languages/nl-NL.po @@ -2820,9 +2820,6 @@ msgstr "GLSL-fout" msgid "Could not load shader: %1" msgstr "Kon de shader niet laden: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "OpenGL versie 3.0 of hoger is vereist. Huidige GLSL-versie is %1.%2" - msgid "Could not load texture: %1" msgstr "Kon de textuur niet laden: %1" diff --git a/src/qt/languages/pl-PL.po b/src/qt/languages/pl-PL.po index d0643f6a6..455918005 100644 --- a/src/qt/languages/pl-PL.po +++ b/src/qt/languages/pl-PL.po @@ -2820,9 +2820,6 @@ msgstr "Błąd GLSL" msgid "Could not load shader: %1" msgstr "Nie udało się wczytać shadera: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "Wymagana jest wersja OpenGL 3.0 lub wyższa. Aktualna wersja GLSL to %1.%2" - msgid "Could not load texture: %1" msgstr "Nie udało się wczytać tekstury: %1" diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index 04082ae93..839023335 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -2820,9 +2820,6 @@ msgstr "Erro GLSL" msgid "Could not load shader: %1" msgstr "Não foi possível carregar o shader: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "OpenGL versão 3.0 ou superior é exigido. Versão atual GLSL é %1.%2" - msgid "Could not load texture: %1" msgstr "Não foi possível carregar a textura: %1" diff --git a/src/qt/languages/pt-PT.po b/src/qt/languages/pt-PT.po index c7e2c432c..e0764f0bd 100644 --- a/src/qt/languages/pt-PT.po +++ b/src/qt/languages/pt-PT.po @@ -2820,9 +2820,6 @@ msgstr "Erro de GLSL" msgid "Could not load shader: %1" msgstr "Não foi possível carregar o shader: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "É requerida a versão 3.0 ou mais nova do OpenGL. A versão actual de GLSL é %1.%2" - msgid "Could not load texture: %1" msgstr "Não foi possível carregar a textura: %1" diff --git a/src/qt/languages/ru-RU.po b/src/qt/languages/ru-RU.po index e9a426b01..65991e68f 100644 --- a/src/qt/languages/ru-RU.po +++ b/src/qt/languages/ru-RU.po @@ -2820,9 +2820,6 @@ msgstr "Ошибка GLSL" msgid "Could not load shader: %1" msgstr "Не удалось загрузить шейдер: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "Требуется OpenGL версии 3.0 или выше. Текущая версия GLSL %1.%2" - msgid "Could not load texture: %1" msgstr "Не удалось загрузить текстуру: %1" diff --git a/src/qt/languages/sk-SK.po b/src/qt/languages/sk-SK.po index 3e6eab197..d7a5ba5ac 100644 --- a/src/qt/languages/sk-SK.po +++ b/src/qt/languages/sk-SK.po @@ -2820,9 +2820,6 @@ msgstr "Chyba GLSL" msgid "Could not load shader: %1" msgstr "Nebol možné načítať shader: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "Je vyžadovaná verzia OpenGL 3.0 alebo vyššia. Aktuálna verzia GLSL je %1.%2" - msgid "Could not load texture: %1" msgstr "Nebolo možné načítať textúru: %1" diff --git a/src/qt/languages/sl-SI.po b/src/qt/languages/sl-SI.po index bf3712693..5fb60197d 100644 --- a/src/qt/languages/sl-SI.po +++ b/src/qt/languages/sl-SI.po @@ -2820,9 +2820,6 @@ msgstr "Napaka GLSL" msgid "Could not load shader: %1" msgstr "Ni bilo mogoče naložiti senčilnika: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "Potrebna je OpenGL različica 3.0 ali novejša. Trenutna različica GLSL je %1.%2" - msgid "Could not load texture: %1" msgstr "Ni bilo mogoče naložiti teksture: %1" diff --git a/src/qt/languages/sv-SE.po b/src/qt/languages/sv-SE.po index 5f5e2361f..d9eebb477 100644 --- a/src/qt/languages/sv-SE.po +++ b/src/qt/languages/sv-SE.po @@ -2820,9 +2820,6 @@ msgstr "GLSL-fel" msgid "Could not load shader: %1" msgstr "Kunde inte ladda shader: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "OpenGL version 3.0 eller högre krävs. Nuvarande GLSL-version är %1.%2" - msgid "Could not load texture: %1" msgstr "Kunde inte ladda textur: %1" diff --git a/src/qt/languages/tr-TR.po b/src/qt/languages/tr-TR.po index 531e8ccce..0113ca13c 100644 --- a/src/qt/languages/tr-TR.po +++ b/src/qt/languages/tr-TR.po @@ -2820,9 +2820,6 @@ msgstr "GLSL Hatası" msgid "Could not load shader: %1" msgstr "%1 gölgelendiricisi yüklenemedi" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "OpenGL sürüm 3.0 veya daha yükseği gereklidir. Şu anki GLSL sürümü %1.%2" - msgid "Could not load texture: %1" msgstr "%1 dokusu yüklenemedi" diff --git a/src/qt/languages/uk-UA.po b/src/qt/languages/uk-UA.po index 133b55815..f0e07f7d3 100644 --- a/src/qt/languages/uk-UA.po +++ b/src/qt/languages/uk-UA.po @@ -2820,9 +2820,6 @@ msgstr "Помилка GLSL" msgid "Could not load shader: %1" msgstr "Не вдалося завантажити шейдер: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "Потрібна OpenGL версії 3.0 або вище. Поточна версія GLSL %1.%2" - msgid "Could not load texture: %1" msgstr "Не вдалося завантажити текстуру: %1" diff --git a/src/qt/languages/vi-VN.po b/src/qt/languages/vi-VN.po index efa1f474f..d3f5c6296 100644 --- a/src/qt/languages/vi-VN.po +++ b/src/qt/languages/vi-VN.po @@ -2820,9 +2820,6 @@ msgstr "Lỗi GLSL" msgid "Could not load shader: %1" msgstr "Không thể nạp shader: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "Yêu cầu OpenGL bản 3.0 trở lên. Hiện tại bản GLSL là %1.%2" - msgid "Could not load texture: %1" msgstr "Không thể nạp texture: %1" diff --git a/src/qt/languages/zh-CN.po b/src/qt/languages/zh-CN.po index d2b8cb817..f2b8b3a68 100644 --- a/src/qt/languages/zh-CN.po +++ b/src/qt/languages/zh-CN.po @@ -2820,9 +2820,6 @@ msgstr "GLSL 错误" msgid "Could not load shader: %1" msgstr "无法加载着色器:%1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "OpenGL 版本需要达到 3.0 或更高。当前 GLSL 版本为 %1.%2" - msgid "Could not load texture: %1" msgstr "无法加载材质:%1" diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po index af8a30028..42f82be4d 100644 --- a/src/qt/languages/zh-TW.po +++ b/src/qt/languages/zh-TW.po @@ -2820,9 +2820,6 @@ msgstr "GLSL 錯誤" msgid "Could not load shader: %1" msgstr "無法載入著色器: %1" -msgid "OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2" -msgstr "需要 OpenGL 版本 3.0 或更高。目前的 GLSL 版本為 %1.%2" - msgid "Could not load texture: %1" msgstr "無法載入材質: %1" diff --git a/src/qt/qt_openglrenderer.cpp b/src/qt/qt_openglrenderer.cpp index d9205f97f..8e01bfe6c 100644 --- a/src/qt/qt_openglrenderer.cpp +++ b/src/qt/qt_openglrenderer.cpp @@ -882,7 +882,7 @@ OpenGLRenderer::initialize() glw.glGetIntegerv(GL_MAJOR_VERSION, &gl_version[0]); glw.glGetIntegerv(GL_MINOR_VERSION, &gl_version[1]); if (gl_version[0] < 3) { - throw opengl_init_error(tr("OpenGL version 3.0 or greater is required. Current GLSL version is %1.%2").arg(gl_version[0]).arg(gl_version[1])); + throw opengl_init_error(tr("OpenGL version 3.0 or greater is required. Current version is %1.%2").arg(gl_version[0]).arg(gl_version[1])); } ogl3_log("Using OpenGL %s\n", glw.glGetString(GL_VERSION)); ogl3_log("Using Shading Language %s\n", glw.glGetString(GL_SHADING_LANGUAGE_VERSION)); From e6ebd5dc9ede78a87d2f89f9e7f74ae9a39b987b Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Sun, 23 Nov 2025 14:43:50 +0500 Subject: [PATCH 22/39] Move the trailing space in the `"Disk %1: "` string out of translations --- src/qt/languages/86box.pot | 2 +- src/qt/languages/cs-CZ.po | 4 ++-- src/qt/languages/de-DE.po | 2 +- src/qt/languages/es-ES.po | 4 ++-- src/qt/languages/fi-FI.po | 4 ++-- src/qt/languages/fr-FR.po | 4 ++-- src/qt/languages/hr-HR.po | 4 ++-- src/qt/languages/it-IT.po | 4 ++-- src/qt/languages/ja-JP.po | 2 +- src/qt/languages/ko-KR.po | 4 ++-- src/qt/languages/nb-NO.po | 2 +- src/qt/languages/nl-NL.po | 4 ++-- src/qt/languages/pl-PL.po | 4 ++-- src/qt/languages/pt-BR.po | 4 ++-- src/qt/languages/pt-PT.po | 4 ++-- src/qt/languages/ru-RU.po | 4 ++-- src/qt/languages/sk-SK.po | 4 ++-- src/qt/languages/sl-SI.po | 4 ++-- src/qt/languages/sv-SE.po | 2 +- src/qt/languages/tr-TR.po | 4 ++-- src/qt/languages/uk-UA.po | 4 ++-- src/qt/languages/vi-VN.po | 4 ++-- src/qt/languages/zh-CN.po | 4 ++-- src/qt/languages/zh-TW.po | 4 ++-- src/qt/qt_vmmanager_system.cpp | 2 +- 25 files changed, 44 insertions(+), 44 deletions(-) diff --git a/src/qt/languages/86box.pot b/src/qt/languages/86box.pot index 6a28e7bf4..c88e5820e 100644 --- a/src/qt/languages/86box.pot +++ b/src/qt/languages/86box.pot @@ -1404,7 +1404,7 @@ msgstr "" msgid "Storage" msgstr "" -msgid "Disk %1: " +msgid "Disk %1:" msgstr "" msgid "No disks" diff --git a/src/qt/languages/cs-CZ.po b/src/qt/languages/cs-CZ.po index 21b62e63b..47f1b5d44 100644 --- a/src/qt/languages/cs-CZ.po +++ b/src/qt/languages/cs-CZ.po @@ -1404,8 +1404,8 @@ msgstr "Systém" msgid "Storage" msgstr "Úložiště" -msgid "Disk %1: " -msgstr "Disk %1: " +msgid "Disk %1:" +msgstr "Disk %1:" msgid "No disks" msgstr "Žádné disky" diff --git a/src/qt/languages/de-DE.po b/src/qt/languages/de-DE.po index 7771444d1..0d4d166f1 100644 --- a/src/qt/languages/de-DE.po +++ b/src/qt/languages/de-DE.po @@ -1404,7 +1404,7 @@ msgstr "" msgid "Storage" msgstr "Speicherplatz" -msgid "Disk %1: " +msgid "Disk %1:" msgstr "" msgid "No disks" diff --git a/src/qt/languages/es-ES.po b/src/qt/languages/es-ES.po index d6d4018bf..385b309c2 100644 --- a/src/qt/languages/es-ES.po +++ b/src/qt/languages/es-ES.po @@ -1404,8 +1404,8 @@ msgstr "Sistema" msgid "Storage" msgstr "Almacenamiento" -msgid "Disk %1: " -msgstr "Disco" +msgid "Disk %1:" +msgstr "Disco %1:" msgid "No disks" msgstr "Sin disco" diff --git a/src/qt/languages/fi-FI.po b/src/qt/languages/fi-FI.po index 8a81fc03f..319d18e0d 100644 --- a/src/qt/languages/fi-FI.po +++ b/src/qt/languages/fi-FI.po @@ -1404,8 +1404,8 @@ msgstr "Järjestelmä" msgid "Storage" msgstr "Tallennus" -msgid "Disk %1: " -msgstr "Levy %1: " +msgid "Disk %1:" +msgstr "Levy %1:" msgid "No disks" msgstr "Ei levyjä" diff --git a/src/qt/languages/fr-FR.po b/src/qt/languages/fr-FR.po index 31b027fc5..d9fb46298 100644 --- a/src/qt/languages/fr-FR.po +++ b/src/qt/languages/fr-FR.po @@ -1404,8 +1404,8 @@ msgstr "Système" msgid "Storage" msgstr "Stockage" -msgid "Disk %1: " -msgstr "Disque %1: " +msgid "Disk %1:" +msgstr "Disque %1:" msgid "No disks" msgstr "Pas de disques" diff --git a/src/qt/languages/hr-HR.po b/src/qt/languages/hr-HR.po index 48a0b9f57..ab784eaf1 100644 --- a/src/qt/languages/hr-HR.po +++ b/src/qt/languages/hr-HR.po @@ -1404,8 +1404,8 @@ msgstr "Sistem" msgid "Storage" msgstr "Diskovi" -msgid "Disk %1: " -msgstr "Disk %1: " +msgid "Disk %1:" +msgstr "Disk %1:" msgid "No disks" msgstr "Nema diskova" diff --git a/src/qt/languages/it-IT.po b/src/qt/languages/it-IT.po index 3d40bc598..04bd9d537 100644 --- a/src/qt/languages/it-IT.po +++ b/src/qt/languages/it-IT.po @@ -1404,8 +1404,8 @@ msgstr "Sistema" msgid "Storage" msgstr "Archiviazione" -msgid "Disk %1: " -msgstr "Disco %1: " +msgid "Disk %1:" +msgstr "Disco %1:" msgid "No disks" msgstr "Nessun disco" diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po index b8df447d1..a6314ca3b 100644 --- a/src/qt/languages/ja-JP.po +++ b/src/qt/languages/ja-JP.po @@ -1404,7 +1404,7 @@ msgstr "システム" msgid "Storage" msgstr "ストレージ" -msgid "Disk %1: " +msgid "Disk %1:" msgstr "ディスク %1:" msgid "No disks" diff --git a/src/qt/languages/ko-KR.po b/src/qt/languages/ko-KR.po index 105aac5e9..798b1f80e 100644 --- a/src/qt/languages/ko-KR.po +++ b/src/qt/languages/ko-KR.po @@ -1404,8 +1404,8 @@ msgstr "시스템" msgid "Storage" msgstr "장치" -msgid "Disk %1: " -msgstr "디스크 %1: " +msgid "Disk %1:" +msgstr "디스크 %1:" msgid "No disks" msgstr "디스크 없음" diff --git a/src/qt/languages/nb-NO.po b/src/qt/languages/nb-NO.po index 1350b6ff8..163d44fd8 100644 --- a/src/qt/languages/nb-NO.po +++ b/src/qt/languages/nb-NO.po @@ -1404,7 +1404,7 @@ msgstr "System" msgid "Storage" msgstr "Lagring" -msgid "Disk %1: " +msgid "Disk %1:" msgstr "Disk %1:" msgid "No disks" diff --git a/src/qt/languages/nl-NL.po b/src/qt/languages/nl-NL.po index a2c39fd6d..fcd36dcb9 100644 --- a/src/qt/languages/nl-NL.po +++ b/src/qt/languages/nl-NL.po @@ -1404,8 +1404,8 @@ msgstr "Systeem" msgid "Storage" msgstr "Opslag" -msgid "Disk %1: " -msgstr "Schijf %1: " +msgid "Disk %1:" +msgstr "Schijf %1:" msgid "No disks" msgstr "Geen schijven" diff --git a/src/qt/languages/pl-PL.po b/src/qt/languages/pl-PL.po index 455918005..5a321c5bc 100644 --- a/src/qt/languages/pl-PL.po +++ b/src/qt/languages/pl-PL.po @@ -1404,8 +1404,8 @@ msgstr "System" msgid "Storage" msgstr "Pamięć" -msgid "Disk %1: " -msgstr "Dysk %1: " +msgid "Disk %1:" +msgstr "Dysk %1:" msgid "No disks" msgstr "Brak dysków" diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index 839023335..4c4bfdb00 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -1404,8 +1404,8 @@ msgstr "Sistema" msgid "Storage" msgstr "Armazenamento" -msgid "Disk %1: " -msgstr "Disco %1: " +msgid "Disk %1:" +msgstr "Disco %1:" msgid "No disks" msgstr "Sem discos" diff --git a/src/qt/languages/pt-PT.po b/src/qt/languages/pt-PT.po index e0764f0bd..0b75d3737 100644 --- a/src/qt/languages/pt-PT.po +++ b/src/qt/languages/pt-PT.po @@ -1404,8 +1404,8 @@ msgstr "Sistema" msgid "Storage" msgstr "Armazenamento" -msgid "Disk %1: " -msgstr "Disco %1: " +msgid "Disk %1:" +msgstr "Disco %1:" msgid "No disks" msgstr "Sem discos" diff --git a/src/qt/languages/ru-RU.po b/src/qt/languages/ru-RU.po index 65991e68f..4fecfca2e 100644 --- a/src/qt/languages/ru-RU.po +++ b/src/qt/languages/ru-RU.po @@ -1404,8 +1404,8 @@ msgstr "Система" msgid "Storage" msgstr "Диски" -msgid "Disk %1: " -msgstr "Диск %1: " +msgid "Disk %1:" +msgstr "Диск %1:" msgid "No disks" msgstr "Нет дисков" diff --git a/src/qt/languages/sk-SK.po b/src/qt/languages/sk-SK.po index d7a5ba5ac..781f1a7b0 100644 --- a/src/qt/languages/sk-SK.po +++ b/src/qt/languages/sk-SK.po @@ -1404,8 +1404,8 @@ msgstr "Systém" msgid "Storage" msgstr "Úložisko" -msgid "Disk %1: " -msgstr "Disk %1: " +msgid "Disk %1:" +msgstr "Disk %1:" msgid "No disks" msgstr "Žiadne disky" diff --git a/src/qt/languages/sl-SI.po b/src/qt/languages/sl-SI.po index 5fb60197d..6b20fa1c7 100644 --- a/src/qt/languages/sl-SI.po +++ b/src/qt/languages/sl-SI.po @@ -1404,8 +1404,8 @@ msgstr "Sistem" msgid "Storage" msgstr "Shramba" -msgid "Disk %1: " -msgstr "Disk %1: " +msgid "Disk %1:" +msgstr "Disk %1:" msgid "No disks" msgstr "Ni diskov" diff --git a/src/qt/languages/sv-SE.po b/src/qt/languages/sv-SE.po index d9eebb477..79b921e44 100644 --- a/src/qt/languages/sv-SE.po +++ b/src/qt/languages/sv-SE.po @@ -1404,7 +1404,7 @@ msgstr "System" msgid "Storage" msgstr "Lagring" -msgid "Disk %1: " +msgid "Disk %1:" msgstr "Disk %1:" msgid "No disks" diff --git a/src/qt/languages/tr-TR.po b/src/qt/languages/tr-TR.po index 0113ca13c..64ba1d0e3 100644 --- a/src/qt/languages/tr-TR.po +++ b/src/qt/languages/tr-TR.po @@ -1404,8 +1404,8 @@ msgstr "Sistem" msgid "Storage" msgstr "Depolama" -msgid "Disk %1: " -msgstr "Disk %1: " +msgid "Disk %1:" +msgstr "Disk %1:" msgid "No disks" msgstr "Disk yok" diff --git a/src/qt/languages/uk-UA.po b/src/qt/languages/uk-UA.po index f0e07f7d3..2e409f9d7 100644 --- a/src/qt/languages/uk-UA.po +++ b/src/qt/languages/uk-UA.po @@ -1404,8 +1404,8 @@ msgstr "Система" msgid "Storage" msgstr "Диски" -msgid "Disk %1: " -msgstr "Диск %1: " +msgid "Disk %1:" +msgstr "Диск %1:" msgid "No disks" msgstr "Немає дисків" diff --git a/src/qt/languages/vi-VN.po b/src/qt/languages/vi-VN.po index d3f5c6296..c5ee4bfe4 100644 --- a/src/qt/languages/vi-VN.po +++ b/src/qt/languages/vi-VN.po @@ -1404,8 +1404,8 @@ msgstr "Hệ thống" msgid "Storage" msgstr "Lưu trữ" -msgid "Disk %1: " -msgstr "Đĩa %1: " +msgid "Disk %1:" +msgstr "Đĩa %1:" msgid "No disks" msgstr "Không có đĩa" diff --git a/src/qt/languages/zh-CN.po b/src/qt/languages/zh-CN.po index f2b8b3a68..41e40d808 100644 --- a/src/qt/languages/zh-CN.po +++ b/src/qt/languages/zh-CN.po @@ -1404,8 +1404,8 @@ msgstr "系统" msgid "Storage" msgstr "存储" -msgid "Disk %1: " -msgstr "磁盘 %1" +msgid "Disk %1:" +msgstr "磁盘 %1:" msgid "No disks" msgstr "无磁盘" diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po index 42f82be4d..f17d1a7bd 100644 --- a/src/qt/languages/zh-TW.po +++ b/src/qt/languages/zh-TW.po @@ -1404,8 +1404,8 @@ msgstr "系統" msgid "Storage" msgstr "儲存" -msgid "Disk %1: " -msgstr "磁碟 %1: " +msgid "Disk %1:" +msgstr "磁碟 %1:" msgid "No disks" msgstr "無磁碟" diff --git a/src/qt/qt_vmmanager_system.cpp b/src/qt/qt_vmmanager_system.cpp index 0a5039b12..5038732d1 100644 --- a/src/qt/qt_vmmanager_system.cpp +++ b/src/qt/qt_vmmanager_system.cpp @@ -713,7 +713,7 @@ VMManagerSystem::setupVars() diskSizeFinal = QString::number(diskSizeRaw); } // Only prefix each disk when there are multiple disks - QString diskNumberDisplay = disks.count() > 1 ? tr("Disk %1: ").arg(disk_number) : ""; + QString diskNumberDisplay = disks.count() > 1 ? tr("Disk %1:").arg(disk_number).append(" ") : ""; new_disk_display.append(QString("%1%2 %3 (%4)").arg(diskNumberDisplay, diskSizeFinal, unit, bus_type.toUpper())); } if (new_disk_display.isEmpty()) { From d71bcc731dc1f0d10413cccbcc1141729bc1d357 Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Tue, 25 Nov 2025 04:29:11 +0500 Subject: [PATCH 23/39] qt: Use `QString::arg()` instead of concatenation for monitor number in the title bar --- src/qt/languages/86box.pot | 2 +- src/qt/languages/cs-CZ.po | 4 ++-- src/qt/languages/de-DE.po | 4 ++-- src/qt/languages/es-ES.po | 4 ++-- src/qt/languages/fi-FI.po | 4 ++-- src/qt/languages/fr-FR.po | 4 ++-- src/qt/languages/hr-HR.po | 4 ++-- src/qt/languages/it-IT.po | 4 ++-- src/qt/languages/ja-JP.po | 4 ++-- src/qt/languages/ko-KR.po | 4 ++-- src/qt/languages/nb-NO.po | 4 ++-- src/qt/languages/nl-NL.po | 4 ++-- src/qt/languages/pl-PL.po | 4 ++-- src/qt/languages/pt-BR.po | 4 ++-- src/qt/languages/pt-PT.po | 4 ++-- src/qt/languages/ru-RU.po | 4 ++-- src/qt/languages/sk-SK.po | 4 ++-- src/qt/languages/sl-SI.po | 4 ++-- src/qt/languages/sv-SE.po | 4 ++-- src/qt/languages/tr-TR.po | 4 ++-- src/qt/languages/uk-UA.po | 4 ++-- src/qt/languages/vi-VN.po | 4 ++-- src/qt/languages/zh-CN.po | 4 ++-- src/qt/languages/zh-TW.po | 4 ++-- src/qt/qt_mainwindow.cpp | 2 +- src/qt/qt_rendererstack.cpp | 2 +- 26 files changed, 49 insertions(+), 49 deletions(-) diff --git a/src/qt/languages/86box.pot b/src/qt/languages/86box.pot index c88e5820e..829df536a 100644 --- a/src/qt/languages/86box.pot +++ b/src/qt/languages/86box.pot @@ -1818,7 +1818,7 @@ msgstr "" msgid "I Copied It" msgstr "" -msgid "86Box Monitor #" +msgid "86Box Monitor #%1" msgstr "" msgid "No MCA devices." diff --git a/src/qt/languages/cs-CZ.po b/src/qt/languages/cs-CZ.po index 47f1b5d44..d16049fc9 100644 --- a/src/qt/languages/cs-CZ.po +++ b/src/qt/languages/cs-CZ.po @@ -1818,8 +1818,8 @@ msgstr "Přesunul jsem jej" msgid "I Copied It" msgstr "Zkopíroval jsem jej" -msgid "86Box Monitor #" -msgstr "86Box Monitor " +msgid "86Box Monitor #%1" +msgstr "86Box Monitor %1" msgid "No MCA devices." msgstr "Žádné zařízení MCA." diff --git a/src/qt/languages/de-DE.po b/src/qt/languages/de-DE.po index 0d4d166f1..0a5faccf9 100644 --- a/src/qt/languages/de-DE.po +++ b/src/qt/languages/de-DE.po @@ -1818,8 +1818,8 @@ msgstr "Ich habe es verschoben" msgid "I Copied It" msgstr "Ich habe es kopiert" -msgid "86Box Monitor #" -msgstr "86Box-Monitor #" +msgid "86Box Monitor #%1" +msgstr "86Box-Monitor #%1" msgid "No MCA devices." msgstr "Keine MCA-Geräte." diff --git a/src/qt/languages/es-ES.po b/src/qt/languages/es-ES.po index 385b309c2..fe451bd06 100644 --- a/src/qt/languages/es-ES.po +++ b/src/qt/languages/es-ES.po @@ -1818,8 +1818,8 @@ msgstr "La he movido" msgid "I Copied It" msgstr "La he copiado" -msgid "86Box Monitor #" -msgstr "Monitor de 86Box " +msgid "86Box Monitor #%1" +msgstr "Monitor de 86Box %1" msgid "No MCA devices." msgstr "No hay dispositovos MCA." diff --git a/src/qt/languages/fi-FI.po b/src/qt/languages/fi-FI.po index 319d18e0d..87d8e2a62 100644 --- a/src/qt/languages/fi-FI.po +++ b/src/qt/languages/fi-FI.po @@ -1818,8 +1818,8 @@ msgstr "Siirsin sen" msgid "I Copied It" msgstr "Kopioin sen" -msgid "86Box Monitor #" -msgstr "86Box Monitor " +msgid "86Box Monitor #%1" +msgstr "86Box Monitor %1" msgid "No MCA devices." msgstr "Ei MCA-laitteita." diff --git a/src/qt/languages/fr-FR.po b/src/qt/languages/fr-FR.po index d9fb46298..05ca345bb 100644 --- a/src/qt/languages/fr-FR.po +++ b/src/qt/languages/fr-FR.po @@ -1818,8 +1818,8 @@ msgstr "Je l'ai déplacé" msgid "I Copied It" msgstr "Je l'ai copié" -msgid "86Box Monitor #" -msgstr "Moniteur 86Box" +msgid "86Box Monitor #%1" +msgstr "Moniteur 86Box %1" msgid "No MCA devices." msgstr "Pas de dispositifs MCA." diff --git a/src/qt/languages/hr-HR.po b/src/qt/languages/hr-HR.po index ab784eaf1..0ef31f483 100644 --- a/src/qt/languages/hr-HR.po +++ b/src/qt/languages/hr-HR.po @@ -1818,8 +1818,8 @@ msgstr "Premjestio sam ga" msgid "I Copied It" msgstr "Kopirao sam ga" -msgid "86Box Monitor #" -msgstr "Monitor 86Box-a " +msgid "86Box Monitor #%1" +msgstr "Monitor 86Box-a %1" msgid "No MCA devices." msgstr "Nema uređaja MCA." diff --git a/src/qt/languages/it-IT.po b/src/qt/languages/it-IT.po index 04bd9d537..264c55bc8 100644 --- a/src/qt/languages/it-IT.po +++ b/src/qt/languages/it-IT.po @@ -1818,8 +1818,8 @@ msgstr "L'ho spostata" msgid "I Copied It" msgstr "L'ho copiata" -msgid "86Box Monitor #" -msgstr "Monitor 86Box #" +msgid "86Box Monitor #%1" +msgstr "Monitor 86Box #%1" msgid "No MCA devices." msgstr "Nessun dispositivo MCA." diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po index a6314ca3b..7a38aabc8 100644 --- a/src/qt/languages/ja-JP.po +++ b/src/qt/languages/ja-JP.po @@ -1818,8 +1818,8 @@ msgstr "動かした" msgid "I Copied It" msgstr "コピーした" -msgid "86Box Monitor #" -msgstr "86Box モニター" +msgid "86Box Monitor #%1" +msgstr "86Box モニター%1" msgid "No MCA devices." msgstr "MCAデバイスはない。" diff --git a/src/qt/languages/ko-KR.po b/src/qt/languages/ko-KR.po index 798b1f80e..ddbc08866 100644 --- a/src/qt/languages/ko-KR.po +++ b/src/qt/languages/ko-KR.po @@ -1818,8 +1818,8 @@ msgstr "옮겼어요" msgid "I Copied It" msgstr "복사했습니다" -msgid "86Box Monitor #" -msgstr "86Box 모니터 " +msgid "86Box Monitor #%1" +msgstr "86Box 모니터 %1" msgid "No MCA devices." msgstr "MCA 장치가 없습니다." diff --git a/src/qt/languages/nb-NO.po b/src/qt/languages/nb-NO.po index 163d44fd8..0ae09ed6a 100644 --- a/src/qt/languages/nb-NO.po +++ b/src/qt/languages/nb-NO.po @@ -1818,8 +1818,8 @@ msgstr "Jeg flyttet den" msgid "I Copied It" msgstr "Jeg kopierte den" -msgid "86Box Monitor #" -msgstr "86Box-skjerm #" +msgid "86Box Monitor #%1" +msgstr "86Box-skjerm #%1" msgid "No MCA devices." msgstr "Ingen MCA-enheter." diff --git a/src/qt/languages/nl-NL.po b/src/qt/languages/nl-NL.po index fcd36dcb9..df7628bea 100644 --- a/src/qt/languages/nl-NL.po +++ b/src/qt/languages/nl-NL.po @@ -1818,8 +1818,8 @@ msgstr "Ik heb het verplaatst" msgid "I Copied It" msgstr "Ik heb het gekopieerd" -msgid "86Box Monitor #" -msgstr "86Box Monitor #" +msgid "86Box Monitor #%1" +msgstr "86Box Monitor #%1" msgid "No MCA devices." msgstr "Geen MCA-apparaten." diff --git a/src/qt/languages/pl-PL.po b/src/qt/languages/pl-PL.po index 5a321c5bc..b3dd39513 100644 --- a/src/qt/languages/pl-PL.po +++ b/src/qt/languages/pl-PL.po @@ -1818,8 +1818,8 @@ msgstr "Została przeniesiona" msgid "I Copied It" msgstr "Została skopiowana" -msgid "86Box Monitor #" -msgstr "86Box Monitor " +msgid "86Box Monitor #%1" +msgstr "86Box Monitor %1" msgid "No MCA devices." msgstr "Brak urządzeń MCA." diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index 4c4bfdb00..30f5a0a66 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -1818,8 +1818,8 @@ msgstr "Movi" msgid "I Copied It" msgstr "Copiei" -msgid "86Box Monitor #" -msgstr "Monitor 86Box nº" +msgid "86Box Monitor #%1" +msgstr "Monitor 86Box nº%1" msgid "No MCA devices." msgstr "Nenhum dispositivo MCA." diff --git a/src/qt/languages/pt-PT.po b/src/qt/languages/pt-PT.po index 0b75d3737..8be1c1912 100644 --- a/src/qt/languages/pt-PT.po +++ b/src/qt/languages/pt-PT.po @@ -1818,8 +1818,8 @@ msgstr "Movi-a" msgid "I Copied It" msgstr "Copiei-a" -msgid "86Box Monitor #" -msgstr "Monitor 86Box " +msgid "86Box Monitor #%1" +msgstr "Monitor 86Box %1" msgid "No MCA devices." msgstr "Não há dispositivos MCA." diff --git a/src/qt/languages/ru-RU.po b/src/qt/languages/ru-RU.po index 4fecfca2e..8b3c952e9 100644 --- a/src/qt/languages/ru-RU.po +++ b/src/qt/languages/ru-RU.po @@ -1818,8 +1818,8 @@ msgstr "Перемещена" msgid "I Copied It" msgstr "Скопирована" -msgid "86Box Monitor #" -msgstr "86Box Monitor #" +msgid "86Box Monitor #%1" +msgstr "Монитор 86Box № %1" msgid "No MCA devices." msgstr "Нет устройств MCA." diff --git a/src/qt/languages/sk-SK.po b/src/qt/languages/sk-SK.po index 781f1a7b0..b537f9285 100644 --- a/src/qt/languages/sk-SK.po +++ b/src/qt/languages/sk-SK.po @@ -1818,8 +1818,8 @@ msgstr "Presunul som ho" msgid "I Copied It" msgstr "Skopíroval som ho" -msgid "86Box Monitor #" -msgstr "86Box Monitor " +msgid "86Box Monitor #%1" +msgstr "86Box Monitor %1" msgid "No MCA devices." msgstr "Žiadne zariadenia MCA." diff --git a/src/qt/languages/sl-SI.po b/src/qt/languages/sl-SI.po index 6b20fa1c7..7e1ba367e 100644 --- a/src/qt/languages/sl-SI.po +++ b/src/qt/languages/sl-SI.po @@ -1818,8 +1818,8 @@ msgstr "Premaknil sem jo" msgid "I Copied It" msgstr "Kopiral sem jo" -msgid "86Box Monitor #" -msgstr "86Box Monitor " +msgid "86Box Monitor #%1" +msgstr "86Box Monitor %1" msgid "No MCA devices." msgstr "Ni naprav MCA." diff --git a/src/qt/languages/sv-SE.po b/src/qt/languages/sv-SE.po index 79b921e44..44247a260 100644 --- a/src/qt/languages/sv-SE.po +++ b/src/qt/languages/sv-SE.po @@ -1818,8 +1818,8 @@ msgstr "Jag flyttade den" msgid "I Copied It" msgstr "Jag kopierade den" -msgid "86Box Monitor #" -msgstr "86Box skärm #" +msgid "86Box Monitor #%1" +msgstr "86Box skärm #%1" msgid "No MCA devices." msgstr "Inga MCA-enheter." diff --git a/src/qt/languages/tr-TR.po b/src/qt/languages/tr-TR.po index 64ba1d0e3..9689e4331 100644 --- a/src/qt/languages/tr-TR.po +++ b/src/qt/languages/tr-TR.po @@ -1818,8 +1818,8 @@ msgstr "Taşındı" msgid "I Copied It" msgstr "Kopyalandı" -msgid "86Box Monitor #" -msgstr "86Box Monitör #" +msgid "86Box Monitor #%1" +msgstr "86Box Monitör #%1" msgid "No MCA devices." msgstr "MCA cihazı yok." diff --git a/src/qt/languages/uk-UA.po b/src/qt/languages/uk-UA.po index 2e409f9d7..f2655a492 100644 --- a/src/qt/languages/uk-UA.po +++ b/src/qt/languages/uk-UA.po @@ -1818,8 +1818,8 @@ msgstr "Переміщена" msgid "I Copied It" msgstr "Скопійована" -msgid "86Box Monitor #" -msgstr "Монітор 86Box " +msgid "86Box Monitor #%1" +msgstr "Монітор 86Box %1" msgid "No MCA devices." msgstr "Ніяких пристроїв MCA." diff --git a/src/qt/languages/vi-VN.po b/src/qt/languages/vi-VN.po index c5ee4bfe4..7cd3396eb 100644 --- a/src/qt/languages/vi-VN.po +++ b/src/qt/languages/vi-VN.po @@ -1818,8 +1818,8 @@ msgstr "Tôi đã di chuyển nó" msgid "I Copied It" msgstr "Tôi đã sao chép nó" -msgid "86Box Monitor #" -msgstr "Màn hình 86box #" +msgid "86Box Monitor #%1" +msgstr "Màn hình 86Box #%1" msgid "No MCA devices." msgstr "Không có thiết bị MCA." diff --git a/src/qt/languages/zh-CN.po b/src/qt/languages/zh-CN.po index 41e40d808..0aa40165e 100644 --- a/src/qt/languages/zh-CN.po +++ b/src/qt/languages/zh-CN.po @@ -1818,8 +1818,8 @@ msgstr "我已移动这台机器" msgid "I Copied It" msgstr "我已复制这台机器" -msgid "86Box Monitor #" -msgstr "86Box 显示器 #" +msgid "86Box Monitor #%1" +msgstr "86Box 显示器 #%1" msgid "No MCA devices." msgstr "无 MCA 设备。" diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po index f17d1a7bd..41ea38f50 100644 --- a/src/qt/languages/zh-TW.po +++ b/src/qt/languages/zh-TW.po @@ -1818,8 +1818,8 @@ msgstr "我已移動這台機器" msgid "I Copied It" msgstr "我已複製這台機器" -msgid "86Box Monitor #" -msgstr "86Box 監視器 #" +msgid "86Box Monitor #%1" +msgstr "86Box 監視器 #%1" msgid "No MCA devices." msgstr "沒有 MCA 裝置。" diff --git a/src/qt/qt_mainwindow.cpp b/src/qt/qt_mainwindow.cpp index 87415ba07..c51ae6269 100644 --- a/src/qt/qt_mainwindow.cpp +++ b/src/qt/qt_mainwindow.cpp @@ -1070,7 +1070,7 @@ MainWindow::initRendererMonitorSlot(int monitor_index) this->renderers[monitor_index]->show(); }); secondaryRenderer->setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint); - secondaryRenderer->setWindowTitle(QObject::tr("86Box Monitor #") + QString::number(monitor_index + 1)); + secondaryRenderer->setWindowTitle(QObject::tr("86Box Monitor #%1").arg(monitor_index + 1)); secondaryRenderer->setContextMenuPolicy(Qt::PreventContextMenu); for (int i = 0; i < this->actions().size(); i++) { diff --git a/src/qt/qt_rendererstack.cpp b/src/qt/qt_rendererstack.cpp index a65f056b6..41d17d897 100644 --- a/src/qt/qt_rendererstack.cpp +++ b/src/qt/qt_rendererstack.cpp @@ -116,7 +116,7 @@ RendererStack::RendererStack(QWidget *parent, int monitor_index) frameRateTimer->setSingleShot(false); frameRateTimer->setInterval(1000); connect(frameRateTimer, &QTimer::timeout, [this] { - this->setWindowTitle(QObject::tr("86Box Monitor #") + QString::number(m_monitor_index + 1) + QString(" - ") + tr("%1 Hz").arg(QString::number(monitors[m_monitor_index].mon_actualrenderedframes.load()) + (monitors[m_monitor_index].mon_interlace ? "i" : ""))); + this->setWindowTitle(QObject::tr("86Box Monitor #%1").arg(m_monitor_index + 1) + QString(" - ") + tr("%1 Hz").arg(QString::number(monitors[m_monitor_index].mon_actualrenderedframes.load()) + (monitors[m_monitor_index].mon_interlace ? "i" : ""))); }); frameRateTimer->start(1000); } From 59a14ac3eb3d0ddbb70c6ae98db52a23eea8392a Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Tue, 25 Nov 2025 05:12:10 +0500 Subject: [PATCH 24/39] About dialog: Use `EMU_NAME` instead of hardcoding "86Box" --- src/qt/languages/86box.pot | 5 +---- src/qt/languages/cs-CZ.po | 7 ++----- src/qt/languages/de-DE.po | 7 ++----- src/qt/languages/es-ES.po | 7 ++----- src/qt/languages/fi-FI.po | 7 ++----- src/qt/languages/fr-FR.po | 7 ++----- src/qt/languages/hr-HR.po | 7 ++----- src/qt/languages/it-IT.po | 7 ++----- src/qt/languages/ja-JP.po | 7 ++----- src/qt/languages/ko-KR.po | 7 ++----- src/qt/languages/nb-NO.po | 7 ++----- src/qt/languages/nl-NL.po | 7 ++----- src/qt/languages/pl-PL.po | 7 ++----- src/qt/languages/pt-BR.po | 7 ++----- src/qt/languages/pt-PT.po | 7 ++----- src/qt/languages/ru-RU.po | 7 ++----- src/qt/languages/sk-SK.po | 7 ++----- src/qt/languages/sl-SI.po | 7 ++----- src/qt/languages/sv-SE.po | 7 ++----- src/qt/languages/tr-TR.po | 7 ++----- src/qt/languages/uk-UA.po | 7 ++----- src/qt/languages/vi-VN.po | 7 ++----- src/qt/languages/zh-CN.po | 7 ++----- src/qt/languages/zh-TW.po | 7 ++----- src/qt/qt_about.cpp | 4 ++-- 25 files changed, 49 insertions(+), 121 deletions(-) diff --git a/src/qt/languages/86box.pot b/src/qt/languages/86box.pot index 829df536a..1092e4ad1 100644 --- a/src/qt/languages/86box.pot +++ b/src/qt/languages/86box.pot @@ -1050,10 +1050,7 @@ msgstr "" msgid "Save" msgstr "" -msgid "About 86Box" -msgstr "" - -msgid "86Box v" +msgid "About %1" msgstr "" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." diff --git a/src/qt/languages/cs-CZ.po b/src/qt/languages/cs-CZ.po index d16049fc9..97839b0ed 100644 --- a/src/qt/languages/cs-CZ.po +++ b/src/qt/languages/cs-CZ.po @@ -1050,11 +1050,8 @@ msgstr "Pokračováním se resetuje emulovaný počítač." msgid "Save" msgstr "Uložit" -msgid "About 86Box" -msgstr "O programu 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "O programu %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Emulátor starých počítačů\n\nAutoři: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nS předchozími příspěvky od Sarah Walker, leilei, JohnElliott, greatpsycho a dalších.\n\nZveřejněno pod licencí GNU General Public License verze 2 nebo novější. Viz soubor LICENSE pro více informací." diff --git a/src/qt/languages/de-DE.po b/src/qt/languages/de-DE.po index 0a5faccf9..af45ddacf 100644 --- a/src/qt/languages/de-DE.po +++ b/src/qt/languages/de-DE.po @@ -1050,11 +1050,8 @@ msgstr "Dies wird zu einem Kaltstart des emulierten Systems führen." msgid "Save" msgstr "Speichern" -msgid "About 86Box" -msgstr "Über 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "Über %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Ein Emulator für alte Computer\n\nAutoren: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne sowie andere.\n\nMit früheren Kernbeiträgen von Sarah Walker, leilei, JohnElliott, greatpsycho sowie andere.\n\nÜbersetzt von: dob205\n\nVeröffentlicht unter der GNU General Public License in der Version 2 oder neuer. Siehe LICENSE für mehr Informationen." diff --git a/src/qt/languages/es-ES.po b/src/qt/languages/es-ES.po index fe451bd06..59d6d060f 100644 --- a/src/qt/languages/es-ES.po +++ b/src/qt/languages/es-ES.po @@ -1050,11 +1050,8 @@ msgstr "Se hará una reinicialización completa de la máquina emulada." msgid "Save" msgstr "Guardar" -msgid "About 86Box" -msgstr "Acerca de 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "Acerca de %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Un emulador de ordenadores antigüos\n\nAutores: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, y otros.\n\nCon contribuciones anteriores de Sarah Walker, leilei, JohnElliott, greatpsycho y otros.\n\nLiberado bajo la GNU General Public License versión 2 o posterior. Ver LICENSE para más información." diff --git a/src/qt/languages/fi-FI.po b/src/qt/languages/fi-FI.po index 87d8e2a62..ff8915af8 100644 --- a/src/qt/languages/fi-FI.po +++ b/src/qt/languages/fi-FI.po @@ -1050,11 +1050,8 @@ msgstr "Tämä käynnistää emuloidun tietokoneen uudelleen." msgid "Save" msgstr "Tallenna" -msgid "About 86Box" -msgstr "Tietoja 86Box:sta" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "Tietoja %1:sta" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Vanhojen tietokoneiden emulaattori\n\nTekijät: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne ja muut.\n\nSisältää Sarah Walkerin, leilein, JohnElliottin, greatpsychon ja muiden aiemmat keskeiset työpanokset.\n\nJulkaistu GNU General Public License 2. version tai myöhemmän alaisena. Tarkempia tietoja LICENSE-tiedostossa." diff --git a/src/qt/languages/fr-FR.po b/src/qt/languages/fr-FR.po index 05ca345bb..8240be4a8 100644 --- a/src/qt/languages/fr-FR.po +++ b/src/qt/languages/fr-FR.po @@ -1050,11 +1050,8 @@ msgstr "Cela entraînera la réinitialisation complète de la machine émulée." msgid "Save" msgstr "Sauvegarder" -msgid "About 86Box" -msgstr "À propos de 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "À propos de %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Un émulateur d'ordinateurs du passé\n\nAuteurs: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nAvec les contributions de Sarah Walker, leilei, JohnElliott, greatpsycho et d'autres.\n\nLibéré sous la licence GNU General Public License version 2 ou ultérieure. Pour plus d'informations, voir le fichier LICENSE." diff --git a/src/qt/languages/hr-HR.po b/src/qt/languages/hr-HR.po index 0ef31f483..0ca66d124 100644 --- a/src/qt/languages/hr-HR.po +++ b/src/qt/languages/hr-HR.po @@ -1050,11 +1050,8 @@ msgstr "Ovo će napraviti hard resetiranje emuliranog sistema." msgid "Save" msgstr "Spremaj" -msgid "About 86Box" -msgstr "O programu 86Box" - -msgid "86Box v" -msgstr "86Box verzija " +msgid "About %1" +msgstr "O programu %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Emulator starih računala\n\nAutori: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, i drugi.\n\nS prethodnim osnovnim doprinosima Sarah Walker, Leilei, JohnElliott, greatpsycho i drugih.\n\nPreveo: dob205\n\nObjavljeno pod licencom GNU General Public License, verzija 2 ili novije. Za više informacija pogledajte datoteku LICENCE." diff --git a/src/qt/languages/it-IT.po b/src/qt/languages/it-IT.po index 264c55bc8..b21025394 100644 --- a/src/qt/languages/it-IT.po +++ b/src/qt/languages/it-IT.po @@ -1050,11 +1050,8 @@ msgstr "Questo riavvierà la macchina emulata." msgid "Save" msgstr "Salva" -msgid "About 86Box" -msgstr "Informazioni su 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "Informazioni su %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Un emulatore di vecchi computer\n\nAutori: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne e altri.\n\nCon i precedenti contributi fondamentali di Sarah Walker, leilei, JohnElliott, greatpsycho e altri.\n\nRilasciato sotto la Licenza Pubblica Generale GNU versione 2 o successiva. Per ulteriori informazioni, consultare il file LICENSE." diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po index 7a38aabc8..92680952c 100644 --- a/src/qt/languages/ja-JP.po +++ b/src/qt/languages/ja-JP.po @@ -1050,11 +1050,8 @@ msgstr "使用中のマシンがハードリセットされます。" msgid "Save" msgstr "保存" -msgid "About 86Box" -msgstr "86Boxのバージョン情報" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "%1のバージョン情報" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "古いパソコンのエミュレーター\n\n著者: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nSarah Walker, leilei, JohnElliott, greatpsycho, その他の方々による以前からの多大な貢献。\n\nGNU General Public License version 2以降でリリースされています。詳しくは LICENSE をご覧ください。" diff --git a/src/qt/languages/ko-KR.po b/src/qt/languages/ko-KR.po index ddbc08866..1403aa632 100644 --- a/src/qt/languages/ko-KR.po +++ b/src/qt/languages/ko-KR.po @@ -1050,11 +1050,8 @@ msgstr "사용중인 머신이 재부팅됩니다." msgid "Save" msgstr "저장" -msgid "About 86Box" -msgstr "86Box에 대해" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "%1에 대해" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "고전 컴퓨터 에뮬레이터\n\n저자: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\n이전 핵심 기여자로는 Sarah Walker, leilei, JohnElliott, greatpsycho 등이 있습니다.\n\nGNU General Public 라이선스 (버전 2 이상)에 의해 배포되었습니다. 자세한 내용은 LICENSE 파일을 읽어 주세요." diff --git a/src/qt/languages/nb-NO.po b/src/qt/languages/nb-NO.po index 0ae09ed6a..7306eb74a 100644 --- a/src/qt/languages/nb-NO.po +++ b/src/qt/languages/nb-NO.po @@ -1050,11 +1050,8 @@ msgstr "Dette vil hard-resette den emulerte maskinen." msgid "Save" msgstr "Lagre" -msgid "About 86Box" -msgstr "Om 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "Om %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "En emulator for gamle datamaskiner\n\nForfattere: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne og andre.\n\nMed tidligere kjernebidrag fra Sarah Walker, leilei, JohnElliott, greatpsycho og andre.\n\nUtgitt under GNU General Public License versjon 2 eller senere. Se LICENSE for mer informasjon." diff --git a/src/qt/languages/nl-NL.po b/src/qt/languages/nl-NL.po index df7628bea..71d53af2f 100644 --- a/src/qt/languages/nl-NL.po +++ b/src/qt/languages/nl-NL.po @@ -1050,11 +1050,8 @@ msgstr "Dit zal de geëmuleerde machine een harde reset geven." msgid "Save" msgstr "Opslaan" -msgid "About 86Box" -msgstr "Over 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "Over %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Een emulator van oude computers\n\nAuteurs: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nMet eerdere bijdragen van Sarah Walker, leilei, JohnElliott, greatpsycho en anderen.\n\nUitgebracht onder de GNU General Public License versie 2 of later. Zie LICENSE voor meer informatie." diff --git a/src/qt/languages/pl-PL.po b/src/qt/languages/pl-PL.po index b3dd39513..24f6734fd 100644 --- a/src/qt/languages/pl-PL.po +++ b/src/qt/languages/pl-PL.po @@ -1050,11 +1050,8 @@ msgstr "To spowoduje twardy reset wirtualnej maszyny." msgid "Save" msgstr "Zapisz" -msgid "About 86Box" -msgstr "O 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "O %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Emulator starych komputerów\n\nAutorzy: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, i inni.\n\nZ wcześniejszym wkładem od Sarah Walker, leilei, JohnElliott, greatpsycho i innych.\n\nPrzetłumaczony przez: Lili1228\n\nWydany na licencji GNU General Public License w wersji 2 lub nowszej. Zobacz LICENSE aby uzyskać więcej informacji." diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index 30f5a0a66..0b0743c85 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -1050,11 +1050,8 @@ msgstr "Isto fará com que a máquina emulada seja reinicializada." msgid "Save" msgstr "Salvar" -msgid "About 86Box" -msgstr "Sobre o 86Box" - -msgid "86Box v" -msgstr "86Box versão " +msgid "About %1" +msgstr "Sobre o %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Um emulador de computadores antigos\n\nAutores: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, e outros.\n\nCom contribuições anteriores de Sarah Walker, leilei, JohnElliott, greatpsycho, e outros.\n\nTraduzido por: Altieres Lima da Silva, Nelson K. Hennemann Filho\n\nLançado sob a Licença Pública Geral GNU, versão 2 ou posterior. Veja o arquivo LICENSE para mais informações." diff --git a/src/qt/languages/pt-PT.po b/src/qt/languages/pt-PT.po index 8be1c1912..bc2c264f4 100644 --- a/src/qt/languages/pt-PT.po +++ b/src/qt/languages/pt-PT.po @@ -1050,11 +1050,8 @@ msgstr "Isto irá causar um reinício completo da máquina emulada." msgid "Save" msgstr "Guardar" -msgid "About 86Box" -msgstr "Acerca do 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "Acerca do %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Um emulador de computadores antigos\n\nAutores: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nCom contribuições anteriores de Sarah Walker, leilei, JohnElliott, greatpsycho e outros.\n\nUsado sob a licença GNU General Public License versão 2 ou posterior. Veja o ficheiro LICENSE para mais informações." diff --git a/src/qt/languages/ru-RU.po b/src/qt/languages/ru-RU.po index 8b3c952e9..0ca34287c 100644 --- a/src/qt/languages/ru-RU.po +++ b/src/qt/languages/ru-RU.po @@ -1050,11 +1050,8 @@ msgstr "Это приведёт к холодной перезагрузке э msgid "Save" msgstr "Сохранить" -msgid "About 86Box" -msgstr "О 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "О %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Эмулятор старых компьютеров\n\nАвторы: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nС предыдущими основными материалами от Sarah Walker, leilei, JohnElliott, greatpsycho и других.\n\nВыпускается под лицензией GNU General Public License версии 2 или более поздней. Дополнительную информацию см. в файле LICENSE." diff --git a/src/qt/languages/sk-SK.po b/src/qt/languages/sk-SK.po index b537f9285..4fbf9e98b 100644 --- a/src/qt/languages/sk-SK.po +++ b/src/qt/languages/sk-SK.po @@ -1050,11 +1050,8 @@ msgstr "Pokračovaním sa resetuje emulovaný počítač." msgid "Save" msgstr "Uložiť" -msgid "About 86Box" -msgstr "O programe 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "O programe %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Emulátor starých počítačov\n\nAutori: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nS predchádzajúcimi hlavnými príspevkami od Sarah Walker, leilei, JohnElliott, greatpsycho a ďalších.\n\nZverejnené pod licenciou GNU General Public License verzie 2 alebo novšej. Pozri súbor LICENSE pre viac informácií." diff --git a/src/qt/languages/sl-SI.po b/src/qt/languages/sl-SI.po index 7e1ba367e..c837d415c 100644 --- a/src/qt/languages/sl-SI.po +++ b/src/qt/languages/sl-SI.po @@ -1050,11 +1050,8 @@ msgstr "To bo ponovno zagnalo emuliran sistem." msgid "Save" msgstr "Shrani" -msgid "About 86Box" -msgstr "O programu 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "O programu %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Emulator starih računalnikov\n\nAvtorji: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne in drugi.\n\nS prejšnjimi prispevki Sarah Walker, leilei, JohnElliott, greatpsycho in drugih.\n\nIzdano pod licenco GNU General Public License različica 2 ali novejša. Glej datoteko LICENSE za več informacij." diff --git a/src/qt/languages/sv-SE.po b/src/qt/languages/sv-SE.po index 44247a260..8e94c9b9f 100644 --- a/src/qt/languages/sv-SE.po +++ b/src/qt/languages/sv-SE.po @@ -1050,11 +1050,8 @@ msgstr "Detta kommer att göra en hård omstart av den emulerade maskinen." msgid "Save" msgstr "Spara" -msgid "About 86Box" -msgstr "Om 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "Om %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "En emulator av gamla datorer\n\nUpphovsmän: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, med flera.\n\nMed tidigare grundbidrag från Sarah Walker, leilei, JohnElliott, greatpsycho, med flera.\n\nSläppt under GNU General Public License upplaga 2 eller senare. Se LICENSE för mer information." diff --git a/src/qt/languages/tr-TR.po b/src/qt/languages/tr-TR.po index 9689e4331..6010d5ea4 100644 --- a/src/qt/languages/tr-TR.po +++ b/src/qt/languages/tr-TR.po @@ -1050,11 +1050,8 @@ msgstr "Bu işlem makineyi yeniden başlamaya zorlayacak." msgid "Save" msgstr "Kaydet" -msgid "About 86Box" -msgstr "86Box hakkında" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "%1 hakkında" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Bir eski bilgisayar emülatörü\n\nYapımcılar: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne ve diğerleri.\n\nSarah Walker, leilei, JohnElliott, greatpsycho, ve diğerlerinin önceki katkılarıyla birlikte.\n\nGNU Genel Kamu Lisansı versiyon 2 veya sonrası altında yayınlanmıştır. Daha fazla bilgi için LICENSE kısmını gözden geçirin." diff --git a/src/qt/languages/uk-UA.po b/src/qt/languages/uk-UA.po index f2655a492..d54a248f0 100644 --- a/src/qt/languages/uk-UA.po +++ b/src/qt/languages/uk-UA.po @@ -1050,11 +1050,8 @@ msgstr "Це призведе до холодної перезагрузки е msgid "Save" msgstr "Зберегти" -msgid "About 86Box" -msgstr "Про 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "Про %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Емулятор старих комп'ютерів\n\nАвтори: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nЗ попередніми основними внесками Sarah Walker, leilei, JohnElliott, greatpsycho та інших.\n\nВипускаєтся під ліцензією GNU General Public License версії 2 або більше пізніше. Додадкову інформацію см. у файлі LICENSE." diff --git a/src/qt/languages/vi-VN.po b/src/qt/languages/vi-VN.po index 7cd3396eb..2fdbf3675 100644 --- a/src/qt/languages/vi-VN.po +++ b/src/qt/languages/vi-VN.po @@ -1050,11 +1050,8 @@ msgstr "Lệnh này sẽ buộc khởi động lại máy ảo." msgid "Save" msgstr "Lưu" -msgid "About 86Box" -msgstr "Về 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "Về %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "Trình giả lập các dòng máy tính cổ.\n\nTác giả: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, cùng những người khác.\n\nCùng với những đóng góp cốt cán từ Sarah Walker, leilei, JohnElliott, greatpsycho, và một số người khác.\n\nPhát hành dưới giấy phép GNU General Public License version 2 trở đi. Đọc LICENSE để biết thêm thông tin." diff --git a/src/qt/languages/zh-CN.po b/src/qt/languages/zh-CN.po index 0aa40165e..1ca52a77a 100644 --- a/src/qt/languages/zh-CN.po +++ b/src/qt/languages/zh-CN.po @@ -1050,11 +1050,8 @@ msgstr "此操作将硬重置模拟器。" msgid "Save" msgstr "保存" -msgid "About 86Box" -msgstr "关于 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "关于 %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "一个旧式计算机模拟器\n\n作者: Miran Grča (OBattler)、RichardG867、Jasmine Iwanek、TC1995、coldbrewed、Teemu Korhonen (Manaatti)、Joakim L. Gilje、Adrien Moulin (elyosh)、Daniel Balsom (gloriouscow)、Cacodemon345、Fred N. van Kempen (waltje)、Tiseno100、reenigne 等人。\n\n感谢 Sarah Walker、leilei、JohnElliott、greatpsycho 和其他人的核心贡献。\n\n本软件依据 GNU 通用公共许可证第二版或更新版本发布。详情见 LICENSE 文件。" diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po index 41ea38f50..9322745bb 100644 --- a/src/qt/languages/zh-TW.po +++ b/src/qt/languages/zh-TW.po @@ -1050,11 +1050,8 @@ msgstr "此操作將硬重設模擬器。" msgid "Save" msgstr "儲存" -msgid "About 86Box" -msgstr "關於 86Box" - -msgid "86Box v" -msgstr "86Box v" +msgid "About %1" +msgstr "關於 %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." msgstr "一個舊式電腦模擬器\n\n作者: Miran Grča (OBattler)、RichardG867、Jasmine Iwanek、TC1995、coldbrewed、Teemu Korhonen (Manaatti)、Joakim L. Gilje、Adrien Moulin (elyosh)、Daniel Balsom (gloriouscow)、Cacodemon345、Fred N. van Kempen (waltje)、Tiseno100、reenigne 等人。\n\n之前的核心貢獻來自 Sarah Walker、leilei、JohnElliott、greatpsycho 等人。\n\n本軟體依據 GNU 通用公共授權第二版或更新版本發佈。詳情見 LICENSE 檔案。" diff --git a/src/qt/qt_about.cpp b/src/qt/qt_about.cpp index a85ab54d5..f36282797 100644 --- a/src/qt/qt_about.cpp +++ b/src/qt/qt_about.cpp @@ -48,9 +48,9 @@ About::About(QWidget *parent) # define DYNAREC_STR "no dynarec" #endif versioninfo.append(QString(" [%1, %2]").arg(QSysInfo::buildCpuArchitecture(), tr(DYNAREC_STR))); - setText(QString("%3%1%2").arg(EMU_VERSION_FULL, versioninfo, tr("86Box v"))); + setText(QString("%1 v%2%3").arg(EMU_NAME, EMU_VERSION_FULL, versioninfo)); setInformativeText(tr("An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information.").replace("\n", "
")); - setWindowTitle(tr("About 86Box")); + setWindowTitle(tr("About %1").arg(EMU_NAME)); const auto closeButton = addButton("OK", QMessageBox::ButtonRole::AcceptRole); setEscapeButton(closeButton); const auto webSiteButton = addButton(EMU_SITE, QMessageBox::ButtonRole::HelpRole); From 1bd04914eb550210d3b7f35054cc38357659d796 Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 26 Nov 2025 01:02:10 +0500 Subject: [PATCH 25/39] Translations: Fix various mistakes --- src/qt/languages/es-ES.po | 6 +++--- src/qt/languages/hr-HR.po | 2 +- src/qt/languages/nb-NO.po | 2 +- src/qt/languages/pt-BR.po | 2 +- src/qt/languages/ru-RU.po | 4 ++-- src/qt/languages/sk-SK.po | 4 ++-- src/qt/languages/sv-SE.po | 2 +- src/qt/languages/tr-TR.po | 4 ++-- src/qt/languages/zh-CN.po | 2 +- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/qt/languages/es-ES.po b/src/qt/languages/es-ES.po index 59d6d060f..05c7b1cb0 100644 --- a/src/qt/languages/es-ES.po +++ b/src/qt/languages/es-ES.po @@ -2395,13 +2395,13 @@ msgid "EMS 2 Address" msgstr "Dirección de EMS 2" msgid "EMS Memory Size" -msgstr "Dirección de EMS" +msgstr "Tamaño de memoria de EMS" msgid "EMS 1 Memory Size" -msgstr "Dirección de EMS 1" +msgstr "Tamaño de memoria de EMS 1" msgid "EMS 2 Memory Size" -msgstr "Dirección de EMS 2" +msgstr "Tamaño de memoria de EMS 2" msgid "Enable EMS" msgstr "Habilitar EMS" diff --git a/src/qt/languages/hr-HR.po b/src/qt/languages/hr-HR.po index 0ca66d124..fb8802bbe 100644 --- a/src/qt/languages/hr-HR.po +++ b/src/qt/languages/hr-HR.po @@ -1099,7 +1099,7 @@ msgid "You are loading an unsupported configuration" msgstr "Učitavate nepodržanu konfiguraciju" msgid "CPU type filtering based on selected machine is disabled for this emulated machine.\n\nThis makes it possible to choose a CPU that is otherwise incompatible with the selected machine. However, you may run into incompatibilities with the machine BIOS or other software.\n\nEnabling this setting is not officially supported and any bug reports filed may be closed as invalid." -msgstr "Filtriranje tipa CPU-a na temelju odabranog sistema onemogućeno je za ovaj emulirani sistem.\n\nOvo omogućuje odabir procesora koji inače nisu kompatibilne s odabranog sistem. Međutim, možete naići na na nekompatibilnosti s BIOS-om sustava ili drugim softverom.\n\nOmogućavanje ove postavke nije službeno podržano i sva prijava o greškama mogu biti zatvorena kao \"invalid\"." +msgstr "Filtriranje tipa CPU-a na temelju odabranog sistema onemogućeno je za ovaj emulirani sistem.\n\nOvo omogućuje odabir procesora koji inače nisu kompatibilne s odabranog sistem. Međutim, možete naići na nekompatibilnosti s BIOS-om sustava ili drugim softverom.\n\nOmogućavanje ove postavke nije službeno podržano i sva prijava o greškama mogu biti zatvorena kao \"invalid\"." msgid "Continue" msgstr "Nastavi" diff --git a/src/qt/languages/nb-NO.po b/src/qt/languages/nb-NO.po index 7306eb74a..86db2bd85 100644 --- a/src/qt/languages/nb-NO.po +++ b/src/qt/languages/nb-NO.po @@ -874,7 +874,7 @@ msgid "3-axis, 2-button joystick" msgstr "3-akset, 2-knapps styrespak" msgid "3-axis, 3-button joystick" -msgstr "3-akset, 4-knapps styrespak" +msgstr "3-akset, 3-knapps styrespak" msgid "3-axis, 4-button joystick" msgstr "3-akset, 4-knapps styrespak" diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index 0b0743c85..d5a6e84f4 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -781,7 +781,7 @@ msgid "Parallel ports:" msgstr "Portas Paralelas:" msgid "Storage controllers" -msgstr "Controladores de armaz." +msgstr "Controladores de armazenamento" msgid "Hard disks" msgstr "Discos rígidos" diff --git a/src/qt/languages/ru-RU.po b/src/qt/languages/ru-RU.po index 0ca34287c..1bb5d8e6c 100644 --- a/src/qt/languages/ru-RU.po +++ b/src/qt/languages/ru-RU.po @@ -2473,10 +2473,10 @@ msgid "Five + 2 Wheels" msgstr "Пять + 2 колеса" msgid "A3 - SMT2 Serial / SMT3(R)V" -msgstr "A3 - SMT2 последовательная / SMT3(R)V" +msgstr "A3 - SMT2 последовательный / SMT3(R)V" msgid "Q1 - SMT3(R) Serial" -msgstr "Q1 - SMT3(R) последовательная" +msgstr "Q1 - SMT3(R) последовательный" msgid "8 KB" msgstr "8 КБ" diff --git a/src/qt/languages/sk-SK.po b/src/qt/languages/sk-SK.po index 4fbf9e98b..5c25c1c89 100644 --- a/src/qt/languages/sk-SK.po +++ b/src/qt/languages/sk-SK.po @@ -559,7 +559,7 @@ msgid "Quaternary IDE Controller" msgstr "Štvrtý radič IDE" msgid "Hard disk" -msgstr "Radič CD-ROM:" +msgstr "Pevný disk" msgid "SCSI" msgstr "SCSI" @@ -2842,7 +2842,7 @@ msgid "Move down" msgstr "Posunúť nižšie" msgid "Could not load file %1" -msgstr "Nebolo možné možné načítať súbor %1" +msgstr "Nebolo možné načítať súbor %1" msgid "Key Bindings:" msgstr "Nastavenie klávesov" diff --git a/src/qt/languages/sv-SE.po b/src/qt/languages/sv-SE.po index 8e94c9b9f..ed6aefae6 100644 --- a/src/qt/languages/sv-SE.po +++ b/src/qt/languages/sv-SE.po @@ -2050,7 +2050,7 @@ msgid "BIOS size (ROM #3)" msgstr "Storlek på BIOS (ROM #3)" msgid "BIOS size (ROM #4)" -msgstr "Storlek på BIOS (BIOS #4)" +msgstr "Storlek på BIOS (ROM #4)" msgid "Map C0000-C7FFF as UMB" msgstr "Kartlägg C0000-C7FFF som UMB" diff --git a/src/qt/languages/tr-TR.po b/src/qt/languages/tr-TR.po index 6010d5ea4..45cc8c2ff 100644 --- a/src/qt/languages/tr-TR.po +++ b/src/qt/languages/tr-TR.po @@ -2821,10 +2821,10 @@ msgid "Could not load texture: %1" msgstr "%1 dokusu yüklenemedi" msgid "Could not compile shader:\n\n%1" -msgstr "%1 gölgelendiricisi derlenemedi" +msgstr "Gölgelendirici derlenemedi:\n\n%1" msgid "Program not linked:\n\n%1" -msgstr "%1 programı bağlanamadı" +msgstr "Program bağlanamadı:\n\n%1" msgid "Shader Manager" msgstr "Gölgelendirici Yöneticisi" diff --git a/src/qt/languages/zh-CN.po b/src/qt/languages/zh-CN.po index 1ca52a77a..27693d3b3 100644 --- a/src/qt/languages/zh-CN.po +++ b/src/qt/languages/zh-CN.po @@ -1312,7 +1312,7 @@ msgid "Directory %1 already exists" msgstr "目录 %1 已存在" msgid "You cannot use the following characters in the name: %1" -msgstr " %1: 名称中不能使用以下字符: %1" +msgstr "名称中不能使用以下字符: %1" msgid "Clone" msgstr "克隆" From 19419e2eb30c8646f3993a52e230b11ccbc800dd Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 26 Nov 2025 01:03:57 +0500 Subject: [PATCH 26/39] Translations: Fix mismatched and superfluous spaces and line breaks --- src/qt/languages/de-DE.po | 2 +- src/qt/languages/ja-JP.po | 2 +- src/qt/languages/nl-NL.po | 12 ++++++------ src/qt/languages/uk-UA.po | 2 +- src/qt/languages/zh-CN.po | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/qt/languages/de-DE.po b/src/qt/languages/de-DE.po index af45ddacf..306b3ebf5 100644 --- a/src/qt/languages/de-DE.po +++ b/src/qt/languages/de-DE.po @@ -2929,7 +2929,7 @@ msgid "&Wipe NVRAM" msgstr "NVRAM leeren" msgid "This will delete all NVRAM (and related) files of the virtual machine located in the \"nvr\" subdirectory. You'll have to reconfigure the BIOS (and possibly other devices inside the VM) settings again if applicable.\n\nAre you sure you want to wipe all NVRAM contents of the virtual machine \"%1\"?" -msgstr "Dadurch werden alle NVRAM-Dateien (und zugehörige Dateien) der virtuellen Maschine im Unterverzeichnis \"nvr\" werden gelöscht. Gegebenenfalls müssen die BIOS-Einstellungen (und möglicherweise auch die Einstellungen anderer Geräte innerhalb der VM) erneut konfiguriert werden. Möchtest du wirklich den gesamten NVRAM-Inhalt der virtuellen Maschine \"%1\" löschen?" +msgstr "Dadurch werden alle NVRAM-Dateien (und zugehörige Dateien) der virtuellen Maschine im Unterverzeichnis \"nvr\" werden gelöscht. Gegebenenfalls müssen die BIOS-Einstellungen (und möglicherweise auch die Einstellungen anderer Geräte innerhalb der VM) erneut konfiguriert werden.\n\nMöchtest du wirklich den gesamten NVRAM-Inhalt der virtuellen Maschine \"%1\" löschen?" msgid "Success" msgstr "Erfolgreich" diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po index 92680952c..91d08551a 100644 --- a/src/qt/languages/ja-JP.po +++ b/src/qt/languages/ja-JP.po @@ -1807,7 +1807,7 @@ msgid "This machine might have been moved or copied." msgstr "このマシンは移動されたかコピーされた可能性がある。" msgid "In order to ensure proper networking functionality, 86Box needs to know if this machine was moved or copied.\n\nSelect \"I Copied It\" if you are not sure." -msgstr "ネットワーク機能を正しく動作させるために、86Boxはこのマシンが移動されたかコピーされたかを知る必要があります。「コピーした」を選択してください。" +msgstr "ネットワーク機能を正しく動作させるために、86Boxはこのマシンが移動されたかコピーされたかを知る必要があります。\n\n「コピーした」を選択してください。" msgid "I Moved It" msgstr "動かした" diff --git a/src/qt/languages/nl-NL.po b/src/qt/languages/nl-NL.po index 71d53af2f..d8beeec47 100644 --- a/src/qt/languages/nl-NL.po +++ b/src/qt/languages/nl-NL.po @@ -703,10 +703,10 @@ msgid "Speed" msgstr "Snelheid" msgid "Removable disk %1 (%2): %3" -msgstr "Verwijderbare schijf %1 (%2): %3" +msgstr "Verwijderbare schijf %1 (%2): %3" msgid "&Removable disk %1 (%2): %3" -msgstr "&Verwijderbare schijf %1 (%2): %3" +msgstr "&Verwijderbare schijf %1 (%2): %3" msgid "Removable disk images" msgstr "Verwijderbaar schijfimagebestand" @@ -913,7 +913,7 @@ msgid "4-button flight yoke" msgstr "4-knops stuurknuppel" msgid "2-button flight yoke with throttle" -msgstr "2-kops stuurknuppel met gashendel " +msgstr "2-kops stuurknuppel met gashendel" msgid "3-button flight yoke with throttle" msgstr "3-kops stuurknuppel met gashendel" @@ -1690,7 +1690,7 @@ msgid "Generate" msgstr "Genereren" msgid "Joystick configuration" -msgstr "Joystick configuratie " +msgstr "Joystick configuratie" msgid "Device" msgstr "Apparaat" @@ -1927,7 +1927,7 @@ msgid "Default Baud rate" msgstr "Standaard baudrate" msgid "[COM] Standard Hayes-compliant Modem" -msgstr "[COM] Standaard Hayes-compatibele modem " +msgstr "[COM] Standaard Hayes-compatibele modem" msgid "Roland MT-32 Emulation" msgstr "Roland MT-32-emulatie" @@ -2635,7 +2635,7 @@ msgid "Apply overscan deltas" msgstr "Overscan-delta’s toepassen" msgid "Mono Interlaced" -msgstr "Mono Interlaced " +msgstr "Mono Interlaced" msgid "Mono Non-Interlaced" msgstr "Mono Niet-Interlaced" diff --git a/src/qt/languages/uk-UA.po b/src/qt/languages/uk-UA.po index d54a248f0..8234f19be 100644 --- a/src/qt/languages/uk-UA.po +++ b/src/qt/languages/uk-UA.po @@ -2929,7 +2929,7 @@ msgid "&Wipe NVRAM" msgstr "&Стерти NVRAM" msgid "This will delete all NVRAM (and related) files of the virtual machine located in the \"nvr\" subdirectory. You'll have to reconfigure the BIOS (and possibly other devices inside the VM) settings again if applicable.\n\nAre you sure you want to wipe all NVRAM contents of the virtual machine \"%1\"?" -msgstr "Це видалить всі файли NVRAM (і пов'язані) віртуальної машини, розташованої в підпапці «nvr». Вам доведеться знову налаштувати BIOS (і, можливо, інші пристрої всередині віртуальної машини), якщо це необхідно. Ви впевнені, що хочете стерти весь вміст NVRAM віртуальної машини \"%1\"?" +msgstr "Це видалить всі файли NVRAM (і пов'язані) віртуальної машини, розташованої в підпапці «nvr». Вам доведеться знову налаштувати BIOS (і, можливо, інші пристрої всередині віртуальної машини), якщо це необхідно.\n\nВи впевнені, що хочете стерти весь вміст NVRAM віртуальної машини \"%1\"?" msgid "Success" msgstr "Успішно" diff --git a/src/qt/languages/zh-CN.po b/src/qt/languages/zh-CN.po index 27693d3b3..538cf0f78 100644 --- a/src/qt/languages/zh-CN.po +++ b/src/qt/languages/zh-CN.po @@ -2722,7 +2722,7 @@ msgid "Named Pipe (Server)" msgstr "命名管道(服务器)" msgid "Named Pipe (Client)" -msgstr "命名管道 (客户端) " +msgstr "命名管道 (客户端)" msgid "Host Serial Passthrough" msgstr "主机串口直通" From 8094d23d9e60b177aba70adf923219368276f7b6 Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 26 Nov 2025 01:04:21 +0500 Subject: [PATCH 27/39] Translations: Fix mismatched question and exclamation marks --- src/qt/languages/ja-JP.po | 8 ++++---- src/qt/languages/pt-PT.po | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po index 91d08551a..d872b79f6 100644 --- a/src/qt/languages/ja-JP.po +++ b/src/qt/languages/ja-JP.po @@ -1363,7 +1363,7 @@ msgid "An error has occurred while checking for updates: %1" msgstr "アップデートの確認中にエラーが発生しました: %1" msgid "An update to 86Box is available!" -msgstr "86Boxのアップデートが利用可能になりました!" +msgstr "86Boxのアップデートが利用可能になりました!" msgid "Warning" msgstr "警告" @@ -1378,7 +1378,7 @@ msgid "&Delete" msgstr "削除(&D)" msgid "Do you really want to delete the virtual machine \"%1\" and all its files? This action cannot be undone!" -msgstr "本当に仮想マシン\"%1\"とそのすべてのファイルを削除しますか? この操作は元に戻せません!" +msgstr "本当に仮想マシン\"%1\"とそのすべてのファイルを削除しますか? この操作は元に戻せません!" msgid "Show &config file" msgstr "設定ファイルを表示する(&C)" @@ -2929,7 +2929,7 @@ msgid "&Wipe NVRAM" msgstr "NVRAMを消去する(&W)" msgid "This will delete all NVRAM (and related) files of the virtual machine located in the \"nvr\" subdirectory. You'll have to reconfigure the BIOS (and possibly other devices inside the VM) settings again if applicable.\n\nAre you sure you want to wipe all NVRAM contents of the virtual machine \"%1\"?" -msgstr "これによって、仮想マシン内の\"nvr\"サブディレクトリに格納されているすべてのNVRAM(および関連)ファイルが削除されます。必要に応じて、BIOSの設定(および仮想マシン内の他のデバイス設定)を再構成する必要があります。\n\n仮想マシン\"%1\"のすべてのNVRAM内容を削除してもよろしいですか?" +msgstr "これによって、仮想マシン内の\"nvr\"サブディレクトリに格納されているすべてのNVRAM(および関連)ファイルが削除されます。必要に応じて、BIOSの設定(および仮想マシン内の他のデバイス設定)を再構成する必要があります。\n\n仮想マシン\"%1\"のすべてのNVRAM内容を削除してもよろしいですか?" msgid "Success" msgstr "成功" @@ -2950,7 +2950,7 @@ msgid "Unknown Status" msgstr "不明な状態" msgid "No Machines Found!" -msgstr "マシンが検出されません!" +msgstr "マシンが検出されません!" msgid "Check for updates on startup" msgstr "起動時にアップデートを確認する" diff --git a/src/qt/languages/pt-PT.po b/src/qt/languages/pt-PT.po index bc2c264f4..1e193f8fc 100644 --- a/src/qt/languages/pt-PT.po +++ b/src/qt/languages/pt-PT.po @@ -1096,7 +1096,7 @@ msgid "GLSL shaders" msgstr "Shaders GLSL" msgid "You are loading an unsupported configuration" -msgstr "Está a carregar uma configuração sem suporte!" +msgstr "Está a carregar uma configuração sem suporte" msgid "CPU type filtering based on selected machine is disabled for this emulated machine.\n\nThis makes it possible to choose a CPU that is otherwise incompatible with the selected machine. However, you may run into incompatibilities with the machine BIOS or other software.\n\nEnabling this setting is not officially supported and any bug reports filed may be closed as invalid." msgstr "A filtragem do tipo de CPU baseada na máquina escolhida está desativada para esta máquina emulada.\n\nIsto torna possível escolher um CPU que, de outra forma, não seria compatível com a máquina escolhida. No entanto, pode não ser compatível com a BIOS da máquina ou outros programas.\n\nA activação desta definição não tem suporte oficial e qualquer relatório de erros pode ser fechado como inválido." @@ -1204,7 +1204,7 @@ msgid "Use regular expressions in search box" msgstr "Usa expressões regulares na caixa de procura" msgid "%1 machine(s) are currently active. Are you sure you want to exit the VM manager anyway?" -msgstr "%1 máquina(s) estão actualmente activas. Quer mesmo sair do gerenciador de MVs" +msgstr "%1 máquina(s) estão actualmente activas. Quer mesmo sair do gerenciador de MVs?" msgid "Add new system wizard" msgstr "Assistende de adicionamento do novo sistema" @@ -1423,7 +1423,7 @@ msgid "Hard disk (%1)" msgstr "Disco rígido (%1)" msgid "MFM/RLL or ESDI CD-ROM drives never existed" -msgstr "Unidades CD-ROM com barramento MFM/RLL ou ESDI nunca existiram!" +msgstr "Unidades CD-ROM com barramento MFM/RLL ou ESDI nunca existiram" msgid "Custom..." msgstr "Personalizado..." @@ -1543,7 +1543,7 @@ msgid "This could mean that the parent image was modified after the differencing msgstr "Isto pode significar que a imagem pai foi modificada depois da criação da imagem diferenciadora.\n\nTambém pode acontecer se os ficheiros da imagem foram movidos ou copiados ou por causa de um erro no programa que criou este disco.\n\nQuer corrigir os carimbos de data/hora?" msgid "Parent and child disk timestamps do not match" -msgstr "Os carimbos de data/hora dos discos pai e filho não correspondem!" +msgstr "Os carimbos de data/hora dos discos pai e filho não correspondem" msgid "Could not fix VHD timestamp." msgstr "Não foi possível corrigir o carimbo de data/hora do VHD." From fa8d27261a18a76fc6154b6790035ea59b24c315 Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 26 Nov 2025 01:44:00 +0500 Subject: [PATCH 28/39] Translations: Fix mismatched periods and ellipses --- src/qt/languages/cs-CZ.po | 12 ++++++------ src/qt/languages/de-DE.po | 12 ++++++------ src/qt/languages/es-ES.po | 2 +- src/qt/languages/fi-FI.po | 8 ++++---- src/qt/languages/hr-HR.po | 2 +- src/qt/languages/ja-JP.po | 12 ++++++------ src/qt/languages/ko-KR.po | 18 +++++++++--------- src/qt/languages/pt-PT.po | 4 ++-- src/qt/languages/sk-SK.po | 12 ++++++------ src/qt/languages/sl-SI.po | 2 +- src/qt/languages/sv-SE.po | 4 ++-- src/qt/languages/tr-TR.po | 8 ++++---- src/qt/languages/uk-UA.po | 2 +- src/qt/languages/vi-VN.po | 22 +++++++++++----------- src/qt/languages/zh-CN.po | 10 +++++----- src/qt/languages/zh-TW.po | 8 ++++---- 16 files changed, 69 insertions(+), 69 deletions(-) diff --git a/src/qt/languages/cs-CZ.po b/src/qt/languages/cs-CZ.po index 97839b0ed..29b4f2674 100644 --- a/src/qt/languages/cs-CZ.po +++ b/src/qt/languages/cs-CZ.po @@ -214,7 +214,7 @@ msgid "Enable &Discord integration" msgstr "Povolit integraci s &Discordem" msgid "Sound &gain..." -msgstr "&Zesílení zvuku" +msgstr "&Zesílení zvuku..." msgid "Begin trace" msgstr "Začít trace" @@ -226,10 +226,10 @@ msgid "&Help" msgstr "Ná&pověda" msgid "&Documentation..." -msgstr "&Dokumentace" +msgstr "&Dokumentace..." msgid "&About 86Box..." -msgstr "&O programu 86Box" +msgstr "&O programu 86Box..." msgid "&New image..." msgstr "&Nový obraz..." @@ -1255,7 +1255,7 @@ msgid "Directory does not exist" msgstr "Adresář neexistuje" msgid "A new directory for the system will be created in the selected directory above" -msgstr "Pro tento systém bude vytvořen nový adresář ve výše zvoleném adresáři." +msgstr "Pro tento systém bude vytvořen nový adresář ve výše zvoleném adresáři" msgid "System location:" msgstr "Umístění systému:" @@ -1309,7 +1309,7 @@ msgid "Virtual machine \"%1\" (%2) will be cloned into:" msgstr "Virtuální počítač \"%1\" (%2) bude naklonován do:" msgid "Directory %1 already exists" -msgstr "Adresář %1 již existuje." +msgstr "Adresář %1 již existuje" msgid "You cannot use the following characters in the name: %1" msgstr "V názvu nelze použít následující znaky: %1" @@ -1720,7 +1720,7 @@ msgid "Show non-&primary monitors" msgstr "Zobrazit neprimární monitory" msgid "Open screenshots &folder..." -msgstr "Otevřít složku se snímky obrazovky" +msgstr "Otevřít složku se snímky obrazovky..." msgid "Appl&y fullscreen stretch mode when maximized" msgstr "Použít režim roztá&hnutí při celé obrazovce pro maximalizované okno" diff --git a/src/qt/languages/de-DE.po b/src/qt/languages/de-DE.po index 306b3ebf5..67464a2c2 100644 --- a/src/qt/languages/de-DE.po +++ b/src/qt/languages/de-DE.po @@ -1030,7 +1030,7 @@ msgid "&File" msgstr "&Datei" msgid "&New machine..." -msgstr "&Neue Maschine" +msgstr "&Neue Maschine..." msgid "&Check for updates..." msgstr "&Auf Aktualisierungen prüfen..." @@ -1213,7 +1213,7 @@ msgid "Introduction" msgstr "Einleitung" msgid "This will help you add a new system to 86Box." -msgstr "Hilft dir ein neues System zu 86Box hinzuzufügen" +msgstr "Hilft dir ein neues System zu 86Box hinzuzufügen." msgid "New configuration" msgstr "Neue Konfiguration" @@ -1285,19 +1285,19 @@ msgid "Enter the new display name (blank to reset)" msgstr "Gebe den neuen Anzeigenamen ein (leer lassen zum Zurücksetzen)" msgid "Change &display name..." -msgstr "&Anzeigename ändern" +msgstr "&Anzeigename ändern..." msgid "Context Menu" msgstr "Kontextmenü" msgid "&Open folder..." -msgstr "&Ordner öffnen" +msgstr "&Ordner öffnen..." msgid "Open p&rinter tray..." msgstr "D&ruckerausgabe öffnen..." msgid "Set &icon..." -msgstr "&Symbol setzen" +msgstr "&Symbol setzen..." msgid "Select an icon" msgstr "Wähle ein Symbol aus" @@ -2956,7 +2956,7 @@ msgid "Check for updates on startup" msgstr "Beim Programmstart auf Aktualisierungen prüfen" msgid "Unable to determine release information" -msgstr "Die Veröffentlichungsinformationen können nicht ermittelt werden." +msgstr "Die Veröffentlichungsinformationen können nicht ermittelt werden" msgid "There was an error checking for updates:\n\n%1\n\nPlease try again later." msgstr "Bei der Prüfung auf Aktualisierungen trat ein Fehler auf:\n\n%1\n\nBitte versuche es später erneut." diff --git a/src/qt/languages/es-ES.po b/src/qt/languages/es-ES.po index 05c7b1cb0..b9058d328 100644 --- a/src/qt/languages/es-ES.po +++ b/src/qt/languages/es-ES.po @@ -1303,7 +1303,7 @@ msgid "Select an icon" msgstr "Escoger un icono" msgid "C&lone..." -msgstr "C&lonar" +msgstr "C&lonar..." msgid "Virtual machine \"%1\" (%2) will be cloned into:" msgstr "La máquina virtual \"%1\" (%2) será clonada para:" diff --git a/src/qt/languages/fi-FI.po b/src/qt/languages/fi-FI.po index ff8915af8..2bc608182 100644 --- a/src/qt/languages/fi-FI.po +++ b/src/qt/languages/fi-FI.po @@ -1285,7 +1285,7 @@ msgid "Enter the new display name (blank to reset)" msgstr "Anna uusi näyttönimi tai poista se" msgid "Change &display name..." -msgstr "Vaihda &näyttönimi" +msgstr "Vaihda &näyttönimi..." msgid "Context Menu" msgstr "Kontekstivalikko" @@ -1453,7 +1453,7 @@ msgid "Unable to write file" msgstr "Tiedostoa ei voitu kirjoittaa" msgid "HDI or HDX images with a sector size other than 512 are not supported." -msgstr "HDI- ja HDX-levykuvien ainoa tuettu sektorikoko on 512" +msgstr "HDI- ja HDX-levykuvien ainoa tuettu sektorikoko on 512." msgid "Disk image file already exists" msgstr "Levykuva on jo olemassa" @@ -1465,7 +1465,7 @@ msgid "Disk image created" msgstr "Levykuva luotu" msgid "Make sure the file exists and is readable." -msgstr "Varmista, että tiedosto on olemassa ja lukukelpoinen" +msgstr "Varmista, että tiedosto on olemassa ja lukukelpoinen." msgid "Make sure the file is being saved to a writable directory." msgstr "Varmista, että tiedoston tallennuskansioon pystyy kirjoittamaan." @@ -2986,7 +2986,7 @@ msgid "Version %1 is now available." msgstr "Versio %1 on nyt saatavilla." msgid "You are currently running build %1." -msgstr "Käytät käännöstä %1" +msgstr "Käytät käännöstä %1." msgid "Build %1 is now available." msgstr "Käännös %1 on nyt saatavilla." diff --git a/src/qt/languages/hr-HR.po b/src/qt/languages/hr-HR.po index fb8802bbe..7a61aa0fb 100644 --- a/src/qt/languages/hr-HR.po +++ b/src/qt/languages/hr-HR.po @@ -1543,7 +1543,7 @@ msgid "This could mean that the parent image was modified after the differencing msgstr "To bi moglo značiti da je matična slika promijenjena nakon što je stvorena različita slika.\n\nTo se također može dogoditi ako su slike premještene ili kopirane, ili greška u programu koji je stvorio ovaj disk.\n\nŽelite li popraviti vremenske oznake?" msgid "Parent and child disk timestamps do not match" -msgstr "Vremenske ozanke matične i poređenog diska ne odgovaraju." +msgstr "Vremenske ozanke matične i poređenog diska ne odgovaraju" msgid "Could not fix VHD timestamp." msgstr "Ne mogu popraviti vremensku oznaku slike VHD." diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po index d872b79f6..0ba703cb3 100644 --- a/src/qt/languages/ja-JP.po +++ b/src/qt/languages/ja-JP.po @@ -67,7 +67,7 @@ msgid "&VNC" msgstr "VNC(&V)" msgid "Specify &dimensions..." -msgstr "ディメンションを指定...(&D)" +msgstr "ディメンションを指定(&D)..." msgid "Force &4:3 display ratio" msgstr "4:3の縦横比を強制表示(&4)" @@ -1030,7 +1030,7 @@ msgid "&File" msgstr "ファイル(&F)" msgid "&New machine..." -msgstr "新しいマシン(&N)" +msgstr "新しいマシン(&N)..." msgid "&Check for updates..." msgstr "アップデートを確認中(&C)..." @@ -1720,7 +1720,7 @@ msgid "Show non-&primary monitors" msgstr "プライマリーモニター以外のモニターを表示する(&P)" msgid "Open screenshots &folder..." -msgstr "スクリーンショットフォルダを開く(&F)" +msgstr "スクリーンショットフォルダを開く(&F)..." msgid "Appl&y fullscreen stretch mode when maximized" msgstr "最大化時にフルスクリーンストレッチモードを適用(&Y)" @@ -1792,7 +1792,7 @@ msgid "Couldn't switch to OpenGL context." msgstr "OpenGLコンテキストに切り替えられなかった。" msgid "OpenGL version 3.0 or greater is required. Current version is %1.%2" -msgstr "OpenGLのバージョン3.0以上が必要です。現在のバージョンは %1.%2 です。" +msgstr "OpenGLのバージョン3.0以上が必要です。現在のバージョンは %1.%2 です" msgid "Error initializing OpenGL" msgstr "OpenGLの初期化エラー" @@ -1873,7 +1873,7 @@ msgid "Serial port passthrough 4" msgstr "シリアル・ポート・パススルー 4" msgid "Renderer &options..." -msgstr "レンダラー設定...(&O)" +msgstr "レンダラー設定(&O)..." msgid "PC/XT Keyboard" msgstr "PC/XT キーボード" @@ -3040,7 +3040,7 @@ msgid "Sharpness" msgstr "シャープネス" msgid "&CGA composite settings..." -msgstr "CGA複合モードの設定...(&C)" +msgstr "CGA複合モードの設定(&C)..." msgid "CGA composite settings" msgstr "CGA複合モードの設定" diff --git a/src/qt/languages/ko-KR.po b/src/qt/languages/ko-KR.po index 1403aa632..f02604591 100644 --- a/src/qt/languages/ko-KR.po +++ b/src/qt/languages/ko-KR.po @@ -67,7 +67,7 @@ msgid "&VNC" msgstr "VNC(&V)" msgid "Specify &dimensions..." -msgstr "창 크기 지정하기...(&D)" +msgstr "창 크기 지정하기(&D)..." msgid "Force &4:3 display ratio" msgstr "화면 비율을 4:3으로 맞추기(&4)" @@ -1438,10 +1438,10 @@ msgid "Add Existing Hard Disk" msgstr "기존 이미지 사용" msgid "HDI disk images cannot be larger than 4 GB." -msgstr "HDI 디스크 이미지는 4GB 이상으로 지정할 수 없습니다" +msgstr "HDI 디스크 이미지는 4GB 이상으로 지정할 수 없습니다." msgid "Disk images cannot be larger than 127 GB." -msgstr "디스크 이미지는 127GB 이상으로 지정할 수 없습니다" +msgstr "디스크 이미지는 127GB 이상으로 지정할 수 없습니다." msgid "Hard disk images" msgstr "하드 디스크 이미지" @@ -1453,7 +1453,7 @@ msgid "Unable to write file" msgstr "파일을 저장할 수 없습니다" msgid "HDI or HDX images with a sector size other than 512 are not supported." -msgstr "512 바이트 이외의 섹터 크기를 가진 HDI 또는 HDX 형식의 이미지를 생성할 수 없습니다" +msgstr "512 바이트 이외의 섹터 크기를 가진 HDI 또는 HDX 형식의 이미지를 생성할 수 없습니다." msgid "Disk image file already exists" msgstr "디스크 이미지 파일이 이미 존재합니다" @@ -1546,7 +1546,7 @@ msgid "Parent and child disk timestamps do not match" msgstr "부모 디스크와 자식 디스크의 타임스탬프가 일치하지 않습니다" msgid "Could not fix VHD timestamp." -msgstr "VHD 타임스탬프를 고칠 수 없습니다" +msgstr "VHD 타임스탬프를 고칠 수 없습니다." msgid "MFM/RLL" msgstr "MFM/RLL" @@ -1720,7 +1720,7 @@ msgid "Show non-&primary monitors" msgstr "기본 모니터가 아닌 모니터 표시(&P)" msgid "Open screenshots &folder..." -msgstr "스크린샷 폴더 열기...(&F)" +msgstr "스크린샷 폴더 열기(&F)..." msgid "Appl&y fullscreen stretch mode when maximized" msgstr "최대화 시 전체 화면 비율 적용(&Y)" @@ -1792,7 +1792,7 @@ msgid "Couldn't switch to OpenGL context." msgstr "OpenGL 컨텍스트로 전환할 수 없습니다." msgid "OpenGL version 3.0 or greater is required. Current version is %1.%2" -msgstr "OpenGL 버전 3.0 이상이 필요합니다. 현재 버전은 %1.%2입니다." +msgstr "OpenGL 버전 3.0 이상이 필요합니다. 현재 버전은 %1.%2입니다" msgid "Error initializing OpenGL" msgstr "OpenGL 초기화 중 오류 발생" @@ -1873,7 +1873,7 @@ msgid "Serial port passthrough 4" msgstr "직렬 포트 패스스루 4" msgid "Renderer &options..." -msgstr "렌더러 옵션...(&O)" +msgstr "렌더러 옵션(&O)..." msgid "PC/XT Keyboard" msgstr "PC/XT 키보드" @@ -3040,7 +3040,7 @@ msgid "Sharpness" msgstr "선명도" msgid "&CGA composite settings..." -msgstr "CGA 복합 모드의 설정...(&C)" +msgstr "CGA 복합 모드의 설정(&C)..." msgid "CGA composite settings" msgstr "CGA 복합 모드의 설정" diff --git a/src/qt/languages/pt-PT.po b/src/qt/languages/pt-PT.po index 1e193f8fc..60a92833a 100644 --- a/src/qt/languages/pt-PT.po +++ b/src/qt/languages/pt-PT.po @@ -1030,7 +1030,7 @@ msgid "&File" msgstr "F&icheiro" msgid "&New machine..." -msgstr "&Nova máquina" +msgstr "&Nova máquina..." msgid "&Check for updates..." msgstr "&Verificar para atualizações..." @@ -2785,7 +2785,7 @@ msgid "Unable to find Dot-Matrix fonts" msgstr "Não foi possível encontrar os fontes matriciais de pontos" msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P 2 Dot-Matrix Printer." -msgstr "As fontes TrueType no diretório \"roms/printer/fonts\" são necessárias para a emulação da impressora matricial de pontos ESC/P 2 genérica" +msgstr "As fontes TrueType no diretório \"roms/printer/fonts\" são necessárias para a emulação da impressora matricial de pontos ESC/P 2 genérica." msgid "Inhibit multimedia keys" msgstr "Deshabilitar teclas de multimídia" diff --git a/src/qt/languages/sk-SK.po b/src/qt/languages/sk-SK.po index 5c25c1c89..74727c705 100644 --- a/src/qt/languages/sk-SK.po +++ b/src/qt/languages/sk-SK.po @@ -214,7 +214,7 @@ msgid "Enable &Discord integration" msgstr "Povolenie integrácie s &Discordem" msgid "Sound &gain..." -msgstr "&Zosilnenie zvuku" +msgstr "&Zosilnenie zvuku..." msgid "Begin trace" msgstr "Začať trace" @@ -226,10 +226,10 @@ msgid "&Help" msgstr "&Pomoc" msgid "&Documentation..." -msgstr "&Dokumentácia" +msgstr "&Dokumentácia..." msgid "&About 86Box..." -msgstr "&O programu 86Box" +msgstr "&O programu 86Box..." msgid "&New image..." msgstr "&Nový obraz..." @@ -1255,7 +1255,7 @@ msgid "Directory does not exist" msgstr "Adresár neexistuje" msgid "A new directory for the system will be created in the selected directory above" -msgstr "Pre tento systém bude vytvorený nový adresár vo vyššie zvolenom adresári." +msgstr "Pre tento systém bude vytvorený nový adresár vo vyššie zvolenom adresári" msgid "System location:" msgstr "Umiestnenie systému:" @@ -1309,7 +1309,7 @@ msgid "Virtual machine \"%1\" (%2) will be cloned into:" msgstr "Virtuálny počítač \"%1\" (%2) bude klonovaný do:" msgid "Directory %1 already exists" -msgstr "Adresár %1 už existuje." +msgstr "Adresár %1 už existuje" msgid "You cannot use the following characters in the name: %1" msgstr "V názve nemožno použiť nasledujúce znaky: %1" @@ -2935,7 +2935,7 @@ msgid "Success" msgstr "Úspech" msgid "Successfully wiped the NVRAM contents of the virtual machine \"%1\"" -msgstr "Obsah NVRAM virtuálneho počítača \"%1\" bol úspešne vymazaný." +msgstr "Obsah NVRAM virtuálneho počítača \"%1\" bol úspešne vymazaný" msgid "An error occurred trying to wipe the NVRAM contents of the virtual machine \"%1\"" msgstr "Pri pokuse o vymazanie obsahu NVRAM virtuálneho počítača \"%1\" došlo k chybe" diff --git a/src/qt/languages/sl-SI.po b/src/qt/languages/sl-SI.po index c837d415c..7c2974721 100644 --- a/src/qt/languages/sl-SI.po +++ b/src/qt/languages/sl-SI.po @@ -1297,7 +1297,7 @@ msgid "Open p&rinter tray..." msgstr "Odpri pladenj &tiskalnika..." msgid "Set &icon..." -msgstr "Izberi &ikono" +msgstr "Izberi &ikono..." msgid "Select an icon" msgstr "Izberi ikono" diff --git a/src/qt/languages/sv-SE.po b/src/qt/languages/sv-SE.po index ed6aefae6..01b414290 100644 --- a/src/qt/languages/sv-SE.po +++ b/src/qt/languages/sv-SE.po @@ -2935,10 +2935,10 @@ msgid "Success" msgstr "Lyckades" msgid "Successfully wiped the NVRAM contents of the virtual machine \"%1\"" -msgstr "Lyckades tömma allt NVRAM-innehåll för den virtuella maskinen \"%1\"." +msgstr "Lyckades tömma allt NVRAM-innehåll för den virtuella maskinen \"%1\"" msgid "An error occurred trying to wipe the NVRAM contents of the virtual machine \"%1\"" -msgstr "Ett fel uppstod vid försök att tömma NVRAM-innehållet för den virtuella maskinen \"%1\"." +msgstr "Ett fel uppstod vid försök att tömma NVRAM-innehållet för den virtuella maskinen \"%1\"" msgid "%1 VM Manager" msgstr "%1 VM-hanterare" diff --git a/src/qt/languages/tr-TR.po b/src/qt/languages/tr-TR.po index 45cc8c2ff..d697768ab 100644 --- a/src/qt/languages/tr-TR.po +++ b/src/qt/languages/tr-TR.po @@ -586,10 +586,10 @@ msgid "Firmware Version" msgstr "Bellenim Sürümü" msgid "&New..." -msgstr "&Yeni görüntü oluştur" +msgstr "&Yeni görüntü oluştur..." msgid "&Existing..." -msgstr "&Görüntü dosyası seç" +msgstr "&Görüntü dosyası seç..." msgid "&Remove" msgstr "&Kaldır" @@ -1285,7 +1285,7 @@ msgid "Enter the new display name (blank to reset)" msgstr "Yeni görünü adını girin (sıfırlamak için boş bırakın)" msgid "Change &display name..." -msgstr "Görüntü adını &değiştirin" +msgstr "Görüntü adını &değiştirin..." msgid "Context Menu" msgstr "Bağlam Menüsü" @@ -1321,7 +1321,7 @@ msgid "Failed to create directory for cloned VM" msgstr "Klonlanmış VM için dizin oluşturulamadı" msgid "Failed to clone VM." -msgstr "VM klonlanamadı" +msgstr "VM klonlanamadı." msgid "Directory in use" msgstr "Dizin kullanımda" diff --git a/src/qt/languages/uk-UA.po b/src/qt/languages/uk-UA.po index 8234f19be..9ff091254 100644 --- a/src/qt/languages/uk-UA.po +++ b/src/qt/languages/uk-UA.po @@ -2296,7 +2296,7 @@ msgid "GUS type" msgstr "Тип GUS" msgid "Enable 0x04 \"Exit 86Box\" command" -msgstr "Увімкнути команду 0x04 \"Вихід з 86Box\"." +msgstr "Увімкнути команду 0x04 \"Вихід з 86Box\"" msgid "Display type" msgstr "Тип відображення" diff --git a/src/qt/languages/vi-VN.po b/src/qt/languages/vi-VN.po index 2fdbf3675..6aa0de164 100644 --- a/src/qt/languages/vi-VN.po +++ b/src/qt/languages/vi-VN.po @@ -196,7 +196,7 @@ msgid "&Settings..." msgstr "&Cài đặt..." msgid "Settings..." -msgstr "Cài đặt" +msgstr "Cài đặt..." msgid "&Update status bar icons" msgstr "Cậ&p nhật biểu tượng thanh trạng thái" @@ -271,7 +271,7 @@ msgid "Reload previous image" msgstr "Load đĩa trước đó" msgid "&Folder..." -msgstr "Thư mụ&c" +msgstr "Thư mụ&c..." msgid "Target &framerate" msgstr "Số khung hình mục tiêu" @@ -1030,7 +1030,7 @@ msgid "&File" msgstr "&Tập tin" msgid "&New machine..." -msgstr "Máy &mới" +msgstr "Máy &mới..." msgid "&Check for updates..." msgstr "Kiểm tra &cập nhật..." @@ -1096,7 +1096,7 @@ msgid "GLSL shaders" msgstr "Shader GLSL" msgid "You are loading an unsupported configuration" -msgstr "Bạn đang load tinh chỉnh không được hỗ trợ." +msgstr "Bạn đang load tinh chỉnh không được hỗ trợ" msgid "CPU type filtering based on selected machine is disabled for this emulated machine.\n\nThis makes it possible to choose a CPU that is otherwise incompatible with the selected machine. However, you may run into incompatibilities with the machine BIOS or other software.\n\nEnabling this setting is not officially supported and any bug reports filed may be closed as invalid." msgstr "Phần chọn loại CPU dựa trên mẫu máy đã chọn bị vô hiệu hóa.\n\nỞ đây bạn có thể chọn loại CPU có thể không tương thích với mẫu máy hiện tại. Tuy nhiên bạn có thể gặp vấn đề tương khắc với BIOS hay phần mềm khác.\n\nViệc bật tùy chọn này lên không được khuyến cáo chính thức và các bản bug report (báo lỗi) với nội dung tương tự sẽ bị coi là phạm quy và đóng." @@ -1285,25 +1285,25 @@ msgid "Enter the new display name (blank to reset)" msgstr "Điền tên hiển thị mới (để trống để đặt lại)" msgid "Change &display name..." -msgstr "Thay đổi tên hiển thị" +msgstr "Thay đổi tên hiển thị..." msgid "Context Menu" msgstr "Menu ngữ cảnh" msgid "&Open folder..." -msgstr "Mở thư mục" +msgstr "Mở thư mục..." msgid "Open p&rinter tray..." -msgstr "Mở khay máy in" +msgstr "Mở khay máy in..." msgid "Set &icon..." -msgstr "Đặt biểu trưng" +msgstr "Đặt biểu trưng..." msgid "Select an icon" msgstr "Chọn một biểu trưng" msgid "C&lone..." -msgstr "Tạo bản sao" +msgstr "Tạo bản sao..." msgid "Virtual machine \"%1\" (%2) will be cloned into:" msgstr "Máy ảo \"%1\" (%2) sẽ được sao chép vào:" @@ -2980,13 +2980,13 @@ msgid "build" msgstr "bản dựng" msgid "You are currently running version %1." -msgstr "Bạn đang chạy phiên bản %1" +msgstr "Bạn đang chạy phiên bản %1." msgid "Version %1 is now available." msgstr "Phiên bản %1 hiện đã ra mắt." msgid "You are currently running build %1." -msgstr "Bạn đang chạy bản dựng %1" +msgstr "Bạn đang chạy bản dựng %1." msgid "Build %1 is now available." msgstr "Bản dựng %1 hiện đã ra mắt." diff --git a/src/qt/languages/zh-CN.po b/src/qt/languages/zh-CN.po index 538cf0f78..eac830ab6 100644 --- a/src/qt/languages/zh-CN.po +++ b/src/qt/languages/zh-CN.po @@ -67,7 +67,7 @@ msgid "&VNC" msgstr "VNC(&V)" msgid "Specify &dimensions..." -msgstr "指定窗口大小...(&D)" +msgstr "指定窗口大小(&D)..." msgid "Force &4:3 display ratio" msgstr "强制 4:3 显示比例(&4)" @@ -196,7 +196,7 @@ msgid "&Settings..." msgstr "设置(&S)..." msgid "Settings..." -msgstr "设置" +msgstr "设置..." msgid "&Update status bar icons" msgstr "更新状态栏图标(&U)" @@ -1720,7 +1720,7 @@ msgid "Show non-&primary monitors" msgstr "显示非主要显示器(&P)" msgid "Open screenshots &folder..." -msgstr "打开屏幕截图文件夹...(&F)" +msgstr "打开屏幕截图文件夹(&F)..." msgid "Appl&y fullscreen stretch mode when maximized" msgstr "最大化时应用全屏拉伸模式(&Y)" @@ -1873,7 +1873,7 @@ msgid "Serial port passthrough 4" msgstr "串口直通 4" msgid "Renderer &options..." -msgstr "渲染器选项...(&O)" +msgstr "渲染器选项(&O)..." msgid "PC/XT Keyboard" msgstr "PC/XT 键盘" @@ -3040,7 +3040,7 @@ msgid "Sharpness" msgstr "锐度" msgid "&CGA composite settings..." -msgstr "CGA 复合模式设置...(&C)" +msgstr "CGA 复合模式设置(&C)..." msgid "CGA composite settings" msgstr "CGA 复合模式设置" diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po index 9322745bb..cab2762d5 100644 --- a/src/qt/languages/zh-TW.po +++ b/src/qt/languages/zh-TW.po @@ -67,7 +67,7 @@ msgid "&VNC" msgstr "VNC(&V)" msgid "Specify &dimensions..." -msgstr "指定視窗大小...(&D)" +msgstr "指定視窗大小(&D)..." msgid "Force &4:3 display ratio" msgstr "強制 4:3 顯示比例(&4)" @@ -1720,7 +1720,7 @@ msgid "Show non-&primary monitors" msgstr "顯示非主要監視器(&P)" msgid "Open screenshots &folder..." -msgstr "開啟螢幕擷圖資料夾...(&F)" +msgstr "開啟螢幕擷圖資料夾(&F)..." msgid "Appl&y fullscreen stretch mode when maximized" msgstr "最大化時套用全螢幕延展模式(&Y)" @@ -1873,7 +1873,7 @@ msgid "Serial port passthrough 4" msgstr "序列埠的直通 4" msgid "Renderer &options..." -msgstr "渲染器選項...(&O)" +msgstr "渲染器選項(&O)..." msgid "PC/XT Keyboard" msgstr "PC/XT 鍵盤" @@ -3040,7 +3040,7 @@ msgid "Sharpness" msgstr "銳利度" msgid "&CGA composite settings..." -msgstr "CGA 複合視訊的設定...(&C)" +msgstr "CGA 複合視訊的設定(&C)..." msgid "CGA composite settings" msgstr "CGA 複合視訊的設定" From 16b7b932d85c7c35d94a80703cfd0e5d800e10aa Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 26 Nov 2025 02:46:10 +0500 Subject: [PATCH 29/39] Translations: Fix mismatched colons --- src/qt/languages/cs-CZ.po | 6 +++--- src/qt/languages/de-DE.po | 2 +- src/qt/languages/es-ES.po | 2 +- src/qt/languages/fi-FI.po | 2 +- src/qt/languages/it-IT.po | 2 +- src/qt/languages/ja-JP.po | 2 +- src/qt/languages/nb-NO.po | 2 +- src/qt/languages/nl-NL.po | 6 +++--- src/qt/languages/pt-BR.po | 2 +- src/qt/languages/pt-PT.po | 2 +- src/qt/languages/sk-SK.po | 8 ++++---- src/qt/languages/sl-SI.po | 2 +- src/qt/languages/tr-TR.po | 10 +++++----- src/qt/languages/vi-VN.po | 2 +- src/qt/languages/zh-CN.po | 12 ++++++------ src/qt/languages/zh-TW.po | 2 +- 16 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/qt/languages/cs-CZ.po b/src/qt/languages/cs-CZ.po index 29b4f2674..1cadad218 100644 --- a/src/qt/languages/cs-CZ.po +++ b/src/qt/languages/cs-CZ.po @@ -2845,7 +2845,7 @@ msgid "Could not load file %1" msgstr "Nebylo možné načíst soubor %1" msgid "Key Bindings:" -msgstr "Nastavení kláves" +msgstr "Nastavení kláves:" msgid "Action" msgstr "Akce" @@ -2863,7 +2863,7 @@ msgid "Bind Key" msgstr "Nastavit klávesu" msgid "Enter key combo:" -msgstr "Zadejte kombinaci kláves" +msgstr "Zadejte kombinaci kláves:" msgid "Bind conflict" msgstr "Konflikt nastavení" @@ -2917,7 +2917,7 @@ msgid "Hub Mode" msgstr "Režim hubu" msgid "Hostname:" -msgstr "Hostitelské jméno" +msgstr "Hostitelské jméno:" msgid "ISA RAM:" msgstr "ISA paměť RAM:" diff --git a/src/qt/languages/de-DE.po b/src/qt/languages/de-DE.po index 67464a2c2..e743dd3e9 100644 --- a/src/qt/languages/de-DE.po +++ b/src/qt/languages/de-DE.po @@ -1183,7 +1183,7 @@ msgid "VMs: %1" msgstr "" msgid "System Directory:" -msgstr "Systemverzeichnis" +msgstr "Systemverzeichnis:" msgid "Choose directory" msgstr "Verzeichnis auswählen" diff --git a/src/qt/languages/es-ES.po b/src/qt/languages/es-ES.po index b9058d328..cc1f0feae 100644 --- a/src/qt/languages/es-ES.po +++ b/src/qt/languages/es-ES.po @@ -478,7 +478,7 @@ msgid "MIDI In Device:" msgstr "Dispositivo MIDI de entrada:" msgid "MIDI Out:" -msgstr "Salida MIDI" +msgstr "Salida MIDI:" msgid "Standalone MPU-401" msgstr "MPU-401 independiente" diff --git a/src/qt/languages/fi-FI.po b/src/qt/languages/fi-FI.po index 2bc608182..02eac7067 100644 --- a/src/qt/languages/fi-FI.po +++ b/src/qt/languages/fi-FI.po @@ -1261,7 +1261,7 @@ msgid "System location:" msgstr "Koneen sijainti:" msgid "System name and location" -msgstr "Koneen nimi ja sijainti:" +msgstr "Koneen nimi ja sijainti" msgid "Enter the name of the system and choose the location" msgstr "Anna koneen nimi ja valitse sijainti" diff --git a/src/qt/languages/it-IT.po b/src/qt/languages/it-IT.po index b21025394..8ea020165 100644 --- a/src/qt/languages/it-IT.po +++ b/src/qt/languages/it-IT.po @@ -520,7 +520,7 @@ msgid "LPT4 Device:" msgstr "Dispositivo LPT4:" msgid "Internal LPT ECP DMA:" -msgstr "DMA LPT ECP interna" +msgstr "DMA LPT ECP interna:" msgid "Serial port 1" msgstr "Porta seriale 1" diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po index 0ba703cb3..488ff1dbd 100644 --- a/src/qt/languages/ja-JP.po +++ b/src/qt/languages/ja-JP.po @@ -478,7 +478,7 @@ msgid "MIDI In Device:" msgstr "MIDI入力デバイス:" msgid "MIDI Out:" -msgstr "MIDI出力" +msgstr "MIDI出力:" msgid "Standalone MPU-401" msgstr "独立型MPU-401" diff --git a/src/qt/languages/nb-NO.po b/src/qt/languages/nb-NO.po index 86db2bd85..637522609 100644 --- a/src/qt/languages/nb-NO.po +++ b/src/qt/languages/nb-NO.po @@ -328,7 +328,7 @@ msgid "&Default" msgstr "&Standard" msgid "Language:" -msgstr "Språk" +msgstr "Språk:" msgid "Gain" msgstr "Forsterkning" diff --git a/src/qt/languages/nl-NL.po b/src/qt/languages/nl-NL.po index d8beeec47..bf2d3b647 100644 --- a/src/qt/languages/nl-NL.po +++ b/src/qt/languages/nl-NL.po @@ -550,7 +550,7 @@ msgid "FD Controller:" msgstr "FD-Controller:" msgid "CD-ROM Controller:" -msgstr "CD-ROM controller" +msgstr "CD-ROM controller:" msgid "Tertiary IDE Controller" msgstr "Tertiaire IDE-controller" @@ -2845,7 +2845,7 @@ msgid "Could not load file %1" msgstr "Kon bestand %1 niet laden" msgid "Key Bindings:" -msgstr "Toetskoppelingen" +msgstr "Toetskoppelingen:" msgid "Action" msgstr "Actie" @@ -2917,7 +2917,7 @@ msgid "Hub Mode" msgstr "Hub-modus" msgid "Hostname:" -msgstr "Hostnaam" +msgstr "Hostnaam:" msgid "ISA RAM:" msgstr "ISA RAM:" diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index d5a6e84f4..a55fb96bc 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -1852,7 +1852,7 @@ msgid "VDE Socket:" msgstr "Soquete VDE:" msgid "TAP Bridge Device:" -msgstr "Dispositivo Ponte TAP" +msgstr "Dispositivo Ponte TAP:" msgid "86Box Unit Tester" msgstr "Testador de unidade 86Box" diff --git a/src/qt/languages/pt-PT.po b/src/qt/languages/pt-PT.po index 60a92833a..a65843f24 100644 --- a/src/qt/languages/pt-PT.po +++ b/src/qt/languages/pt-PT.po @@ -2911,7 +2911,7 @@ msgid "Remote Switch" msgstr "Comutador remoto" msgid "Switch:" -msgstr "Comutador" +msgstr "Comutador:" msgid "Hub Mode" msgstr "Modo de concentrador" diff --git a/src/qt/languages/sk-SK.po b/src/qt/languages/sk-SK.po index 74727c705..b9843588f 100644 --- a/src/qt/languages/sk-SK.po +++ b/src/qt/languages/sk-SK.po @@ -478,7 +478,7 @@ msgid "MIDI In Device:" msgstr "Zariadenie pre MIDI vstup:" msgid "MIDI Out:" -msgstr "MIDI výstup" +msgstr "MIDI výstup:" msgid "Standalone MPU-401" msgstr "Samostatný MPU-401" @@ -2845,7 +2845,7 @@ msgid "Could not load file %1" msgstr "Nebolo možné načítať súbor %1" msgid "Key Bindings:" -msgstr "Nastavenie klávesov" +msgstr "Nastavenie klávesov:" msgid "Action" msgstr "Akcia" @@ -2863,7 +2863,7 @@ msgid "Bind Key" msgstr "Nastaviť klávesu" msgid "Enter key combo:" -msgstr "Zadajte kombináciu klávesov" +msgstr "Zadajte kombináciu klávesov:" msgid "Bind conflict" msgstr "Konflikt nastavení" @@ -2917,7 +2917,7 @@ msgid "Hub Mode" msgstr "Režim hubu" msgid "Hostname:" -msgstr "Hostiteľské meno" +msgstr "Hostiteľské meno:" msgid "ISA RAM:" msgstr "ISA pamäť RAM:" diff --git a/src/qt/languages/sl-SI.po b/src/qt/languages/sl-SI.po index 7c2974721..47aafa416 100644 --- a/src/qt/languages/sl-SI.po +++ b/src/qt/languages/sl-SI.po @@ -2845,7 +2845,7 @@ msgid "Could not load file %1" msgstr "Ni bilo mogoče naložiti datoteke %1" msgid "Key Bindings:" -msgstr "Kombinacije tipk" +msgstr "Kombinacije tipk:" msgid "Action" msgstr "Dejanje" diff --git a/src/qt/languages/tr-TR.po b/src/qt/languages/tr-TR.po index d697768ab..34b52fdb1 100644 --- a/src/qt/languages/tr-TR.po +++ b/src/qt/languages/tr-TR.po @@ -1186,7 +1186,7 @@ msgid "System Directory:" msgstr "Sistem Dizini:" msgid "Choose directory" -msgstr "Dizin seç:" +msgstr "Dizin seç" msgid "Choose configuration file" msgstr "Yapılandırma dosyası seç" @@ -1261,7 +1261,7 @@ msgid "System location:" msgstr "Sistem yeri:" msgid "System name and location" -msgstr "Sistem adı ve yeri:" +msgstr "Sistem adı ve yeri" msgid "Enter the name of the system and choose the location" msgstr "Sistemin adını girin ve yerini seçin" @@ -1273,7 +1273,7 @@ msgid "Please enter a system name" msgstr "Lütfen bir sistem adı girin" msgid "Display name (optional):" -msgstr "Görüntü adı (isteğe bağlı)" +msgstr "Görüntü adı (isteğe bağlı):" msgid "Display name:" msgstr "Görüntü adı:" @@ -2845,7 +2845,7 @@ msgid "Could not load file %1" msgstr "%1 dosyası yüklenemedi" msgid "Key Bindings:" -msgstr "Tuş Bağlamaları" +msgstr "Tuş Bağlamaları:" msgid "Action" msgstr "Eylem" @@ -2917,7 +2917,7 @@ msgid "Hub Mode" msgstr "Hub Modu" msgid "Hostname:" -msgstr "Ana bilgisayar adı" +msgstr "Ana bilgisayar adı:" msgid "ISA RAM:" msgstr "ISA RAM:" diff --git a/src/qt/languages/vi-VN.po b/src/qt/languages/vi-VN.po index 6aa0de164..18b259a6f 100644 --- a/src/qt/languages/vi-VN.po +++ b/src/qt/languages/vi-VN.po @@ -2863,7 +2863,7 @@ msgid "Bind Key" msgstr "Gắn phím" msgid "Enter key combo:" -msgstr "Nhập tổ hợp phím" +msgstr "Nhập tổ hợp phím:" msgid "Bind conflict" msgstr "Gắn phím trùng lặp" diff --git a/src/qt/languages/zh-CN.po b/src/qt/languages/zh-CN.po index eac830ab6..41b64ce77 100644 --- a/src/qt/languages/zh-CN.po +++ b/src/qt/languages/zh-CN.po @@ -550,7 +550,7 @@ msgid "FD Controller:" msgstr "软盘控制器:" msgid "CD-ROM Controller:" -msgstr "CD-ROM 控制器" +msgstr "CD-ROM 控制器:" msgid "Tertiary IDE Controller" msgstr "第三 IDE 控制器" @@ -1183,7 +1183,7 @@ msgid "VMs: %1" msgstr "虚拟机: %1" msgid "System Directory:" -msgstr "系统目录" +msgstr "系统目录:" msgid "Choose directory" msgstr "选择目录" @@ -1273,7 +1273,7 @@ msgid "Please enter a system name" msgstr "请输入系统名称" msgid "Display name (optional):" -msgstr "显示名称 (可选)" +msgstr "显示名称 (可选):" msgid "Display name:" msgstr "显示名称:" @@ -2845,7 +2845,7 @@ msgid "Could not load file %1" msgstr "无法加载文件 %1" msgid "Key Bindings:" -msgstr "按键绑定" +msgstr "按键绑定:" msgid "Action" msgstr "动作" @@ -2863,7 +2863,7 @@ msgid "Bind Key" msgstr "绑定按键" msgid "Enter key combo:" -msgstr "输入按键组合" +msgstr "输入按键组合:" msgid "Bind conflict" msgstr "绑定冲突" @@ -3007,7 +3007,7 @@ msgid "86Box Update" msgstr "86Box 更新" msgid "Release notes:" -msgstr "发行版说明" +msgstr "发行版说明:" msgid "%1 Hz" msgstr "%1 Hz" diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po index cab2762d5..2efbcf2bf 100644 --- a/src/qt/languages/zh-TW.po +++ b/src/qt/languages/zh-TW.po @@ -550,7 +550,7 @@ msgid "FD Controller:" msgstr "軟碟控制器:" msgid "CD-ROM Controller:" -msgstr "CD-ROM 控制器" +msgstr "CD-ROM 控制器:" msgid "Tertiary IDE Controller" msgstr "第三 IDE 控制器" From 4d2f9abfdb7ba62e0d61bd5f9515345569308601 Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 26 Nov 2025 02:49:41 +0500 Subject: [PATCH 30/39] Translations: Fix French punctuation --- src/qt/languages/fr-FR.po | 288 +++++++++++++++++++------------------- 1 file changed, 144 insertions(+), 144 deletions(-) diff --git a/src/qt/languages/fr-FR.po b/src/qt/languages/fr-FR.po index 8240be4a8..727f912b6 100644 --- a/src/qt/languages/fr-FR.po +++ b/src/qt/languages/fr-FR.po @@ -328,64 +328,64 @@ msgid "&Default" msgstr "&Défaut" msgid "Language:" -msgstr "Langue:" +msgstr "Langue :" msgid "Gain" msgstr "Gain" msgid "File name:" -msgstr "Nom fichier:" +msgstr "Nom fichier :" msgid "Disk size:" -msgstr "Taille disque:" +msgstr "Taille disque :" msgid "RPM mode:" -msgstr "Mode RPM:" +msgstr "Mode RPM :" msgid "Progress:" -msgstr "Progression:" +msgstr "Progression :" msgid "Width:" -msgstr "Largeur:" +msgstr "Largeur :" msgid "Height:" -msgstr "Hauteur:" +msgstr "Hauteur :" msgid "Lock to this size" msgstr "Verrouiller à cette taille" msgid "Machine type:" -msgstr "Type de machine:" +msgstr "Type de machine :" msgid "Machine:" -msgstr "Machine:" +msgstr "Machine :" msgid "Configure" msgstr "Configurer" msgid "CPU:" -msgstr "Processeur:" +msgstr "Processeur :" msgid "CPU type:" -msgstr "Type de processeur:" +msgstr "Type de processeur :" msgid "Speed:" -msgstr "Vitesse:" +msgstr "Vitesse :" msgid "Frequency:" -msgstr "Fréquence:" +msgstr "Fréquence :" msgid "FPU:" -msgstr "FPU:" +msgstr "FPU :" msgid "Wait states:" -msgstr "États d'attente:" +msgstr "États d'attente :" msgid "MB" msgstr "Mo" msgid "Memory:" -msgstr "Mémoire:" +msgstr "Mémoire :" msgid "Time synchronization" msgstr "Synchronisation du temps" @@ -412,10 +412,10 @@ msgid "Smaller frames (smoother)" msgstr "Blocs plus petits (plus fluide)" msgid "Video:" -msgstr "Vidéo:" +msgstr "Vidéo :" msgid "Video #2:" -msgstr "Vidéo 2:" +msgstr "Vidéo 2 :" msgid "Voodoo 1 or 2 Graphics" msgstr "Graphique Voodoo 1 ou 2" @@ -430,22 +430,22 @@ msgid "IBM PS/55 Display Adapter Graphics" msgstr "Graphique du adaptateur IBM PS/55" msgid "Keyboard:" -msgstr "Clavier:" +msgstr "Clavier :" msgid "Keyboard" msgstr "Clavier" msgid "Mouse:" -msgstr "Souris:" +msgstr "Souris :" msgid "Mouse" msgstr "Souris" msgid "Joystick:" -msgstr "Manette:" +msgstr "Manette :" msgid "Joystick" -msgstr "Joystick" +msgstr "Manette" msgid "Joystick 1..." msgstr "Manette 1..." @@ -460,25 +460,25 @@ msgid "Joystick 4..." msgstr "Manette 4..." msgid "Sound card #1:" -msgstr "Carte son 1:" +msgstr "Carte son 1 :" msgid "Sound card #2:" -msgstr "Carte son 2:" +msgstr "Carte son 2 :" msgid "Sound card #3:" -msgstr "Carte son 3:" +msgstr "Carte son 3 :" msgid "Sound card #4:" -msgstr "Carte son 4:" +msgstr "Carte son 4 :" msgid "MIDI Out Device:" -msgstr "Sortie MIDI:" +msgstr "Sortie MIDI :" msgid "MIDI In Device:" -msgstr "Entrée MIDI:" +msgstr "Entrée MIDI :" msgid "MIDI Out:" -msgstr "Sortie MIDI:" +msgstr "Sortie MIDI :" msgid "Standalone MPU-401" msgstr "MPU-401 autonome" @@ -496,31 +496,31 @@ msgid "YMFM (faster)" msgstr "YMFM (plus rapide)" msgid "COM1 Device:" -msgstr "Dispositif COM1:" +msgstr "Dispositif COM1 :" msgid "COM2 Device:" -msgstr "Dispositif COM2:" +msgstr "Dispositif COM2 :" msgid "COM3 Device:" -msgstr "Dispositif COM3:" +msgstr "Dispositif COM3 :" msgid "COM4 Device:" -msgstr "Dispositif COM4:" +msgstr "Dispositif COM4 :" msgid "LPT1 Device:" -msgstr "Dispositif LPT1:" +msgstr "Dispositif LPT1 :" msgid "LPT2 Device:" -msgstr "Dispositif LPT2:" +msgstr "Dispositif LPT2 :" msgid "LPT3 Device:" -msgstr "Dispositif LPT3:" +msgstr "Dispositif LPT3 :" msgid "LPT4 Device:" -msgstr "Dispositif LPT4:" +msgstr "Dispositif LPT4 :" msgid "Internal LPT ECP DMA:" -msgstr "DMA de l'ECP du LPT interne:" +msgstr "DMA de l'ECP du LPT interne :" msgid "Serial port 1" msgstr "Port série 1" @@ -547,10 +547,10 @@ msgid "Parallel port 4" msgstr "Port parallèle 4" msgid "FD Controller:" -msgstr "Contrôleur FD:" +msgstr "Contrôleur FD :" msgid "CD-ROM Controller:" -msgstr "Contrôleur CD-ROM:" +msgstr "Contrôleur CD-ROM :" msgid "Tertiary IDE Controller" msgstr "Troisième contrôleur IDE" @@ -565,22 +565,22 @@ msgid "SCSI" msgstr "SCSI" msgid "Controller 1:" -msgstr "Contrôleur 1:" +msgstr "Contrôleur 1 :" msgid "Controller 2:" -msgstr "Contrôleur 2:" +msgstr "Contrôleur 2 :" msgid "Controller 3:" -msgstr "Contrôleur 3:" +msgstr "Contrôleur 3 :" msgid "Controller 4:" -msgstr "Contrôleur 4:" +msgstr "Contrôleur 4 :" msgid "Cassette" msgstr "Cassette" msgid "Hard disks:" -msgstr "Disques durs:" +msgstr "Disques durs :" msgid "Firmware Version" msgstr "Version du micrologiciel" @@ -595,37 +595,37 @@ msgid "&Remove" msgstr "&Supprimer" msgid "Bus:" -msgstr "Bus:" +msgstr "Bus :" msgid "Channel:" -msgstr "Canal:" +msgstr "Canal :" msgid "ID:" -msgstr "ID:" +msgstr "ID :" msgid "Sectors:" -msgstr "Secteurs:" +msgstr "Secteurs :" msgid "Heads:" -msgstr "Têtes:" +msgstr "Têtes :" msgid "Cylinders:" -msgstr "Cylindres:" +msgstr "Cylindres :" msgid "Size (MB):" -msgstr "Taille (Mo):" +msgstr "Taille (Mo) :" msgid "Type:" -msgstr "Type:" +msgstr "Type :" msgid "Image Format:" -msgstr "Format Image:" +msgstr "Format Image :" msgid "Block Size:" -msgstr "Taille du bloc:" +msgstr "Taille du bloc :" msgid "Floppy drives:" -msgstr "Lecteurs de disquettes:" +msgstr "Lecteurs de disquettes :" msgid "Turbo timings" msgstr "Turbo" @@ -634,25 +634,25 @@ msgid "Check BPB" msgstr "Vérifier BPB" msgid "CD-ROM drives:" -msgstr "Lecteurs CD-ROM:" +msgstr "Lecteurs CD-ROM :" msgid "MO drives:" -msgstr "Lecteurs magnéto-optiques:" +msgstr "Lecteurs magnéto-optiques :" msgid "MO:" -msgstr "Magnéto-optiques:" +msgstr "Magnéto-optiques :" msgid "Removable disks:" -msgstr "Disques amovibles:" +msgstr "Disques amovibles :" msgid "Removable disk drives:" -msgstr "Lecteurs de disques amovibles:" +msgstr "Lecteurs de disques amovibles :" msgid "ZIP 250" msgstr "ZIP 250" msgid "ISA RTC:" -msgstr "Horloge temps réel ISA:" +msgstr "Horloge temps réel ISA :" msgid "ISA Memory Expansion" msgstr "Extension de la mémoire ISA" @@ -661,16 +661,16 @@ msgid "ISA ROM Cards" msgstr "Cartes ROM ISA" msgid "Card 1:" -msgstr "Carte 1:" +msgstr "Carte 1 :" msgid "Card 2:" -msgstr "Carte 2:" +msgstr "Carte 2 :" msgid "Card 3:" -msgstr "Carte 3:" +msgstr "Carte 3 :" msgid "Card 4:" -msgstr "Carte 4:" +msgstr "Carte 4 :" msgid "Generic ISA ROM Board" msgstr "Carte ROM ISA générique" @@ -703,10 +703,10 @@ msgid "Speed" msgstr "Vitesse" msgid "Removable disk %1 (%2): %3" -msgstr "Disque amovible %1 (%2): %3" +msgstr "Disque amovible %1 (%2) : %3" msgid "&Removable disk %1 (%2): %3" -msgstr "&Disque amovible %1 (%2): %3" +msgstr "&Disque amovible %1 (%2) : %3" msgid "Removable disk images" msgstr "Imges de disque amovible" @@ -715,7 +715,7 @@ msgid "Image %1" msgstr "Image %1" msgid "86Box could not find any usable ROM images.\n\nPlease download a ROM set and extract it into the \"roms\" directory." -msgstr "86Box n'a pas pu trouver d'images ROM utilisables.\n\nS'il vous plait, téléchargez un ensemble ROM et extrayez-le dans le répertoire \"roms\"." +msgstr "86Box n'a pas pu trouver d'images ROM utilisables.\n\nS'il vous plait, téléchargez un ensemble ROM et extrayez-le dans le répertoire « roms »." msgid "(empty)" msgstr "(vide)" @@ -742,16 +742,16 @@ msgid "Surface images" msgstr "Images de la surface" msgid "Machine \"%hs\" is not available due to missing ROMs in the roms/machines directory. Switching to an available machine." -msgstr "La machine \"%hs\" n'est pas disponible en raison de l'absence de ROMs dans le répertoire roms/machines. Basculer vers une machine disponible." +msgstr "La machine « %hs » n'est pas disponible en raison de l'absence de ROMs dans le répertoire roms/machines. Basculer vers une machine disponible." msgid "Video card \"%hs\" is not available due to missing ROMs in the roms/video directory. Switching to an available video card." -msgstr "La carte vidéo \"%hs\" n'est pas disponible en raison de l'absence de ROMs dans le répertoire roms/video. Basculer vers une carte vidéo disponible." +msgstr "La carte vidéo « %hs » n'est pas disponible en raison de l'absence de ROMs dans le répertoire roms/video. Basculer vers une carte vidéo disponible." msgid "Video card #2 \"%hs\" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." -msgstr "La carte vidéo 2 \"%hs\" n'est pas disponible en raison de l'absence de ROMs dans le répertoire roms/video. Désactiver la deuxième carte vidéo." +msgstr "La carte vidéo 2 « %hs » n'est pas disponible en raison de l'absence de ROMs dans le répertoire roms/video. Désactiver la deuxième carte vidéo." msgid "Device \"%hs\" is not available due to missing ROMs. Ignoring the device." -msgstr "Le dispositif \"%hs\" n'est pas disponible en raison de l'absence de ROMs. Ignorer le dispositif." +msgstr "Le dispositif « %hs » n'est pas disponible en raison de l'absence de ROMs. Ignorer le dispositif." msgid "Machine" msgstr "Machine" @@ -775,10 +775,10 @@ msgid "Ports" msgstr "Ports" msgid "Serial ports:" -msgstr "Ports série:" +msgstr "Ports série :" msgid "Parallel ports:" -msgstr "Ports parallèles:" +msgstr "Ports parallèles :" msgid "Storage controllers" msgstr "Contrôleurs de stockage" @@ -787,13 +787,13 @@ msgid "Hard disks" msgstr "Disques durs" msgid "Disks:" -msgstr "Disques:" +msgstr "Disques :" msgid "Floppy:" -msgstr "Disquettes:" +msgstr "Disquettes :" msgid "Controllers:" -msgstr "Contrôleurs:" +msgstr "Contrôleurs :" msgid "Floppy & CD-ROM drives" msgstr "Lecteurs de disquette et CD-ROM" @@ -985,13 +985,13 @@ msgid "None" msgstr "Aucun" msgid "%1 MB (CHS: %2, %3, %4)" -msgstr "%1 Mo (CTS: %2, %3, %4)" +msgstr "%1 Mo (CTS : %2, %3, %4)" msgid "Floppy %1 (%2): %3" -msgstr "Disquette %1 (%2): %3" +msgstr "Disquette %1 (%2) : %3" msgid "&Floppy %1 (%2): %3" -msgstr "&Disquette %1 (%2): %3" +msgstr "&Disquette %1 (%2) : %3" msgid "Advanced sector images" msgstr "Images secteur avancé" @@ -1000,10 +1000,10 @@ msgid "Flux images" msgstr "Images Flux" msgid "Are you sure you want to hard reset the emulated machine?" -msgstr "Etes-vous sûr de vouloir réinitialiser la machine émulée ?" +msgstr "Etes-vous sûr de vouloir réinitialiser la machine émulée ?" msgid "Are you sure you want to exit 86Box?" -msgstr "Etes-vous sûr de vouloir quitter 86Box?" +msgstr "Etes-vous sûr de vouloir quitter 86Box ?" msgid "Unable to initialize Ghostscript" msgstr "Impossible d'initialiser Ghostscript" @@ -1012,16 +1012,16 @@ msgid "Unable to initialize GhostPCL" msgstr "Impossible d'initialiser GhostPCL" msgid "MO %1 (%2): %3" -msgstr "Magnéto-optique %1 (%2): %3" +msgstr "Magnéto-optique %1 (%2) : %3" msgid "&MO %1 (%2): %3" -msgstr "&Magnéto-optique %1 (%2): %3" +msgstr "&Magnéto-optique %1 (%2) : %3" msgid "MO images" msgstr "Images magnéto-optiques" msgid "Welcome to 86Box!" -msgstr "Bienvenue dans 86Box !" +msgstr "Bienvenue dans 86Box !" msgid "Internal device" msgstr "Dispositif interne" @@ -1042,7 +1042,7 @@ msgid "No ROMs found" msgstr "Pas de ROMs trouvées" msgid "Do you want to save the settings?" -msgstr "Voulez-vous sauvegarder les paramètres ?" +msgstr "Voulez-vous sauvegarder les paramètres ?" msgid "This will hard reset the emulated machine." msgstr "Cela entraînera la réinitialisation complète de la machine émulée." @@ -1054,7 +1054,7 @@ msgid "About %1" msgstr "À propos de %1" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." -msgstr "Un émulateur d'ordinateurs du passé\n\nAuteurs: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nAvec les contributions de Sarah Walker, leilei, JohnElliott, greatpsycho et d'autres.\n\nLibéré sous la licence GNU General Public License version 2 ou ultérieure. Pour plus d'informations, voir le fichier LICENSE." +msgstr "Un émulateur d'ordinateurs du passé\n\nAuteurs : Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nAvec les contributions de Sarah Walker, leilei, JohnElliott, greatpsycho et d'autres.\n\nLibéré sous la licence GNU General Public License version 2 ou ultérieure. Pour plus d'informations, voir le fichier LICENSE." msgid "Hardware not available" msgstr "Matériel non disponible" @@ -1105,19 +1105,19 @@ msgid "Continue" msgstr "Continuer" msgid "Cassette: %1" -msgstr "Cassette: %1" +msgstr "Cassette : %1" msgid "C&assette: %1" -msgstr "C&assette: %1" +msgstr "C&assette : %1" msgid "Cassette images" msgstr "Images cassette" msgid "Cartridge %1: %2" -msgstr "Cartouche %1: %2" +msgstr "Cartouche %1 : %2" msgid "Car&tridge %1: %2" -msgstr "Car&touche %1: %2" +msgstr "Car&touche %1 : %2" msgid "Cartridge images" msgstr "Images cartouche" @@ -1180,10 +1180,10 @@ msgid "%1 total" msgstr "%1 total" msgid "VMs: %1" -msgstr "Machines virtuelles: %1" +msgstr "Machines virtuelles : %1" msgid "System Directory:" -msgstr "Répertoire du système:" +msgstr "Répertoire du système :" msgid "Choose directory" msgstr "Sélectionner le répertoire" @@ -1198,13 +1198,13 @@ msgid "Configuration read failed" msgstr "Échec de la lecture de la configuration" msgid "Unable to open the selected configuration file for reading: %1" -msgstr "Impossible d'ouvrir le fichier de configuration sélectionné pour lecture : %1" +msgstr "Impossible d'ouvrir le fichier de configuration sélectionné pour lecture : %1" msgid "Use regular expressions in search box" msgstr "Utilisez des expressions régulières dans le champ de recherche" msgid "%1 machine(s) are currently active. Are you sure you want to exit the VM manager anyway?" -msgstr "%1 machine(s) sont actuellement actives. Êtes-vous sûr de vouloir quitter le gestionnaire de machines virtuelles malgré tout ?" +msgstr "%1 machine(s) sont actuellement actives. Êtes-vous sûr de vouloir quitter le gestionnaire de machines virtuelles malgré tout ?" msgid "Add new system wizard" msgstr "Assistant pour ajouter un nouveau système" @@ -1240,7 +1240,7 @@ msgid "System name" msgstr "Nom du système" msgid "System name:" -msgstr "Nom du système:" +msgstr "Nom du système :" msgid "System name cannot contain certain characters" msgstr "Le nom du système ne peut pas contenir certains caractères" @@ -1258,7 +1258,7 @@ msgid "A new directory for the system will be created in the selected directory msgstr "Un nouveau répertoire pour le système sera créé dans le répertoire sélectionné ci-dessus" msgid "System location:" -msgstr "Emplacement du système:" +msgstr "Emplacement du système :" msgid "System name and location" msgstr "Nom et emplacement du système" @@ -1273,10 +1273,10 @@ msgid "Please enter a system name" msgstr "Veuillez entrer un nom de système" msgid "Display name (optional):" -msgstr "Nom d'affichage (facultatif):" +msgstr "Nom d'affichage (facultatif) :" msgid "Display name:" -msgstr "Nom d'affichage:" +msgstr "Nom d'affichage :" msgid "Set display name" msgstr "Définir le nom d'affichage" @@ -1306,13 +1306,13 @@ msgid "C&lone..." msgstr "C&loner..." msgid "Virtual machine \"%1\" (%2) will be cloned into:" -msgstr "La machine virtuelle \"%1\" (%2) sera clonée dans :" +msgstr "La machine virtuelle « %1 » (%2) sera clonée dans :" msgid "Directory %1 already exists" msgstr "Le répertoire %1 existe déjà" msgid "You cannot use the following characters in the name: %1" -msgstr "Vous ne pouvez pas utiliser les caractères suivants dans le nom : %1" +msgstr "Vous ne pouvez pas utiliser les caractères suivants dans le nom : %1" msgid "Clone" msgstr "Cloner" @@ -1357,13 +1357,13 @@ msgid "Version" msgstr "Version" msgid "An update to 86Box is available: %1 %2" -msgstr "Une mise à jour de 86Box est disponible : %1 %2" +msgstr "Une mise à jour de 86Box est disponible : %1 %2" msgid "An error has occurred while checking for updates: %1" -msgstr "Une erreur s'est produite lors de la vérification des mises à jour : %1" +msgstr "Une erreur s'est produite lors de la vérification des mises à jour : %1" msgid "An update to 86Box is available!" -msgstr "Une mise à jour de 86Box est disponible !" +msgstr "Une mise à jour de 86Box est disponible !" msgid "Warning" msgstr "Avertissement" @@ -1372,13 +1372,13 @@ msgid "&Kill" msgstr "Fo&rcer Extinction" msgid "Killing a virtual machine can cause data loss. Only do this if the 86Box process gets stuck.\n\nDo you really wish to kill the virtual machine \"%1\"?" -msgstr "La fermeture forcée d'une machine virtuelle peut entraîner une perte de données. Ne procédez ainsi que si le processus 86Box est bloqué.\n\nVoulez-vous vraiment fermer la machine virtuelle \"%1\" ?" +msgstr "La fermeture forcée d'une machine virtuelle peut entraîner une perte de données. Ne procédez ainsi que si le processus 86Box est bloqué.\n\nVoulez-vous vraiment fermer la machine virtuelle « %1 » ?" msgid "&Delete" msgstr "&Supprimer" msgid "Do you really want to delete the virtual machine \"%1\" and all its files? This action cannot be undone!" -msgstr "Voulez-vous vraiment supprimer la machine virtuelle \"%1\" et tous ses fichiers ? Cette action ne peut pas être annulée !" +msgstr "Voulez-vous vraiment supprimer la machine virtuelle « %1 » et tous ses fichiers ? Cette action ne peut pas être annulée !" msgid "Show &config file" msgstr "Afficher le fichier de &configuration" @@ -1402,7 +1402,7 @@ msgid "Storage" msgstr "Stockage" msgid "Disk %1:" -msgstr "Disque %1:" +msgstr "Disque %1 :" msgid "No disks" msgstr "Pas de disques" @@ -1411,7 +1411,7 @@ msgid "Audio" msgstr "Audio" msgid "Audio:" -msgstr "Audio:" +msgstr "Audio :" msgid "ACPI shutdown" msgstr "Arrêt ACPI" @@ -1477,7 +1477,7 @@ msgid "Remember to partition and format the newly-created drive." msgstr "N'oubliez pas de partitionner et de formater le nouveau disque créé." msgid "The selected file will be overwritten. Are you sure you want to use it?" -msgstr "Le fichier sélectionné sera écrasé. Etes-vous sûr de vouloir l'utiliser ?" +msgstr "Le fichier sélectionné sera écrasé. Etes-vous sûr de vouloir l'utiliser ?" msgid "Unsupported disk image" msgstr "Image disque non prise en charge" @@ -1540,7 +1540,7 @@ msgid "Select the parent VHD" msgstr "Sélectionnez le VHD parent" msgid "This could mean that the parent image was modified after the differencing image was created.\n\nIt can also happen if the image files were moved or copied, or by a bug in the program that created this disk.\n\nDo you want to fix the timestamps?" -msgstr "Il est possible que l'image parente ai été modifiée après la création de l'image différentielle.\n\nIl est même possible que les fichiers de l’image ont été déplacés ou copiés ou il existe un bogue dans le programme qui a créé ce disque.\n\nVoulez-vous réparer l'horodatage ?" +msgstr "Il est possible que l'image parente ai été modifiée après la création de l'image différentielle.\n\nIl est même possible que les fichiers de l’image ont été déplacés ou copiés ou il existe un bogue dans le programme qui a créé ce disque.\n\nVoulez-vous réparer l'horodatage ?" msgid "Parent and child disk timestamps do not match" msgstr "Les horodatages des disques parents et enfants ne correspondent pas" @@ -1564,10 +1564,10 @@ msgid "ATAPI" msgstr "ATAPI" msgid "CD-ROM %1 (%2): %3" -msgstr "CD-ROM %1 (%2): %3" +msgstr "CD-ROM %1 (%2) : %3" msgid "&CD-ROM %1 (%2): %3" -msgstr "&CD-ROM %1 (%2): %3" +msgstr "&CD-ROM %1 (%2) : %3" msgid "160 KB" msgstr "160 Ko" @@ -1660,13 +1660,13 @@ msgid "The network configuration will be switched to the null driver" msgstr "La configuration du réseau passera au pilote NULL" msgid "Mouse sensitivity:" -msgstr "Sensibilité de la souris:" +msgstr "Sensibilité de la souris :" msgid "Select media images from program working directory" msgstr "Sélectionner des images dans le répertoire de travail du programme" msgid "PIT mode:" -msgstr "Mode PIT:" +msgstr "Mode PIT :" msgid "Auto" msgstr "Auto" @@ -1705,7 +1705,7 @@ msgid "MCA devices" msgstr "Dispositifs MCA" msgid "List of MCA devices:" -msgstr "Liste des dispositifs MCA :" +msgstr "Liste des dispositifs MCA :" msgid "&Tablet tool" msgstr "Outil Tablette" @@ -1753,7 +1753,7 @@ msgid "Null Driver" msgstr "Pilote NULL" msgid "NIC:" -msgstr "NIC:" +msgstr "NIC :" msgid "NIC %1 (%2) %3" msgstr "NIC %1 (%2) %3" @@ -1765,7 +1765,7 @@ msgid "Render behavior" msgstr "Comportement du rendu" msgid "Use target framerate:" -msgstr "Utiliser le taux de rafraîchissement cible:" +msgstr "Utiliser le taux de rafraîchissement cible :" msgid " fps" msgstr " Images par seconde" @@ -1807,7 +1807,7 @@ msgid "This machine might have been moved or copied." msgstr "Cette machine peut avoir été déplacée ou copiée." msgid "In order to ensure proper networking functionality, 86Box needs to know if this machine was moved or copied.\n\nSelect \"I Copied It\" if you are not sure." -msgstr "Afin d'assurer le bon fonctionnement du réseau, 86Box doit savoir si cette machine a été déplacée ou copiée.\n\nSélectionnez « Je l'ai copié » si vous n'êtes pas sûr." +msgstr "Afin d'assurer le bon fonctionnement du réseau, 86Box doit savoir si cette machine a été déplacée ou copiée.\n\nSélectionnez « Je l'ai copié » si vous n'êtes pas sûr." msgid "I Moved It" msgstr "Je l'ai déplacé" @@ -1840,16 +1840,16 @@ msgid "Network Card #4" msgstr "Carte réseau 4" msgid "Mode:" -msgstr "Mode:" +msgstr "Mode :" msgid "Interface:" -msgstr "Interface:" +msgstr "Interface :" msgid "Adapter:" -msgstr "Adaptateur:" +msgstr "Adaptateur :" msgid "VDE Socket:" -msgstr "Prise VDE:" +msgstr "Prise VDE :" msgid "TAP Bridge Device:" msgstr "" @@ -2296,7 +2296,7 @@ msgid "GUS type" msgstr "Type de GUS" msgid "Enable 0x04 \"Exit 86Box\" command" -msgstr "Activer la commande 0x04 « Sortir de 86Box »" +msgstr "Activer la commande 0x04 « Sortir de 86Box »" msgid "Display type" msgstr "Type d'écran" @@ -2785,7 +2785,7 @@ msgid "Unable to find Dot-Matrix fonts" msgstr "Impossible de trouver les polices matricielles" msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P 2 Dot-Matrix Printer." -msgstr "Les polices TrueType dans le répertoire \"roms/printer/fonts\" sont nécessaires à l'émulation de l'imprimante générique ESC/P 2 matricielle." +msgstr "Les polices TrueType dans le répertoire « roms/printer/fonts » sont nécessaires à l'émulation de l'imprimante générique ESC/P 2 matricielle." msgid "Inhibit multimedia keys" msgstr "Désactiver les touches multimédia" @@ -2821,10 +2821,10 @@ msgid "Could not load texture: %1" msgstr "Impossible de charger la texture %1" msgid "Could not compile shader:\n\n%1" -msgstr "Impossible de compiler le shader:\n\n%1" +msgstr "Impossible de compiler le shader :\n\n%1" msgid "Program not linked:\n\n%1" -msgstr "Programme non linké:\n\n%1" +msgstr "Programme non linké :\n\n%1" msgid "Shader Manager" msgstr "Gestionnaire de shader" @@ -2845,7 +2845,7 @@ msgid "Could not load file %1" msgstr "Impossible de charger le fichier %1" msgid "Key Bindings:" -msgstr "Raccourcis clavier:" +msgstr "Raccourcis clavier :" msgid "Action" msgstr "Action" @@ -2863,7 +2863,7 @@ msgid "Bind Key" msgstr "Lier touche" msgid "Enter key combo:" -msgstr "Entrez la combinaison de touches:" +msgstr "Entrez la combinaison de touches :" msgid "Bind conflict" msgstr "Conflit de raccourci" @@ -2911,34 +2911,34 @@ msgid "Remote Switch" msgstr "Commutateur distant" msgid "Switch:" -msgstr "Commutateur:" +msgstr "Commutateur :" msgid "Hub Mode" msgstr "Mode concentrateur" msgid "Hostname:" -msgstr "Nom d'hôte:" +msgstr "Nom d'hôte :" msgid "ISA RAM:" -msgstr "RAM ISA:" +msgstr "RAM ISA :" msgid "ISA ROM:" -msgstr "ROM ISA:" +msgstr "ROM ISA :" msgid "&Wipe NVRAM" msgstr "&Effacer la mémoire NVRAM" msgid "This will delete all NVRAM (and related) files of the virtual machine located in the \"nvr\" subdirectory. You'll have to reconfigure the BIOS (and possibly other devices inside the VM) settings again if applicable.\n\nAre you sure you want to wipe all NVRAM contents of the virtual machine \"%1\"?" -msgstr "Cela supprimera tous les fichiers NVRAM (et associés) de la machine virtuelle situés dans le sous-répertoire \"nvr\". Vous devrez reconfigurer les paramètres du BIOS (et éventuellement d'autres périphériques à l'intérieur de la machine virtuelle) si nécessaire. \n\nÊtes-vous sûr de vouloir effacer tout le contenu NVRAM de la machine virtuelle \"%1\" ?" +msgstr "Cela supprimera tous les fichiers NVRAM (et associés) de la machine virtuelle situés dans le sous-répertoire « nvr ». Vous devrez reconfigurer les paramètres du BIOS (et éventuellement d'autres périphériques à l'intérieur de la machine virtuelle) si nécessaire. \n\nÊtes-vous sûr de vouloir effacer tout le contenu NVRAM de la machine virtuelle « %1 » ?" msgid "Success" msgstr "Succès" msgid "Successfully wiped the NVRAM contents of the virtual machine \"%1\"" -msgstr "Le contenu de la NVRAM de la machine virtuelle \"%1\" a été effacé avec succès" +msgstr "Le contenu de la NVRAM de la machine virtuelle « %1 » a été effacé avec succès" msgid "An error occurred trying to wipe the NVRAM contents of the virtual machine \"%1\"" -msgstr "Une erreur s'est produite lors de la tentative d'effacement du contenu NVRAM de la machine virtuelle \"%1\"" +msgstr "Une erreur s'est produite lors de la tentative d'effacement du contenu NVRAM de la machine virtuelle « %1 »" msgid "%1 VM Manager" msgstr "Gestionnaire de machines virtuelles de %1" @@ -2950,7 +2950,7 @@ msgid "Unknown Status" msgstr "Statut inconnu" msgid "No Machines Found!" -msgstr "Aucune machine trouvée !" +msgstr "Aucune machine trouvée !" msgid "Check for updates on startup" msgstr "Vérifier les mises à jour au démarrage" @@ -2959,7 +2959,7 @@ msgid "Unable to determine release information" msgstr "Impossible de déterminer les informations relatives à la version" msgid "There was an error checking for updates:\n\n%1\n\nPlease try again later." -msgstr "Une erreur s'est produite lors de la vérification des mises à jour :\n\n%1\n\nVeuillez réessayer plus tard." +msgstr "Une erreur s'est produite lors de la vérification des mises à jour :\n\n%1\n\nVeuillez réessayer plus tard." msgid "Update check complete" msgstr "Vérification des mises à jour terminée" @@ -2971,7 +2971,7 @@ msgid "beta" msgstr "bêta" msgid "You are running the latest %1 version of 86Box: %2" -msgstr "Vous utilisez la dernière version %1 de 86Box : %2" +msgstr "Vous utilisez la dernière version %1 de 86Box : %2" msgid "version" msgstr "version" @@ -2992,7 +2992,7 @@ msgid "Build %1 is now available." msgstr "Le Build %1 est désormais disponible." msgid "Would you like to visit the download page?" -msgstr "Souhaitez-vous visiter la page de téléchargement ?" +msgstr "Souhaitez-vous visiter la page de téléchargement ?" msgid "Visit download page" msgstr "Visiter la page de téléchargement" @@ -3007,7 +3007,7 @@ msgid "86Box Update" msgstr "Mise à jour de 86Box" msgid "Release notes:" -msgstr "Notes de mise à jour :" +msgstr "Notes de mise à jour :" msgid "%1 Hz" msgstr "%1 Hz" @@ -3016,7 +3016,7 @@ msgid "Virtual machine crash" msgstr "Panne de la machine virtuelle" msgid "The virtual machine \"%1\"'s process has unexpectedly terminated with exit code %2." -msgstr "Le processus de la machine virtuelle \"%1\" s'est arrêté de manière inattendue avec le code de sortie %2." +msgstr "Le processus de la machine virtuelle « %1 » s'est arrêté de manière inattendue avec le code de sortie %2." msgid "The system will not be added." msgstr "Le système ne sera pas ajouté." @@ -3055,7 +3055,7 @@ msgid "Export EDID" msgstr "Exporter l'EDID" msgid "EDID file \"%ls\" is too large." -msgstr "Le fichier EDID \"%ls\" est trop volumineux." +msgstr "Le fichier EDID « %ls » est trop volumineux." msgid "OpenGL input scale" msgstr "Échelle d'entrée d'OpenGL" @@ -3073,4 +3073,4 @@ msgid "Dark" msgstr "Sombre" msgid "Search:" -msgstr "Rechercher:" +msgstr "Rechercher :" From 8dd2970e13f569c623502cec00163a434c6dc9c8 Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 26 Nov 2025 21:24:16 +0500 Subject: [PATCH 31/39] Translations: Fix Japanese punctuation --- src/qt/languages/ja-JP.po | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po index 488ff1dbd..c6290d312 100644 --- a/src/qt/languages/ja-JP.po +++ b/src/qt/languages/ja-JP.po @@ -1306,7 +1306,7 @@ msgid "C&lone..." msgstr "クローン(&L)..." msgid "Virtual machine \"%1\" (%2) will be cloned into:" -msgstr "仮想マシン\"%1\" (%2)は、以下の場所にクローンされます:" +msgstr "仮想マシン「%1」 (%2)は、以下の場所にクローンされます:" msgid "Directory %1 already exists" msgstr "ディレクトリ %1 は既に存在します" @@ -1372,13 +1372,13 @@ msgid "&Kill" msgstr "強制的に終了する(&K)" msgid "Killing a virtual machine can cause data loss. Only do this if the 86Box process gets stuck.\n\nDo you really wish to kill the virtual machine \"%1\"?" -msgstr "仮想マシンを強制終了すると、データが失われる可能性があります。86Boxプロセスが応答しなくなった場合のみ、この操作を行ってください。\n\n本当に仮想マシン\"%1\"を終了しますか?" +msgstr "仮想マシンを強制終了すると、データが失われる可能性があります。86Boxプロセスが応答しなくなった場合のみ、この操作を行ってください。\n\n本当に仮想マシン「%1」を終了しますか?" msgid "&Delete" msgstr "削除(&D)" msgid "Do you really want to delete the virtual machine \"%1\" and all its files? This action cannot be undone!" -msgstr "本当に仮想マシン\"%1\"とそのすべてのファイルを削除しますか? この操作は元に戻せません!" +msgstr "本当に仮想マシン「%1」とそのすべてのファイルを削除しますか? この操作は元に戻せません!" msgid "Show &config file" msgstr "設定ファイルを表示する(&C)" @@ -2296,7 +2296,7 @@ msgid "GUS type" msgstr "GUSタイプ" msgid "Enable 0x04 \"Exit 86Box\" command" -msgstr "コマンド 0x04 \"86Boxを終了する\"を有効にする" +msgstr "コマンド 0x04 「86Boxを終了する」を有効にする" msgid "Display type" msgstr "表示タイプ" @@ -2929,16 +2929,16 @@ msgid "&Wipe NVRAM" msgstr "NVRAMを消去する(&W)" msgid "This will delete all NVRAM (and related) files of the virtual machine located in the \"nvr\" subdirectory. You'll have to reconfigure the BIOS (and possibly other devices inside the VM) settings again if applicable.\n\nAre you sure you want to wipe all NVRAM contents of the virtual machine \"%1\"?" -msgstr "これによって、仮想マシン内の\"nvr\"サブディレクトリに格納されているすべてのNVRAM(および関連)ファイルが削除されます。必要に応じて、BIOSの設定(および仮想マシン内の他のデバイス設定)を再構成する必要があります。\n\n仮想マシン\"%1\"のすべてのNVRAM内容を削除してもよろしいですか?" +msgstr "これによって、仮想マシン内の「nvr」サブディレクトリに格納されているすべてのNVRAM(および関連)ファイルが削除されます。必要に応じて、BIOSの設定(および仮想マシン内の他のデバイス設定)を再構成する必要があります。\n\n仮想マシン「%1」のすべてのNVRAM内容を削除してもよろしいですか?" msgid "Success" msgstr "成功" msgid "Successfully wiped the NVRAM contents of the virtual machine \"%1\"" -msgstr "仮想マシン\"%1\"のNVRAMの内容を正常に消去しました" +msgstr "仮想マシン「%1」のNVRAMの内容を正常に消去しました" msgid "An error occurred trying to wipe the NVRAM contents of the virtual machine \"%1\"" -msgstr "仮想マシン\"%1\"のNVRAMの内容を消去しようとした際にエラーが発生しました" +msgstr "仮想マシン「%1」のNVRAMの内容を消去しようとした際にエラーが発生しました" msgid "%1 VM Manager" msgstr "%1 VMマネージャー" @@ -3016,7 +3016,7 @@ msgid "Virtual machine crash" msgstr "仮想マシンの予期せぬ終了" msgid "The virtual machine \"%1\"'s process has unexpectedly terminated with exit code %2." -msgstr "仮想マシン\"%1\"のプロセスが、終了コード %2 で予期せず終了しました。" +msgstr "仮想マシン「%1」のプロセスが、終了コード %2 で予期せず終了しました。" msgid "The system will not be added." msgstr "システムは追加されません。" @@ -3055,7 +3055,7 @@ msgid "Export EDID" msgstr "EDIDのエクスポート" msgid "EDID file \"%ls\" is too large." -msgstr "EDIDファイル \"%ls\" が大きすぎます。" +msgstr "EDIDファイル「%ls」が大きすぎます。" msgid "OpenGL input scale" msgstr "OpenGLの入力スケール" From e788f144a0da62f02fff6db8b53237aa25bac0ff Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 26 Nov 2025 03:00:43 +0500 Subject: [PATCH 32/39] Translations: Fix Russian and Ukrainian punctuation --- src/qt/languages/ru-RU.po | 114 +++++++++++++++++++------------------- src/qt/languages/uk-UA.po | 68 +++++++++++------------ 2 files changed, 91 insertions(+), 91 deletions(-) diff --git a/src/qt/languages/ru-RU.po b/src/qt/languages/ru-RU.po index 1bb5d8e6c..c76047f87 100644 --- a/src/qt/languages/ru-RU.po +++ b/src/qt/languages/ru-RU.po @@ -76,13 +76,13 @@ msgid "&Window scale factor" msgstr "&Масштаб окна" msgid "&0.5x" -msgstr "&0.5x" +msgstr "&0,5x" msgid "&1x" msgstr "&1x" msgid "1.&5x" -msgstr "1.&5x" +msgstr "1,&5x" msgid "&2x" msgstr "&2x" @@ -460,16 +460,16 @@ msgid "Joystick 4..." msgstr "Джойстик 4..." msgid "Sound card #1:" -msgstr "Звуковая карта 1:" +msgstr "Звуковая карта № 1:" msgid "Sound card #2:" -msgstr "Звуковая карта 2:" +msgstr "Звуковая карта № 2:" msgid "Sound card #3:" -msgstr "Звуковая карта 3:" +msgstr "Звуковая карта № 3:" msgid "Sound card #4:" -msgstr "Звуковая карта 4:" +msgstr "Звуковая карта № 4:" msgid "MIDI Out Device:" msgstr "Устройство вывода MIDI:" @@ -715,7 +715,7 @@ msgid "Image %1" msgstr "Образ %1" msgid "86Box could not find any usable ROM images.\n\nPlease download a ROM set and extract it into the \"roms\" directory." -msgstr "86Box не смог найти ни одного подходящего для использования файла с ПЗУ.\n\nПожалуйста скачайте набор ПЗУ и извлеките его в каталог \"roms\"." +msgstr "86Box не смог найти ни одного подходящего для использования файла с ПЗУ.\n\nПожалуйста скачайте набор ПЗУ и извлеките его в каталог «roms»." msgid "(empty)" msgstr "(пусто)" @@ -742,16 +742,16 @@ msgid "Surface images" msgstr "Surface образы" msgid "Machine \"%hs\" is not available due to missing ROMs in the roms/machines directory. Switching to an available machine." -msgstr "Системная плата \"%hs\" недоступна из-за отсутствия файла её ПЗУ в каталоге roms/machines. Переключение на доступную системную плату." +msgstr "Системная плата «%hs» недоступна из-за отсутствия файла её ПЗУ в каталоге roms/machines. Переключение на доступную системную плату." msgid "Video card \"%hs\" is not available due to missing ROMs in the roms/video directory. Switching to an available video card." -msgstr "Видеокарта \"%hs\" недоступна из-за отсутствия файла её ПЗУ в каталоге roms/video. Переключение на доступную видеокарту." +msgstr "Видеокарта «%hs» недоступна из-за отсутствия файла её ПЗУ в каталоге roms/video. Переключение на доступную видеокарту." msgid "Video card #2 \"%hs\" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." -msgstr "Видеокарта 2 \"%hs\" недоступна из-за отсутствия файла её ПЗУ в каталоге roms/video. Вторая видеокарта отключена." +msgstr "Видеокарта 2 «%hs» недоступна из-за отсутствия файла её ПЗУ в каталоге roms/video. Вторая видеокарта отключена." msgid "Device \"%hs\" is not available due to missing ROMs. Ignoring the device." -msgstr "Устройство \"%hs\" недоступно из-за отсутствия файла его ПЗУ. Устройство проигнорировано." +msgstr "Устройство «%hs» недоступно из-за отсутствия файла его ПЗУ. Устройство проигнорировано." msgid "Machine" msgstr "Компьютер" @@ -1306,7 +1306,7 @@ msgid "C&lone..." msgstr "К&лонировать..." msgid "Virtual machine \"%1\" (%2) will be cloned into:" -msgstr "Виртуальная машина \"%1\" (%2) будет клонирована в:" +msgstr "Виртуальная машина «%1» (%2) будет клонирована в:" msgid "Directory %1 already exists" msgstr "Папка %1 уже существует" @@ -1372,13 +1372,13 @@ msgid "&Kill" msgstr "&Завершить процесс" msgid "Killing a virtual machine can cause data loss. Only do this if the 86Box process gets stuck.\n\nDo you really wish to kill the virtual machine \"%1\"?" -msgstr "Принудительное завершение процесса виртуальной машины может привести к потере данных. Делайте это только в том случае, если процесс 86Box завис.\n\nВы действительно хотите принудительно завершить процесс виртуальной машины \"%1\"?" +msgstr "Принудительное завершение процесса виртуальной машины может привести к потере данных. Делайте это только в том случае, если процесс 86Box завис.\n\nВы действительно хотите принудительно завершить процесс виртуальной машины «%1»?" msgid "&Delete" msgstr "&Удалить" msgid "Do you really want to delete the virtual machine \"%1\" and all its files? This action cannot be undone!" -msgstr "Вы действительно хотите удалить виртуальную машину \"%1\" и все её файлы? Это действие не может быть отменено!" +msgstr "Вы действительно хотите удалить виртуальную машину «%1» и все её файлы? Это действие не может быть отменено!" msgid "Show &config file" msgstr "Показать файл &конфигурации" @@ -1588,13 +1588,13 @@ msgid "720 KB" msgstr "720 КБ" msgid "1.2 MB" -msgstr "1.2 МБ" +msgstr "1,2 МБ" msgid "1.25 MB" -msgstr "1.25 МБ" +msgstr "1,25 МБ" msgid "1.44 MB" -msgstr "1.44 МБ" +msgstr "1,44 МБ" msgid "DMF (cluster 1024)" msgstr "DMF (кластер 1024)" @@ -1603,40 +1603,40 @@ msgid "DMF (cluster 2048)" msgstr "DMF (кластер 2048)" msgid "2.88 MB" -msgstr "2.88 МБ" +msgstr "2,88 МБ" msgid "ZIP 100" msgstr "ZIP 100" msgid "3.5\" 128 MB (ISO 10090)" -msgstr "3.5\" 128 МБ (ISO 10090)" +msgstr "3,5\" 128 МБ (ISO 10090)" msgid "3.5\" 230 MB (ISO 13963)" -msgstr "3.5\" 230 МБ (ISO 13963)" +msgstr "3,5\" 230 МБ (ISO 13963)" msgid "3.5\" 540 MB (ISO 15498)" -msgstr "3.5\" 540 МБ (ISO 15498)" +msgstr "3,5\" 540 МБ (ISO 15498)" msgid "3.5\" 640 MB (ISO 15498)" -msgstr "3.5\" 640 МБ (ISO 15498)" +msgstr "3,5\" 640 МБ (ISO 15498)" msgid "3.5\" 1.3 GB (GigaMO)" -msgstr "3.5\" 1.3 ГБ (GigaMO)" +msgstr "3,5\" 1,3 ГБ (GigaMO)" msgid "3.5\" 2.3 GB (GigaMO 2)" -msgstr "3.5\" 2.3 ГБ (GigaMO 2)" +msgstr "3,5\" 2,3 ГБ (GigaMO 2)" msgid "5.25\" 600 MB" -msgstr "5.25\" 600 МБ" +msgstr "5,25\" 600 МБ" msgid "5.25\" 650 MB" -msgstr "5.25\" 650 МБ" +msgstr "5,25\" 650 МБ" msgid "5.25\" 1 GB" -msgstr "5.25\" 1 ГБ" +msgstr "5,25\" 1 ГБ" msgid "5.25\" 1.3 GB" -msgstr "5.25\" 1.3 ГБ" +msgstr "5,25\" 1,3 ГБ" msgid "Perfect RPM" msgstr "Точный RPM" @@ -1645,7 +1645,7 @@ msgid "1% below perfect RPM" msgstr "На 1% медленнее точного RPM" msgid "1.5% below perfect RPM" -msgstr "На 1.5% медленнее точного RPM" +msgstr "На 1,5% медленнее точного RPM" msgid "2% below perfect RPM" msgstr "На 2% медленнее точного RPM" @@ -1807,7 +1807,7 @@ msgid "This machine might have been moved or copied." msgstr "Возможно, эта машина была перемещена или скопирована." msgid "In order to ensure proper networking functionality, 86Box needs to know if this machine was moved or copied.\n\nSelect \"I Copied It\" if you are not sure." -msgstr "Чтобы обеспечить правильную работу сети, 86Box должен знать, была ли эта машина перемещена или скопирована.\n\nЕсли вы не уверены, выберите \"Скопирована\"." +msgstr "Чтобы обеспечить правильную работу сети, 86Box должен знать, была ли эта машина перемещена или скопирована.\n\nЕсли вы не уверены, выберите «Скопирована»." msgid "I Moved It" msgstr "Перемещена" @@ -1828,16 +1828,16 @@ msgid "GiB" msgstr "ГиБ" msgid "Network Card #1" -msgstr "Сетевая карта 1" +msgstr "Сетевая карта № 1" msgid "Network Card #2" -msgstr "Сетевая карта 2" +msgstr "Сетевая карта № 2" msgid "Network Card #3" -msgstr "Сетевая карта 3" +msgstr "Сетевая карта № 3" msgid "Network Card #4" -msgstr "Сетевая карта 4" +msgstr "Сетевая карта № 4" msgid "Mode:" msgstr "Режим:" @@ -1954,46 +1954,46 @@ msgid "BIOS file" msgstr "Файл BIOS" msgid "BIOS file (ROM #1)" -msgstr "Файл BIOS (ПЗУ #1)" +msgstr "Файл BIOS (ПЗУ № 1)" msgid "BIOS file (ROM #2)" -msgstr "Файл BIOS (ПЗУ #2)" +msgstr "Файл BIOS (ПЗУ № 2)" msgid "BIOS file (ROM #3)" -msgstr "Файл BIOS (ПЗУ #3)" +msgstr "Файл BIOS (ПЗУ № 3)" msgid "BIOS file (ROM #4)" -msgstr "Файл BIOS (ПЗУ #4)" +msgstr "Файл BIOS (ПЗУ № 4)" msgid "BIOS address" msgstr "Адрес BIOS" msgid "BIOS address (ROM #1)" -msgstr "Адрес BIOS (ПЗУ #1)" +msgstr "Адрес BIOS (ПЗУ № 1)" msgid "BIOS address (ROM #2)" -msgstr "Адрес BIOS (ПЗУ #2)" +msgstr "Адрес BIOS (ПЗУ № 2)" msgid "BIOS address (ROM #3)" -msgstr "Адрес BIOS (ПЗУ #3)" +msgstr "Адрес BIOS (ПЗУ № 3)" msgid "BIOS address (ROM #4)" -msgstr "Адрес BIOS (ПЗУ #4)" +msgstr "Адрес BIOS (ПЗУ № 4)" msgid "Enable BIOS extension ROM Writes" msgstr "Разрешить запись в ПЗУ расширения BIOS" msgid "Enable BIOS extension ROM Writes (ROM #1)" -msgstr "Разрешить запись в ПЗУ расширения BIOS (ПЗУ #1)" +msgstr "Разрешить запись в ПЗУ расширения BIOS (ПЗУ № 1)" msgid "Enable BIOS extension ROM Writes (ROM #2)" -msgstr "Разрешить запись в ПЗУ расширения BIOS (ПЗУ #2)" +msgstr "Разрешить запись в ПЗУ расширения BIOS (ПЗУ № 2)" msgid "Enable BIOS extension ROM Writes (ROM #3)" -msgstr "Разрешить запись в ПЗУ расширения BIOS (ПЗУ #3)" +msgstr "Разрешить запись в ПЗУ расширения BIOS (ПЗУ № 3)" msgid "Enable BIOS extension ROM Writes (ROM #4)" -msgstr "Разрешить запись в ПЗУ расширения BIOS (ПЗУ #4)" +msgstr "Разрешить запись в ПЗУ расширения BIOS (ПЗУ № 4)" msgid "Linear framebuffer base" msgstr "Линейный фреймбуфер" @@ -2041,16 +2041,16 @@ msgid "BIOS size" msgstr "Размер BIOS" msgid "BIOS size (ROM #1)" -msgstr "Размер BIOS (ПЗУ #1)" +msgstr "Размер BIOS (ПЗУ № 1)" msgid "BIOS size (ROM #2)" -msgstr "Размер BIOS (ПЗУ #2)" +msgstr "Размер BIOS (ПЗУ № 2)" msgid "BIOS size (ROM #3)" -msgstr "Размер BIOS (ПЗУ #3)" +msgstr "Размер BIOS (ПЗУ № 3)" msgid "BIOS size (ROM #4)" -msgstr "Размер BIOS (ПЗУ #4)" +msgstr "Размер BIOS (ПЗУ № 4)" msgid "Map C0000-C7FFF as UMB" msgstr "Отображение C0000-C7FFF в качестве UMB" @@ -2296,7 +2296,7 @@ msgid "GUS type" msgstr "Тип GUS" msgid "Enable 0x04 \"Exit 86Box\" command" -msgstr "Включить команду 0x04 \"Выход из 86Box\"" +msgstr "Включить команду 0x04 «Выход из 86Box»" msgid "Display type" msgstr "Тип дисплея" @@ -2785,7 +2785,7 @@ msgid "Unable to find Dot-Matrix fonts" msgstr "Невозможно найти матричные шрифты" msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P 2 Dot-Matrix Printer." -msgstr "Шрифты TrueType в каталоге \"roms/printer/fonts\" необходимы для эмуляции стандартного матричного принтера ESC/P 2." +msgstr "Шрифты TrueType в каталоге «roms/printer/fonts» необходимы для эмуляции стандартного матричного принтера ESC/P 2." msgid "Inhibit multimedia keys" msgstr "Перехватывать мультимедийные клавиши" @@ -2929,16 +2929,16 @@ msgid "&Wipe NVRAM" msgstr "&Стереть NVRAM" msgid "This will delete all NVRAM (and related) files of the virtual machine located in the \"nvr\" subdirectory. You'll have to reconfigure the BIOS (and possibly other devices inside the VM) settings again if applicable.\n\nAre you sure you want to wipe all NVRAM contents of the virtual machine \"%1\"?" -msgstr "Это удалит все файлы NVRAM (и связанные) виртуальной машины, расположенной в подпапке \"nvr\". Вам придётся снова реконфигурировать настройки BIOS (и, возможно, другие устройства внутри виртуальной машины), если применимо.\n\nВы уверены, что хотите стереть всё содержимое NVRAM виртуальной машины \"%1\"?" +msgstr "Это удалит все файлы NVRAM (и связанные) виртуальной машины, расположенной в подпапке «nvr». Вам придётся снова реконфигурировать настройки BIOS (и, возможно, другие устройства внутри виртуальной машины), если применимо.\n\nВы уверены, что хотите стереть всё содержимое NVRAM виртуальной машины «%1»?" msgid "Success" msgstr "Успешно" msgid "Successfully wiped the NVRAM contents of the virtual machine \"%1\"" -msgstr "Успешно стёрто содержимое NVRAM виртуальной машины \"%1\"" +msgstr "Успешно стёрто содержимое NVRAM виртуальной машины «%1»" msgid "An error occurred trying to wipe the NVRAM contents of the virtual machine \"%1\"" -msgstr "Произошла ошибка при попытке стереть содержимое NVRAM виртуальной машины \"%1\"" +msgstr "Произошла ошибка при попытке стереть содержимое NVRAM виртуальной машины «%1»" msgid "%1 VM Manager" msgstr "Менеджер виртуальных машин %1" @@ -3016,7 +3016,7 @@ msgid "Virtual machine crash" msgstr "Сбой виртуальной машины" msgid "The virtual machine \"%1\"'s process has unexpectedly terminated with exit code %2." -msgstr "Процесс виртуальной машины \"%1\" неожиданно завершился с кодом завершения %2." +msgstr "Процесс виртуальной машины «%1» неожиданно завершился с кодом завершения %2." msgid "The system will not be added." msgstr "Система не будет добавлена." @@ -3055,7 +3055,7 @@ msgid "Export EDID" msgstr "Экспорт EDID" msgid "EDID file \"%ls\" is too large." -msgstr "Файл EDID \"%ls\" слишком велик." +msgstr "Файл EDID «%ls» слишком велик." msgid "OpenGL input scale" msgstr "Масштаб ввода OpenGL" diff --git a/src/qt/languages/uk-UA.po b/src/qt/languages/uk-UA.po index 9ff091254..b098bf441 100644 --- a/src/qt/languages/uk-UA.po +++ b/src/qt/languages/uk-UA.po @@ -61,7 +61,7 @@ msgid "&Qt (Software)" msgstr "&Qt (Software)" msgid "Open&GL (3.0 Core)" -msgstr "Open&GL (3.0)" +msgstr "Open&GL (3.0 Core)" msgid "&VNC" msgstr "&VNC" @@ -76,13 +76,13 @@ msgid "&Window scale factor" msgstr "&Масштаб вікна" msgid "&0.5x" -msgstr "&0.5x" +msgstr "&0,5x" msgid "&1x" msgstr "&1x" msgid "1.&5x" -msgstr "1.&5x" +msgstr "1,&5x" msgid "&2x" msgstr "&2x" @@ -715,7 +715,7 @@ msgid "Image %1" msgstr "Образ %1" msgid "86Box could not find any usable ROM images.\n\nPlease download a ROM set and extract it into the \"roms\" directory." -msgstr "86Box не зміг знайти жодного відповідного для використання файлу з ПЗУ.\n\nБудь ласка завантажте набір ПЗУ і витягніть його в каталог \"roms\"." +msgstr "86Box не зміг знайти жодного відповідного для використання файлу з ПЗУ.\n\nБудь ласка завантажте набір ПЗУ і витягніть його в каталог «roms»." msgid "(empty)" msgstr "(порожньо)" @@ -742,16 +742,16 @@ msgid "Surface images" msgstr "Образ поверхні" msgid "Machine \"%hs\" is not available due to missing ROMs in the roms/machines directory. Switching to an available machine." -msgstr "Системна плата \"%hs\" недоступна через відсутність файлу її ПЗУ в каталозі roms/machines. Переключення на доступну системну плату." +msgstr "Системна плата «%hs» недоступна через відсутність файлу її ПЗУ в каталозі roms/machines. Переключення на доступну системну плату." msgid "Video card \"%hs\" is not available due to missing ROMs in the roms/video directory. Switching to an available video card." -msgstr "Відеокарта \"%hs\" недоступна через відсутність файлу її ПЗУ в каталозі roms/video. Переключення на доступну відеокарту." +msgstr "Відеокарта «%hs» недоступна через відсутність файлу її ПЗУ в каталозі roms/video. Переключення на доступну відеокарту." msgid "Video card #2 \"%hs\" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." -msgstr "Відеокарта 2 \"%hs\" недоступна через відсутність файлу її ПЗУ в каталозі roms/video. Відключення другої відеокарти." +msgstr "Відеокарта 2 «%hs» недоступна через відсутність файлу її ПЗУ в каталозі roms/video. Відключення другої відеокарти." msgid "Device \"%hs\" is not available due to missing ROMs. Ignoring the device." -msgstr "Пристрій \"%hs\" недоступний через відсутність файлу його ПЗУ. Ігнорування пристрою." +msgstr "Пристрій «%hs» недоступний через відсутність файлу його ПЗУ. Ігнорування пристрою." msgid "Machine" msgstr "Комп'ютер" @@ -1306,7 +1306,7 @@ msgid "C&lone..." msgstr "К&лонувати..." msgid "Virtual machine \"%1\" (%2) will be cloned into:" -msgstr "Віртуальна машина \"%1\" (%2) буде клонована в:" +msgstr "Віртуальна машина «%1» (%2) буде клонована в:" msgid "Directory %1 already exists" msgstr "Папка %1 вже існує" @@ -1372,13 +1372,13 @@ msgid "&Kill" msgstr "&Завершити процес" msgid "Killing a virtual machine can cause data loss. Only do this if the 86Box process gets stuck.\n\nDo you really wish to kill the virtual machine \"%1\"?" -msgstr "Примусове завершення процесу віртуальної машини може призвести до втрати даних. Робіть це тільки в тому випадку, якщо процес 86Box завис.\n\nВи дійсно хочете примусово завершити процес віртуальної машини \"%1\"?" +msgstr "Примусове завершення процесу віртуальної машини може призвести до втрати даних. Робіть це тільки в тому випадку, якщо процес 86Box завис.\n\nВи дійсно хочете примусово завершити процес віртуальної машини «%1»?" msgid "&Delete" msgstr "&Видалити" msgid "Do you really want to delete the virtual machine \"%1\" and all its files? This action cannot be undone!" -msgstr "Ви дійсно хочете видалити віртуальну машину \"%1\" і всі її файли? Цю дію не можна скасувати!" +msgstr "Ви дійсно хочете видалити віртуальну машину «%1» і всі її файли? Цю дію не можна скасувати!" msgid "Show &config file" msgstr "Показати файл &конфігурації" @@ -1588,13 +1588,13 @@ msgid "720 KB" msgstr "720 КБ" msgid "1.2 MB" -msgstr "1.2 МБ" +msgstr "1,2 МБ" msgid "1.25 MB" -msgstr "1.25 МБ" +msgstr "1,25 МБ" msgid "1.44 MB" -msgstr "1.44 МБ" +msgstr "1,44 МБ" msgid "DMF (cluster 1024)" msgstr "DMF (кластер 1024)" @@ -1603,40 +1603,40 @@ msgid "DMF (cluster 2048)" msgstr "DMF (кластер 2048)" msgid "2.88 MB" -msgstr "2.88 МБ" +msgstr "2,88 МБ" msgid "ZIP 100" msgstr "ZIP 100" msgid "3.5\" 128 MB (ISO 10090)" -msgstr "3.5\" 128 МБ (ISO 10090)" +msgstr "3,5\" 128 МБ (ISO 10090)" msgid "3.5\" 230 MB (ISO 13963)" -msgstr "3.5\" 230 МБ (ISO 13963)" +msgstr "3,5\" 230 МБ (ISO 13963)" msgid "3.5\" 540 MB (ISO 15498)" -msgstr "3.5\" 540 МБ (ISO 15498)" +msgstr "3,5\" 540 МБ (ISO 15498)" msgid "3.5\" 640 MB (ISO 15498)" -msgstr "3.5\" 640 МБ (ISO 15498)" +msgstr "3,5\" 640 МБ (ISO 15498)" msgid "3.5\" 1.3 GB (GigaMO)" -msgstr "3.5\" 1.3 ГБ (GigaMO)" +msgstr "3,5\" 1,3 ГБ (GigaMO)" msgid "3.5\" 2.3 GB (GigaMO 2)" -msgstr "3.5\" 2.3 ГБ (GigaMO 2)" +msgstr "3,5\" 2,3 ГБ (GigaMO 2)" msgid "5.25\" 600 MB" -msgstr "5.25\" 600 МБ" +msgstr "5,25\" 600 МБ" msgid "5.25\" 650 MB" -msgstr "5.25\" 650 МБ" +msgstr "5,25\" 650 МБ" msgid "5.25\" 1 GB" -msgstr "5.25\" 1 ГБ" +msgstr "5,25\" 1 ГБ" msgid "5.25\" 1.3 GB" -msgstr "5.25\" 1.3 ГБ" +msgstr "5,25\" 1,3 ГБ" msgid "Perfect RPM" msgstr "Точний RPM" @@ -1645,7 +1645,7 @@ msgid "1% below perfect RPM" msgstr "На 1% повільніше точного RPM" msgid "1.5% below perfect RPM" -msgstr "На 1.5% повільніше точного RPM" +msgstr "На 1,5% повільніше точного RPM" msgid "2% below perfect RPM" msgstr "На 2% повільніше точного RPM" @@ -1807,7 +1807,7 @@ msgid "This machine might have been moved or copied." msgstr "Цю машину могли перемістити або скопіювати." msgid "In order to ensure proper networking functionality, 86Box needs to know if this machine was moved or copied.\n\nSelect \"I Copied It\" if you are not sure." -msgstr "Щоб забезпечити належну мережеву функціональність, 86Box повинен знати, чи машина була переміщена або скопійована.\n\nЯкщо ви не впевнені, виберіте \"Скопійована\"." +msgstr "Щоб забезпечити належну мережеву функціональність, 86Box повинен знати, чи машина була переміщена або скопійована.\n\nЯкщо ви не впевнені, виберіте «Скопійована»." msgid "I Moved It" msgstr "Переміщена" @@ -2296,7 +2296,7 @@ msgid "GUS type" msgstr "Тип GUS" msgid "Enable 0x04 \"Exit 86Box\" command" -msgstr "Увімкнути команду 0x04 \"Вихід з 86Box\"" +msgstr "Увімкнути команду 0x04 «Вихід з 86Box»" msgid "Display type" msgstr "Тип відображення" @@ -2785,7 +2785,7 @@ msgid "Unable to find Dot-Matrix fonts" msgstr "Неможливо знайти матричні шрифти" msgid "TrueType fonts in the \"roms/printer/fonts\" directory are required for the emulation of the Generic ESC/P 2 Dot-Matrix Printer." -msgstr "Шрифти TrueType у каталозі \"roms/printer/fonts\" потрібні для емуляції загального матричного принтера Generic ESC/P 2." +msgstr "Шрифти TrueType у каталозі «roms/printer/fonts» потрібні для емуляції загального матричного принтера Generic ESC/P 2." msgid "Inhibit multimedia keys" msgstr "Перехоплювати мультимедійні клавіші" @@ -2929,16 +2929,16 @@ msgid "&Wipe NVRAM" msgstr "&Стерти NVRAM" msgid "This will delete all NVRAM (and related) files of the virtual machine located in the \"nvr\" subdirectory. You'll have to reconfigure the BIOS (and possibly other devices inside the VM) settings again if applicable.\n\nAre you sure you want to wipe all NVRAM contents of the virtual machine \"%1\"?" -msgstr "Це видалить всі файли NVRAM (і пов'язані) віртуальної машини, розташованої в підпапці «nvr». Вам доведеться знову налаштувати BIOS (і, можливо, інші пристрої всередині віртуальної машини), якщо це необхідно.\n\nВи впевнені, що хочете стерти весь вміст NVRAM віртуальної машини \"%1\"?" +msgstr "Це видалить всі файли NVRAM (і пов'язані) віртуальної машини, розташованої в підпапці «nvr». Вам доведеться знову налаштувати BIOS (і, можливо, інші пристрої всередині віртуальної машини), якщо це необхідно.\n\nВи впевнені, що хочете стерти весь вміст NVRAM віртуальної машини «%1»?" msgid "Success" msgstr "Успішно" msgid "Successfully wiped the NVRAM contents of the virtual machine \"%1\"" -msgstr "Успішно стерто вміст NVRAM віртуальної машини \"%1\"" +msgstr "Успішно стерто вміст NVRAM віртуальної машини «%1»" msgid "An error occurred trying to wipe the NVRAM contents of the virtual machine \"%1\"" -msgstr "Сталася помилка при спробі стерти вміст NVRAM віртуальної машини \"%1\"" +msgstr "Сталася помилка при спробі стерти вміст NVRAM віртуальної машини «%1»" msgid "%1 VM Manager" msgstr "Менеджер віртуальних машин %1" @@ -3016,7 +3016,7 @@ msgid "Virtual machine crash" msgstr "Збій віртуальної машини" msgid "The virtual machine \"%1\"'s process has unexpectedly terminated with exit code %2." -msgstr "Процес віртуальної машини \"%1\" несподівано завершився з кодом завершення %2." +msgstr "Процес віртуальної машини «%1» несподівано завершився з кодом завершення %2." msgid "The system will not be added." msgstr "Система не буде додана." @@ -3055,7 +3055,7 @@ msgid "Export EDID" msgstr "Експорт EDID" msgid "EDID file \"%ls\" is too large." -msgstr "Файл EDID \"%ls\" занадто великий." +msgstr "Файл EDID «%ls» занадто великий." msgid "OpenGL input scale" msgstr "Шкала введення OpenGL" From fc55d51887f42b17ac40bd41b53cd133d7bc6fc1 Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 26 Nov 2025 14:42:32 +0500 Subject: [PATCH 33/39] Translations: Remove unused strings --- src/qt/languages/86box.pot | 36 ------------------------------------ src/qt/languages/cs-CZ.po | 36 ------------------------------------ src/qt/languages/de-DE.po | 36 ------------------------------------ src/qt/languages/es-ES.po | 36 ------------------------------------ src/qt/languages/fi-FI.po | 36 ------------------------------------ src/qt/languages/fr-FR.po | 36 ------------------------------------ src/qt/languages/hr-HR.po | 36 ------------------------------------ src/qt/languages/it-IT.po | 36 ------------------------------------ src/qt/languages/ja-JP.po | 36 ------------------------------------ src/qt/languages/ko-KR.po | 36 ------------------------------------ src/qt/languages/nb-NO.po | 36 ------------------------------------ src/qt/languages/nl-NL.po | 36 ------------------------------------ src/qt/languages/pl-PL.po | 36 ------------------------------------ src/qt/languages/pt-BR.po | 36 ------------------------------------ src/qt/languages/pt-PT.po | 36 ------------------------------------ src/qt/languages/ru-RU.po | 36 ------------------------------------ src/qt/languages/sk-SK.po | 36 ------------------------------------ src/qt/languages/sl-SI.po | 36 ------------------------------------ src/qt/languages/sv-SE.po | 36 ------------------------------------ src/qt/languages/tr-TR.po | 36 ------------------------------------ src/qt/languages/uk-UA.po | 36 ------------------------------------ src/qt/languages/vi-VN.po | 36 ------------------------------------ src/qt/languages/zh-CN.po | 36 ------------------------------------ src/qt/languages/zh-TW.po | 36 ------------------------------------ 24 files changed, 864 deletions(-) diff --git a/src/qt/languages/86box.pot b/src/qt/languages/86box.pot index 1092e4ad1..8bedf31f8 100644 --- a/src/qt/languages/86box.pot +++ b/src/qt/languages/86box.pot @@ -273,36 +273,6 @@ msgstr "" msgid "&Folder..." msgstr "" -msgid "Target &framerate" -msgstr "" - -msgid "&Sync with video" -msgstr "" - -msgid "&25 fps" -msgstr "" - -msgid "&30 fps" -msgstr "" - -msgid "&50 fps" -msgstr "" - -msgid "&60 fps" -msgstr "" - -msgid "&75 fps" -msgstr "" - -msgid "&VSync" -msgstr "" - -msgid "&Select shader..." -msgstr "" - -msgid "&Remove shader" -msgstr "" - msgid "Preferences" msgstr "" @@ -687,9 +657,6 @@ msgstr "" msgid "POST card" msgstr "" -msgid "86Box" -msgstr "" - msgid "Error" msgstr "" @@ -2526,9 +2493,6 @@ msgstr "" msgid "SigmaTel STAC9721T (stereo)" msgstr "" -msgid "Classic" -msgstr "" - msgid "256 KB" msgstr "" diff --git a/src/qt/languages/cs-CZ.po b/src/qt/languages/cs-CZ.po index 1cadad218..5611694c7 100644 --- a/src/qt/languages/cs-CZ.po +++ b/src/qt/languages/cs-CZ.po @@ -273,36 +273,6 @@ msgstr "Načíst znova předchozí obraz" msgid "&Folder..." msgstr "&Složka..." -msgid "Target &framerate" -msgstr "&Cílová snímková frekvence" - -msgid "&Sync with video" -msgstr "&Synchronizovat s obrazem" - -msgid "&25 fps" -msgstr "&25 fps" - -msgid "&30 fps" -msgstr "&30 fps" - -msgid "&50 fps" -msgstr "&50 fps" - -msgid "&60 fps" -msgstr "&60 fps" - -msgid "&75 fps" -msgstr "&75 fps" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "&Zvolit shader..." - -msgid "&Remove shader" -msgstr "&Odebrat shader" - msgid "Preferences" msgstr "Předvolby" @@ -687,9 +657,6 @@ msgstr "Zařízení ISABugger" msgid "POST card" msgstr "Karta pro kódy POST" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Chyba" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (stereo)" -msgid "Classic" -msgstr "Klasické" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/de-DE.po b/src/qt/languages/de-DE.po index e743dd3e9..d8c2abdbc 100644 --- a/src/qt/languages/de-DE.po +++ b/src/qt/languages/de-DE.po @@ -273,36 +273,6 @@ msgstr "Voriges Abbild neu laden" msgid "&Folder..." msgstr "&Verzeichnis..." -msgid "Target &framerate" -msgstr "Ziel&framerate" - -msgid "&Sync with video" -msgstr "&Mit Videoausgabe synchronisieren" - -msgid "&25 fps" -msgstr "&25 fps" - -msgid "&30 fps" -msgstr "&30 fps" - -msgid "&50 fps" -msgstr "&50 fps" - -msgid "&60 fps" -msgstr "&60 fps" - -msgid "&75 fps" -msgstr "&75 fps" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "&Shader auswählen..." - -msgid "&Remove shader" -msgstr "&Shader entfernen" - msgid "Preferences" msgstr "Einstellungen" @@ -687,9 +657,6 @@ msgstr "ISABugger-Gerät" msgid "POST card" msgstr "POST-Code-Karte" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Fehler" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (Stereo)" -msgid "Classic" -msgstr "Klassisch" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/es-ES.po b/src/qt/languages/es-ES.po index cc1f0feae..e1163d9d7 100644 --- a/src/qt/languages/es-ES.po +++ b/src/qt/languages/es-ES.po @@ -273,36 +273,6 @@ msgstr "Recargar imagen previa" msgid "&Folder..." msgstr "&Carpeta..." -msgid "Target &framerate" -msgstr "Objetivo de &tasa de refresco" - -msgid "&Sync with video" -msgstr "&Sincronizar con vídeo" - -msgid "&25 fps" -msgstr "&25 fps" - -msgid "&30 fps" -msgstr "&30 fps" - -msgid "&50 fps" -msgstr "&50 fps" - -msgid "&60 fps" -msgstr "&60 fps" - -msgid "&75 fps" -msgstr "&75 fps" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "&Seleccionar shader..." - -msgid "&Remove shader" -msgstr "&Eliminar shader" - msgid "Preferences" msgstr "Preferencias" @@ -687,9 +657,6 @@ msgstr "Dispositivo ISABugger" msgid "POST card" msgstr "Tarjeta POST" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Error" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (estéreo)" -msgid "Classic" -msgstr "Clásico" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/fi-FI.po b/src/qt/languages/fi-FI.po index 02eac7067..ce6d6bab4 100644 --- a/src/qt/languages/fi-FI.po +++ b/src/qt/languages/fi-FI.po @@ -273,36 +273,6 @@ msgstr "Lataa edellinen levykuva uudelleen" msgid "&Folder..." msgstr "&Kansio..." -msgid "Target &framerate" -msgstr "&Kuvataajuustavoite" - -msgid "&Sync with video" -msgstr "&Synkronisoi videoon" - -msgid "&25 fps" -msgstr "&25 ruutua/s" - -msgid "&30 fps" -msgstr "&30 ruutua/s" - -msgid "&50 fps" -msgstr "&50 ruutua/s" - -msgid "&60 fps" -msgstr "&60 ruutua/s" - -msgid "&75 fps" -msgstr "&75 ruutua/s" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "Valitse varjostin&ohjelma..." - -msgid "&Remove shader" -msgstr "&Poista varjostinohjelma" - msgid "Preferences" msgstr "Sovellusasetukset" @@ -687,9 +657,6 @@ msgstr "ISABugger-laite" msgid "POST card" msgstr "POST-kortti" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Virhe" @@ -2526,9 +2493,6 @@ msgstr "24 Mt" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (stereo)" -msgid "Classic" -msgstr "Klassinen" - msgid "256 KB" msgstr "256 Kt" diff --git a/src/qt/languages/fr-FR.po b/src/qt/languages/fr-FR.po index 727f912b6..ec7734bb0 100644 --- a/src/qt/languages/fr-FR.po +++ b/src/qt/languages/fr-FR.po @@ -273,36 +273,6 @@ msgstr "Recharger image précedente" msgid "&Folder..." msgstr "&Dossier..." -msgid "Target &framerate" -msgstr "&Taux de rafraîchissement cible" - -msgid "&Sync with video" -msgstr "&Synchronisation avec la vidéo" - -msgid "&25 fps" -msgstr "&25 images par seconde" - -msgid "&30 fps" -msgstr "&30 images par seconde" - -msgid "&50 fps" -msgstr "&50 images par seconde" - -msgid "&60 fps" -msgstr "&60 images par seconde" - -msgid "&75 fps" -msgstr "&75 images par seconde" - -msgid "&VSync" -msgstr "Synchronisation &Verticale" - -msgid "&Select shader..." -msgstr "Sé&lectionnez le shader..." - -msgid "&Remove shader" -msgstr "S&upprimer le shader" - msgid "Preferences" msgstr "Préférences" @@ -687,9 +657,6 @@ msgstr "Dispositif ISABugger" msgid "POST card" msgstr "Carte POST" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Erreur" @@ -2526,9 +2493,6 @@ msgstr "24 Mo" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (stéréo)" -msgid "Classic" -msgstr "Classique" - msgid "256 KB" msgstr "256 Ko" diff --git a/src/qt/languages/hr-HR.po b/src/qt/languages/hr-HR.po index 7a61aa0fb..ea41d19c3 100644 --- a/src/qt/languages/hr-HR.po +++ b/src/qt/languages/hr-HR.po @@ -273,36 +273,6 @@ msgstr "Ponovo učitaj prethodnu sliku" msgid "&Folder..." msgstr "&Mapa..." -msgid "Target &framerate" -msgstr "&Ciljni broj okvira u sekundi" - -msgid "&Sync with video" -msgstr "&Sinkroniziraj s videom" - -msgid "&25 fps" -msgstr "&25 fps" - -msgid "&30 fps" -msgstr "&30 fps" - -msgid "&50 fps" -msgstr "&50 fps" - -msgid "&60 fps" -msgstr "&60 fps" - -msgid "&75 fps" -msgstr "&75 fps" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "&Odaberi shader..." - -msgid "&Remove shader" -msgstr "&Ukloni shader" - msgid "Preferences" msgstr "Postavke" @@ -687,9 +657,6 @@ msgstr "Uređaj ISABugger" msgid "POST card" msgstr "Kartica POST" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Greška" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (stereo)" -msgid "Classic" -msgstr "Klasičan" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/it-IT.po b/src/qt/languages/it-IT.po index 8ea020165..d739672e0 100644 --- a/src/qt/languages/it-IT.po +++ b/src/qt/languages/it-IT.po @@ -273,36 +273,6 @@ msgstr "Ricarica l'immagine precedente" msgid "&Folder..." msgstr "&Cartella..." -msgid "Target &framerate" -msgstr "Obiettivo &fotogrammi" - -msgid "&Sync with video" -msgstr "&Sincronizza col video" - -msgid "&25 fps" -msgstr "&25 FPS" - -msgid "&30 fps" -msgstr "&30 FPS" - -msgid "&50 fps" -msgstr "&50 FPS" - -msgid "&60 fps" -msgstr "&60 FPS" - -msgid "&75 fps" -msgstr "&75 FPS" - -msgid "&VSync" -msgstr "Sincronizzazione &verticale" - -msgid "&Select shader..." -msgstr "&Seleziona shader..." - -msgid "&Remove shader" -msgstr "&Rimuovi shader" - msgid "Preferences" msgstr "Preferenze" @@ -687,9 +657,6 @@ msgstr "Dispositivo ISABugger" msgid "POST card" msgstr "Scheda di diagnostica" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Errore" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (stereo)" -msgid "Classic" -msgstr "Classico" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/ja-JP.po b/src/qt/languages/ja-JP.po index c6290d312..3b515edbc 100644 --- a/src/qt/languages/ja-JP.po +++ b/src/qt/languages/ja-JP.po @@ -273,36 +273,6 @@ msgstr "前のイメージを再読み込み" msgid "&Folder..." msgstr "フォルダ(&F)..." -msgid "Target &framerate" -msgstr "目標フレームレート(&F)" - -msgid "&Sync with video" -msgstr "ビデオと同期(&S)" - -msgid "&25 fps" -msgstr "25 fps(&2)" - -msgid "&30 fps" -msgstr "30 fps(&3)" - -msgid "&50 fps" -msgstr "50 fps(&5)" - -msgid "&60 fps" -msgstr "60 fps(&6)" - -msgid "&75 fps" -msgstr "75 fps(&7)" - -msgid "&VSync" -msgstr "垂直同期(VSync)(&V)" - -msgid "&Select shader..." -msgstr "シェーダーを選択(&S)..." - -msgid "&Remove shader" -msgstr "シェーダーを削除(&R)" - msgid "Preferences" msgstr "環境設定" @@ -687,9 +657,6 @@ msgstr "ISABuggerデバイス" msgid "POST card" msgstr "POSTカード" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "エラー" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "シグマテル STAC9721T(ステレオ)" -msgid "Classic" -msgstr "クラシック" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/ko-KR.po b/src/qt/languages/ko-KR.po index f02604591..4994e8e66 100644 --- a/src/qt/languages/ko-KR.po +++ b/src/qt/languages/ko-KR.po @@ -273,36 +273,6 @@ msgstr "이전 이미지 다시 불러오기" msgid "&Folder..." msgstr "폴더(&F)..." -msgid "Target &framerate" -msgstr "목표 프레임 레이트(&F)" - -msgid "&Sync with video" -msgstr "비디오와 동기(&S)" - -msgid "&25 fps" -msgstr "25 fps(&2)" - -msgid "&30 fps" -msgstr "30 fps(&3)" - -msgid "&50 fps" -msgstr "50 fps(&5)" - -msgid "&60 fps" -msgstr "60 fps(&6)" - -msgid "&75 fps" -msgstr "75 fps(&7)" - -msgid "&VSync" -msgstr "수직 동기화(&V)" - -msgid "&Select shader..." -msgstr "쉐이더 불러오기(&S)..." - -msgid "&Remove shader" -msgstr "쉐이더 끄기(&R)" - msgid "Preferences" msgstr "환경설정" @@ -687,9 +657,6 @@ msgstr "ISABugger 장치" msgid "POST card" msgstr "POST 카드" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "오류" @@ -2526,9 +2493,6 @@ msgstr "24MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "시그마텔 STAC9721T(스테레오)" -msgid "Classic" -msgstr "클래식" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/nb-NO.po b/src/qt/languages/nb-NO.po index 637522609..395a56dc9 100644 --- a/src/qt/languages/nb-NO.po +++ b/src/qt/languages/nb-NO.po @@ -273,36 +273,6 @@ msgstr "Last inn forrige diskfil" msgid "&Folder..." msgstr "&Mappe..." -msgid "Target &framerate" -msgstr "Mål-&bildefrekvens" - -msgid "&Sync with video" -msgstr "&Synkroniser med video" - -msgid "&25 fps" -msgstr "&25 fps" - -msgid "&30 fps" -msgstr "&30 fps" - -msgid "&50 fps" -msgstr "&50 fps" - -msgid "&60 fps" -msgstr "&60 fps" - -msgid "&75 fps" -msgstr "&75 fps" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "&Velg shader..." - -msgid "&Remove shader" -msgstr "&Fjern shader" - msgid "Preferences" msgstr "Valg" @@ -687,9 +657,6 @@ msgstr "ISABugger-enhet" msgid "POST card" msgstr "POST-kort" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Feil" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (stereo)" -msgid "Classic" -msgstr "Klassisk" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/nl-NL.po b/src/qt/languages/nl-NL.po index bf2d3b647..b62014ee7 100644 --- a/src/qt/languages/nl-NL.po +++ b/src/qt/languages/nl-NL.po @@ -273,36 +273,6 @@ msgstr "Herlaad vorig imagebestand" msgid "&Folder..." msgstr "&Map..." -msgid "Target &framerate" -msgstr "Doel &framerate" - -msgid "&Sync with video" -msgstr "&Synchroniseer met video" - -msgid "&25 fps" -msgstr "&25 fps" - -msgid "&30 fps" -msgstr "&30 fps" - -msgid "&50 fps" -msgstr "&50 fps" - -msgid "&60 fps" -msgstr "&60 fps" - -msgid "&75 fps" -msgstr "&75 fps" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "&Selecteer shader..." - -msgid "&Remove shader" -msgstr "&Verwijder shader" - msgid "Preferences" msgstr "Voorkeuren" @@ -687,9 +657,6 @@ msgstr "ISABugger-apparaat" msgid "POST card" msgstr "POST-kaart" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Fout" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (stereo)" -msgid "Classic" -msgstr "Klassiek" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/pl-PL.po b/src/qt/languages/pl-PL.po index 24f6734fd..97d0afb60 100644 --- a/src/qt/languages/pl-PL.po +++ b/src/qt/languages/pl-PL.po @@ -273,36 +273,6 @@ msgstr "Przeładuj poprzedni obraz" msgid "&Folder..." msgstr "&Folder..." -msgid "Target &framerate" -msgstr "Docelowa &liczba klatek na sekundę" - -msgid "&Sync with video" -msgstr "&Zsynchronizuj z obrazem" - -msgid "&25 fps" -msgstr "&25 fps" - -msgid "&30 fps" -msgstr "&30 fps" - -msgid "&50 fps" -msgstr "&50 fps" - -msgid "&60 fps" -msgstr "&60 fps" - -msgid "&75 fps" -msgstr "&75 fps" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "&Wybierz shader..." - -msgid "&Remove shader" -msgstr "&Usuń shader" - msgid "Preferences" msgstr "Preferencje" @@ -687,9 +657,6 @@ msgstr "Urządzenie ISABugger" msgid "POST card" msgstr "Karta POST" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Błąd" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (stereo)" -msgid "Classic" -msgstr "Klasyczny" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index a55fb96bc..d8317db29 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -273,36 +273,6 @@ msgstr "Recarregar imagem anterior" msgid "&Folder..." msgstr "&Pasta..." -msgid "Target &framerate" -msgstr "&Taxa de quadros pretendida" - -msgid "&Sync with video" -msgstr "&Sincronizar com vídeo" - -msgid "&25 fps" -msgstr "&25 qps" - -msgid "&30 fps" -msgstr "&30 qps" - -msgid "&50 fps" -msgstr "&50 qps" - -msgid "&60 fps" -msgstr "&60 qps" - -msgid "&75 fps" -msgstr "&75 qps" - -msgid "&VSync" -msgstr "Sincronização &vertical" - -msgid "&Select shader..." -msgstr "&Selecionar shader..." - -msgid "&Remove shader" -msgstr "&Remover shader" - msgid "Preferences" msgstr "Preferências" @@ -687,9 +657,6 @@ msgstr "Dispositivo ISABugger" msgid "POST card" msgstr "Placa de diagnóstico" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Erro" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (estéreo)" -msgid "Classic" -msgstr "Clássico" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/pt-PT.po b/src/qt/languages/pt-PT.po index a65843f24..3316cdf29 100644 --- a/src/qt/languages/pt-PT.po +++ b/src/qt/languages/pt-PT.po @@ -273,36 +273,6 @@ msgstr "Recarregar imagem anterior" msgid "&Folder..." msgstr "&Pasta..." -msgid "Target &framerate" -msgstr "&Taxa de quadros de destino" - -msgid "&Sync with video" -msgstr "&Sincronizar com vídeo" - -msgid "&25 fps" -msgstr "&25 q/s" - -msgid "&30 fps" -msgstr "&30 q/s" - -msgid "&50 fps" -msgstr "&50 q/s" - -msgid "&60 fps" -msgstr "&60 q/s" - -msgid "&75 fps" -msgstr "&75 q/s" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "&Selecionar shader..." - -msgid "&Remove shader" -msgstr "&Remover shader" - msgid "Preferences" msgstr "Preferências" @@ -687,9 +657,6 @@ msgstr "Dispositivo ISABugger" msgid "POST card" msgstr "Placa POST" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Erro" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (estéreo)" -msgid "Classic" -msgstr "Clássico" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/ru-RU.po b/src/qt/languages/ru-RU.po index c76047f87..0b20956e7 100644 --- a/src/qt/languages/ru-RU.po +++ b/src/qt/languages/ru-RU.po @@ -273,36 +273,6 @@ msgstr "Перезагрузить предыдущий образ" msgid "&Folder..." msgstr "&Папка..." -msgid "Target &framerate" -msgstr "Целевая &частота кадров" - -msgid "&Sync with video" -msgstr "&Синхронизация с видео" - -msgid "&25 fps" -msgstr "&25 кадров в секунду" - -msgid "&30 fps" -msgstr "&30 кадров в секунду" - -msgid "&50 fps" -msgstr "&50 кадров в секунду" - -msgid "&60 fps" -msgstr "&60 кадров в секунду" - -msgid "&75 fps" -msgstr "&75 кадров в секунду" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "&Выбрать шейдер..." - -msgid "&Remove shader" -msgstr "&Удалить шейдер" - msgid "Preferences" msgstr "Параметры" @@ -687,9 +657,6 @@ msgstr "Устройство ISABugger" msgid "POST card" msgstr "Карта POST" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Ошибка" @@ -2526,9 +2493,6 @@ msgstr "24 МБ" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (стерео)" -msgid "Classic" -msgstr "Классический" - msgid "256 KB" msgstr "256 КБ" diff --git a/src/qt/languages/sk-SK.po b/src/qt/languages/sk-SK.po index b9843588f..5ec7d4b59 100644 --- a/src/qt/languages/sk-SK.po +++ b/src/qt/languages/sk-SK.po @@ -273,36 +273,6 @@ msgstr "Načítať znova predchádzajúci obraz" msgid "&Folder..." msgstr "&Zložka..." -msgid "Target &framerate" -msgstr "&Cieľová snímková frekvencia" - -msgid "&Sync with video" -msgstr "&Synchronizovať s obrazom" - -msgid "&25 fps" -msgstr "&25 fps" - -msgid "&30 fps" -msgstr "&30 fps" - -msgid "&50 fps" -msgstr "&50 fps" - -msgid "&60 fps" -msgstr "&60 fps" - -msgid "&75 fps" -msgstr "&75 fps" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "&Zvoliť shader..." - -msgid "&Remove shader" -msgstr "&Odobrať shader" - msgid "Preferences" msgstr "Predvoľby" @@ -687,9 +657,6 @@ msgstr "Zariadenie ISABugger" msgid "POST card" msgstr "Karta pre kódy POST" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Chyba" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (stereo)" -msgid "Classic" -msgstr "Klasické" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/sl-SI.po b/src/qt/languages/sl-SI.po index 47aafa416..5b35eb615 100644 --- a/src/qt/languages/sl-SI.po +++ b/src/qt/languages/sl-SI.po @@ -273,36 +273,6 @@ msgstr "Naloži zadnjo sliko" msgid "&Folder..." msgstr "&Mapa..." -msgid "Target &framerate" -msgstr "&Ciljno št. kadrov na sekundo" - -msgid "&Sync with video" -msgstr "&Sinhroniziraj z videom" - -msgid "&25 fps" -msgstr "&25 fps" - -msgid "&30 fps" -msgstr "&30 fps" - -msgid "&50 fps" -msgstr "&50 fps" - -msgid "&60 fps" -msgstr "&60 fps" - -msgid "&75 fps" -msgstr "&75 fps" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "&Izberi senčilnik..." - -msgid "&Remove shader" -msgstr "&Odstrani senčilnik" - msgid "Preferences" msgstr "Možnosti" @@ -687,9 +657,6 @@ msgstr "Naprava ISABugger" msgid "POST card" msgstr "Kartica POST" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Napaka" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (stereo)" -msgid "Classic" -msgstr "Klasični" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/sv-SE.po b/src/qt/languages/sv-SE.po index 01b414290..ff0774bed 100644 --- a/src/qt/languages/sv-SE.po +++ b/src/qt/languages/sv-SE.po @@ -273,36 +273,6 @@ msgstr "Ladda om föregående avbildning" msgid "&Folder..." msgstr "&Mapp..." -msgid "Target &framerate" -msgstr "Mål för &bildhastighet" - -msgid "&Sync with video" -msgstr "&Synkronisera med bild" - -msgid "&25 fps" -msgstr "&25 fps" - -msgid "&30 fps" -msgstr "&30 fps" - -msgid "&50 fps" -msgstr "&50 fps" - -msgid "&60 fps" -msgstr "&60 fps" - -msgid "&75 fps" -msgstr "&75 fps" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "&Välj shader..." - -msgid "&Remove shader" -msgstr "&Ta bort shader" - msgid "Preferences" msgstr "Preferenser" @@ -687,9 +657,6 @@ msgstr "ISABugger-enhet" msgid "POST card" msgstr "POST-kort" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Fel" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (stereo)" -msgid "Classic" -msgstr "Klassisk" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/tr-TR.po b/src/qt/languages/tr-TR.po index 34b52fdb1..02bf881a5 100644 --- a/src/qt/languages/tr-TR.po +++ b/src/qt/languages/tr-TR.po @@ -273,36 +273,6 @@ msgstr "Önceki görüntüyü yeniden seç" msgid "&Folder..." msgstr "&Klasör seç..." -msgid "Target &framerate" -msgstr "Hedef &kare hızı oranı" - -msgid "&Sync with video" -msgstr "Video ile &senkronize et" - -msgid "&25 fps" -msgstr "&25 fps" - -msgid "&30 fps" -msgstr "&30 fps" - -msgid "&50 fps" -msgstr "&50 fps" - -msgid "&60 fps" -msgstr "&60 fps" - -msgid "&75 fps" -msgstr "&75 fps" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "Gölgelendirici &seç..." - -msgid "&Remove shader" -msgstr "&Gölgelendiriciyi kaldır" - msgid "Preferences" msgstr "Tercihler" @@ -687,9 +657,6 @@ msgstr "ISABugger cihazı" msgid "POST card" msgstr "POST kartı" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Hata" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (stereo)" -msgid "Classic" -msgstr "Klasik" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/uk-UA.po b/src/qt/languages/uk-UA.po index b098bf441..c67d9c66b 100644 --- a/src/qt/languages/uk-UA.po +++ b/src/qt/languages/uk-UA.po @@ -273,36 +273,6 @@ msgstr "Знову завантажити попередній образ" msgid "&Folder..." msgstr "&Тека..." -msgid "Target &framerate" -msgstr "Цільова &частота кадрів" - -msgid "&Sync with video" -msgstr "&Синхронізація з відео" - -msgid "&25 fps" -msgstr "&25 кадрів в секунду" - -msgid "&30 fps" -msgstr "&30 кадрів в секунду" - -msgid "&50 fps" -msgstr "&50 кадрів в секунду" - -msgid "&60 fps" -msgstr "&60 кадрів в секунду" - -msgid "&75 fps" -msgstr "&75 кадрів в секунду" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "&Вибрати шейдер..." - -msgid "&Remove shader" -msgstr "&Видалити шейдер" - msgid "Preferences" msgstr "Параметри" @@ -687,9 +657,6 @@ msgstr "Пристрій ISABugger" msgid "POST card" msgstr "Карта POST" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Помилка" @@ -2526,9 +2493,6 @@ msgstr "24 МБ" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (стерео)" -msgid "Classic" -msgstr "Класичний" - msgid "256 KB" msgstr "256 КБ" diff --git a/src/qt/languages/vi-VN.po b/src/qt/languages/vi-VN.po index 18b259a6f..09d5defa3 100644 --- a/src/qt/languages/vi-VN.po +++ b/src/qt/languages/vi-VN.po @@ -273,36 +273,6 @@ msgstr "Load đĩa trước đó" msgid "&Folder..." msgstr "Thư mụ&c..." -msgid "Target &framerate" -msgstr "Số khung hình mục tiêu" - -msgid "&Sync with video" -msgstr "Đồng bộ &với video" - -msgid "&25 fps" -msgstr "&25 fps" - -msgid "&30 fps" -msgstr "&30 fps" - -msgid "&50 fps" -msgstr "&50 fps" - -msgid "&60 fps" -msgstr "&60 fps" - -msgid "&75 fps" -msgstr "&75 fps" - -msgid "&VSync" -msgstr "&VSync" - -msgid "&Select shader..." -msgstr "&Chọn shader..." - -msgid "&Remove shader" -msgstr "&Bỏ shader" - msgid "Preferences" msgstr "Tùy biến" @@ -687,9 +657,6 @@ msgstr "Thiết bị ISABugger" msgid "POST card" msgstr "Thẻ POST" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "Lỗi" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "Sigmatel Stac9721T (âm thanh nổi)" -msgid "Classic" -msgstr "Cổ điển" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/zh-CN.po b/src/qt/languages/zh-CN.po index 41b64ce77..06f375609 100644 --- a/src/qt/languages/zh-CN.po +++ b/src/qt/languages/zh-CN.po @@ -273,36 +273,6 @@ msgstr "载入上一个映像" msgid "&Folder..." msgstr "文件夹(&F)..." -msgid "Target &framerate" -msgstr "目标帧率(&F)" - -msgid "&Sync with video" -msgstr "与视频同步(&S)" - -msgid "&25 fps" -msgstr "25 fps(&2)" - -msgid "&30 fps" -msgstr "30 fps(&3)" - -msgid "&50 fps" -msgstr "50 fps(&5)" - -msgid "&60 fps" -msgstr "60 fps(&6)" - -msgid "&75 fps" -msgstr "75 fps(&7)" - -msgid "&VSync" -msgstr "垂直同步(&V)" - -msgid "&Select shader..." -msgstr "选择着色器(&S)..." - -msgid "&Remove shader" -msgstr "移除着色器(&R)" - msgid "Preferences" msgstr "首选项" @@ -687,9 +657,6 @@ msgstr "ISABugger 设备" msgid "POST card" msgstr "自检 (POST) 卡" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "错误" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (立体声)" -msgid "Classic" -msgstr "经典" - msgid "256 KB" msgstr "256 KB" diff --git a/src/qt/languages/zh-TW.po b/src/qt/languages/zh-TW.po index 2efbcf2bf..d17f36923 100644 --- a/src/qt/languages/zh-TW.po +++ b/src/qt/languages/zh-TW.po @@ -273,36 +273,6 @@ msgstr "載入上一個影像" msgid "&Folder..." msgstr "資料夾(&F)..." -msgid "Target &framerate" -msgstr "目標影格速率(&F)" - -msgid "&Sync with video" -msgstr "與視訊同步(&S)" - -msgid "&25 fps" -msgstr "25 fps(&2)" - -msgid "&30 fps" -msgstr "30 fps(&3)" - -msgid "&50 fps" -msgstr "50 fps(&5)" - -msgid "&60 fps" -msgstr "60 fps(&6)" - -msgid "&75 fps" -msgstr "75 fps(&7)" - -msgid "&VSync" -msgstr "垂直同步(&V)" - -msgid "&Select shader..." -msgstr "選取著色器(&S)..." - -msgid "&Remove shader" -msgstr "移除著色器(&R)" - msgid "Preferences" msgstr "偏好設定" @@ -687,9 +657,6 @@ msgstr "ISABugger 裝置" msgid "POST card" msgstr "自我檢測 (POST) 卡" -msgid "86Box" -msgstr "86Box" - msgid "Error" msgstr "錯誤" @@ -2526,9 +2493,6 @@ msgstr "24 MB" msgid "SigmaTel STAC9721T (stereo)" msgstr "SigmaTel STAC9721T (立體聲)" -msgid "Classic" -msgstr "經典" - msgid "256 KB" msgstr "256 KB" From e1b7579f9dad826e3cd085ae798dbc1b09c83521 Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 26 Nov 2025 11:45:50 +0500 Subject: [PATCH 34/39] Properly separate Qt and SDL UI codepaths in `update_mouse_msg()` Also drop the related hack for non-Windows platforms in qt_mainwindow.cpp --- src/86box.c | 14 +++++++------- src/qt/qt_mainwindow.cpp | 13 ------------- 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/src/86box.c b/src/86box.c index c8316b46d..efa9e84bf 100644 --- a/src/86box.c +++ b/src/86box.c @@ -1728,6 +1728,7 @@ pc_reset_hard_init(void) void update_mouse_msg(void) { +#ifdef USE_SDL_UI wchar_t wcpufamily[2048]; wchar_t wcpu[2048]; wchar_t wmachine[2048]; @@ -1744,13 +1745,6 @@ update_mouse_msg(void) if (wcp) /* remove parentheses */ *(wcp - 1) = L'\0'; mbstowcs(wcpu, cpu_s->name, strlen(cpu_s->name) + 1); -#ifdef _WIN32 - swprintf(mouse_msg[0], sizeof_w(mouse_msg[0]), L"%%i%%%% - %ls", - plat_get_string(STRING_MOUSE_CAPTURE)); - swprintf(mouse_msg[1], sizeof_w(mouse_msg[1]), L"%%i%%%% - %ls", - (mouse_get_buttons() > 2) ? plat_get_string(STRING_MOUSE_RELEASE) : plat_get_string(STRING_MOUSE_RELEASE_MMB)); - wcsncpy(mouse_msg[2], L"%i%%", sizeof_w(mouse_msg[2])); -#else swprintf(mouse_msg[0], sizeof_w(mouse_msg[0]), L"%ls v%ls - %%i%%%% - %ls - %ls/%ls - %ls", EMU_NAME_W, EMU_VERSION_FULL_W, wmachine, wcpufamily, wcpu, plat_get_string(STRING_MOUSE_CAPTURE)); @@ -1759,6 +1753,12 @@ update_mouse_msg(void) (mouse_get_buttons() > 2) ? plat_get_string(STRING_MOUSE_RELEASE) : plat_get_string(STRING_MOUSE_RELEASE_MMB)); swprintf(mouse_msg[2], sizeof_w(mouse_msg[2]), L"%ls v%ls - %%i%%%% - %ls - %ls/%ls", EMU_NAME_W, EMU_VERSION_FULL_W, wmachine, wcpufamily, wcpu); +#else + swprintf(mouse_msg[0], sizeof_w(mouse_msg[0]), L"%%i%%%% - %ls", + plat_get_string(STRING_MOUSE_CAPTURE)); + swprintf(mouse_msg[1], sizeof_w(mouse_msg[1]), L"%%i%%%% - %ls", + (mouse_get_buttons() > 2) ? plat_get_string(STRING_MOUSE_RELEASE) : plat_get_string(STRING_MOUSE_RELEASE_MMB)); + wcsncpy(mouse_msg[2], L"%i%%", sizeof_w(mouse_msg[2])); #endif } diff --git a/src/qt/qt_mainwindow.cpp b/src/qt/qt_mainwindow.cpp index c51ae6269..083f0761a 100644 --- a/src/qt/qt_mainwindow.cpp +++ b/src/qt/qt_mainwindow.cpp @@ -313,20 +313,7 @@ MainWindow::MainWindow(QWidget *parent) return; } if (!hide_tool_bar) -#ifdef _WIN32 toolbar_label->setText(title); -#else - { - /* get the percentage and mouse message, TODO: refactor ui_window_title() */ - auto parts = title.split(" - "); - if (parts.size() >= 2) { - if (parts.size() < 5) - toolbar_label->setText(parts[1]); - else - toolbar_label->setText(QString("%1 - %2").arg(parts[1], parts.last())); - } - } -#endif }); connect(this, &MainWindow::getTitleForNonQtThread, this, &MainWindow::getTitle_, Qt::BlockingQueuedConnection); From eee4ec9f878ff95a675036e317faac1a6c709825 Mon Sep 17 00:00:00 2001 From: AITUS95 <48457684+AITUS95@users.noreply.github.com> Date: Wed, 26 Nov 2025 19:40:51 +0100 Subject: [PATCH 35/39] voodoo1: apply higher CMDFIFO wake threshold only for Voodoo1 --- src/video/vid_voodoo.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/video/vid_voodoo.c b/src/video/vid_voodoo.c index c17f8bc32..47c59a0ff 100644 --- a/src/video/vid_voodoo.c +++ b/src/video/vid_voodoo.c @@ -427,18 +427,27 @@ voodoo_writel(uint32_t addr, uint32_t val, void *priv) voodoo_queue_command(voodoo, addr | FIFO_WRITEL_FB, val); } else if ((addr & 0x200000) && (voodoo->fbiInit7 & FBIINIT7_CMDFIFO_ENABLE)) { #if 0 - voodoo_log("Write CMDFIFO %08x(%08x) %08x %08x\n", addr, voodoo->cmdfifo_base + (addr & 0x3fffc), val, (voodoo->cmdfifo_base + (addr & 0x3fffc)) & voodoo->fb_mask); + voodoo_log("Write CMDFIFO %08x(%08x) %08x %08x\n", addr, (voodoo->cmdfifo_base + (addr & 0x3fffc)) & voodoo->fb_mask, val, (voodoo->cmdfifo_base + (addr & 0x3fffc)) & voodoo->fb_mask); #endif *(uint32_t *) &voodoo->fb_mem[(voodoo->cmdfifo_base + (addr & 0x3fffc)) & voodoo->fb_mask] = val; voodoo->cmdfifo_depth_wr++; - if ((voodoo->cmdfifo_depth_wr - voodoo->cmdfifo_depth_rd) > (voodoo->type == VOODOO_1 ? 300 : 20)) - voodoo_wake_fifo_thread(voodoo); + + /* Voodoo1: use higher CMDFIFO threshold to reduce wake frequency */ + if (voodoo->type == VOODOO_1) { + if ((voodoo->cmdfifo_depth_wr - voodoo->cmdfifo_depth_rd) > 300) + voodoo_wake_fifo_thread(voodoo); + } + /* Other cards (Voodoo2, Banshee, Voodoo3, ...) keep the original behavior */ + else { + if ((voodoo->cmdfifo_depth_wr - voodoo->cmdfifo_depth_rd) < 20) + voodoo_wake_fifo_thread(voodoo); + } } else switch (addr & 0x3fc) { case SST_intrCtrl: fatal("intrCtrl write %08x\n", val); break; - + case SST_userIntrCMD: fatal("userIntrCMD write %08x\n", val); break; From 030edf4beee0dcc43ab2a92bc3d54f7b63c25714 Mon Sep 17 00:00:00 2001 From: TC1995 Date: Thu, 27 Nov 2025 00:18:59 +0100 Subject: [PATCH 36/39] Fixes for most video cards, ramdacs and clock generators 1. Actually place the correct clocks in the PVGA-based ICS90c64a (see sources). 2. Make sure the difference between 4bpp and 8bpp in the BT484/5 ramdac is actually seen and done. 3. Forgot the ATI panning flag for the plain Mach64GX cards. 4. Fix standard VGA graphics mode for Japanese text in the Mach32 so that it's rendered correctly (if bit 5 of ati 0xb0 and bit 0 of 0x4aee clock select are 0). 5. Normalize ET4000AX clocks. 6. ET4000W32 series: fix some hwcursor issues in win3.1/winos2 (in non-24bpp modes) as well as well as the chips' clocks. Cleanup of the modes too. 7. Video7 HT208 cards: Add the 7.04 HP OEM bios and implement the clocks according to its manual (HT208, below). 8. More fixes of the stalls caused by FIFO stuff in non-FIFO modes (S3 stuff). 9. Remove unused code in vid_svga.c (vga core layer) --- src/video/clockgen/vid_clockgen_ics90c64a.c | 61 +++++-------- src/video/ramdac/vid_ramdac_bt48x.c | 8 +- src/video/vid_ati_mach64.c | 1 + src/video/vid_ati_mach8.c | 6 +- src/video/vid_et4000.c | 6 +- src/video/vid_et4000w32.c | 36 +++----- src/video/vid_ht216.c | 98 +++++++++++++++++++-- src/video/vid_paradise.c | 8 ++ src/video/vid_s3.c | 20 +++-- src/video/vid_svga.c | 9 -- 10 files changed, 163 insertions(+), 90 deletions(-) diff --git a/src/video/clockgen/vid_clockgen_ics90c64a.c b/src/video/clockgen/vid_clockgen_ics90c64a.c index fd97201ce..f0573f161 100644 --- a/src/video/clockgen/vid_clockgen_ics90c64a.c +++ b/src/video/clockgen/vid_clockgen_ics90c64a.c @@ -25,7 +25,7 @@ #include <86box/device.h> typedef struct ics90c64a_t { - float freq[32]; + float freq[17]; } ics90c64a_t; #ifdef ENABLE_ICS90C64A_LOG @@ -51,23 +51,12 @@ ics90c64a_vclk_getclock(int clock, void *priv) { const ics90c64a_t *ics90c64a = (ics90c64a_t *) priv; - if (clock > 15) - clock = 15; + if (clock > 16) + clock = 16; return ics90c64a->freq[clock]; } -float -ics90c64a_mclk_getclock(int clock, void *priv) -{ - const ics90c64a_t *ics90c64a = (ics90c64a_t *) priv; - - if (clock > 7) - clock = 7; - - return ics90c64a->freq[clock + 0x10]; -} - static void * ics90c64a_init(const device_t *info) { @@ -76,32 +65,24 @@ ics90c64a_init(const device_t *info) switch (info->local) { case 903: - /* ICS90C64A-903 for PVGA chip series */ - ics90c64a->freq[0x0] = 30000000.0; - ics90c64a->freq[0x1] = 77250000.0; - ics90c64a->freq[0x2] = 0.0; - ics90c64a->freq[0x3] = 80000000.0; - ics90c64a->freq[0x4] = 31500000.0; - ics90c64a->freq[0x5] = 36000000.0; - ics90c64a->freq[0x6] = 75000000.0; - ics90c64a->freq[0x7] = 50000000.0; - ics90c64a->freq[0x8] = 40000000.0; - ics90c64a->freq[0x9] = 50000000.0; - ics90c64a->freq[0xa] = 32000000.0; - ics90c64a->freq[0xb] = 44900000.0; - ics90c64a->freq[0xc] = 25175000.0; - ics90c64a->freq[0xd] = 28322000.0; - ics90c64a->freq[0xe] = 65000000.0; - ics90c64a->freq[0xf] = 36000000.0; - - ics90c64a->freq[0x10] = 33000000.0; - ics90c64a->freq[0x11] = 49218000.0; - ics90c64a->freq[0x12] = 60000000.0; - ics90c64a->freq[0x13] = 30500000.0; - ics90c64a->freq[0x14] = 41612000.0; - ics90c64a->freq[0x15] = 37500000.0; - ics90c64a->freq[0x16] = 36000000.0; - ics90c64a->freq[0x17] = 44296000.0; + /* ICS90C64A-903 for PVGA chip series, also per debian svgatext mode textconfig */ + ics90c64a->freq[0] = 25175000.0; + ics90c64a->freq[1] = 28322000.0; + ics90c64a->freq[2] = 65000000.0; + ics90c64a->freq[3] = 36000000.0; + ics90c64a->freq[4] = 40000000.0; + ics90c64a->freq[5] = 50000000.0; + ics90c64a->freq[6] = 32000000.0; + ics90c64a->freq[7] = 45000000.0; + ics90c64a->freq[8] = 31500000.0; + ics90c64a->freq[9] = 35500000.0; + ics90c64a->freq[0x0a] = 74500000.0; + ics90c64a->freq[0x0b] = 72000000.0; + ics90c64a->freq[0x0c] = 30000000.0; + ics90c64a->freq[0x0d] = 77000000.0; + ics90c64a->freq[0x0e] = 86000000.0; + ics90c64a->freq[0x0f] = 80000000.0; + ics90c64a->freq[0x10] = 60000000.0; break; default: diff --git a/src/video/ramdac/vid_ramdac_bt48x.c b/src/video/ramdac/vid_ramdac_bt48x.c index 64bc2b5b7..2133e02a0 100644 --- a/src/video/ramdac/vid_ramdac_bt48x.c +++ b/src/video/ramdac/vid_ramdac_bt48x.c @@ -56,9 +56,9 @@ bt48x_set_bpp(bt48x_ramdac_t *ramdac, svga_t *svga) { if ((!(ramdac->cmd_r2 & 0x20)) || ((ramdac->type >= BT485A) && ((ramdac->cmd_r3 & 0x60) == 0x60))) svga->bpp = 8; - else if ((ramdac->type >= BT485A) && ((ramdac->cmd_r3 & 0x60) == 0x40)) + else if ((ramdac->type >= BT485A) && ((ramdac->cmd_r3 & 0x60) == 0x20)) svga->bpp = 24; - else + else { switch (ramdac->cmd_r1 & 0x60) { case 0x00: svga->bpp = 32; @@ -71,14 +71,18 @@ bt48x_set_bpp(bt48x_ramdac_t *ramdac, svga_t *svga) break; case 0x40: svga->bpp = 8; + svga->gdcreg[5] &= ~0x60; + svga->gdcreg[5] |= 0x40; break; case 0x60: svga->bpp = 4; + svga->gdcreg[5] &= ~0x60; break; default: break; } + } svga_recalctimings(svga); } diff --git a/src/video/vid_ati_mach64.c b/src/video/vid_ati_mach64.c index e464ec7a5..9aa8b687d 100644 --- a/src/video/vid_ati_mach64.c +++ b/src/video/vid_ati_mach64.c @@ -4996,6 +4996,7 @@ mach64ct_init(const device_t *info) mem_mapping_disable(&mach64->bios_rom.mapping); svga->vblank_start = mach64_vblank_start; + svga->adv_flags |= FLAG_PANNING_ATI; return mach64; } diff --git a/src/video/vid_ati_mach8.c b/src/video/vid_ati_mach8.c index e57675bb5..b9092881b 100644 --- a/src/video/vid_ati_mach8.c +++ b/src/video/vid_ati_mach8.c @@ -3114,7 +3114,7 @@ mach_recalctimings(svga_t *svga) svga->ati_4color = 0; } - mach_log("ON=%d, override=%d, gelo=%04x, gehi=%04x, crtlo=%04x, crthi=%04x, vgahdisp=%d.\n", dev->on, svga->override, mach->accel.ge_offset_lo, mach->accel.ge_offset_hi, mach->accel.crt_offset_lo, mach->accel.crt_offset_hi, svga->hdisp); + mach_log("ON=%d, override=%d, gelo=%04x, gehi=%04x, crtlo=%04x, crthi=%04x, vgahdisp=%d, ibmon=%x, ation=%x, graph1=%x.\n", dev->on, svga->override, mach->accel.ge_offset_lo, mach->accel.ge_offset_hi, mach->accel.crt_offset_lo, mach->accel.crt_offset_hi, svga->hdisp, dev->accel.advfunc_cntl & 0x01, mach->accel.clock_sel & 0x01, svga->gdcreg[6] & 0x01); if (dev->on) { dev->memaddr_latch = 0; /*(mach->accel.crt_offset_lo | (mach->accel.crt_offset_hi << 16)) << 2;*/ @@ -4065,6 +4065,10 @@ mach_accel_out_fifo(mach_t *mach, svga_t *svga, ibm8514_t *dev, uint16_t port, u } if (!(dev->accel.advfunc_cntl & 0x01)) dev->on = mach->accel.clock_sel & 0x01; + else { + if (!(mach->regs[0xb0] & 0x20) && !(mach->accel.clock_sel & 0x01)) + dev->on = 0; + } dev->vendor_mode = 1; dev->mode = ATI_MODE; diff --git a/src/video/vid_et4000.c b/src/video/vid_et4000.c index 80f27833a..937623689 100644 --- a/src/video/vid_et4000.c +++ b/src/video/vid_et4000.c @@ -667,8 +667,12 @@ et4000_recalctimings(svga_t *svga) } svga->clock = (cpuclock * (double) (1ULL << 32)) / svga->getclock(clk_sel, svga->clock_gen); - if (clk_sel < 2) + if (!(svga->gdcreg[6] & 1) && !(svga->attrregs[0x10] & 1)) { svga->clock *= 2.0; + } else { + if ((svga->bpp <= 8) || ((svga->gdcreg[5] & 0x60) <= 0x20)) + svga->clock *= 2.0; + } switch (svga->bpp) { case 15: diff --git a/src/video/vid_et4000w32.c b/src/video/vid_et4000w32.c index e7538d6a7..4abb9a767 100644 --- a/src/video/vid_et4000w32.c +++ b/src/video/vid_et4000w32.c @@ -327,9 +327,7 @@ et4000w32p_out(uint16_t addr, uint8_t val, void *priv) } } else if (et4000->rev == ET4000W32I_REVB) { if (((svga->bpp == 15) || (svga->bpp == 16))) { - if (et4000->adjust_cursor_x == 1) - svga->hwcursor.x += 0x100; - else if (et4000->adjust_cursor_x == 2) + if (et4000->adjust_cursor_x == 2) svga->hwcursor.x += 8; } } @@ -454,6 +452,7 @@ et4000w32p_in(uint16_t addr, void *priv) ret &= 0x7f; else ret |= 0x80; + return ret; } @@ -540,28 +539,18 @@ et4000w32p_recalctimings(svga_t *svga) et4000->adjust_cursor_x = 0; svga->clock = (cpuclock * (double) (1ULL << 32)) / svga->getclock(clk_sel, svga->clock_gen); - if (svga->getclock == ics2494_getclock) { - if (clk_sel < 2) - svga->clock *= 2.0; - } + if (svga->seqregs[7] & 0x01) + svga->clock *= 4.0; + else if (svga->seqregs[7] & 0x40) + svga->clock *= 2.0; + if ((svga->getclock != ics2494_getclock) && + (svga->getclock != icd2061_getclock)) { + if (clk_sel <= 1) + svga->clock /= 2.0; + } if ((svga->gdcreg[6] & 1) || (svga->attrregs[0x10] & 1)) { et4000w32_log("Graphics Mode clk_sel=%d, cr35 bit7=%02x, seq7=%02x, clksel=%d, htotal=%03x.\n", clk_sel, svga->crtc[0x35] & 0x80, svga->seqregs[7] & 0x41, clk_sel, svga->htotal); - if (svga->getclock != ics2494_getclock) { - if (!(svga->crtc[0x35] & 0x80)) { - if (clk_sel >= 2) { - if (svga->seqregs[7] & 0x01) - svga->clock *= 4.0; - else if (svga->seqregs[7] & 0x40) - svga->clock *= 2.0; - } else { - if (svga->getclock == sdac_getclock) { - if ((svga->gdcreg[5] & 0x60) >= 0x40) - svga->clock /= 2.0; - } - } - } - } if ((svga->gdcreg[5] & 0x60) >= 0x40) { if (et4000->rev == ET4000W32) { switch (svga->bpp) { @@ -591,8 +580,8 @@ et4000w32p_recalctimings(svga_t *svga) if (svga->hdisp != 1024) et4000->adjust_cursor = 1; } else { - et4000->adjust_cursor = 1; if (et4000->rev <= ET4000W32I_REVB) { + et4000->adjust_cursor = 1; if (svga->hdisp == 800) et4000->adjust_cursor_x = 1; else if (svga->hdisp == 640) @@ -623,6 +612,7 @@ et4000w32p_recalctimings(svga_t *svga) if (!svga->scrblank && svga->attr_palette_enable) { if ((svga->gdcreg[6] & 1) || (svga->attrregs[0x10] & 1)) { if (svga->gdcreg[5] & 0x40) { + et4000w32_log("bpp=%d, lowres=%x.\n", svga->bpp, svga->lowres); switch (svga->bpp) { case 8: svga->map8 = svga->pallook; diff --git a/src/video/vid_ht216.c b/src/video/vid_ht216.c index 128f85b36..42a337674 100644 --- a/src/video/vid_ht216.c +++ b/src/video/vid_ht216.c @@ -103,6 +103,8 @@ uint8_t ht216_in(uint16_t addr, void *priv); #define BIOS_G2_GC205_PATH "roms/video/video7/BIOS.BIN" #define BIOS_VIDEO7_VGA_1024I_219_PATH "roms/video/video7/Video Seven VGA 1024i - BIOS - v2.19 - 435-0062-05 - U17 - 27C256.BIN" #define BIOS_VIDEO7_VGA_1024I_700_PATH "roms/video/video7/Headland Video7 VGA 1024i v7.0 32x8 (IP) NMC27C256B@DIP28.BIN" +#define BIOS_VIDEO7_VGA_1024I_704_HP_LO_PATH "roms/video/video7/Headland Video 7 VGA 1024i even v7.04 27C256 LO.bin" +#define BIOS_VIDEO7_VGA_1024I_704_HP_HI_PATH "roms/video/video7/Headland Video 7 VGA 1024i odd v7.04 27C256 HI.bin" #define BIOS_RADIUS_SVGA_MULTIVIEW_PATH "roms/video/video7/U18.BIN" #define BIOS_HT216_32_PATH "roms/video/video7/HT21632.BIN" @@ -187,7 +189,7 @@ ht216_out(uint16_t addr, uint8_t val, void *priv) /*Bit 17 of the display memory address, only active on odd/even modes, has no effect on graphics modes.*/ ht216->clk_sel = (ht216->clk_sel & ~0x03) | ((val & 0x0c) >> 2); ht216->misc = val; - ht216_log("HT216 misc val = %02x, mode = 0, chain4 = %x\n", val, svga->chain4); + ht216_log("HT216 misc val=%02x, mode=0, chain4=%x\n", val, svga->chain4); ht216_recalc_bank_regs(ht216, 0); ht216_remap(ht216); svga_recalctimings(svga); @@ -306,7 +308,9 @@ ht216_out(uint16_t addr, uint8_t val, void *priv) } ht216->clk_sel = (val >> 2) & 0x07; } - svga->miscout = (svga->miscout & ~0x0c) | ((ht216->clk_sel & 0x03) << 2); + if (ht216->id >= 0x7152) + svga->miscout = (svga->miscout & ~0x0c) | ((ht216->clk_sel & 0x03) << 2); + svga->fullchange = changeframecount; svga_recalctimings(svga); break; @@ -485,7 +489,7 @@ ht216_out(uint16_t addr, uint8_t val, void *priv) io_removehandler(0x03c0, 0x0020, ht216_in, NULL, NULL, ht216_out, NULL, NULL, ht216); mem_mapping_disable(&svga->mapping); mem_mapping_disable(&ht216->linear_mapping); - if (val & 8) { + if (val & 0x08) { io_sethandler(0x03c0, 0x0020, ht216_in, NULL, NULL, ht216_out, NULL, NULL, ht216); mem_mapping_enable(&svga->mapping); ht216_remap(ht216); @@ -565,6 +569,12 @@ ht216_in(uint16_t addr, void *priv) ht216->bg_plane_sel = 0; break; + case 0xff: + ret = ht216->ht_regs[0xff]; + if (is286 && (ht216->id != 0x7861)) + ret |= 0x80; + break; + default: break; } @@ -589,11 +599,15 @@ ht216_in(uint16_t addr, void *priv) return ht216->reg_3cb; break; + case 0x3cc: + return ht216->misc; + case 0x3D4: return svga->crtcreg; case 0x3D5: if (svga->crtcreg == 0x1f) return svga->crtc[0xc] ^ 0xea; + return svga->crtc[svga->crtcreg]; default: @@ -653,6 +667,8 @@ ht216_recalctimings(svga_t *svga) ibm8514_t *dev = (ibm8514_t *) svga->dev8514; mach_t *mach = (mach_t *) svga->ext8514; int high_res_256 = 0; + int clock0_override = 0; + int clock_sel; if (ht216->id == 0x7861) { if (ht216->ht_regs[0xe0] & 0x20) { @@ -663,9 +679,55 @@ ht216_recalctimings(svga_t *svga) } } - svga->clock = (cpuclock * (double) (1ULL << 32)) / svga->getclock(ht216->clk_sel, svga->clock_gen); - ht216_log("ClkSel V7=%02x, regf8=%02x, rega4=%02x, miscout=%x, vidclock=%02x.\n", ht216->clk_sel, ht216->ht_regs[0xf8], ht216->ht_regs[0xa4], (svga->miscout >> 2) & 0x03, svga->vidclock); + if (ht216->id <= 0x7140) { + clock_sel = (ht216->ht_regs[0xa4] >> 2) & 0x07; + if (ht216->ht_regs[0xf8] & 0x01) { + if (!(ht216->ht_regs[0xf8] & 0x10) && (((ht216->misc >> 2) & 0x03) == 0x03)) + clock0_override = 1; + else if (!(ht216->ht_regs[0xf8] & 0x08) && (((ht216->misc >> 2) & 0x03) == 0x02)) + clock0_override = 2; + } + if (!clock0_override) { + if (ht216->ht_regs[0xf8] & 0x02) { + if (ht216->ht_regs[0xf8] & 0x04) + clock_sel = (ht216->ht_regs[0xf8] >> 5) & 0x07; + } + switch (clock_sel) { + case 1: + if (!(ht216->ht_regs[0xf8] & 0x01)) + svga->clock = (cpuclock * (double) (1ULL << 32)) / 48540000.0; + break; + case 2: + svga->clock = (cpuclock * (double) (1ULL << 32)) / 38000000.0; + break; + case 3: + svga->clock = (cpuclock * (double) (1ULL << 32)) / 32500000.0; + break; + case 4: + svga->clock = (cpuclock * (double) (1ULL << 32)) / 50350000.0; + break; + case 5: + svga->clock = (cpuclock * (double) (1ULL << 32)) / 65000000.0; + break; + case 6: + svga->clock = (cpuclock * (double) (1ULL << 32)) / 38000000.0; + break; + case 7: + svga->clock = (cpuclock * (double) (1ULL << 32)) / 40000000.0; + break; + default: + break; + } + } else { + if (clock0_override == 2) + svga->clock = (cpuclock * (double) (1ULL << 32)) / 38000000.0; + } + pclog("HT208 Select=%d, clock0override=%d, CRTC17=%02x, MISC=%02x, A4=%02x, FC=%02x, F8=%02x, FF=%02x, reset=%02x.\n", clock_sel, clock0_override, svga->crtc[0x17], ht216->misc & 0x0c, ht216->ht_regs[0xa4], ht216->ht_regs[0xfc], ht216->ht_regs[0xf8], ht216->ht_regs[0xff], svga->seqregs[0] & 0x03); + } else { + svga->clock = (cpuclock * (double) (1ULL << 32)) / svga->getclock(ht216->clk_sel, svga->clock_gen); + ht216_log("ClkSel V7=%02x, regf8=%02x, rega4=%02x, miscout=%x, vidclock=%02x.\n", ht216->clk_sel, ht216->ht_regs[0xf8], ht216->ht_regs[0xa4], (svga->miscout >> 2) & 0x03, svga->vidclock); + } svga->memaddr_latch |= ((ht216->ht_regs[0xf6] & 0x30) << 12); if (ht216->ht_regs[0xf6] & 0x80) @@ -713,7 +775,7 @@ ht216_recalctimings(svga_t *svga) svga->hdisp >>= 1; svga->dots_per_clock >>= 1; ht216->adjust_cursor = 1; - svga->render = svga_render_8bpp_highres; + svga->render = svga_render_8bpp_highres; } else { ht216_log("8bpp low, packed = %02x, chain4 = %02x\n", svga->packed_chain4, svga->chain4); svga->render = svga_render_8bpp_lowres; @@ -723,6 +785,7 @@ ht216_recalctimings(svga_t *svga) svga->hdisp = svga->crtc[1] - ((svga->crtc[5] & 0x60) >> 5); if (!(svga->crtc[1] & 1)) svga->hdisp--; + svga->hdisp++; svga->hdisp *= svga->dots_per_clock; svga->rowoffset <<= 1; @@ -737,6 +800,7 @@ ht216_recalctimings(svga_t *svga) svga->dots_per_clock >>= 1; if ((svga->crtc[0x17] & 0x60) == 0x20) /*Would result in a garbled screen with trailing cursor glitches*/ svga->crtc[0x17] |= 0x40; + svga->render = svga_render_15bpp_highres; } } @@ -1520,6 +1584,7 @@ ht216_init(const device_t *info, uint32_t mem_size, int has_rom) svga_t *svga; const char *bios_ver = NULL; const char *fn = NULL; + const char *fn2 = NULL; memset(ht216, 0, sizeof(ht216_t)); svga = &ht216->svga; @@ -1543,12 +1608,18 @@ ht216_init(const device_t *info, uint32_t mem_size, int has_rom) switch (has_rom) { case 1: - rom_init(&ht216->bios_rom, BIOS_G2_GC205_PATH, 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL); + fn = BIOS_G2_GC205_PATH; + rom_init(&ht216->bios_rom, fn, 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL); break; case 2: bios_ver = (char *) device_get_config_bios("bios_ver"); fn = (char *) device_get_bios_file(info, bios_ver, 0); - rom_init(&ht216->bios_rom, fn, 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL); + if (!strcmp(bios_ver, "v7_04_hp")) { + fn2 = (char *) device_get_bios_file(info, bios_ver, 1); + rom_init_interleaved(&ht216->bios_rom, fn, fn2, + 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL); + } else + rom_init(&ht216->bios_rom, fn, 0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL); break; case 3: ht216->monitor_type = device_get_config_int("monitor_type"); @@ -1606,7 +1677,7 @@ ht216_init(const device_t *info, uint32_t mem_size, int has_rom) svga->ramdac = device_add(&sc11484_nors2_ramdac_device); svga->clock_gen = device_add(&ics1494m_540_radius_ht209_device); svga->getclock = ics1494_getclock; - } else { + } else if (ht216->id == 0x7861) { svga->clock_gen = device_add(&icd2047_20_device); svga->getclock = icd2047_getclock; } @@ -1765,6 +1836,15 @@ static const device_config_t v7_vga_1024i_config[] = { .size = 32768, .files = { BIOS_VIDEO7_VGA_1024I_700_PATH, "" } }, + { + .name = "Version 7.04 (HP)", + .internal_name = "v7_04_hp", + .bios_type = BIOS_NORMAL, + .files_no = 2, + .local = 0, + .size = 32768, + .files = { BIOS_VIDEO7_VGA_1024I_704_HP_LO_PATH, BIOS_VIDEO7_VGA_1024I_704_HP_HI_PATH, "" } + }, { .files_no = 0 } } }, diff --git a/src/video/vid_paradise.c b/src/video/vid_paradise.c index 48796fcc7..4d8442d7a 100644 --- a/src/video/vid_paradise.c +++ b/src/video/vid_paradise.c @@ -487,6 +487,7 @@ void paradise_recalctimings(svga_t *svga) { paradise_t *paradise = (paradise_t *) svga->priv; + int clk_sel = 0; svga->lowres = !(svga->gdcreg[0x0e] & 0x01); @@ -526,6 +527,11 @@ paradise_recalctimings(svga_t *svga) break; } } else { + clk_sel = ((svga->miscout >> 2) & 0x03); + if (!(svga->gdcreg[0x0c] & 0x02)) + clk_sel |= 0x04; + + svga->clock = (cpuclock * (double) (1ULL << 32)) / svga->getclock(clk_sel, svga->clock_gen); if ((svga->gdcreg[6] & 1) || (svga->attrregs[0x10] & 1)) { if ((svga->bpp >= 8) && !svga->lowres) { if (svga->bpp == 16) { @@ -777,6 +783,8 @@ paradise_init(const device_t *info, uint32_t memory) paradise->vram_mask = (memory << 10) - 1; svga->decode_mask = (memory << 10) - 1; svga->ramdac = device_add(&sc11487_ramdac_device); /*Actually a Winbond W82c487-80, probably a clone.*/ + svga->clock_gen = device_add(&ics90c64a_903_device); + svga->getclock = ics90c64a_vclk_getclock; break; default: diff --git a/src/video/vid_s3.c b/src/video/vid_s3.c index 1ffed47cd..cc3841750 100644 --- a/src/video/vid_s3.c +++ b/src/video/vid_s3.c @@ -4702,8 +4702,8 @@ s3_recalctimings(svga_t *svga) svga->read_bank = 0; } /*In non-enhanced/IBM VGA modes, reset the misc index registers.*/ - s3->accel.multifunc[0xd] = 0xd000; - s3->accel.multifunc[0xe] = 0xe000; + s3->accel.multifunc[0xd] = 0x000; + s3->accel.multifunc[0xe] = 0x000; } } @@ -5306,6 +5306,7 @@ s3_accel_in(uint16_t port, void *priv) case 0x9949: case 0x9ae9: temp = 0; + s3_log("FIFO=%x, cmd=%d, sy=%d.\n", s3_enable_fifo(s3), s3->accel.cmd >> 13, s3->accel.sy); if (s3_enable_fifo(s3)) { if (!s3->blitter_busy) wake_fifo_thread(s3); @@ -5332,17 +5333,26 @@ s3_accel_in(uint16_t port, void *priv) else { switch (s3->accel.cmd >> 13) { /*Some drivers may not set FIFO on but may still turn on FIFO empty bits!*/ case 0: - if (!s3->accel.ssv_len) + if (s3->accel.cmd & 0x100) { + if (!s3->accel.ssv_len) + temp |= 0x04; + } else temp |= 0x04; break; case 1: - if (!s3->accel.sy) + if (s3->accel.cmd & 0x100) { + if (!s3->accel.sy) + temp |= 0x04; + } else temp |= 0x04; break; case 2: case 6: case 7: - if (s3->accel.sy < 0) + if (s3->accel.cmd & 0x100) { + if (s3->accel.sy < 0) + temp |= 0x04; + } else temp |= 0x04; break; diff --git a/src/video/vid_svga.c b/src/video/vid_svga.c index af15fe178..43158adbb 100644 --- a/src/video/vid_svga.c +++ b/src/video/vid_svga.c @@ -1672,19 +1672,10 @@ svga_init(const device_t *info, svga_t *svga, void *priv, int memsize, void (*hwcursor_draw)(struct svga_t *svga, int displine), void (*overlay_draw)(struct svga_t *svga, int displine)) { - int e; - svga->priv = priv; svga->monitor_index = monitor_index_global; svga->monitor = &monitors[svga->monitor_index]; - for (int c = 0; c < 256; c++) { - e = c; - for (int d = 0; d < 8; d++) { - svga_rotate[d][c] = e; - e = (e >> 1) | ((e & 1) ? 0x80 : 0); - } - } svga->readmode = 0; svga->attrregs[0x11] = 0; From dd5d0ecea3781be1f3b7797b291ef1cbb6596d73 Mon Sep 17 00:00:00 2001 From: nelsonhef Date: Wed, 26 Nov 2025 20:20:38 -0300 Subject: [PATCH 37/39] Expands truncated translation --- src/qt/languages/pt-BR.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index d8317db29..d8fddc787 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -766,7 +766,7 @@ msgid "Floppy & CD-ROM drives" msgstr "Disquete & CD-ROM" msgid "Other removable devices" -msgstr "Dispos. removíveis" +msgstr "Outros dispositivos removíveis" msgid "Other peripherals" msgstr "Outros periféricos" From 4e65709636efecfbfe059fa47abbdb885cd3e226 Mon Sep 17 00:00:00 2001 From: TC1995 Date: Thu, 27 Nov 2025 03:19:22 +0100 Subject: [PATCH 38/39] MKE CD-ROM audio and data fixes. 1. On unknown commands just return a fine data push, fixes the OS/2 built-in MKE cdrom driver being unrecognized. 2. Okay, but I don't know if it's right, but don't play audio on the seek command, fixes actual audio stop when prompted to, (Audio still works fine if you actually want to play from a CD player). --- src/cdrom/cdrom_mke.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/cdrom/cdrom_mke.c b/src/cdrom/cdrom_mke.c index 9632c3140..1b0471f01 100644 --- a/src/cdrom/cdrom_mke.c +++ b/src/cdrom/cdrom_mke.c @@ -531,7 +531,6 @@ mke_command(mke_t *mke, uint8_t value) uint16_t i; /* This is wasteful handling of buffers for compatibility, but will optimize later. */ uint8_t x[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - int old_cd_status; if (mke->command_buffer_pending) { mke->command_buffer[6 - mke->command_buffer_pending + 1] = value; @@ -769,7 +768,6 @@ mke_command(mke_t *mke, uint8_t value) } break; case CMD1_SEEK: - old_cd_status = mke->cdrom_dev->cd_status; fifo8_reset(&mke->info_fifo); CHECK_READY_READ(); /* TODO: DOES THIS IMPACT CURRENT PLAY LENGTH? */ @@ -782,10 +780,6 @@ mke_command(mke_t *mke, uint8_t value) /* Note for self: Panasonic/MKE drives send seek commands in MSF format. */ cdrom_seek(mke->cdrom_dev, MSFtoLBA(mke->command_buffer[1], mke->command_buffer[2], mke->command_buffer[3]) - 150, 0); - if ((old_cd_status == CD_STATUS_PLAYING) || (old_cd_status == CD_STATUS_PAUSED)) { - cdrom_audio_play(mke->cdrom_dev, mke->cdrom_dev->seek_pos, -1, 0); - cdrom_audio_pause_resume(mke->cdrom_dev, old_cd_status == CD_STATUS_PLAYING); - } fifo8_push(&mke->info_fifo, mke_cdrom_status(mke->cdrom_dev, mke)); break; case CMD1_SESSINFO: @@ -832,6 +826,9 @@ mke_command(mke_t *mke, uint8_t value) break; default: mke_log("MKE: Unknown Commnad [%02x]\n", mke->command_buffer[0]); + fifo8_reset(&mke->info_fifo); + fifo8_push_all(&mke->info_fifo, x, 6); + fifo8_push(&mke->info_fifo, mke_cdrom_status(mke->cdrom_dev, mke)); break; } } else if (!mke->command_buffer_pending) { From e332a30563eaf33f7e2f29c91c48b0b8f6a5df6f Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 27 Nov 2025 04:26:28 +0100 Subject: [PATCH 39/39] CD-ROM: Seeking now explicitly handles cached sectors. --- src/cdrom/cdrom.c | 4 +++- src/scsi/scsi_cdrom.c | 4 +--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/cdrom/cdrom.c b/src/cdrom/cdrom.c index 3b7eaeb3f..52ea97972 100644 --- a/src/cdrom/cdrom.c +++ b/src/cdrom/cdrom.c @@ -1469,8 +1469,10 @@ cdrom_seek(cdrom_t *dev, const uint32_t pos, const uint8_t vendor_type) break; } - dev->seek_pos = real_pos; cdrom_stop(dev); + + dev->seek_pos = real_pos; + dev->cached_sector = -1; } int diff --git a/src/scsi/scsi_cdrom.c b/src/scsi/scsi_cdrom.c index f5b81e369..ca5d237b9 100644 --- a/src/scsi/scsi_cdrom.c +++ b/src/scsi/scsi_cdrom.c @@ -2494,7 +2494,6 @@ scsi_cdrom_command(scsi_common_t *sc, const uint8_t *cdb) dev->drv->seek_diff = dev->drv->seek_pos; cdrom_seek(dev->drv, 0, 0); dev->sector_pos = dev->drv->seek_pos; - dev->drv->cached_sector = -1; scsi_cdrom_set_phase(dev, SCSI_PHASE_STATUS); break; @@ -3557,8 +3556,7 @@ atapi_out: else cdrom_seek(dev->drv, pos, 0); - dev->sector_pos = dev->drv->seek_pos; - dev->drv->cached_sector = -1; + dev->sector_pos = dev->drv->seek_pos; scsi_cdrom_command_complete(dev); break;