增加本地语言与默认的中文简体语言直接转换的API
This commit is contained in:
parent
a4d130c11e
commit
1dfe4dda1c
|
@ -686,9 +686,11 @@ public:
|
||||||
notify_.erase(it);
|
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)
|
if (v.second == str)
|
||||||
return v.first;
|
return v.first;
|
||||||
|
@ -696,6 +698,42 @@ public:
|
||||||
|
|
||||||
return -1;
|
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;
|
lang_mgr* lang_mgr::inst_ = nullptr;
|
||||||
|
|
||||||
|
@ -729,8 +767,17 @@ extern "C"
|
||||||
lang_mgr::instance()->register_language_changed_notify(lan_changed, reg, param);
|
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