Host: Re-introduce plural translation support

This commit is contained in:
Stenzek
2024-05-13 01:46:45 +10:00
parent a2abcc9bb3
commit f3aec0c965
13 changed files with 230 additions and 150 deletions

View File

@ -1018,9 +1018,13 @@ void Achievements::DisplayAchievementSummary()
if (s_game_summary.num_core_achievements > 0)
{
summary = fmt::format(
TRANSLATE_FS("Achievements", "You have unlocked {0} of {1} achievements, and earned {2} of {3} points."),
s_game_summary.num_unlocked_achievements, s_game_summary.num_core_achievements, s_game_summary.points_unlocked,
s_game_summary.points_core);
TRANSLATE_FS("Achievements", "{0}, {1}."),
SmallString::from_format(TRANSLATE_PLURAL_FS("Achievements", "You have unlocked {} of %n achievements",
"Achievement popup", s_game_summary.num_core_achievements),
s_game_summary.num_unlocked_achievements),
SmallString::from_format(TRANSLATE_PLURAL_FS("Achievements", "and earned {} of %n points", "Achievement popup",
s_game_summary.points_core),
s_game_summary.points_unlocked));
}
else
{
@ -1091,8 +1095,11 @@ void Achievements::HandleGameCompleteEvent(const rc_client_event_t* event)
if (g_settings.achievements_notifications && FullscreenUI::Initialize())
{
std::string title = fmt::format(TRANSLATE_FS("Achievements", "Mastered {}"), s_game_title);
std::string message = fmt::format(TRANSLATE_FS("Achievements", "{} achievements, {} points"),
s_game_summary.num_unlocked_achievements, s_game_summary.points_unlocked);
std::string message = fmt::format(
TRANSLATE_FS("Achievements", "{0}, {1}"),
TRANSLATE_PLURAL_STR("Achievements", "%n achievements", "Mastery popup",
s_game_summary.num_unlocked_achievements),
TRANSLATE_PLURAL_STR("Achievements", "%n points", "Mastery popup", s_game_summary.num_unlocked_achievements));
ImGuiFullscreen::AddNotification("achievement_mastery", GAME_COMPLETE_NOTIFICATION_TIME, std::move(title),
std::move(message), s_game_icon);