Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: third_party/libaddressinput/chromium/cpp/src/region_data_constants.cc

Issue 131223004: [rac] Format an address for display. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments. Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/libaddressinput/chromium/cpp/src/region_data_constants.cc
diff --git a/third_party/libaddressinput/chromium/cpp/src/region_data_constants.cc b/third_party/libaddressinput/chromium/cpp/src/region_data_constants.cc
index 32b9adcdb3ddc386b85dafa7c0e97ae3ae663ea0..c2d2e18058e1faeef593b56ce639ca3b452debd3 100644
--- a/third_party/libaddressinput/chromium/cpp/src/region_data_constants.cc
+++ b/third_party/libaddressinput/chromium/cpp/src/region_data_constants.cc
@@ -12,10 +12,14 @@
// See the License for the specific language governing permissions and
// limitations under the License.
//
-// The data in this file will be automatically generated. For now, the data
-// comes from:
+// The data in this file will be automatically generated. For now, the address
+// data comes from:
//
// https://code.google.com/p/libaddressinput/source/browse/trunk/java/src/com/android/i18n/addressinput/RegionDataConstants.java?r=137
+//
+// The language-to-script and country-to-script mapping is loosely based on:
+//
+// http://unicode.org/cldr/trac/browser/tags/release-24/common/supplemental/supplementalData.xml
#include "region_data_constants.h"
@@ -30,10 +34,116 @@ namespace addressinput {
namespace {
+enum Script {
+ ARAB,
+ HANG,
+ HANS,
+ HANT,
+ JPAN,
+ THAI,
+ OTHER
+};
+
+Script GetCountryScript(const std::string& country_code) {
+ if (country_code == "JP") {
+ return JPAN;
+ } else if (country_code == "HK" ||
+ country_code == "MO" ||
+ country_code == "TW") {
+ return HANT;
+ } else if (country_code == "CN") {
+ return HANS;
+ } else if (country_code == "AE" ||
+ country_code == "AF" ||
+ country_code == "BH" ||
+ country_code == "DZ" ||
+ country_code == "EG" ||
+ country_code == "EH" ||
+ country_code == "IQ" ||
+ country_code == "IR" ||
+ country_code == "JO" ||
+ country_code == "KM" ||
+ country_code == "KW" ||
+ country_code == "LB" ||
+ country_code == "LY" ||
+ country_code == "MA" ||
+ country_code == "MR" ||
+ country_code == "OM" ||
+ country_code == "PK" ||
+ country_code == "PS" ||
+ country_code == "QA" ||
+ country_code == "SA" ||
+ country_code == "SD" ||
+ country_code == "SY" ||
+ country_code == "TN" ||
+ country_code == "YE") {
+ return ARAB;
+ } else if (country_code == "KP" ||
+ country_code == "KR") {
+ return HANG;
+ } else if (country_code == "TH") {
+ return THAI;
+ }
+ return OTHER;
+}
+
+Script GetLanguageScript(const std::string& language_code) {
+ if (language_code == "ja") {
+ return JPAN;
+ } else if (language_code == "zh" ||
+ language_code == "zh-hant") {
+ return HANT;
+ } else if (language_code == "zh-hans") {
+ return HANS;
+ } else if (language_code == "ar" ||
+ language_code == "cjm" ||
+ language_code == "doi" ||
+ language_code == "fa" ||
+ language_code == "lah" ||
+ language_code == "prd" ||
+ language_code == "ps" ||
+ language_code == "swb" ||
+ language_code == "ug" ||
+ language_code == "ur") {
+ return ARAB;
+ } else if (language_code == "ko") {
+ return HANG;
+ } else if (language_code == "kdt" ||
+ language_code == "lcp" ||
+ language_code == "lwl" ||
+ language_code == "th" ||
+ language_code == "tts") {
+ return THAI;
+ }
+ return OTHER;
+}
+
+const std::string& GetCompactLineSeparator(Script script) {
+ static const std::string kEmptyString;
+ static const std::string kArabicSeparator = "، ";
+ static const std::string kSpace = " ";
+ static const std::string kCommaAndSpace = ", ";
+ switch (script) {
+ case JPAN:
+ case HANT:
+ case HANS:
+ return kEmptyString;
+ case ARAB:
+ return kArabicSeparator;
+ case HANG:
+ case THAI:
+ return kSpace;
+ default:
+ return kCommaAndSpace;
+ }
+}
+
std::map<std::string, std::string> InitRegionData() {
std::map<std::string, std::string> region_data;
region_data.insert(std::make_pair("AD", "{"
"\"name\":\"ANDORRA\","
+ "\"lang\":\"ca\","
+ "\"languages\":\"ca\","
"\"fmt\":\"%N%n%O%n%A%n%Z %S\","
"\"state_name_type\":\"parish\""
"}"));
@@ -55,6 +165,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("AM", "{"
"\"name\":\"ARMENIA\","
+ "\"lang\":\"hy\","
+ "\"languages\":\"hy\","
"\"fmt\":\"%N%n%O%n%A%n%Z%n%C%n%S\""
"}"));
region_data.insert(std::make_pair("AN", "{"
@@ -68,6 +180,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("AR", "{"
"\"name\":\"ARGENTINA\","
+ "\"lang\":\"es\","
+ "\"languages\":\"es\","
"\"fmt\":\"%N%n%O%n%A%n%Z %C%n%S\","
"\"state_name_type\":\"state\""
"}"));
@@ -83,6 +197,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("AU", "{"
"\"name\":\"AUSTRALIA\","
+ "\"lang\":\"en\","
+ "\"languages\":\"en\","
"\"fmt\":\"%O%n%N%n%A%n%C %S %Z\","
"\"state_name_type\":\"state\""
"}"));
@@ -148,11 +264,15 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("BR", "{"
"\"name\":\"BRAZIL\","
+ "\"lang\":\"pt\","
+ "\"languages\":\"pt\","
"\"fmt\":\"%O%n%N%n%A%n%C-%S%n%Z\","
"\"state_name_type\":\"state\""
"}"));
region_data.insert(std::make_pair("BS", "{"
"\"name\":\"BAHAMAS\","
+ "\"lang\":\"en\","
+ "\"languages\":\"en\","
"\"fmt\":\"%N%n%O%n%A%n%C, %S\","
"\"state_name_type\":\"island\""
"}"));
@@ -174,6 +294,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("CA", "{"
"\"name\":\"CANADA\","
+ "\"lang\":\"en\","
+ "\"languages\":\"en~fr\","
"\"fmt\":\"%N%n%O%n%A%n%C %S %Z\""
"}"));
region_data.insert(std::make_pair("CC", "{"
@@ -192,6 +314,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("CH", "{"
"\"name\":\"SWITZERLAND\","
+ "\"lang\":\"de\","
+ "\"languages\":\"de~fr~it\","
"\"fmt\":\"%O%n%N%n%A%nCH-%Z %C\""
"}"));
region_data.insert(std::make_pair("CI", "{"
@@ -204,6 +328,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("CL", "{"
"\"name\":\"CHILE\","
+ "\"lang\":\"es\","
+ "\"languages\":\"es\","
"\"fmt\":\"%N%n%O%n%A%n%Z %C%n%S\","
"\"state_name_type\":\"state\""
"}"));
@@ -212,6 +338,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("CN", "{"
"\"name\":\"P.R. CHINA\","
+ "\"lang\":\"zh-hans\","
+ "\"languages\":\"zh-hans\","
"\"fmt\":\"%Z%n%S%C%D%n%A%n%O%n%N\""
"}"));
region_data.insert(std::make_pair("CO", "{"
@@ -228,6 +356,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("CV", "{"
"\"name\":\"CAPE VERDE\","
+ "\"lang\":\"pt\","
+ "\"languages\":\"pt\","
"\"fmt\":\"%N%n%O%n%A%n%Z %C%n%S\","
"\"state_name_type\":\"island\""
"}"));
@@ -285,6 +415,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("ES", "{"
"\"name\":\"SPAIN\","
+ "\"lang\":\"es\","
+ "\"languages\":\"es\","
"\"fmt\":\"%N%n%O%n%A%n%Z %C %S\""
"}"));
region_data.insert(std::make_pair("ET", "{"
@@ -391,6 +523,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("HK", "{"
"\"name\":\"HONG KONG\","
+ "\"lang\":\"zh\","
+ "\"languages\":\"zh\","
"\"fmt\":\"%S%n%A%n%O%n%N\","
"\"state_name_type\":\"area\""
"}"));
@@ -420,6 +554,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("IE", "{"
"\"name\":\"IRELAND\","
+ "\"lang\":\"en\","
+ "\"languages\":\"en\","
"\"fmt\":\"%N%n%O%n%A%n%C%n%S\","
"\"state_name_type\":\"county\""
"}"));
@@ -433,6 +569,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("IN", "{"
"\"name\":\"INDIA\","
+ "\"lang\":\"en\","
+ "\"languages\":\"en\","
"\"fmt\":\"%N%n%O%n%A%n%C %Z%n%S\","
"\"state_name_type\":\"state\""
"}"));
@@ -450,6 +588,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("IT", "{"
"\"name\":\"ITALY\","
+ "\"lang\":\"it\","
+ "\"languages\":\"it\","
"\"fmt\":\"%N%n%O%n%A%n%Z %C %S\""
"}"));
region_data.insert(std::make_pair("JE", "{"
@@ -458,6 +598,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("JM", "{"
"\"name\":\"JAMAICA\","
+ "\"lang\":\"en\","
+ "\"languages\":\"en\","
"\"fmt\":\"%N%n%O%n%A%n%C%n%S %X\","
"\"state_name_type\":\"parish\""
"}"));
@@ -467,6 +609,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("JP", "{"
"\"name\":\"JAPAN\","
+ "\"lang\":\"ja\","
+ "\"languages\":\"ja\","
"\"fmt\":\"\xE3\x80\x92%Z%n%S%C%n%A%n%O%n%N\"," // \xE3\x80\x92 is 〒.
"\"state_name_type\":\"prefecture\""
"}"));
@@ -492,11 +636,15 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("KN", "{"
"\"name\":\"SAINT KITTS AND NEVIS\","
+ "\"lang\":\"en\","
+ "\"languages\":\"en\","
"\"fmt\":\"%N%n%O%n%A%n%C, %S\","
"\"state_name_type\":\"island\""
"}"));
region_data.insert(std::make_pair("KR", "{"
"\"name\":\"KOREA (REP.)\","
+ "\"lang\":\"ko\","
+ "\"languages\":\"ko\","
"\"fmt\":\"%S %C%D%n%A%n%O%n%N%nSEOUL %Z\","
"\"state_name_type\":\"do_si\""
"}"));
@@ -506,6 +654,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("KY", "{"
"\"name\":\"CAYMAN ISLANDS\","
+ "\"lang\":\"en\","
+ "\"languages\":\"en\","
"\"fmt\":\"%N%n%O%n%A%n%S\","
"\"state_name_type\":\"island\""
"}"));
@@ -598,6 +748,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("MO", "{"
"\"name\":\"MACAO\","
+ "\"lang\":\"zh-hant\","
+ "\"languages\":\"zh-hant\","
"\"fmt\":\"%A%n%O%n%N\""
"}"));
region_data.insert(std::make_pair("MP", "{"
@@ -634,11 +786,15 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("MX", "{"
"\"name\":\"MEXICO\","
+ "\"lang\":\"es\","
+ "\"languages\":\"es\","
"\"fmt\":\"%N%n%O%n%A%n%Z %C, %S\","
"\"state_name_type\":\"state\""
"}"));
region_data.insert(std::make_pair("MY", "{"
"\"name\":\"MALAYSIA\","
+ "\"lang\":\"ms\","
+ "\"languages\":\"ms\","
"\"fmt\":\"%N%n%O%n%A%n%Z %C, %S\","
"\"state_name_type\":\"state\""
"}"));
@@ -663,11 +819,15 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("NG", "{"
"\"name\":\"NIGERIA\","
+ "\"lang\":\"fr\","
+ "\"languages\":\"fr\","
"\"fmt\":\"%N%n%O%n%A%n%C %Z%n%S\","
"\"state_name_type\":\"state\""
"}"));
region_data.insert(std::make_pair("NI", "{"
"\"name\":\"NICARAGUA\","
+ "\"lang\":\"es\","
+ "\"languages\":\"es\","
"\"fmt\":\"%N%n%O%n%A%n%Z%n%C, %S\","
"\"state_name_type\":\"department\""
"}"));
@@ -685,6 +845,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("NR", "{"
"\"name\":\"NAURU CENTRAL PACIFIC\","
+ "\"lang\":\"en\","
+ "\"languages\":\"en\","
"\"fmt\":\"%N%n%O%n%A%n%S\","
"\"state_name_type\":\"district\""
"}"));
@@ -828,10 +990,14 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("SO", "{"
"\"name\":\"SOMALIA\","
+ "\"lang\":\"so\","
+ "\"languages\":\"so\","
"\"fmt\":\"%N%n%O%n%A%n%C, %S %Z\""
"}"));
region_data.insert(std::make_pair("SR", "{"
"\"name\":\"SURINAME\","
+ "\"lang\":\"nl\","
+ "\"languages\":\"nl\","
"\"fmt\":\"%N%n%O%n%A%n%C %X%n%S\""
"}"));
region_data.insert(std::make_pair("ST", "{"
@@ -840,6 +1006,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("SV", "{"
"\"name\":\"EL SALVADOR\","
+ "\"lang\":\"es\","
+ "\"languages\":\"es\","
"\"fmt\":\"%N%n%O%n%A%n%Z-%C%n%S\""
"}"));
region_data.insert(std::make_pair("SZ", "{"
@@ -861,6 +1029,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("TH", "{"
"\"name\":\"THAILAND\","
+ "\"lang\":\"th\","
+ "\"languages\":\"th\","
"\"fmt\":\"%N%n%O%n%A%n%C%n%S %Z\""
"}"));
region_data.insert(std::make_pair("TJ", "{"
@@ -893,11 +1063,15 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("TV", "{"
"\"name\":\"TUVALU\","
+ "\"lang\":\"tyv\","
+ "\"languages\":\"tyv\","
"\"fmt\":\"%N%n%O%n%A%n%X%n%C%n%S\","
"\"state_name_type\":\"island\""
"}"));
region_data.insert(std::make_pair("TW", "{"
"\"name\":\"TAIWAN\","
+ "\"lang\":\"zh-hant\","
+ "\"languages\":\"zh-hant\","
"\"fmt\":\"%Z%n%S%C%n%A%n%O%n%N\","
"\"state_name_type\":\"county\""
"}"));
@@ -919,12 +1093,16 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("US", "{"
"\"name\":\"UNITED STATES\","
+ "\"lang\":\"en\","
+ "\"languages\":\"en\","
"\"fmt\":\"%N%n%O%n%A%n%C %S %Z\","
"\"zip_name_type\":\"zip\","
"\"state_name_type\":\"state\""
"}"));
region_data.insert(std::make_pair("UY", "{"
"\"name\":\"URUGUAY\","
+ "\"lang\":\"es\","
+ "\"languages\":\"es\","
"\"fmt\":\"%N%n%O%n%A%n%Z %C %S\""
"}"));
region_data.insert(std::make_pair("UZ", "{"
@@ -940,6 +1118,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("VE", "{"
"\"name\":\"VENEZUELA\","
+ "\"lang\":\"es\","
+ "\"languages\":\"es\","
"\"fmt\":\"%N%n%O%n%A%n%C %Z, %S\""
"}"));
region_data.insert(std::make_pair("VG", "{"
@@ -953,6 +1133,8 @@ std::map<std::string, std::string> InitRegionData() {
"}"));
region_data.insert(std::make_pair("VN", "{"
"\"name\":\"VIET NAM\","
+ "\"lang\":\"vi\","
+ "\"languages\":\"vi\","
"\"fmt\":\"%N%n%O%n%A%n%C%n%S\""
"}"));
region_data.insert(std::make_pair("VU", "{"
@@ -1037,5 +1219,17 @@ const std::string& RegionDataConstants::GetDefaultRegionData() {
return kDefaultRegionData;
}
+// static
+const std::string& RegionDataConstants::GetLanguageCompactLineSeparator(
+ const std::string& language_code) {
+ return GetCompactLineSeparator(GetLanguageScript(language_code));
+}
+
+// static
+const std::string& RegionDataConstants::GetCountryCompactLineSeparator(
+ const std::string& country_code) {
+ return GetCompactLineSeparator(GetCountryScript(country_code));
+}
+
} // namespace addressinput
} // namespace i18n

Powered by Google App Engine
This is Rietveld 408576698