增加本地语言与默认的中文简体语言直接转换的API
This commit is contained in:
parent
a4d130c11e
commit
1dfe4dda1c
|
@ -686,9 +686,11 @@ public:
|
|||
notify_.erase(it);
|
||||
}
|
||||
}
|
||||
int get_default_string_id(const char* str)
|
||||
int get_string_id(const char* str, bool def)
|
||||
{
|
||||
for (auto& v : map_default_)
|
||||
std::map<uint32_t, std::string>* lang = def ? &map_default_ : pak_now_;
|
||||
|
||||
for (auto& v : *lang)
|
||||
{
|
||||
if (v.second == str)
|
||||
return v.first;
|
||||
|
@ -696,6 +698,42 @@ public:
|
|||
|
||||
return -1;
|
||||
}
|
||||
const char* transform_language(const char* in, bool to_def, bool* found)
|
||||
{
|
||||
if (cur_cp_ == DEFAULT_CODE_PAGE)
|
||||
{
|
||||
if (found)
|
||||
*found = true;
|
||||
|
||||
return in;
|
||||
}
|
||||
|
||||
int id = get_string_id(in, false);
|
||||
std::map<uint32_t, std::string>* t = to_def ? &map_default_ : pak_now_;
|
||||
|
||||
if (id == -1)
|
||||
{
|
||||
if (found)
|
||||
*found = false;
|
||||
|
||||
return in;
|
||||
}
|
||||
|
||||
if (t->count(id))
|
||||
{
|
||||
if (found)
|
||||
*found = true;
|
||||
|
||||
return (*t)[id].c_str();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (found)
|
||||
*found = false;
|
||||
|
||||
return in;
|
||||
}
|
||||
}
|
||||
};
|
||||
lang_mgr* lang_mgr::inst_ = nullptr;
|
||||
|
||||
|
@ -729,8 +767,17 @@ extern "C"
|
|||
lang_mgr::instance()->register_language_changed_notify(lan_changed, reg, param);
|
||||
}
|
||||
|
||||
int lang_get_string_id(const char* utf8_hz)
|
||||
int lang_get_string_id(const char* str, bool def_lang)
|
||||
{
|
||||
return lang_mgr::instance()->get_default_string_id(utf8_hz);
|
||||
return lang_mgr::instance()->get_string_id(str, def_lang);
|
||||
}
|
||||
|
||||
const char* to_default_language(const char* str, bool* ok)
|
||||
{
|
||||
return lang_mgr::instance()->transform_language(str, true, ok);
|
||||
}
|
||||
const char* from_default_language(const char* str, bool* ok)
|
||||
{
|
||||
return lang_mgr::instance()->transform_language(str, false, ok);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue