Improve language code processing in searchEmojis.
GitOrigin-RevId: 9c5de24f89a1614a2cd058185156678a0b0049c4
This commit is contained in:
parent
c332f26352
commit
c6cdfb377c
@ -242,7 +242,7 @@ string LanguagePackManager::get_main_language_code() {
|
||||
if (language_pack_.empty() || language_code_.empty()) {
|
||||
return "en";
|
||||
}
|
||||
if (language_code_.size() <= 2) {
|
||||
if (language_code_.size() == 2) {
|
||||
return language_code_;
|
||||
}
|
||||
|
||||
@ -267,7 +267,8 @@ string LanguagePackManager::get_main_language_code() {
|
||||
}
|
||||
|
||||
if (info == nullptr) {
|
||||
LOG(ERROR) << "Failed to find information about chosen language " << language_code_;
|
||||
LOG(WARNING) << "Failed to find information about chosen language " << language_code_
|
||||
<< ", ensure that valid language pack ID is used";
|
||||
if (!is_custom_language_code(language_code_)) {
|
||||
search_language_info(language_code_, Auto());
|
||||
}
|
||||
@ -308,11 +309,12 @@ vector<string> LanguagePackManager::get_used_language_codes() {
|
||||
}
|
||||
|
||||
vector<string> result;
|
||||
if (language_code_.size() <= 2) {
|
||||
if (language_code_.size() == 2) {
|
||||
result.push_back(language_code_);
|
||||
}
|
||||
if (info == nullptr) {
|
||||
LOG(ERROR) << "Failed to find information about chosen language " << language_code_;
|
||||
LOG(WARNING) << "Failed to find information about chosen language " << language_code_
|
||||
<< ", ensure that valid language pack ID is used";
|
||||
if (!is_custom_language_code(language_code_)) {
|
||||
search_language_info(language_code_, Auto());
|
||||
}
|
||||
|
@ -5879,12 +5879,14 @@ vector<string> StickersManager::get_emoji_language_codes(const vector<string> &i
|
||||
Promise<Unit> &promise) {
|
||||
vector<string> language_codes = td_->language_pack_manager_->get_actor_unsafe()->get_used_language_codes();
|
||||
auto system_language_code = G()->mtproto_header().get_system_language_code();
|
||||
if (!system_language_code.empty() && system_language_code.find('$') == string::npos) {
|
||||
language_codes.push_back(system_language_code);
|
||||
if (system_language_code.size() >= 2 && system_language_code.find('$') == string::npos &&
|
||||
(system_language_code.size() == 2 || system_language_code[2] == '-')) {
|
||||
language_codes.push_back(system_language_code.substr(0, 2));
|
||||
}
|
||||
for (auto &input_language_code : input_language_codes) {
|
||||
if (!input_language_code.empty() && input_language_code.find('$') == string::npos) {
|
||||
language_codes.push_back(input_language_code);
|
||||
if (input_language_code.size() >= 2 && input_language_code.find('$') == string::npos &&
|
||||
(input_language_code.size() == 2 || input_language_code[2] == '-')) {
|
||||
language_codes.push_back(input_language_code.substr(0, 2));
|
||||
}
|
||||
}
|
||||
if (!text.empty()) {
|
||||
@ -5904,7 +5906,7 @@ vector<string> StickersManager::get_emoji_language_codes(const vector<string> &i
|
||||
}
|
||||
|
||||
if (language_codes.empty()) {
|
||||
LOG(ERROR) << "List of language codes is empty";
|
||||
LOG(INFO) << "List of language codes is empty";
|
||||
language_codes.push_back("en");
|
||||
}
|
||||
std::sort(language_codes.begin(), language_codes.end());
|
||||
@ -5919,6 +5921,7 @@ vector<string> StickersManager::get_emoji_language_codes(const vector<string> &i
|
||||
if (it->second.empty()) {
|
||||
load_language_codes(std::move(language_codes), std::move(key), std::move(promise));
|
||||
} else {
|
||||
LOG(DEBUG) << "Have emoji language codes " << it->second;
|
||||
double now = Time::now_cached();
|
||||
for (auto &language_code : it->second) {
|
||||
double last_difference_time = get_emoji_language_code_last_difference_time(language_code);
|
||||
|
Loading…
x
Reference in New Issue
Block a user