vecSelConnDlg.push_back(std::make_unique<UiArtText>(_("Multi Player Game"),rect1,UiFlags::AlignCenter|UiFlags::FontSize30|UiFlags::ColorUiSilver,3));
vecSelConnDlg.push_back(std::make_unique<UiArtText>(_("Multi Player Game").c_str(),rect1,UiFlags::AlignCenter|UiFlags::FontSize30|UiFlags::ColorUiSilver,3));
returnfmt::format(_("The host is running a different game mode ({:s}) than you."),gameMode);
}else{
returnfmt::format(_(/* TRANSLATORS: Error message when somebody tries to join a game running another version. */"Your version {:s} does not match the host {:d}.{:d}.{:d}."),PROJECT_VERSION,data.versionMajor,data.versionMinor,data.versionPatch).c_str();
returnfmt::format(_(/* TRANSLATORS: Error message when somebody tries to join a game running another version. */"Your version {:s} does not match the host {:d}.{:d}.{:d}."),PROJECT_VERSION,data.versionMajor,data.versionMinor,data.versionPatch);
strcpy(selgame_Description,_("Create a new game with a difficulty setting of your choice."));
CopyUtf8(selgame_Description,_("Create a new game with a difficulty setting of your choice."),sizeof(selgame_Description));
break;
case1:
strcpy(selgame_Description,_("Create a new public game that anyone can join with a difficulty setting of your choice."));
CopyUtf8(selgame_Description,_("Create a new public game that anyone can join with a difficulty setting of your choice."),sizeof(selgame_Description));
break;
case2:
strcpy(selgame_Description,_("Enter an IP or a hostname and join a game already in progress at that address."));
CopyUtf8(selgame_Description,_("Enter an IP or a hostname and join a game already in progress at that address."),sizeof(selgame_Description));
CopyUtf8(selgame_Description,_("Normal Difficulty\nThis is where a starting character should begin the quest to defeat Diablo."),sizeof(selgame_Description));
break;
caseDIFF_NIGHTMARE:
strcpy(selgame_Label,_("Nightmare"));
strcpy(selgame_Description,_("Nightmare Difficulty\nThe denizens of the Labyrinth have been bolstered and will prove to be a greater challenge. This is recommended for experienced characters only."));
CopyUtf8(selgame_Description,_("Nightmare Difficulty\nThe denizens of the Labyrinth have been bolstered and will prove to be a greater challenge. This is recommended for experienced characters only."),sizeof(selgame_Description));
break;
caseDIFF_HELL:
strcpy(selgame_Label,_("Hell"));
strcpy(selgame_Description,_("Hell Difficulty\nThe most powerful of the underworld's creatures lurk at the gateway into Hell. Only the most experienced characters should venture in this realm."));
CopyUtf8(selgame_Description,_("Hell Difficulty\nThe most powerful of the underworld's creatures lurk at the gateway into Hell. Only the most experienced characters should venture in this realm."),sizeof(selgame_Description));
vecSelGameDialog.push_back(std::make_unique<UiArtText>(_("Select Game Speed"),rect4,UiFlags::AlignCenter|UiFlags::FontSize30|UiFlags::ColorUiSilver,3));
vecSelGameDialog.push_back(std::make_unique<UiArtText>(_("Select Game Speed").c_str(),rect4,UiFlags::AlignCenter|UiFlags::FontSize30|UiFlags::ColorUiSilver,3));
CopyUtf8(selgame_Description,_("Normal Speed\nThis is where a starting character should begin the quest to defeat Diablo."),sizeof(selgame_Description));
break;
case30:
strcpy(selgame_Label,_("Fast"));
strcpy(selgame_Description,_("Fast Speed\nThe denizens of the Labyrinth have been hastened and will prove to be a greater challenge. This is recommended for experienced characters only."));
CopyUtf8(selgame_Description,_("Fast Speed\nThe denizens of the Labyrinth have been hastened and will prove to be a greater challenge. This is recommended for experienced characters only."),sizeof(selgame_Description));
break;
case40:
strcpy(selgame_Label,_("Faster"));
strcpy(selgame_Description,_("Faster Speed\nMost monsters of the dungeon will seek you out quicker than ever before. Only an experienced champion should try their luck at this speed."));
CopyUtf8(selgame_Description,_("Faster Speed\nMost monsters of the dungeon will seek you out quicker than ever before. Only an experienced champion should try their luck at this speed."),sizeof(selgame_Description));
break;
case50:
strcpy(selgame_Label,_("Fastest"));
strcpy(selgame_Description,_("Fastest Speed\nThe minions of the underworld will rush to attack without hesitation. Only a true speed demon should enter at this pace."));
CopyUtf8(selgame_Description,_("Fastest Speed\nThe minions of the underworld will rush to attack without hesitation. Only a true speed demon should enter at this pace."),sizeof(selgame_Description));
UiSelOkDialog(nullptr,_("The Rogue and Sorcerer are only available in the full retail version of Diablo. Visit https://www.gog.com/game/diablo to purchase."),false);
UiSelOkDialog(nullptr,_("The Rogue and Sorcerer are only available in the full retail version of Diablo. Visit https://www.gog.com/game/diablo to purchase.").c_str(),false);
LoadBackgroundArt("ui_art\\selhero.pcx");
SelheroListSelect(selhero_SaveCount);
return;
}
title=selhero_isMultiPlayer?_("New Multi Player Hero"):_("New Single Player Hero");
title=selhero_isMultiPlayer?_("New Multi Player Hero").c_str():_("New Single Player Hero").c_str();
strcpy(text,fmt::format(_(/* TRANSLATORS: Error message that displays relevant information for bug report */"{:s}\n\nThe error occurred at: {:s} line {:d}"),error,logFilePath,logLineNr).c_str());
std::stringtext=fmt::format(_(/* TRANSLATORS: Error message that displays relevant information for bug report */"{:s}\n\nThe error occurred at: {:s} line {:d}"),error,logFilePath,logLineNr);
string_viewnormalFmt=pgettext("spell",/* TRANSLATORS: Constructs item names. Format: {Item} of {Spell}. Example: War Staff of Firewall */"{0} of {1}");
@ -1137,8 +1138,8 @@ void GetStaffPower(Item &item, int lvl, int bs, bool onlygood)
}
if(preidx!=-1){
constchar*magicFmt=pgettext("spell",/* TRANSLATORS: Constructs item names. Format: {Prefix} {Item} of {Spell}. Example: King's War Staff of Firewall */"{0} {1} of {2}");
string_viewmagicFmt=pgettext("spell",/* TRANSLATORS: Constructs item names. Format: {Prefix} {Item} of {Spell}. Example: King's War Staff of Firewall */"{0} {1} of {2}");
constchar*fmt=_(/* TRANSLATORS: Constructs item names. Format: {Prefix} {Item} of {Suffix}. Example: King's Long Sword of the Whale */"{0} {1} of {2}");
string_viewfmt=_(/* TRANSLATORS: Constructs item names. Format: {Prefix} {Item} of {Suffix}. Example: King's Long Sword of the Whale */"{0} {1} of {2}");
if(currlevel>=17&&currlevel<=20)// for hive levels
strcpy(infostr,_("Pod"));// Then a barrel is called a pod
elseif(currlevel>=21&&currlevel<=24)// for crypt levels
strcpy(infostr,_("Urn"));// Then a barrel is called an urn
if(currlevel>=17&&currlevel<=20)// for hive levels
CopyUtf8(infostr,_("Pod"),sizeof(infostr));// Then a barrel is called a pod
elseif(currlevel>=21&&currlevel<=24)// for crypt levels
CopyUtf8(infostr,_("Urn"),sizeof(infostr));// Then a barrel is called an urn
else
strcpy(infostr,_("Barrel"));
CopyUtf8(infostr,_("Barrel"),sizeof(infostr));
break;
caseOBJ_SHRINEL:
caseOBJ_SHRINER:
CopyUtf8(infostr,fmt::format(_(/* TRANSLATORS: {:s} will be a name from the Shrine block above */"{:s} Shrine"),_(ShrineNames[object._oVar1])),sizeof(infostr));
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
AddSText(0,1,fmt::format(_("I have these items for sale: Your gold: {:d}"),Players[MyPlayerId]._pGold).c_str(),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSText(0,1,fmt::format(_("I have these items for sale: Your gold: {:d}"),Players[MyPlayerId]._pGold),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSLine(3);
ScrollSmithBuy(stextsval);
AddItemListBackButton();
@ -419,7 +419,7 @@ bool StartSmithPremiumBuy()
stextsval=0;
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
AddSText(0,1,fmt::format(_("I have these premium items for sale: Your gold: {:d}"),Players[MyPlayerId]._pGold).c_str(),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSText(0,1,fmt::format(_("I have these premium items for sale: Your gold: {:d}"),Players[MyPlayerId]._pGold),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSLine(3);
AddItemListBackButton();
@ -538,7 +538,7 @@ void StartSmithSell()
stextscrl=false;
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
AddSText(0,1,fmt::format(_("You have nothing I want. Your gold: {:d}"),myPlayer._pGold).c_str(),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSText(0,1,fmt::format(_("You have nothing I want. Your gold: {:d}"),myPlayer._pGold),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSLine(3);
AddItemListBackButton(/*selectable=*/true);
return;
@ -549,7 +549,7 @@ void StartSmithSell()
stextsmax=myPlayer._pNumInv;
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
AddSText(0,1,fmt::format(_("Which item is for sale? Your gold: {:d}"),myPlayer._pGold).c_str(),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSText(0,1,fmt::format(_("Which item is for sale? Your gold: {:d}"),myPlayer._pGold),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSLine(3);
ScrollSmithSell(stextsval);
AddItemListBackButton();
@ -620,7 +620,7 @@ void StartSmithRepair()
stextscrl=false;
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
AddSText(0,1,fmt::format(_("You have nothing to repair. Your gold: {:d}"),myPlayer._pGold).c_str(),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSText(0,1,fmt::format(_("You have nothing to repair. Your gold: {:d}"),myPlayer._pGold),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSLine(3);
AddItemListBackButton(/*selectable=*/true);
return;
@ -631,7 +631,7 @@ void StartSmithRepair()
stextsmax=myPlayer._pNumInv;
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
AddSText(0,1,fmt::format(_("Repair which item? Your gold: {:d}"),myPlayer._pGold).c_str(),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSText(0,1,fmt::format(_("Repair which item? Your gold: {:d}"),myPlayer._pGold),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSLine(3);
ScrollSmithSell(stextsval);
@ -719,7 +719,7 @@ void StartWitchBuy()
stextsmax=20;
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
AddSText(0,1,fmt::format(_("I have these items for sale: Your gold: {:d}"),Players[MyPlayerId]._pGold).c_str(),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSText(0,1,fmt::format(_("I have these items for sale: Your gold: {:d}"),Players[MyPlayerId]._pGold),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSLine(3);
ScrollWitchBuy(stextsval);
AddItemListBackButton();
@ -812,7 +812,7 @@ void StartWitchSell()
stextscrl=false;
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
AddSText(0,1,fmt::format(_("You have nothing I want. Your gold: {:d}"),myPlayer._pGold).c_str(),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSText(0,1,fmt::format(_("You have nothing I want. Your gold: {:d}"),myPlayer._pGold),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSLine(3);
AddItemListBackButton(/*selectable=*/true);
return;
@ -823,7 +823,7 @@ void StartWitchSell()
stextsmax=myPlayer._pNumInv;
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
AddSText(0,1,fmt::format(_("Which item is for sale? Your gold: {:d}"),myPlayer._pGold).c_str(),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSText(0,1,fmt::format(_("Which item is for sale? Your gold: {:d}"),myPlayer._pGold),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSLine(3);
ScrollSmithSell(stextsval);
AddItemListBackButton();
@ -885,7 +885,7 @@ void StartWitchRecharge()
stextscrl=false;
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
AddSText(0,1,fmt::format(_("You have nothing to recharge. Your gold: {:d}"),myPlayer._pGold).c_str(),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSText(0,1,fmt::format(_("You have nothing to recharge. Your gold: {:d}"),myPlayer._pGold),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSLine(3);
AddItemListBackButton(/*selectable=*/true);
return;
@ -896,7 +896,7 @@ void StartWitchRecharge()
stextsmax=myPlayer._pNumInv;
/* TRANSLATORS: This text is white space sensitive. Check for correct alignment! */
AddSText(0,1,fmt::format(_("Recharge which item? Your gold: {:d}"),myPlayer._pGold).c_str(),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);
AddSText(0,1,fmt::format(_("Recharge which item? Your gold: {:d}"),myPlayer._pGold),UiFlags::ColorWhitegold|UiFlags::AlignCenter,false);