fix: replace multi-byte UTF-8 in runtime UI strings with ASCII to fix Windows-1252 mojibake

This commit is contained in:
2026-07-26 16:09:13 -04:00
parent c66f44ba1f
commit 7cd1a2588e
4 changed files with 22 additions and 22 deletions
+12 -12
View File
@@ -736,7 +736,7 @@ void drawRegionHeader(LICE_IBitmap* bmp, const RECT& region, const char* title,
const bool thisFull =
poolBtnIsPool ? (g_panel.fullHeight == BankPanelFullHeight::PoolOnly)
: (g_panel.fullHeight == BankPanelFullHeight::BanksOnly);
drawCenteredText(bmp, btn, thisFull ? "\xE2\x87\x85" : "\xE2\x87\x83", // ⇅ / ⇃
drawCenteredText(bmp, btn, thisFull ? "[v]" : "[^]", // collapse / expand
kRgbBtnText, DT_CENTER);
}
@@ -754,7 +754,7 @@ void drawTabStrip(LICE_IBitmap* bmp, const RECT& region) {
const int n = static_cast<int>(tabs.size());
if (n == 0) {
RECT r{strip.x + 8, strip.y, strip.x + strip.width, strip.y + strip.height};
drawCenteredText(bmp, r, "No named banks click + to create one.",
drawCenteredText(bmp, r, "No named banks -- click + to create one.",
RGB(140, 140, 146), DT_LEFT);
return;
}
@@ -772,8 +772,8 @@ void drawTabStrip(LICE_IBitmap* bmp, const RECT& region) {
strip.y + strip.height};
RECT rc{strip.x + strip.width - kTabSpec.chevronWidth, strip.y,
strip.x + strip.width, strip.y + strip.height};
drawCenteredText(bmp, lc, "\xE2\x80\xB9", kRgbTabText, DT_CENTER); //
drawCenteredText(bmp, rc, "\xE2\x80\xBA", kRgbTabText, DT_CENTER); //
drawCenteredText(bmp, lc, "<", kRgbTabText, DT_CENTER);
drawCenteredText(bmp, rc, ">", kRgbTabText, DT_CENTER);
}
const std::string activeId = book() ? book()->activeBankId() : std::string();
@@ -1256,9 +1256,9 @@ void doDeleteBank(const std::string& bankId) {
const std::string msg =
"\"" + name + "\" holds " + std::to_string(members) +
(members == 1 ? " sample" : " samples") +
".\n\nYes delete the bank AND drop its samples (files are kept on disk "
"but no bank references them until prune).\nNo Evacuate them to the "
"pool first, then delete the empty bank (keeps the samples).\nCancel "
".\n\nYes -- delete the bank AND drop its samples (files are kept on disk "
"but no bank references them until prune).\nNo -- Evacuate them to the "
"pool first, then delete the empty bank (keeps the samples).\nCancel -- "
"do nothing.";
// 3 == MB_YESNOCANCEL. 6=Yes, 7=No, 2=Cancel (SDK).
const int r = ShowMessageBox(msg.c_str(),
@@ -1361,7 +1361,7 @@ void removeSamples(const std::vector<std::string>& sampleIds,
(orphanCount == 1 ? " selected sample is" : " selected samples are") +
" in no other bank.\n\nRemoving " +
(orphanCount == 1 ? "it" : "them") +
" drops the index entry only the file stays on disk until you prune "
" drops the index entry only -- the file stays on disk until you prune "
"(it is never deleted by remove).\n\nRemove anyway?";
// 4 == MB_YESNO. 6=Yes (SDK); anything else cancels.
const int r = ShowMessageBox(msg.c_str(),
@@ -1443,11 +1443,11 @@ void showTabMenu(int screenX, int screenY, const std::string& bankId) {
isActive ? "Active (capture target)" : "Activate (make capture target)",
/*grayed=*/isActive);
menuSeparator(menu);
menuAppend(menu, kMenuRename, "Rename\xE2\x80\xA6");
menuAppend(menu, kMenuRename, "Rename...");
menuAppend(menu, kMenuEvacuate, "Evacuate to pool", /*grayed=*/!nonEmpty);
menuAppend(menu, kMenuDelete, "Delete\xE2\x80\xA6");
menuAppend(menu, kMenuDelete, "Delete...");
menuSeparator(menu);
menuAppend(menu, kMenuCreate, "New bank\xE2\x80\xA6");
menuAppend(menu, kMenuCreate, "New bank...");
const int cmd = TrackPopupMenu(menu, TPM_RETURNCMD, screenX, screenY, 0,
g_panel.hwnd, nullptr);
@@ -1498,7 +1498,7 @@ void showSelectionMenu(int screenX, int screenY) {
(" " + dests[i].name).c_str());
menuSeparator(menu);
}
menuAppend(menu, kMenuRemove, ("Remove " + label + "\xE2\x80\xA6").c_str());
menuAppend(menu, kMenuRemove, ("Remove " + label + "...").c_str());
const int cmd = TrackPopupMenu(menu, TPM_RETURNCMD, screenX, screenY, 0,
g_panel.hwnd, nullptr);