Merge remote-tracking branch 'origin/Development' into issue544-api

This commit is contained in:
Mike Rosseel 2017-07-26 16:34:51 +02:00
commit b3335ae25e
2 changed files with 240 additions and 47 deletions

View file

@ -20,15 +20,13 @@ package io.bisq.common.locale;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
import io.bisq.common.GlobalSettings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import lombok.extern.slf4j.Slf4j;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
public class CountryUtil {
private static final Logger log = LoggerFactory.getLogger(CountryUtil.class);
public static List<Country> getAllSepaEuroCountries() {
List<Country> list = new ArrayList<>();
String[] codes = {"AT", "BE", "CY", "DE", "EE", "FI", "FR", "GR", "IE",
@ -167,45 +165,186 @@ public class CountryUtil {
return countryCodes.stream().map(CountryUtil::getNameByCode).collect(Collectors.toList());
}
// other source of countries: https://developers.braintreepayments.com/reference/general/countries/java
private static final String[] countryCodes = new String[]{"AE", "AL", "AR", "AT", "AU", "BA", "BE", "BG", "BH",
"BO", "BR", "BW", "BY", "CA", "CH", "CL", "CN", "CO", "CR", "CS", "CU", "CY", "CZ", "DE", "DK", "DO", "DZ",
"EC", "EE", "EG", "ES", "FI", "FR", "GE", "GB", "GR", "GT", "HK", "HN", "HR", "HU", "ID", "IE", "IL", "IN",
"IQ", "IR", "IS", "IT", "JO", "JP", "KE", "KH", "KR", "KW", "KZ", "LB", "LT", "LU", "LV", "LY", "MA", "MD",
"ME", "MK", "MT", "MX",
"MY", "NI", "NL", "NO", "NZ", "OM", "PA", "PE", "PH", "PL", "PR", "PT", "PY", "QA", "RO", "RS", "RU",
"SA", "SD", "SE", "SG", "SI", "SK", "SV", "SY", "TH", "TN", "TR", "TW", "UA", "US", "UY", "VE", "VN",
"YE", "ZA"};
private static final List<String> countryCodeList = Arrays.asList(countryCodes);
private static final String[] regionCodes = new String[]{"AS", "EU", "SA", "EU", "OC", "EU", "EU", "EU", "AS",
"SA", "SA", "AF", "EU", "NA", "EU", "SA", "AS", "SA", "NA", "EU", "NA", "EU", "EU", "EU", "EU", "NA", "AF",
"SA", "EU", "AF", "EU", "EU", "EU", "AS", "EU", "EU", "NA", "AS", "NA", "EU", "EU", "AS", "EU", "AS", "AS",
"AS", "AS", "EU", "EU", "AS", "AS", "AF", "AS", "AS", "AS", "AS", "AS", "EU", "EU", "EU", "AF", "AF", "EU",
"EU", "EU", "EU", "NA",
"AS", "NA", "EU", "EU", "OC", "AS", "NA", "SA", "AS", "EU", "NA", "EU", "SA", "AS", "EU", "EU", "EU",
"AS", "AF", "EU", "AS", "EU", "EU", "NA", "AS", "AS", "AF", "AS", "AS", "EU", "NA", "SA", "SA", "AS",
"AS", "AF"};
private static final List<String> regionCodeList = Arrays.asList(regionCodes);
private static final String[][] regionCodeToName = new String[][]{
{"NA", "North America"}, {"SA", "South America"}, {"AF", "Africa"}, {"EU", "Europe"}, {"AS", "Asia"},
{"OC", "Oceania"}};
private static String getRegionName(final String regionCode) {
for (final String[] regionName : regionCodeToName) {
if (regionName[0].equals(regionCode)) {
return regionName[1];
}
}
return regionCode;
return regionCodeToNameMap.get(regionCode);
}
private static String getRegionCode(String countryCode) {
if (!countryCode.isEmpty() && countryCodeList.contains(countryCode)) {
return regionCodeList.get(countryCodeList.indexOf(countryCode));
} else {
private static final Map<String, String> regionCodeToNameMap = new HashMap<>();
private static final Map<String, String> regionByCountryCodeMap = new HashMap<>();
static {
regionCodeToNameMap.put("NA", "North America");
regionCodeToNameMap.put("SA", "South America");
regionCodeToNameMap.put("AF", "Africa");
regionCodeToNameMap.put("EU", "Europe");
regionCodeToNameMap.put("AS", "Asia");
regionCodeToNameMap.put("OC", "Oceania");
// source of countries: https://developers.braintreepayments.com/reference/general/countries/java
regionByCountryCodeMap.put("AE", "AS"); // United Arab Emirates / Asia
regionByCountryCodeMap.put("AL", "EU"); // Albania / Europe
regionByCountryCodeMap.put("AR", "SA"); // Argentina / South America
regionByCountryCodeMap.put("AT", "EU"); // Austria / Europe
regionByCountryCodeMap.put("AU", "OC"); // Australia / Oceania
regionByCountryCodeMap.put("BA", "EU"); // Bosnia and Herzegovina / Europe
regionByCountryCodeMap.put("BE", "EU"); // Belgium / Europe
regionByCountryCodeMap.put("BG", "EU"); // Bulgaria / Europe
regionByCountryCodeMap.put("BH", "AS"); // Bahrain / Asia
regionByCountryCodeMap.put("BO", "SA"); // Bolivia / South America
regionByCountryCodeMap.put("BR", "SA"); // Brazil / South America
regionByCountryCodeMap.put("BY", "EU"); // Belarus / Europe
regionByCountryCodeMap.put("CA", "NA"); // Canada / North America
regionByCountryCodeMap.put("CH", "EU"); // Switzerland / Europe
regionByCountryCodeMap.put("CL", "SA"); // Chile / South America
regionByCountryCodeMap.put("CN", "AS"); // China / Asia
regionByCountryCodeMap.put("CO", "SA"); // Colombia / South America
regionByCountryCodeMap.put("CR", "NA"); // Costa Rica / North America
regionByCountryCodeMap.put("CS", "EU"); // Serbia and Montenegro / Europe
regionByCountryCodeMap.put("CU", "NA"); // Cuba / North America
regionByCountryCodeMap.put("CY", "EU"); // Cyprus / Europe
regionByCountryCodeMap.put("CZ", "EU"); // Czech Republic / Europe
regionByCountryCodeMap.put("DE", "EU"); // Germany / Europe
regionByCountryCodeMap.put("DK", "EU"); // Denmark / Europe
regionByCountryCodeMap.put("DO", "NA"); // Dominican Republic / North America
regionByCountryCodeMap.put("EC", "SA"); // Ecuador / South America
regionByCountryCodeMap.put("EE", "EU"); // Estonia / Europe
regionByCountryCodeMap.put("ES", "EU"); // Spain / Europe
regionByCountryCodeMap.put("FI", "EU"); // Finland / Europe
regionByCountryCodeMap.put("FR", "EU"); // France / Europe
regionByCountryCodeMap.put("GE", "AS"); // Georgia / Asia
regionByCountryCodeMap.put("GB", "EU"); // United Kingdom / Europe
regionByCountryCodeMap.put("GR", "EU"); // Greece / Europe
regionByCountryCodeMap.put("GT", "NA"); // Guatemala / North America
regionByCountryCodeMap.put("HK", "AS"); // Hong Kong / Asia
regionByCountryCodeMap.put("HN", "NA"); // Honduras / North America
regionByCountryCodeMap.put("HR", "EU"); // Croatia / Europe
regionByCountryCodeMap.put("HU", "EU"); // Hungary / Europe
regionByCountryCodeMap.put("ID", "AS"); // Indonesia / Asia
regionByCountryCodeMap.put("IE", "EU"); // Ireland / Europe
regionByCountryCodeMap.put("IL", "AS"); // Israel / Asia
regionByCountryCodeMap.put("IN", "AS"); // India / Asia
regionByCountryCodeMap.put("IQ", "AS"); // Iraq / Asia
regionByCountryCodeMap.put("IR", "AS"); // Iran / Asia
regionByCountryCodeMap.put("IS", "EU"); // Iceland / Europe
regionByCountryCodeMap.put("IT", "EU"); // Italy / Europe
regionByCountryCodeMap.put("JO", "AS"); // Jordan / Asia
regionByCountryCodeMap.put("JP", "AS"); // Japan / Asia
regionByCountryCodeMap.put("KH", "AS"); // Cambodia / Asia
regionByCountryCodeMap.put("KR", "AS"); // South Korea / Asia
regionByCountryCodeMap.put("KW", "AS"); // Kuwait / Asia
regionByCountryCodeMap.put("KZ", "AS"); // Kazakhstan / Asia
regionByCountryCodeMap.put("LB", "AS"); // Lebanon / Asia
regionByCountryCodeMap.put("LT", "EU"); // Lithuania / Europe
regionByCountryCodeMap.put("LU", "EU"); // Luxembourg / Europe
regionByCountryCodeMap.put("LV", "EU"); // Latvia / Europe
regionByCountryCodeMap.put("MD", "EU"); // Moldova / Europe
regionByCountryCodeMap.put("ME", "EU"); // Montenegro / Europe
regionByCountryCodeMap.put("MK", "EU"); // Macedonia / Europe
regionByCountryCodeMap.put("MT", "EU"); // Malta / Europe
regionByCountryCodeMap.put("MX", "NA"); // Mexico / North America
regionByCountryCodeMap.put("MY", "AS"); // Malaysia / Asia
regionByCountryCodeMap.put("NI", "NA"); // Nicaragua / North America
regionByCountryCodeMap.put("NL", "EU"); // Netherlands / Europe
regionByCountryCodeMap.put("NO", "EU"); // Norway / Europe
regionByCountryCodeMap.put("NZ", "OC"); // New Zealand / Oceania
regionByCountryCodeMap.put("OM", "AS"); // Oman / Asia
regionByCountryCodeMap.put("PA", "NA"); // Panama / North America
regionByCountryCodeMap.put("PE", "SA"); // Peru / South America
regionByCountryCodeMap.put("PH", "AS"); // Philippines / Asia
regionByCountryCodeMap.put("PL", "EU"); // Poland / Europe
regionByCountryCodeMap.put("PR", "NA"); // Puerto Rico / North America
regionByCountryCodeMap.put("PT", "EU"); // Portugal / Europe
regionByCountryCodeMap.put("PY", "SA"); // Paraguay / South America
regionByCountryCodeMap.put("QA", "AS"); // Qatar / Asia
regionByCountryCodeMap.put("RO", "EU"); // Romania / Europe
regionByCountryCodeMap.put("RS", "EU"); // Serbia / Europe
regionByCountryCodeMap.put("RU", "EU"); // Russia / Europe
regionByCountryCodeMap.put("SA", "AS"); // Saudi Arabia / Asia
regionByCountryCodeMap.put("SE", "EU"); // Sweden / Europe
regionByCountryCodeMap.put("SG", "AS"); // Singapore / Asia
regionByCountryCodeMap.put("SI", "EU"); // Slovenia / Europe
regionByCountryCodeMap.put("SK", "EU"); // Slovakia / Europe
regionByCountryCodeMap.put("SV", "NA"); // El Salvador / North America
regionByCountryCodeMap.put("SY", "AS"); // Syria / Asia
regionByCountryCodeMap.put("TH", "AS"); // Thailand / Asia
regionByCountryCodeMap.put("TR", "AS"); // Turkey / Asia
regionByCountryCodeMap.put("TW", "AS"); // Taiwan / Asia
regionByCountryCodeMap.put("UA", "EU"); // Ukraine / Europe
regionByCountryCodeMap.put("US", "NA"); // United States / North America
regionByCountryCodeMap.put("UY", "SA"); // Uruguay / South America
regionByCountryCodeMap.put("VE", "SA"); // Venezuela / South America
regionByCountryCodeMap.put("VN", "AS"); // Vietnam / Asia
regionByCountryCodeMap.put("YE", "AS"); // Yemen / Asia
// all african
regionByCountryCodeMap.put("DZ", "AF"); // Algeria / Africa
regionByCountryCodeMap.put("AO", "AF"); // Angola / Africa
regionByCountryCodeMap.put("SH", "AF"); // Ascension / Africa
regionByCountryCodeMap.put("BJ", "AF"); // Benin / Africa
regionByCountryCodeMap.put("BW", "AF"); // Botswana / Africa
regionByCountryCodeMap.put("BF", "AF"); // Burkina Faso / Africa
regionByCountryCodeMap.put("BI", "AF"); // Burundi / Africa
regionByCountryCodeMap.put("CM", "AF"); // Cameroon / Africa
regionByCountryCodeMap.put("CV", "AF"); // Cape Verde Islands / Africa
regionByCountryCodeMap.put("CF", "AF"); // Central African Republic / Africa
regionByCountryCodeMap.put("TD", "AF"); // Chad Republic / Africa
regionByCountryCodeMap.put("KM", "AF"); // Comoros / Africa
regionByCountryCodeMap.put("CG", "AF"); // Congo / Africa
regionByCountryCodeMap.put("CD", "AF"); // Dem. Republic of the Congo / Africa
regionByCountryCodeMap.put("DJ", "AF"); // Djibouti / Africa
regionByCountryCodeMap.put("EG", "AF"); // Egypt / Africa
regionByCountryCodeMap.put("GQ", "AF"); // Equatorial Guinea / Africa
regionByCountryCodeMap.put("ER", "AF"); // Eritrea / Africa
regionByCountryCodeMap.put("ET", "AF"); // Ethiopia / Africa
regionByCountryCodeMap.put("GA", "AF"); // Gabon Republic / Africa
regionByCountryCodeMap.put("GM", "AF"); // Gambia / Africa
regionByCountryCodeMap.put("GH", "AF"); // Ghana / Africa
regionByCountryCodeMap.put("GN", "AF"); // Guinea / Africa
regionByCountryCodeMap.put("GW", "AF"); // Guinea-Bissau / Africa
regionByCountryCodeMap.put("CI", "AF"); // Ivory Coast / Africa
regionByCountryCodeMap.put("KE", "AF"); // Kenya / Africa
regionByCountryCodeMap.put("LS", "AF"); // Lesotho / Africa
regionByCountryCodeMap.put("LR", "AF"); // Liberia / Africa
regionByCountryCodeMap.put("LY", "AF"); // Libya / Africa
regionByCountryCodeMap.put("MG", "AF"); // Madagascar / Africa
regionByCountryCodeMap.put("MW", "AF"); // Malawi / Africa
regionByCountryCodeMap.put("ML", "AF"); // Mali Republic / Africa
regionByCountryCodeMap.put("MR", "AF"); // Mauritania / Africa
regionByCountryCodeMap.put("MU", "AF"); // Mauritius / Africa
regionByCountryCodeMap.put("YT", "AF"); // Mayotte Island / Africa
regionByCountryCodeMap.put("MA", "AF"); // Morocco / Africa
regionByCountryCodeMap.put("MZ", "AF"); // Mozambique / Africa
regionByCountryCodeMap.put("NA", "AF"); // Namibia / Africa
regionByCountryCodeMap.put("NE", "AF"); // Niger Republic / Africa
regionByCountryCodeMap.put("NG", "AF"); // Nigeria / Africa
regionByCountryCodeMap.put("ST", "AF"); // Principe / Africa
regionByCountryCodeMap.put("RE", "AF"); // Reunion Island / Africa
regionByCountryCodeMap.put("RW", "AF"); // Rwanda / Africa
regionByCountryCodeMap.put("ST", "AF"); // Sao Tome / Africa
regionByCountryCodeMap.put("SN", "AF"); // Senegal Republic / Africa
regionByCountryCodeMap.put("SC", "AF"); // Seychelles / Africa
regionByCountryCodeMap.put("SL", "AF"); // Sierra Leone / Africa
regionByCountryCodeMap.put("SO", "AF"); // Somalia Republic / Africa
regionByCountryCodeMap.put("ZA", "AF"); // South Africa / Africa
regionByCountryCodeMap.put("SS", "AF"); // South Sudan / Africa
regionByCountryCodeMap.put("SH", "AF"); // St. Helena / Africa
regionByCountryCodeMap.put("SD", "AF"); // Sudan / Africa
regionByCountryCodeMap.put("SZ", "AF"); // Swaziland / Africa
regionByCountryCodeMap.put("TZ", "AF"); // Tanzania / Africa
regionByCountryCodeMap.put("TG", "AF"); // Togo / Africa
regionByCountryCodeMap.put("TN", "AF"); // Tunisia / Africa
regionByCountryCodeMap.put("UG", "AF"); // Uganda / Africa
regionByCountryCodeMap.put("CD", "AF"); // Zaire / Africa
regionByCountryCodeMap.put("ZM", "AF"); // Zambia / Africa
regionByCountryCodeMap.put("TZ", "AF"); // Zanzibar / Africa
regionByCountryCodeMap.put("ZW", "AF"); // Zimbabwe / Africa
}
public static String getRegionCode(String countryCode) {
if (regionByCountryCodeMap.containsKey(countryCode))
return regionByCountryCodeMap.get(countryCode);
else
return "Undefined";
}
}
public static String getDefaultCountryCode() {

View file

@ -107,10 +107,8 @@ public class LocaleUtil {
allLocales.add(new Locale("de", "DE", ""));
allLocales.add(new Locale("da", "DK", ""));
allLocales.add(new Locale("es", "DO", ""));
allLocales.add(new Locale("ar", "DZ", ""));
allLocales.add(new Locale("es", "EC", ""));
allLocales.add(new Locale("et", "EE", ""));
allLocales.add(new Locale("ar", "EG", ""));
allLocales.add(new Locale("ca", "ES", ""));
allLocales.add(new Locale("es", "ES", ""));
allLocales.add(new Locale("fi", "FI", ""));
@ -135,7 +133,6 @@ public class LocaleUtil {
allLocales.add(new Locale("ar", "JO", ""));
allLocales.add(new Locale("ja", "JP", ""));
allLocales.add(new Locale("ja", "JP", ""));
allLocales.add(new Locale("sw", "KE", ""));
allLocales.add(new Locale("km", "KH", ""));
allLocales.add(new Locale("ko", "KR", ""));
allLocales.add(new Locale("ar", "KW", ""));
@ -145,8 +142,6 @@ public class LocaleUtil {
allLocales.add(new Locale("fr", "LU", ""));
allLocales.add(new Locale("de", "LU", ""));
allLocales.add(new Locale("lv", "LV", ""));
allLocales.add(new Locale("ar", "LY", ""));
allLocales.add(new Locale("ar", "MA", ""));
allLocales.add(new Locale("ro", "MD", ""));
allLocales.add(new Locale("sr", "ME", ""));
allLocales.add(new Locale("sr", "ME", ""));
@ -174,7 +169,6 @@ public class LocaleUtil {
allLocales.add(new Locale("sr", "RS", ""));
allLocales.add(new Locale("ru", "RU", ""));
allLocales.add(new Locale("ar", "SA", ""));
allLocales.add(new Locale("ar", "SD", ""));
allLocales.add(new Locale("sv", "SE", ""));
allLocales.add(new Locale("en", "SG", ""));
allLocales.add(new Locale("zh", "SG", ""));
@ -184,7 +178,6 @@ public class LocaleUtil {
allLocales.add(new Locale("ar", "SY", ""));
allLocales.add(new Locale("th", "TH", ""));
allLocales.add(new Locale("th", "TH", ""));
allLocales.add(new Locale("ar", "TN", ""));
allLocales.add(new Locale("tr", "TR", ""));
allLocales.add(new Locale("zh", "TW", ""));
allLocales.add(new Locale("uk", "UA", ""));
@ -194,7 +187,68 @@ public class LocaleUtil {
allLocales.add(new Locale("es", "VE", ""));
allLocales.add(new Locale("vi", "VN", ""));
allLocales.add(new Locale("ar", "YE", ""));
allLocales.add(new Locale("en", "ZA", ""));
// all african
// correct language set
allLocales.add(new Locale("ar", "DZ", "")); // Algeria
allLocales.add(new Locale("ar", "EG", "")); // Egypt
allLocales.add(new Locale("sw", "KE", "")); // Kenya
allLocales.add(new Locale("ar", "LY", "")); // Libya
allLocales.add(new Locale("ar", "MA", "")); // Morocco
allLocales.add(new Locale("ar", "SD", "")); // Sudan
allLocales.add(new Locale("ar", "TN", "")); // Tunisia
allLocales.add(new Locale("en", "ZA", "")); // South Africa
// language not set (use english as default)
allLocales.add(new Locale("en", "DJ", "")); // Djibouti
allLocales.add(new Locale("en", "LR", "")); // Liberia
allLocales.add(new Locale("en", "TZ", "")); // Tanzania
allLocales.add(new Locale("en", "LS", "")); // Lesotho
allLocales.add(new Locale("en", "UG", "")); // Uganda
allLocales.add(new Locale("en", "MG", "")); // Madagascar
allLocales.add(new Locale("en", "YT", "")); // Mayotte
allLocales.add(new Locale("en", "ML", "")); // Mali
allLocales.add(new Locale("en", "MR", "")); // Mauritania
allLocales.add(new Locale("en", "MU", "")); // Mauritius
allLocales.add(new Locale("en", "MW", "")); // Malawi
allLocales.add(new Locale("en", "ER", "")); // Eritrea
allLocales.add(new Locale("en", "MZ", "")); // Mozambique
allLocales.add(new Locale("en", "AO", "")); // Angola
allLocales.add(new Locale("en", "ET", "")); // Ethiopia
allLocales.add(new Locale("en", "NA", "")); // Namibia
allLocales.add(new Locale("en", "RE", "")); // Reunion
allLocales.add(new Locale("en", "ZM", "")); // Zambia
allLocales.add(new Locale("en", "NE", "")); // Niger
allLocales.add(new Locale("en", "NG", "")); // Nigeria
allLocales.add(new Locale("en", "ZW", "")); // Zimbabwe
allLocales.add(new Locale("en", "BF", "")); // Burkina Faso
allLocales.add(new Locale("en", "RW", "")); // Rwanda
allLocales.add(new Locale("en", "BI", "")); // Burundi
allLocales.add(new Locale("en", "BJ", "")); // Benin
allLocales.add(new Locale("en", "SC", "")); // Seychelles
allLocales.add(new Locale("en", "SH", "")); // Saint Helena
allLocales.add(new Locale("en", "BW", "")); // Botswana
allLocales.add(new Locale("en", "SL", "")); // Sierra Leone
allLocales.add(new Locale("en", "GA", "")); // Gabon
allLocales.add(new Locale("en", "SN", "")); // Senegal
allLocales.add(new Locale("en", "SO", "")); // Somalia
allLocales.add(new Locale("en", "SS", "")); // South Sudan
allLocales.add(new Locale("en", "CD", "")); // The Democratic Republic Of Congo
allLocales.add(new Locale("en", "GH", "")); // Ghana
allLocales.add(new Locale("en", "ST", "")); // Sao Tome And Principe
allLocales.add(new Locale("en", "KM", "")); // Comoros
allLocales.add(new Locale("en", "CF", "")); // Central African Republic
allLocales.add(new Locale("en", "CG", "")); // Congo
allLocales.add(new Locale("en", "GM", "")); // Gambia
allLocales.add(new Locale("en", "CI", "")); // Côte d'Ivoire
allLocales.add(new Locale("en", "GN", "")); // Guinea
allLocales.add(new Locale("en", "SZ", "")); // Swaziland
allLocales.add(new Locale("en", "CM", "")); // Cameroon
allLocales.add(new Locale("en", "GQ", "")); // Equatorial Guinea
allLocales.add(new Locale("en", "TD", "")); // Chad
allLocales.add(new Locale("en", "GW", "")); // Guinea-Bissau
allLocales.add(new Locale("en", "CV", "")); // Cape Verde
allLocales.add(new Locale("en", "TG", "")); // Togo
return allLocales;
}