diff --git a/data/editor.config b/data/editor.config
index 5158ddeb3e..daafe22cf7 100644
--- a/data/editor.config
+++ b/data/editor.config
@@ -119,7 +119,7 @@
-
+
diff --git a/indexer/editable_map_object.cpp b/indexer/editable_map_object.cpp
index 0ee084cff2..711e7f6950 100644
--- a/indexer/editable_map_object.cpp
+++ b/indexer/editable_map_object.cpp
@@ -308,8 +308,23 @@ void EditableMapObject::ForEachMetadataItem(
{
for (auto const type : m_metadata.GetKeys())
{
- auto const attributeName = ToString(type);
- fn(attributeName, m_metadata.Get(type));
+ // Multilang description may produce several tags with different values.
+ if (type == feature::Metadata::FMD_DESCRIPTION)
+ {
+ auto const multilangDescription = StringUtf8Multilang::FromBuffer(m_metadata.Get(type));
+ multilangDescription.ForEach([&fn](int8_t code, string const & value)
+ {
+ if (code == StringUtf8Multilang::kDefaultCode)
+ fn("description", value);
+ else
+ fn(string("description:") + StringUtf8Multilang::GetLangByCode(code), value);
+ });
+ }
+ else
+ {
+ string const attributeName = ToString(type);
+ fn(attributeName, m_metadata.Get(type));
+ }
}
}
diff --git a/indexer/feature_meta.cpp b/indexer/feature_meta.cpp
index 5b98a31ed4..3937b47521 100644
--- a/indexer/feature_meta.cpp
+++ b/indexer/feature_meta.cpp
@@ -186,7 +186,8 @@ string ToString(Metadata::EType type)
case Metadata::FMD_EMAIL: return "email";
case Metadata::FMD_POSTCODE: return "addr:postcode";
case Metadata::FMD_WIKIPEDIA: return "wikipedia";
- case Metadata::FMD_DESCRIPTION: return "description";
+ // Description can store many strings in different languages and is processed separately.
+ //case Metadata::FMD_DESCRIPTION: return "description:en";
case Metadata::FMD_FLATS: return "addr:flats";
case Metadata::FMD_HEIGHT: return "height";
case Metadata::FMD_MIN_HEIGHT: return "min_height";