Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaria Volvenkova <d.volvenkova@corp.mail.ru>2017-03-24 14:22:54 +0300
committerDaria Volvenkova <d.volvenkova@corp.mail.ru>2017-03-30 14:53:25 +0300
commitbfdc4ee246347545456116a7ef9e39c160170830 (patch)
treeb92094b7f3a4ccd71658034275dcc79fd8e1a9a1 /indexer/feature_utils.cpp
parent955d43ea1e4597e138e8ec213688fab4594f6d7f (diff)
Using a pool of transliterators.
Diffstat (limited to 'indexer/feature_utils.cpp')
-rw-r--r--indexer/feature_utils.cpp38
1 files changed, 3 insertions, 35 deletions
diff --git a/indexer/feature_utils.cpp b/indexer/feature_utils.cpp
index f9cf16d51e..ef36b6fa47 100644
--- a/indexer/feature_utils.cpp
+++ b/indexer/feature_utils.cpp
@@ -8,14 +8,10 @@
#include "geometry/point2d.hpp"
#include "coding/multilang_utf8_string.hpp"
+#include "coding/transliteration.hpp"
#include "base/base.hpp"
-#include "3party/icu/i18n/unicode/translit.h"
-#include "3party/icu/i18n/unicode/utrans.h"
-#include "3party/icu/common/unicode/utypes.h"
-#include "3party/icu/common/unicode/unistr.h"
-
#include "std/vector.hpp"
namespace
@@ -44,13 +40,13 @@ void GetTransliteratedName(feature::RegionData const & regionData, StringUtf8Mul
{
if (src.GetString(code, srcName))
{
- out = Transliterate(srcName, StringUtf8Multilang::GetLangEnNameByCode(code));
+ out = Transliteration::GetInstance().Transliterate(srcName, code);
if (!out.empty())
return;
}
}
if (!mwmLangCodes.empty() && src.GetString(StringUtf8Multilang::kDefaultCode, srcName))
- out = Transliterate(srcName, StringUtf8Multilang::GetLangEnNameByCode(mwmLangCodes[0]));
+ out = Transliteration::GetInstance().Transliterate(srcName, mwmLangCodes[0]);
}
void GetBestName(StringUtf8Multilang const & src, vector<int8_t> const & priorityList, string & out)
@@ -87,34 +83,6 @@ void GetBestName(StringUtf8Multilang const & src, vector<int8_t> const & priorit
}
} // namespace
-void initICU(std::string const & icuDataDir)
-{
- u_setDataDirectory(icuDataDir.c_str());
-}
-
-std::string Transliterate(std::string const & str, std::string const & lang)
-{
- UnicodeString ustr(str.c_str());
- UErrorCode status = U_ZERO_ERROR;
-
- const std::string id = lang + "-Latin/BGN";
- std::unique_ptr<Transliterator> latinTransliterator(Transliterator::createInstance(id.c_str(), UTRANS_FORWARD, status));
- if (latinTransliterator == nullptr)
- {
- LOG(LWARNING, ("Cannot create transliterator", id));
- return "";
- }
-
- latinTransliterator->transliterate(ustr);
-
- std::string resultStr;
- ustr.toUTF8String(resultStr);
-
- LOG(LDEBUG, ("Transliterated", str, "->", resultStr, "id =", id));
-
- return resultStr;
-}
-
namespace feature
{