diff options
author | Presubmit Automerger Backend <android-build-presubmit-automerger-backend@system.gserviceaccount.com> | 2023-03-01 14:01:14 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-03-01 14:01:14 +0000 |
commit | 413dfe9597a0f4833d1c42a4990f30b3021e8c23 (patch) | |
tree | 41d9b2307e04c4126d67fc1400cd4e670abd99d8 | |
parent | 7e0abbd8158bb9c28f921bb17f0937f2b2d90cc6 (diff) | |
parent | 768ac62e1727b0890ef10ab808d4d433b6ad4a4a (diff) | |
download | libtextclassifier-413dfe9597a0f4833d1c42a4990f30b3021e8c23.tar.gz |
[automerge] Fix the missing "in" locale 2p: ec40849652 am: 768ac62e17
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/libtextclassifier/+/21566808
Change-Id: I4c5962b050147c3056209cbd23ebff70d6922cac
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | native/utils/resources.cc | 16 | ||||
-rw-r--r-- | native/utils/resources_test.cc | 13 |
2 files changed, 27 insertions, 2 deletions
diff --git a/native/utils/resources.cc b/native/utils/resources.cc index 24b3a6f..0c3ace0 100644 --- a/native/utils/resources.cc +++ b/native/utils/resources.cc @@ -33,12 +33,26 @@ bool isExactMatch(const flatbuffers::String* left, const std::string& right) { return left->str() == right; } +std::string NormalizeLanguageCode(const std::string& language_code) { + if (language_code == "id") { + return "in"; + } else if (language_code == "iw") { + return "he"; + } else if (language_code == "no") { + return "nb"; + } else if (language_code == "tl") { + return "fil"; + } + return language_code; +} + } // namespace int Resources::LocaleMatch(const Locale& locale, const LanguageTag* entry_locale) const { int match = LOCALE_NO_MATCH; - if (isExactMatch(entry_locale->language(), locale.Language())) { + if (isExactMatch(entry_locale->language(), + NormalizeLanguageCode(locale.Language()))) { match |= LOCALE_LANGUAGE_MATCH; } else if (isWildcardMatch(entry_locale->language(), locale.Language())) { match |= LOCALE_LANGUAGE_WILDCARD_MATCH; diff --git a/native/utils/resources_test.cc b/native/utils/resources_test.cc index 6e3d0a1..82eec30 100644 --- a/native/utils/resources_test.cc +++ b/native/utils/resources_test.cc @@ -58,6 +58,8 @@ class ResourcesTest : public testing::Test { test_resources.locale.emplace_back(new LanguageTagT); test_resources.locale.back()->language = "fr"; test_resources.locale.back()->region = "CA"; + test_resources.locale.emplace_back(new LanguageTagT); + test_resources.locale.back()->language = "in"; if (add_default_language) { test_resources.locale.emplace_back(new LanguageTagT); // default } @@ -72,7 +74,7 @@ class ResourcesTest : public testing::Test { test_resources.resource_entry.back()->resource.back()->locale.push_back(0); if (add_default_language) { test_resources.resource_entry.back()->resource.back()->locale.push_back( - 9); + 10); } // en-GB @@ -115,6 +117,12 @@ class ResourcesTest : public testing::Test { test_resources.resource_entry.back()->resource.back()->content = "龍"; test_resources.resource_entry.back()->resource.back()->locale.push_back(7); + // in + test_resources.resource_entry.back()->resource.emplace_back(new ResourceT); + test_resources.resource_entry.back()->resource.back()->content = + "Apa kabar"; + test_resources.resource_entry.back()->resource.back()->locale.push_back(9); + flatbuffers::FlatBufferBuilder builder; builder.Finish(ResourcePool::Pack(builder, &test_resources)); @@ -147,6 +155,9 @@ TEST_F(ResourcesTest, CorrectlyHandlesExactMatch) { EXPECT_TRUE(resources.GetResourceContent({Locale::FromBCP47("fr-CA")}, /*resource_name=*/"A", &content)); EXPECT_EQ("localiser", content); + EXPECT_TRUE(resources.GetResourceContent({Locale::FromBCP47("id")}, + /*resource_name=*/"A", &content)); + EXPECT_EQ("Apa kabar", content); } TEST_F(ResourcesTest, CorrectlyHandlesTie) { |