diff --git a/ClassicalCompendium.Tests/CryptoMethodsTests.cs b/ClassicalCompendium.Tests/CryptoMethodsTests.cs
index ab85a43..91eca83 100644
--- a/ClassicalCompendium.Tests/CryptoMethodsTests.cs
+++ b/ClassicalCompendium.Tests/CryptoMethodsTests.cs
@@ -30,12 +30,5 @@ public void CodeAtBashTest()
Assert.Equal("Z Y X W", CryptoMethods.EncodeWithAtBash("a B c D"));
Assert.Equal("!()#%&|¢¬|¬|§°¬§|#{[]¨|¢§¬°", CryptoMethods.EncodeWithAtBash("!()#%&|¢¬|¬|§°¬§|#{[]¨|¢§¬°"));
}
-
- [Fact]
- public void DoSHA256Test()
- {
- Assert.Equal("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", CryptoMethods.SHA256(""));
- Assert.Equal("d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592", CryptoMethods.SHA256("The quick brown fox jumps over the lazy dog"));
- }
}
}
\ No newline at end of file
diff --git a/ClassicalCompendium.Tests/HashMethodsTests.cs b/ClassicalCompendium.Tests/HashMethodsTests.cs
new file mode 100644
index 0000000..8644843
--- /dev/null
+++ b/ClassicalCompendium.Tests/HashMethodsTests.cs
@@ -0,0 +1,12 @@
+namespace ClassicalCompendium.Tests
+{
+ public class HashMethodsTests
+ {
+ [Fact]
+ public void SHA256Test()
+ {
+ Assert.Equal("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", HashMethods.SHA256(""));
+ Assert.Equal("d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592", HashMethods.SHA256("The quick brown fox jumps over the lazy dog"));
+ }
+ }
+}
diff --git a/ClassicalCompendium.Tests/PreSetListsTests.cs b/ClassicalCompendium.Tests/PreSetListsTests.cs
new file mode 100644
index 0000000..053700d
--- /dev/null
+++ b/ClassicalCompendium.Tests/PreSetListsTests.cs
@@ -0,0 +1,56 @@
+namespace ClassicalCompendium.Tests
+{
+ public class PreSetListsTests
+ {
+ [Fact]
+ public void MonthsTests()
+ {
+ Assert.Equal("January", PreSetLists.Time.Months[0]);
+ Assert.Equal("February", PreSetLists.Time.Months[1]);
+ Assert.Equal("March", PreSetLists.Time.Months[2]);
+ Assert.Equal(12, PreSetLists.Time.Months.Count);
+ }
+
+ [Fact]
+ public void DaysOfWeekTests()
+ {
+ Assert.Equal("Monday", PreSetLists.Time.WeekDays[0]);
+ Assert.Equal("Tuesday", PreSetLists.Time.WeekDays[1]);
+ Assert.Equal("Wednesday", PreSetLists.Time.WeekDays[2]);
+ Assert.Equal(7, PreSetLists.Time.WeekDays.Count);
+ }
+
+ [Fact]
+ public void HoursTests()
+ {
+ Assert.Equal("12 PM", PreSetLists.Time.Hours[0]);
+ Assert.Equal("1 AM", PreSetLists.Time.Hours[1]);
+ Assert.Equal("2 AM", PreSetLists.Time.Hours[2]);
+ Assert.Equal(24, PreSetLists.Time.Hours.Count);
+ }
+
+ [Fact]
+ public void CountryISOTests()
+ {
+ Assert.Equal("AF", PreSetLists.Country.CountryISO[0].Item2);
+ }
+
+ [Fact]
+ public void MostUsedLangagesTests()
+ {
+ Assert.Equal("English", PreSetLists.Country.MostUsedLangages[0]);
+ Assert.Equal("French", PreSetLists.Country.MostUsedLangages[1]);
+ Assert.Equal("Arabic", PreSetLists.Country.MostUsedLangages[2]);
+ Assert.Equal(10, PreSetLists.Country.MostUsedLangages.Count);
+ }
+
+ [Fact]
+ public void OfficialLanguagesTests()
+ {
+ Assert.Equal("Abkhaz", PreSetLists.Country.OfficialLanguages[0]);
+ Assert.Equal("Armenian", PreSetLists.Country.OfficialLanguages[9]);
+ Assert.Equal("Bedik", PreSetLists.Country.OfficialLanguages[18]);
+ Assert.Equal(214, PreSetLists.Country.OfficialLanguages.Count);
+ }
+ }
+}
diff --git a/ClassicalCompendium.sln b/ClassicalCompendium.sln
index 6f1ef0b..0743196 100644
--- a/ClassicalCompendium.sln
+++ b/ClassicalCompendium.sln
@@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.10.35201.131
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassicalCompendium", "ClassicalCompendium\ClassicalCompendium.csproj", "{645133BB-A893-4E8B-8963-F889582A4CE6}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClassicalCompendium", "ClassicalCompendium\ClassicalCompendium.csproj", "{645133BB-A893-4E8B-8963-F889582A4CE6}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassicalCompendium.Tests", "ClassicalCompendium.Tests\ClassicalCompendium.Tests.csproj", "{A86ECB33-806C-4C08-ACEA-BD2709BD2851}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClassicalCompendium.Tests", "ClassicalCompendium.Tests\ClassicalCompendium.Tests.csproj", "{A86ECB33-806C-4C08-ACEA-BD2709BD2851}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -18,6 +18,7 @@ Global
{645133BB-A893-4E8B-8963-F889582A4CE6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{645133BB-A893-4E8B-8963-F889582A4CE6}.Release|Any CPU.Build.0 = Release|Any CPU
{A86ECB33-806C-4C08-ACEA-BD2709BD2851}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A86ECB33-806C-4C08-ACEA-BD2709BD2851}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A86ECB33-806C-4C08-ACEA-BD2709BD2851}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A86ECB33-806C-4C08-ACEA-BD2709BD2851}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
diff --git a/ClassicalCompendium/ClassicalCompendium.csproj b/ClassicalCompendium/ClassicalCompendium.csproj
index 3c41149..2a6bf72 100644
--- a/ClassicalCompendium/ClassicalCompendium.csproj
+++ b/ClassicalCompendium/ClassicalCompendium.csproj
@@ -7,7 +7,7 @@
A collection of widely-used C# utility methods
true
- Compendium; Random; Cryptography
+ Compendium; Random; Cryptography; Numeral;
https://github.com/Miiraak/ClassicalCompendium
README.md
LICENSE
diff --git a/ClassicalCompendium/CryptoMethods.cs b/ClassicalCompendium/CryptoMethods.cs
index 2ff4332..967c124 100644
--- a/ClassicalCompendium/CryptoMethods.cs
+++ b/ClassicalCompendium/CryptoMethods.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using System.Text;
namespace ClassicalCompendium
{
@@ -61,15 +60,5 @@ public static string EncodeWithAtBash(string Text)
}
return output;
}
-
- public static string SHA256(string text)
- {
- using (var sha256 = System.Security.Cryptography.SHA256.Create())
- {
- byte[] bytes = Encoding.UTF8.GetBytes(text);
- byte[] hash = sha256.ComputeHash(bytes);
- return BitConverter.ToString(hash).Replace("-", "").ToLower();
- }
- }
}
}
diff --git a/ClassicalCompendium/HashMethods.cs b/ClassicalCompendium/HashMethods.cs
new file mode 100644
index 0000000..cd6a963
--- /dev/null
+++ b/ClassicalCompendium/HashMethods.cs
@@ -0,0 +1,513 @@
+using System;
+using System.Text;
+
+namespace ClassicalCompendium
+{
+ public class HashMethods
+ {
+ // Cyclic redundancy checks
+ /*
+ public static string CRC8(string input)
+ {
+
+ }
+
+ public static void CRC16()
+ {
+
+ }
+
+ public static void CRC32()
+ {
+
+ }
+
+ public static void CRC64()
+ {
+
+ }
+ */
+
+ // Checksums
+ /*
+ public static void BSDchecksum()
+ {
+
+ }
+
+ public static void SYSVchecksum()
+ {
+
+ }
+
+ public static void InternetChecksum()
+ {
+
+ }
+
+ public static void Sum8()
+ {
+
+ }
+
+ public static void Sum24()
+ {
+
+ }
+
+ public static void Sum32()
+ {
+
+ }
+
+ public static void Fletcher4()
+ {
+
+ }
+
+ public static void Fletcher8()
+ {
+
+ }
+
+ public static void Fletcher16()
+ {
+
+ }
+
+ public static void Fletcher32()
+ {
+
+ }
+
+ public static void Adler32()
+ {
+
+ }
+
+ public static void Xor8()
+ {
+
+ }
+
+ public static void LuhnAlgorithm()
+ {
+
+ }
+
+ public static void VerhoeffAlgorithm()
+ {
+
+ }
+
+ public static void DammAlgorithm()
+ {
+
+ }
+ */
+
+ // Universal hash function families
+ /*
+ public static void RabinFingerprint()
+ {
+
+ }
+
+ public static void TabulationHashing()
+ {
+
+ }
+
+ public static void ZobristHashing()
+ {
+
+ }
+
+ public static void UniversalOneWayHash()
+ {
+
+ }
+ */
+
+ // Non-cryptographic hash functions
+ /*
+ public static void PearsonHash()
+ {
+
+ }
+
+ public static void PaulHsiehSuperFastHash()
+ {
+
+ }
+
+ public static void Buzhash()
+ {
+
+ }
+
+ public static void FNVHash()
+ {
+
+ }
+
+ public static void JenkinsHash()
+ {
+
+ }
+
+ public static void BernsteinHash()
+ {
+
+ }
+
+ public static void PJWHash()
+ {
+
+ }
+
+ public static void MurmurHash()
+ {
+
+ }
+
+ public static void SpookyHash()
+ {
+
+ }
+
+ public static void FastHash()
+ {
+
+ }
+
+ public static void CityHash()
+ {
+
+ }
+
+ public static void FarmHash()
+ {
+
+ }
+
+ public static void MetroHash()
+ {
+
+ }
+
+ public static void NHash()
+ {
+
+ }
+
+ public static void XXHash()
+ {
+
+ }
+
+ public static void GxHash()
+ {
+
+ }
+
+ public static void PHash()
+ {
+
+ }
+
+ public static void DHash()
+ {
+
+ }
+
+ public static void SDBM()
+ {
+
+ }
+
+ public static void OSDB()
+ {
+
+ }
+
+ public static void KomiHash()
+ {
+
+ }
+ */
+
+ // Keyed cryptographic hash functions
+ /*
+ public static void BLAKE2()
+ {
+
+ }
+
+ public static void BLAKE3()
+ {
+
+ }
+
+ public static void HMAC()
+ {
+
+ }
+
+ public static void KMAC()
+ {
+
+ }
+
+ public static void MD6()
+ {
+
+ }
+
+ public static void OMAC()
+ {
+
+ }
+
+ public static void PMAC()
+ {
+
+ }
+
+ public static void Poly1305AES()
+ {
+
+ }
+
+ public static void SipHash()
+ {
+
+ }
+
+ public static void HighwayHash()
+ {
+
+ }
+
+ public static void UMAC()
+ {
+
+ }
+
+ public static void VMAC()
+ {
+
+ }
+ */
+
+ // Unkeyed cryptographic hash functions
+ /*
+ public static void BLAKE256()
+ {
+
+ }
+
+ public static void BLAKE512()
+ {
+
+ }
+
+ public static void BLAKE2s()
+ {
+
+ }
+
+ public static void BLAKE2b()
+ {
+
+ }
+
+ public static void BLAKE2X()
+ {
+
+ }
+
+ public static void ECOH()
+ {
+
+ }
+
+ public static void FSB()
+ {
+
+ }
+
+ public static void GOST()
+ {
+
+ }
+
+ public static void Grostl()
+ {
+
+ }
+
+ public static void HAS160()
+ {
+
+ }
+
+ public static void HAVAL()
+ {
+
+ }
+
+ public static void JH()
+ {
+
+ }
+
+ public static void LSH()
+ {
+
+ }
+
+ public static void MD2()
+ {
+
+ }
+
+ public static void MD4()
+ {
+
+ }
+
+ public static void MD5()
+ {
+
+ }
+
+ public static void RadioGatun()
+ {
+
+ }
+
+ public static void RIPEMD()
+ {
+
+ }
+
+ public static void RIPEMD128()
+ {
+
+ }
+
+ public static void RIPEMD160()
+ {
+
+ }
+
+ public static void RIPEMD256()
+ {
+
+ }
+
+ public static void RIPEMD320()
+ {
+
+ }
+
+ public static void SHA1()
+ {
+
+ }
+
+ public static void SHA224()
+ {
+
+ }
+ */
+
+ ///
+ /// This method will return the SHA256 hash of the text.
+ ///
+ /// is the string to hash
+ /// A string passed through SHA256 hash.
+ public static string SHA256(string text)
+ {
+ using (var sha256 = System.Security.Cryptography.SHA256.Create())
+ {
+ byte[] bytes = Encoding.UTF8.GetBytes(text);
+ byte[] hash = sha256.ComputeHash(bytes);
+ return BitConverter.ToString(hash).Replace("-", "").ToLower();
+ }
+ }
+
+ ///
+ /// This method will return the SHA384 hash of the text.
+ ///
+ /// is the string to hash
+ /// A string passed through SHA384 hash
+ public static string SHA384(string text)
+ {
+ using (var sha384 = System.Security.Cryptography.SHA384.Create())
+ {
+ byte[] bytes = Encoding.UTF8.GetBytes(text);
+ byte[] hash = sha384.ComputeHash(bytes);
+ return BitConverter.ToString(hash).Replace("-", "").ToLower();
+ }
+ }
+
+ ///
+ /// This method will return the SHA512 hash of the text.
+ ///
+ /// is the string to hash
+ /// A string passed throug SHA512 hash
+ public static string SHA512(string text)
+ {
+ using (var sha512 = System.Security.Cryptography.SHA512.Create())
+ {
+ byte[] bytes = Encoding.UTF8.GetBytes(text);
+ byte[] hash = sha512.ComputeHash(bytes);
+ return BitConverter.ToString(hash).Replace("-", "").ToLower();
+ }
+ }
+
+ /*
+ public static void SHA3()
+ {
+
+ }
+
+ public static void Skein()
+ {
+
+ }
+
+ public static void Snefru()
+ {
+
+ }
+
+ public static void SpectralHash()
+ {
+
+ }
+
+ public static void Streebog()
+ {
+
+ }
+
+ public static void SWIFFT()
+ {
+
+ }
+
+ public static void Tiger()
+ {
+
+ }
+
+ public static void Whirlpool()
+ {
+
+ }
+ */
+ }
+}
diff --git a/ClassicalCompendium/PreSetLists.cs b/ClassicalCompendium/PreSetLists.cs
new file mode 100644
index 0000000..6c6bd0e
--- /dev/null
+++ b/ClassicalCompendium/PreSetLists.cs
@@ -0,0 +1,552 @@
+using System.Collections.Generic;
+
+namespace ClassicalCompendium
+{
+ public class PreSetLists
+ {
+ public class Time
+ {
+ public static List Months = new List
+ {
+ "January",
+ "February",
+ "March",
+ "April",
+ "May",
+ "June",
+ "July",
+ "August",
+ "September",
+ "October",
+ "November",
+ "December"
+ };
+
+ public static List WeekDays = new List
+ {
+ "Monday",
+ "Tuesday",
+ "Wednesday",
+ "Thursday",
+ "Friday",
+ "Saturday",
+ "Sunday"
+ };
+
+ public static List Hours = new List
+ {
+ "12 PM",
+ "1 AM",
+ "2 AM",
+ "3 AM",
+ "4 AM",
+ "5 AM",
+ "6 AM",
+ "7 AM",
+ "8 AM",
+ "9 AM",
+ "10 AM",
+ "11 AM",
+ "12 AM",
+ "1 PM",
+ "2 PM",
+ "3 PM",
+ "4 PM",
+ "5 PM",
+ "6 PM",
+ "7 PM",
+ "8 PM",
+ "9 PM",
+ "10 PM",
+ "11 PM"
+ };
+ }
+
+ public class Country
+ {
+ public static List<(string, string, string, int)> CountryISO = new List<(string, string, string, int)>
+ {
+ ("Afghanistan", "AF", "AFG", 4),
+ ("Ã…land Islands", "AX", "ALA", 248),
+ ("Albania", "AL", "ALB", 8),
+ ("Algeria", "DZ", "DZA", 12),
+ ("American Samoa", "AS", "ASM", 16),
+ ("Andorra", "AD", "AND", 20),
+ ("Angola", "AO", "AGO", 24),
+ ("Anguilla", "AI", "AIA", 660),
+ ("Antarctica", "AQ", "ATA", 10),
+ ("Antigua and Barbuda", "AG", "ATG", 28),
+ ("Argentina", "AR", "ARG", 32),
+ ("Armenia", "AM", "ARM", 51),
+ ("Aruba", "AW", "ABW", 533),
+ ("Australia", "AU", "AUS", 36),
+ ("Austria", "AT", "AUT", 40),
+ ("Azerbaijan", "AZ", "AZE", 31),
+ ("Bahamas", "BS", "BHS", 44),
+ ("Bahrain", "BH", "BHR", 48),
+ ("Bangladesh", "BD", "BGD", 50),
+ ("Barbados", "BB", "BRB", 52),
+ ("Belarus", "BY", "BLR", 112),
+ ("Belgium", "BE", "BEL", 56),
+ ("Belize", "BZ", "BLZ", 84),
+ ("Benin", "BJ", "BEN", 204),
+ ("Bermuda", "BM", "BMU", 60),
+ ("Bhutan", "BT", "BTN", 64),
+ ("Bolivia (Plurinational State of)", "BO", "BOL", 68),
+ ("Bonaire, Sint Eustatius and Saba", "BQ", "BES", 535),
+ ("Bosnia and Herzegovina", "BA", "BIH", 70),
+ ("Botswana", "BW", "BWA", 72),
+ ("Bouvet Island", "BV", "BVT", 74),
+ ("Brazil", "BR", "BRA", 76),
+ ("British Indian Ocean Territory", "IO", "IOT", 86),
+ ("Brunei Darussalam", "BN", "BRN", 96),
+ ("Bulgaria", "BG", "BGR", 100),
+ ("Burkina Faso", "BF", "BFA", 854),
+ ("Burundi", "BI", "BDI", 108),
+ ("Cabo Verde", "CV", "CPV", 132),
+ ("Cambodia", "KH", "KHM", 116),
+ ("Cameroon", "CM", "CMR", 120),
+ ("Canada", "CA", "CAN", 124),
+ ("Cayman Islands", "KY", "CYM", 136),
+ ("Central African Republic", "CF", "CAF", 140),
+ ("Chad", "TD", "TCD", 148),
+ ("Chile", "CL", "CHL", 152),
+ ("China", "CN", "CHN", 156),
+ ("Christmas Island", "CX", "CXR", 162),
+ ("Cocos (Keeling) Islands", "CC", "CCK", 166),
+ ("Colombia", "CO", "COL", 170),
+ ("Comoros", "KM", "COM", 174),
+ ("Congo", "CG", "COG", 178),
+ ("Congo, Democratic Republic of the", "CD", "COD", 180),
+ ("Cook Islands", "CK", "COK", 184),
+ ("Costa Rica", "CR", "CRI", 188),
+ ("Côte d'Ivoire", "CI", "CIV", 384),
+ ("Croatia", "HR", "HRV", 191),
+ ("Cuba", "CU", "CUB", 192),
+ ("Curaçao", "CW", "CUW", 531),
+ ("Cyprus", "CY", "CYP", 196),
+ ("Czechia", "CZ", "CZE", 203),
+ ("Denmark", "DK", "DNK", 208),
+ ("Djibouti", "DJ", "DJI", 262),
+ ("Dominica", "DM", "DMA", 212),
+ ("Dominican Republic", "DO", "DOM", 214),
+ ("Ecuador", "EC", "ECU", 218),
+ ("Egypt", "EG", "EGY", 818),
+ ("El Salvador", "SV", "SLV", 222),
+ ("Equatorial Guinea", "GQ", "GNQ", 226),
+ ("Eritrea", "ER", "ERI", 232),
+ ("Estonia", "EE", "EST", 233),
+ ("Eswatini", "SZ", "SWZ", 748),
+ ("Ethiopia", "ET", "ETH", 231),
+ ("Falkland Islands (Malvinas)", "FK", "FLK", 238),
+ ("Faroe Islands", "FO", "FRO", 234),
+ ("Fiji", "FJ", "FJI", 242),
+ ("Finland", "FI", "FIN", 246),
+ ("France", "FR", "FRA", 250),
+ ("French Guiana", "GF", "GUF", 254),
+ ("French Polynesia", "PF", "PYF", 258),
+ ("French Southern Territories", "TF", "ATF", 260),
+ ("Gabon", "GA", "GAB", 266),
+ ("Gambia", "GM", "GMB", 270),
+ ("Georgia", "GE", "GEO", 268),
+ ("Germany", "DE", "DEU", 276),
+ ("Ghana", "GH", "GHA", 288),
+ ("Gibraltar", "GI", "GIB", 292),
+ ("Greece", "GR", "GRC", 300),
+ ("Greenland", "GL", "GRL", 304),
+ ("Grenada", "GD", "GRD", 308),
+ ("Guadeloupe", "GP", "GLP", 312),
+ ("Guam", "GU", "GUM", 316),
+ ("Guatemala", "GT", "GTM", 320),
+ ("Guernsey", "GG", "GGY", 831),
+ ("Guinea", "GN", "GIN", 324),
+ ("Guinea-Bissau", "GW", "GNB", 624),
+ ("Guyana", "GY", "GUY", 328),
+ ("Haiti", "HT", "HTI", 332),
+ ("Heard Island and McDonald Islands", "HM", "HMD", 334),
+ ("Holy See", "VA", "VAT", 336),
+ ("Honduras", "HN", "HND", 340),
+ ("Hong Kong", "HK", "HKG", 344),
+ ("Hungary", "HU", "HUN", 348),
+ ("Iceland", "IS", "ISL", 352),
+ ("India", "IN", "IND", 356),
+ ("Indonesia", "ID", "IDN", 360),
+ ("Iran (Islamic Republic of)", "IR", "IRN", 364),
+ ("Iraq", "IQ", "IRQ", 368),
+ ("Ireland", "IE", "IRL", 372),
+ ("Isle of Man", "IM", "IMN", 833),
+ ("Israel", "IL", "ISR", 376),
+ ("Italy", "IT", "ITA", 380),
+ ("Jamaica", "JM", "JAM", 388),
+ ("Japan", "JP", "JPN", 392),
+ ("Jersey", "JE", "JEY", 832),
+ ("Jordan", "JO", "JOR", 400),
+ ("Kazakhstan", "KZ", "KAZ", 398),
+ ("Kenya", "KE", "KEN", 404),
+ ("Kiribati", "KI", "KIR", 296),
+ ("Korea (Democratic People's Republic of)", "KP", "PRK", 408),
+ ("Korea, Republic of", "KR", "KOR", 410),
+ ("Kuwait", "KW", "KWT", 414),
+ ("Kyrgyzstan", "KG", "KGZ", 417),
+ ("Lao People's Democratic Republic", "LA", "LAO", 418),
+ ("Latvia", "LV", "LVA", 428),
+ ("Lebanon", "LB", "LBN", 422),
+ ("Lesotho", "LS", "LSO", 426),
+ ("Liberia", "LR", "LBR", 430),
+ ("Libya", "LY", "LBY", 434),
+ ("Liechtenstein", "LI", "LIE", 438),
+ ("Lithuania", "LT", "LTU", 440),
+ ("Luxembourg", "LU", "LUX", 442),
+ ("Macao", "MO", "MAC", 446),
+ ("Madagascar", "MG", "MDG", 450),
+ ("Malawi", "MW", "MWI", 454),
+ ("Malaysia", "MY", "MYS", 458),
+ ("Maldives", "MV", "MDV", 462),
+ ("Mali", "ML", "MLI", 466),
+ ("Malta", "MT", "MLT", 470),
+ ("Marshall Islands", "MH", "MHL", 584),
+ ("Martinique", "MQ", "MTQ", 474),
+ ("Mauritania", "MR", "MRT", 478),
+ ("Mauritius", "MU", "MUS", 480),
+ ("Mayotte", "YT", "MYT", 175),
+ ("Mexico", "MX", "MEX", 484),
+ ("Micronesia (Federated States of)", "FM", "FSM", 583),
+ ("Moldova, Republic of", "MD", "MDA", 498),
+ ("Monaco", "MC", "MCO", 492),
+ ("Mongolia", "MN", "MNG", 496),
+ ("Montenegro", "ME", "MNE", 499),
+ ("Montserrat", "MS", "MSR", 500),
+ ("Morocco", "MA", "MAR", 504),
+ ("Mozambique", "MZ", "MOZ", 508),
+ ("Myanmar", "MM", "MMR", 104),
+ ("Namibia", "NA", "NAM", 516),
+ ("Nauru", "NR", "NRU", 520),
+ ("Nepal", "NP", "NPL", 524),
+ ("Netherlands", "NL", "NLD", 528),
+ ("New Caledonia", "NC", "NCL", 540),
+ ("New Zealand", "NZ", "NZL", 554),
+ ("Nicaragua", "NI", "NIC", 558),
+ ("Niger", "NE", "NER", 562),
+ ("Nigeria", "NG", "NGA", 566),
+ ("Niue", "NU", "NIU", 570),
+ ("Norfolk Island", "NF", "NFK", 574),
+ ("North Macedonia", "MK", "MKD", 807),
+ ("Northern Mariana Islands", "MP", "MNP", 580),
+ ("Norway", "NO", "NOR", 578),
+ ("Oman", "OM", "OMN", 512),
+ ("Pakistan", "PK", "PAK", 586),
+ ("Palau", "PW", "PLW", 585),
+ ("Palestine", "PS", "PSE", 275),
+ ("Panama", "PA", "PAN", 591),
+ ("Papua New Guinea", "PG", "PNG", 598),
+ ("Paraguay", "PY", "PRY", 600),
+ ("Peru", "PE", "PER", 604),
+ ("Philippines", "PH", "PHL", 608),
+ ("Pitcairn", "PN", "PCN", 612),
+ ("Poland", "PL", "POL", 616),
+ ("Portugal", "PT", "PRT", 620),
+ ("Puerto Rico", "PR", "PRI", 630),
+ ("Qatar", "QA", "QAT", 634),
+ ("Réunion", "RE", "REU", 638),
+ ("Romania", "RO", "ROU", 642),
+ ("Russian Federation", "RU", "RUS", 643),
+ ("Rwanda", "RW", "RWA", 646),
+ ("Saint Barthelemy", "BL", "BLM", 652),
+ ("Saint Helena, Ascension and Tristan da Cunha", "SH", "SHN", 654),
+ ("Saint Kitts and Nevis", "KN", "KNA", 659),
+ ("Saint Lucia", "LC", "LCA", 662),
+ ("Saint Martin (French part)", "MF", "MAF", 663),
+ ("Saint Pierre and Miquelon", "PM", "SPM", 666),
+ ("Saint Vincent and the Grenadines", "VC", "VCT", 670),
+ ("Samoa", "WS", "WSM", 882),
+ ("San Marino", "SM", "SMR", 674),
+ ("Sao Tome and Principe", "ST", "STP", 678),
+ ("Saudi Arabia", "SA", "SAU", 682),
+ ("Senegal", "SN", "SEN", 686),
+ ("Serbia", "RS", "SRB", 688),
+ ("Seychelles", "SC", "SYC", 690),
+ ("Sierra Leone", "SL", "SLE", 694),
+ ("Singapore", "SG", "SGP", 702),
+ ("Sint Maarten (Dutch part)", "SX", "SXM", 534),
+ ("Slovakia", "SK", "SVK", 703),
+ ("Slovenia", "SI", "SVN", 705),
+ ("Solomon Islands", "SB", "SLB", 90),
+ ("Somalia", "SO", "SOM", 706),
+ ("South Africa", "ZA", "ZAF", 710),
+ ("South Georgia and the South Sandwich Islands", "GS", "SGS", 239),
+ ("South Sudan", "SS", "SSD", 728),
+ ("Spain", "ES", "ESP", 724),
+ ("Sri Lanka", "LK", "LKA", 144),
+ ("Sudan", "SD", "SDN", 729),
+ ("Suriname", "SR", "SUR", 740),
+ ("Svalbard and Jan Mayen", "SJ", "SJM", 744),
+ ("Sweden", "SE", "SWE", 752),
+ ("Switzerland", "CH", "CHE", 756),
+ ("Syrian Arab Republic", "SY", "SYR", 760),
+ ("Taiwan", "TW", "TWN", 158),
+ ("Tajikistan", "TJ", "TJK", 762),
+ ("Tanzania, United Republic of", "TZ", "TZA", 834),
+ ("Thailand", "TH", "THA", 764),
+ ("Timor-Leste", "TL", "TLS", 626),
+ ("Togo", "TG", "TGO", 768),
+ ("Tokelau", "TK", "TKL", 772),
+ ("Tonga", "TO", "TON", 776),
+ ("Trinidad and Tobago", "TT", "TTO", 780),
+ ("Tunisia", "TN", "TUN", 788),
+ ("Turkey", "TR", "TUR", 792),
+ ("Turkmenistan", "TM", "TKM", 795),
+ ("Turks and Caicos Islands", "TC", "TCA", 796),
+ ("Tuvalu", "TV", "TUV", 798),
+ ("Uganda", "UG", "UGA", 800),
+ ("Ukraine", "UA", "UKR", 804),
+ ("United Arab Emirates", "AE", "ARE", 784),
+ ("United Kingdom of Great Britain and Northern Ireland", "GB", "GBR", 826),
+ ("United States of America", "US", "USA", 840),
+ ("Uruguay", "UY", "URY", 858),
+ ("Uzbekistan", "UZ", "UZB", 860),
+ ("Vanuatu", "VU", "VUT", 548),
+ ("Venezuela (Bolivarian Republic of)", "VE", "VEN", 862),
+ ("Viet Nam", "VN", "VNM", 704),
+ ("Virgin Islands (British)", "VG", "VGB", 92),
+ ("Virgin Islands (U.S.)", "VI", "VIR", 850),
+ ("Wallis and Futuna", "WF", "WLF", 876),
+ ("Western Sahara", "EH", "ESH", 732),
+ ("Yemen", "YE", "YEM", 887),
+ ("Zambia", "ZM", "ZMB", 894),
+ ("Zimbabwe", "ZW", "ZWE", 716)
+ };
+
+ public static List MostUsedLangages = new List
+ {
+ "English",
+ "French",
+ "Arabic",
+ "Standard Chinese",
+ "Spanish",
+ "Persian",
+ "German",
+ "Russian",
+ "Malay",
+ "Portuguese"
+ };
+
+ public static List OfficialLanguages = new List
+ {
+ "Abkhaz",
+ "Afar",
+ "Afrikaans",
+ "Aja-Gbe",
+ "Akan",
+ "Albanian",
+ "Amharic",
+ "Anii",
+ "Arabic",
+ "Armenian",
+ "Assamese",
+ "Aymara",
+ "Azerbaijani",
+ "Balanta",
+ "Bambara",
+ "Bariba",
+ "Basque",
+ "Bassari",
+ "Bedik",
+ "Belarusian",
+ "Bengali",
+ "Berber",
+ "Biali",
+ "Bislama",
+ "Boko",
+ "Bomu",
+ "Bosnian",
+ "Bozo",
+ "Buduma",
+ "Bulgarian",
+ "Burmese",
+ "Cantonese",
+ "Catalan",
+ "Chinese (Mandarin)",
+ "Chichewa",
+ "Chirbawe",
+ "Comorian",
+ "Corsican",
+ "Croatian",
+ "Czech",
+ "Dagaare",
+ "Dagbani",
+ "Dangme",
+ "Danish",
+ "Dari",
+ "Dendi",
+ "Dhivehi",
+ "Dioula",
+ "Dogon",
+ "Dutch",
+ "Dzongkha",
+ "English",
+ "Estonian",
+ "Ewe-Gbe",
+ "Faroese",
+ "Fijian",
+ "Filipino",
+ "Finnish",
+ "Fon-Gbe",
+ "Foodo",
+ "Formosan",
+ "French",
+ "Fula",
+ "Ga",
+ "GÃ idhlig",
+ "Gbe",
+ "Gen-Gbe",
+ "Georgian",
+ "German",
+ "Gonja",
+ "Gourmanché",
+ "Greek",
+ "Guarani",
+ "Gujarati",
+ "Haitian Creole",
+ "Hakka",
+ "Hassaniya",
+ "Hausa",
+ "Hebrew",
+ "Hindi",
+ "Hiri Motu",
+ "Hungarian",
+ "Igbo",
+ "Icelandic",
+ "Indonesian",
+ "Irish",
+ "Italian",
+ "Japanese",
+ "Javanese",
+ "Jola",
+ "Kabye",
+ "Kalanga",
+ "Kannada",
+ "Kanuri",
+ "Kasem",
+ "Kazakh",
+ "Khmer",
+ "Kinyarwanda",
+ "Kirundi",
+ "Kissi",
+ "Koisan",
+ "Korean",
+ "Kpelle",
+ "Kurdish",
+ "Kyrgyz",
+ "Lao",
+ "Latin",
+ "Latvian",
+ "Lituanian",
+ "Lukpa",
+ "Luxembourgish",
+ "Macedonian",
+ "Malagasy",
+ "Malay",
+ "Malinke",
+ "Maltese",
+ "Mamara",
+ "Manding",
+ "Mandinka",
+ "Mandjak",
+ "Mankanya",
+ "Manx Gaelic",
+ "Maori",
+ "Marshallese",
+ "Mauritian Creole",
+ "Mbelime",
+ "Meitei",
+ "Mongolian",
+ "Montenegrin",
+ "Mossi",
+ "Nambya",
+ "Nateni",
+ "Nauruan",
+ "Ndau",
+ "Ndebele",
+ "Nepali",
+ "Noon",
+ "Northern Sotho",
+ "Norwegian",
+ "Nzema",
+ "Oniyan",
+ "Oriya",
+ "Oromo",
+ "Ossetian",
+ "Palauan",
+ "Papiamento",
+ "Pashto",
+ "Persian",
+ "Polish",
+ "Portuguese",
+ "Punjabi",
+ "Quechua",
+ "Romanian",
+ "Romansch",
+ "Russian",
+ "Safen",
+ "Samoa",
+ "Sango",
+ "Sena",
+ "Scots",
+ "Serbian",
+ "Serer",
+ "Seychellois Creole",
+ "Shona",
+ "Sinhala",
+ "Slovak",
+ "Slovene",
+ "Somali",
+ "Songhay-Zarma",
+ "Soninke",
+ "Sotho",
+ "Spanish",
+ "Susu",
+ "Swahili",
+ "Swati",
+ "Swedish",
+ "Syenara",
+ "Taiwanese Hokkien",
+ "Tajik",
+ "Tagalog",
+ "Tamasheq",
+ "Tamil",
+ "Tammari",
+ "Tasawaq",
+ "Tebu",
+ "Telugu",
+ "Tetum",
+ "Thai",
+ "Tigrinya",
+ "Tok Pisin",
+ "Toma",
+ "Tonga",
+ "Tongan",
+ "Tsonga",
+ "Tswana",
+ "Turkish",
+ "Turkmen",
+ "Tuvaluan",
+ "Ukrainian",
+ "Urdu",
+ "Uzbek",
+ "Venda",
+ "Vietnamese",
+ "Waama",
+ "Waci-Gbe",
+ "Wamey",
+ "Welsh",
+ "Wolof",
+ "Xhosa",
+ "Xwela-Gbe",
+ "Yobe",
+ "Yom",
+ "Yoruba",
+ "Zulu"
+ };
+ }
+ }
+}