i18n: Add case-insenstitive icompare() function, document compare()

This commit is contained in:
Ignacio R. Morelle 2016-10-03 03:54:32 -03:00
parent c89b7596ec
commit 0cd131b537
2 changed files with 11 additions and 1 deletions

View File

@ -76,8 +76,13 @@ namespace translation
void set_language(const std::string& language, const std::vector<std::string>* alternates);
void init();
/** Case-sensitive lexicographical comparison. */
int compare(const std::string& s1,const std::string& s2);
/** Case-insensitive lexicographical comparison. */
int icompare(const std::string& s1,const std::string& s2);
std::string strftime(const std::string& format, const std::tm* time);
}

View File

@ -267,14 +267,19 @@ void set_language(const std::string& language, const std::vector<std::string>* /
LOG_G << "setting language to '" << language << "' \n";
get_manager().set_language(language);
}
int compare(const std::string& s1, const std::string& s2)
{
return std::use_facet<std::collate<char> >(get_manager().get_locale()).compare(s1.c_str(), s1.c_str() + s1.size(), s2.c_str(), s2.c_str() + s2.size());
}
int icompare(const std::string& s1, const std::string& s2)
{
return std::use_facet<bl::collator<char> >(get_manager().get_locale()).compare(bl::collator_base::secondary, s1, s2);
}
void init()
{
}
std::string strftime(const std::string& format, const std::tm* time)