Does anyone know of any open-sourced modules for getting a user’s full country/region? Localization:GetCountryRegionForPlayerAsync()
returns GB
for me but I want it to be automatically converted to Great Britain
, for example.
local Players = game:GetService("Players")
local HttpService = game:GetService("HttpService")
local LocalizationService = game:GetService("LocalizationService")
local Countries = {}
local success, result = pcall(function()
return HttpService:GetAsync("http://country.io/names.json")
end)
if success and result then
Countries = HttpService:JSONDecode(result)
end
Players.PlayerAdded:Connect(function(player)
local success, code = pcall(LocalizationService.GetCountryRegionForPlayerAsync, LocalizationService, player)
if success and code then
print(Countries[code])
end
end)
Thanks a lot.
chars
How can I get the country code from the actual name? [Ex: Canada → CA]
LocalizationService already does this for you automatically. The reason the HTTP request in the original solution is sent is so it can translate the country/region code to an actual country name (the reverse of what you want to do). Removing the HTTP to the website should have the effect you want.
Made a post about it awhile ago with working code for country codes, check it out if you’d like.
uh, it returns nil for me, does someone know what might be an issue?
also yes, http requests are enabled :v
The only way you can fix this is by creating a module script with the countries convertion by going to country.io/names.json then copying and pasting it and converting it to lua easily.
Here’s how:
Create a script in workspace or anywhere that has this code:
local Players = game:GetService("Players")
local HttpService = game:GetService("HttpService")
local LocalizationService = game:GetService("LocalizationService")
local Countries = require(script.Countries)
Players.PlayerAdded:Connect(function(player)
local success, code = pcall(LocalizationService.GetCountryRegionForPlayerAsync, LocalizationService, player)
if success and code then
print(Countries[code])
end
end)
Lastly create a module script inside the script called Countries or any name and make it contain this:
return {
["BD"] = "Bangladesh",
["BE"] = "Belgium",
["BF"] = "Burkina Faso",
["BG"] = "Bulgaria",
["BA"] = "Bosnia and Herzegovina",
["BB"] = "Barbados",
["WF"] = "Wallis and Futuna",
["BL"] = "Saint Barthelemy",
["BM"] = "Bermuda",
["BN"] = "Brunei",
["BO"] = "Bolivia",
["BH"] = "Bahrain",
["BI"] = "Burundi",
["BJ"] = "Benin",
["BT"] = "Bhutan",
["JM"] = "Jamaica",
["BV"] = "Bouvet Island",
["BW"] = "Botswana",
["WS"] = "Samoa",
["BQ"] = "Bonaire, Saint Eustatius and Saba ",
["BR"] = "Brazil",
["BS"] = "Bahamas",
["JE"] = "Jersey",
["BY"] = "Belarus",
["BZ"] = "Belize",
["RU"] = "Russia",
["RW"] = "Rwanda",
["RS"] = "Serbia",
["TL"] = "East Timor",
["RE"] = "Reunion",
["TM"] = "Turkmenistan",
["TJ"] = "Tajikistan",
["RO"] = "Romania",
["TK"] = "Tokelau",
["GW"] = "Guinea-Bissau",
["GU"] = "Guam",
["GT"] = "Guatemala",
["GS"] = "South Georgia and the South Sandwich Islands",
["GR"] = "Greece",
["GQ"] = "Equatorial Guinea",
["GP"] = "Guadeloupe",
["JP"] = "Japan",
["GY"] = "Guyana",
["GG"] = "Guernsey",
["GF"] = "French Guiana",
["GE"] = "Georgia",
["GD"] = "Grenada",
["GB"] = "United Kingdom",
["GA"] = "Gabon",
["SV"] = "El Salvador",
["GN"] = "Guinea",
["GM"] = "Gambia",
["GL"] = "Greenland",
["GI"] = "Gibraltar",
["GH"] = "Ghana",
["OM"] = "Oman",
["TN"] = "Tunisia",
["JO"] = "Jordan",
["HR"] = "Croatia",
["HT"] = "Haiti",
["HU"] = "Hungary",
["HK"] = "Hong Kong",
["HN"] = "Honduras",
["HM"] = "Heard Island and McDonald Islands",
["VE"] = "Venezuela",
["PR"] = "Puerto Rico",
["PS"] = "Palestinian Territory",
["PW"] = "Palau",
["PT"] = "Portugal",
["SJ"] = "Svalbard and Jan Mayen",
["PY"] = "Paraguay",
["IQ"] = "Iraq",
["PA"] = "Panama",
["PF"] = "French Polynesia",
["PG"] = "Papua New Guinea",
["PE"] = "Peru",
["PK"] = "Pakistan",
["PH"] = "Philippines",
["PN"] = "Pitcairn",
["PL"] = "Poland",
["PM"] = "Saint Pierre and Miquelon",
["ZM"] = "Zambia",
["EH"] = "Western Sahara",
["EE"] = "Estonia",
["EG"] = "Egypt",
["ZA"] = "South Africa",
["EC"] = "Ecuador",
["IT"] = "Italy",
["VN"] = "Vietnam",
["SB"] = "Solomon Islands",
["ET"] = "Ethiopia",
["SO"] = "Somalia",
["ZW"] = "Zimbabwe",
["SA"] = "Saudi Arabia",
["ES"] = "Spain",
["ER"] = "Eritrea",
["ME"] = "Montenegro",
["MD"] = "Moldova",
["MG"] = "Madagascar",
["MF"] = "Saint Martin",
["MA"] = "Morocco",
["MC"] = "Monaco",
["UZ"] = "Uzbekistan",
["MM"] = "Myanmar",
["ML"] = "Mali",
["MO"] = "Macao",
["MN"] = "Mongolia",
["MH"] = "Marshall Islands",
["MK"] = "Macedonia",
["MU"] = "Mauritius",
["MT"] = "Malta",
["MW"] = "Malawi",
["MV"] = "Maldives",
["MQ"] = "Martinique",
["MP"] = "Northern Mariana Islands",
["MS"] = "Montserrat",
["MR"] = "Mauritania",
["IM"] = "Isle of Man",
["UG"] = "Uganda",
["TZ"] = "Tanzania",
["MY"] = "Malaysia",
["MX"] = "Mexico",
["IL"] = "Israel",
["FR"] = "France",
["IO"] = "British Indian Ocean Territory",
["SH"] = "Saint Helena",
["FI"] = "Finland",
["FJ"] = "Fiji",
["FK"] = "Falkland Islands",
["FM"] = "Micronesia",
["FO"] = "Faroe Islands",
["NI"] = "Nicaragua",
["NL"] = "Netherlands",
["NO"] = "Norway",
["NA"] = "Namibia",
["VU"] = "Vanuatu",
["NC"] = "New Caledonia",
["NE"] = "CENSORED [Here should be the country starting with N and ending with R]",
["NF"] = "Norfolk Island",
["NG"] = "Nigeria",
["NZ"] = "New Zealand",
["NP"] = "Nepal",
["NR"] = "Nauru",
["NU"] = "Niue",
["CK"] = "Cook Islands",
["XK"] = "Kosovo",
["CI"] = "Ivory Coast",
["CH"] = "Switzerland",
["CO"] = "Colombia",
["CN"] = "China",
["CM"] = "Cameroon",
["CL"] = "Chile",
["CC"] = "Cocos Islands",
["CA"] = "Canada",
["CG"] = "Republic of the Congo",
["CF"] = "Central African Republic",
["CD"] = "Democratic Republic of the Congo",
["CZ"] = "Czech Republic",
["CY"] = "Cyprus",
["CX"] = "Christmas Island",
["CR"] = "Costa Rica",
["CW"] = "Curacao",
["CV"] = "Cape Verde",
["CU"] = "Cuba",
["SZ"] = "Swaziland",
["SY"] = "Syria",
["SX"] = "Sint Maarten",
["KG"] = "Kyrgyzstan",
["KE"] = "Kenya",
["SS"] = "South Sudan",
["SR"] = "Suriname",
["KI"] = "Kiribati",
["KH"] = "Cambodia",
["KN"] = "Saint Kitts and Nevis",
["KM"] = "Comoros",
["ST"] = "Sao Tome and Principe",
["SK"] = "Slovakia",
["KR"] = "South Korea",
["SI"] = "Slovenia",
["KP"] = "North Korea",
["KW"] = "Kuwait",
["SN"] = "Senegal",
["SM"] = "San Marino",
["SL"] = "Sierra Leone",
["SC"] = "Seychelles",
["KZ"] = "Kazakhstan",
["KY"] = "Cayman Islands",
["SG"] = "Singapore",
["SE"] = "Sweden",
["SD"] = "Sudan",
["DO"] = "Dominican Republic",
["DM"] = "Dominica",
["DJ"] = "Djibouti",
["DK"] = "Denmark",
["VG"] = "British Virgin Islands",
["DE"] = "Germany",
["YE"] = "Yemen",
["DZ"] = "Algeria",
["US"] = "United States",
["UY"] = "Uruguay",
["YT"] = "Mayotte",
["UM"] = "United States Minor Outlying Islands",
["LB"] = "Lebanon",
["LC"] = "Saint Lucia",
["LA"] = "Laos",
["TV"] = "Tuvalu",
["TW"] = "Taiwan",
["TT"] = "Trinidad and Tobago",
["TR"] = "Turkey",
["LK"] = "Sri Lanka",
["LI"] = "Liechtenstein",
["LV"] = "Latvia",
["TO"] = "Tonga",
["LT"] = "Lithuania",
["LU"] = "Luxembourg",
["LR"] = "Liberia",
["LS"] = "Lesotho",
["TH"] = "Thailand",
["TF"] = "French Southern Territories",
["TG"] = "Togo",
["TD"] = "Chad",
["TC"] = "Turks and Caicos Islands",
["LY"] = "Libya",
["VA"] = "Vatican",
["VC"] = "Saint Vincent and the Grenadines",
["AE"] = "United Arab Emirates",
["AD"] = "Andorra",
["AG"] = "Antigua and Barbuda",
["AF"] = "Afghanistan",
["AI"] = "Anguilla",
["VI"] = "U.S. Virgin Islands",
["IS"] = "Iceland",
["IR"] = "Iran",
["AM"] = "Armenia",
["AL"] = "Albania",
["AO"] = "Angola",
["AQ"] = "Antarctica",
["AS"] = "American Samoa",
["AR"] = "Argentina",
["AU"] = "Australia",
["AT"] = "Austria",
["AW"] = "Aruba",
["IN"] = "India",
["AX"] = "Aland Islands",
["AZ"] = "Azerbaijan",
["IE"] = "Ireland",
["ID"] = "Indonesia",
["UA"] = "Ukraine",
["QA"] = "Qatar",
["MZ"] = "Mozambique"
}
And your issue should be fixed.
sorry for bumping in a old post lol
There’s one country that i cannot put here, which is censored so i’ve named it as CENSORED. where it’s code is NE