diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp
index 151180aae71dcbb232e202358d5ebcad6631b2e5..081a3721b1c44481cb4396e00bf6c83f0f2e89ac 100644
--- a/indra/newview/llworldmapview.cpp
+++ b/indra/newview/llworldmapview.cpp
@@ -1072,18 +1072,10 @@ BOOL LLWorldMapView::handleToolTip( S32 x, S32 y, MASK mask )
 			// zoomed out, so don't display anything about the count. JC
 			if (agent_count > 0)
 			{
-				// Merov: i18n horror!!! Even using gettext(), concatenating strings is not localizable. 
-				// The singular/plural switch form here under might make no sense in some languages. Don't do that.
-				message += llformat("\n%d ", agent_count);
-
-				if (agent_count == 1)
-				{
-					message += "person";
-				}
-				else
-				{
-					message += "people";
-				}
+				LLStringUtil::format_map_t string_args;
+				string_args["[NUMBER]"] = llformat("%d", agent_count);
+				message += '\n';
+				message += getString((agent_count == 1 ? "world_map_person" : "world_map_people") , string_args);
 			}
 		}
 		tooltip_msg.assign( message );
diff --git a/indra/newview/skins/default/xui/en/panel_world_map.xml b/indra/newview/skins/default/xui/en/panel_world_map.xml
index 9f08d3a817f5a6f5926592a7e03ef44fa844fed1..16860a6117378d2e16945c57071c7397a2e7210e 100644
--- a/indra/newview/skins/default/xui/en/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/en/panel_world_map.xml
@@ -45,6 +45,14 @@
      name="world_map_northwest">
         NW
     </panel.string>
+    <panel.string
+     name="world_map_person">
+        1 person
+    </panel.string>
+    <panel.string
+     name="world_map_people">
+        [NUMBER] people
+    </panel.string>
     <text
      type="string"
      length="1"