diff --git a/src/i18n/I18nEngine.cpp b/src/i18n/I18nEngine.cpp index 03e0f1a..fe753ee 100644 --- a/src/i18n/I18nEngine.cpp +++ b/src/i18n/I18nEngine.cpp @@ -131,7 +131,7 @@ std::string CI18nEngine::localizeEntry(const std::string& locale, uint64_t key, return std::string{rawStr}; // build the new string. First, sort our entries - std::ranges::sort(rangesFound, [](const auto& a, const auto& b) { return a.begin - b.begin; }); + std::ranges::sort(rangesFound, [](const auto& a, const auto& b) { return a.begin < b.begin; }); // calc the size size_t stringLen = 0; diff --git a/tests/i18n/Engine.cpp b/tests/i18n/Engine.cpp index 3fbfb59..f3e7d5b 100644 --- a/tests/i18n/Engine.cpp +++ b/tests/i18n/Engine.cpp @@ -75,4 +75,6 @@ TEST(I18n, Engine) { EXPECT_EQ(engine.localizeEntry("ts", 42069 /* invalid key */, {{"count", "1"}}), ""); EXPECT_EQ(engine.localizeEntry("ts_TST", TXT_KEY_FALLBACK, {{"var1", "hi"}, {"var2", "!"}}), "Hello hi world !"); -} \ No newline at end of file + // Order shouldn't matter + EXPECT_EQ(engine.localizeEntry("ts_TST", TXT_KEY_FALLBACK, {{"var2", "!"}, {"var1", "hi"}}), "Hello hi world !"); +}