summaryrefslogtreecommitdiff
path: root/Thronefall_1_57/Decompile/I2.Loc/GoogleLanguages.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_1_57/Decompile/I2.Loc/GoogleLanguages.cs')
-rw-r--r--Thronefall_1_57/Decompile/I2.Loc/GoogleLanguages.cs2873
1 files changed, 2873 insertions, 0 deletions
diff --git a/Thronefall_1_57/Decompile/I2.Loc/GoogleLanguages.cs b/Thronefall_1_57/Decompile/I2.Loc/GoogleLanguages.cs
new file mode 100644
index 0000000..3157d04
--- /dev/null
+++ b/Thronefall_1_57/Decompile/I2.Loc/GoogleLanguages.cs
@@ -0,0 +1,2873 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace I2.Loc;
+
+public static class GoogleLanguages
+{
+ public struct LanguageCodeDef
+ {
+ public string Code;
+
+ public string GoogleCode;
+
+ public bool HasJoinedWords;
+
+ public int PluralRule;
+ }
+
+ public static Dictionary<string, LanguageCodeDef> mLanguageDef = new Dictionary<string, LanguageCodeDef>(StringComparer.Ordinal)
+ {
+ {
+ "Abkhazian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ab",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Afar",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "aa",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Afrikaans",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "af"
+ }
+ },
+ {
+ "Akan",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ak",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Albanian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "sq"
+ }
+ },
+ {
+ "Amharic",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "am"
+ }
+ },
+ {
+ "Arabic",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar"
+ }
+ },
+ {
+ "Arabic/Algeria",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-DZ",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/Bahrain",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-BH",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/Egypt",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-EG",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/Iraq",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-IQ",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/Jordan",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-JO",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/Kuwait",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-KW",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/Lebanon",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-LB",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/Libya",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-LY",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/Morocco",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-MA",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/Oman",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-OM",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/Qatar",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-QA",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/Saudi Arabia",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-SA",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/Syria",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-SY",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/Tunisia",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-TN",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/U.A.E.",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-AE",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Arabic/Yemen",
+ new LanguageCodeDef
+ {
+ PluralRule = 11,
+ Code = "ar-YE",
+ GoogleCode = "ar"
+ }
+ },
+ {
+ "Aragonese",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "an",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Armenian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "hy"
+ }
+ },
+ {
+ "Assamese",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "as",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Avaric",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "av",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Avestan",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ae",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Aymara",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ay",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Azerbaijani",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "az"
+ }
+ },
+ {
+ "Bambara",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "bm",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Bashkir",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ba",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Basque",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "eu"
+ }
+ },
+ {
+ "Basque/Spain",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "eu-ES",
+ GoogleCode = "eu"
+ }
+ },
+ {
+ "Belarusian",
+ new LanguageCodeDef
+ {
+ PluralRule = 6,
+ Code = "be"
+ }
+ },
+ {
+ "Bengali",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "bn"
+ }
+ },
+ {
+ "Bihari",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "bh",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Bislama",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "bi",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Bosnian",
+ new LanguageCodeDef
+ {
+ PluralRule = 6,
+ Code = "bs"
+ }
+ },
+ {
+ "Breton",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "br",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Bulgariaa",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "bg"
+ }
+ },
+ {
+ "Burmese",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "my"
+ }
+ },
+ {
+ "Catalan",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ca"
+ }
+ },
+ {
+ "Chamorro",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ch",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Chechen",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ce",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Chichewa",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ny"
+ }
+ },
+ {
+ "Chinese",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "zh",
+ GoogleCode = "zh-CN",
+ HasJoinedWords = true
+ }
+ },
+ {
+ "Chinese/Hong Kong",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "zh-HK",
+ GoogleCode = "zh-TW",
+ HasJoinedWords = true
+ }
+ },
+ {
+ "Chinese/Macau",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "zh-MO",
+ GoogleCode = "zh-CN",
+ HasJoinedWords = true
+ }
+ },
+ {
+ "Chinese/PRC",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "zh-CN",
+ GoogleCode = "zh-CN",
+ HasJoinedWords = true
+ }
+ },
+ {
+ "Chinese/Simplified",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "zh-CN",
+ GoogleCode = "zh-CN",
+ HasJoinedWords = true
+ }
+ },
+ {
+ "Chinese/Singapore",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "zh-SG",
+ GoogleCode = "zh-CN",
+ HasJoinedWords = true
+ }
+ },
+ {
+ "Chinese/Taiwan",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "zh-TW",
+ GoogleCode = "zh-TW",
+ HasJoinedWords = true
+ }
+ },
+ {
+ "Chinese/Traditional",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "zh-TW",
+ GoogleCode = "zh-TW",
+ HasJoinedWords = true
+ }
+ },
+ {
+ "Chuvash",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "cv",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Cornish",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "kw",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Corsican",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "co"
+ }
+ },
+ {
+ "Cree",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "cr",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Croatian",
+ new LanguageCodeDef
+ {
+ PluralRule = 6,
+ Code = "hr"
+ }
+ },
+ {
+ "Croatian/Bosnia and Herzegovina",
+ new LanguageCodeDef
+ {
+ PluralRule = 5,
+ Code = "hr-BA",
+ GoogleCode = "hr"
+ }
+ },
+ {
+ "Czech",
+ new LanguageCodeDef
+ {
+ PluralRule = 7,
+ Code = "cs"
+ }
+ },
+ {
+ "Danish",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "da"
+ }
+ },
+ {
+ "Divehi",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "dv",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Dutch",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "nl"
+ }
+ },
+ {
+ "Dutch/Belgium",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "nl-BE",
+ GoogleCode = "nl"
+ }
+ },
+ {
+ "Dutch/Netherlands",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "nl-NL",
+ GoogleCode = "nl"
+ }
+ },
+ {
+ "Dzongkha",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "dz",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "English",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "en"
+ }
+ },
+ {
+ "English/Australia",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "en-AU",
+ GoogleCode = "en"
+ }
+ },
+ {
+ "English/Belize",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "en-BZ",
+ GoogleCode = "en"
+ }
+ },
+ {
+ "English/Canada",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "en-CA",
+ GoogleCode = "en"
+ }
+ },
+ {
+ "English/Caribbean",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "en-CB",
+ GoogleCode = "en"
+ }
+ },
+ {
+ "English/Ireland",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "en-IE",
+ GoogleCode = "en"
+ }
+ },
+ {
+ "English/Jamaica",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "en-JM",
+ GoogleCode = "en"
+ }
+ },
+ {
+ "English/New Zealand",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "en-NZ",
+ GoogleCode = "en"
+ }
+ },
+ {
+ "English/Republic of the Philippines",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "en-PH",
+ GoogleCode = "en"
+ }
+ },
+ {
+ "English/South Africa",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "en-ZA",
+ GoogleCode = "en"
+ }
+ },
+ {
+ "English/Trinidad",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "en-TT",
+ GoogleCode = "en"
+ }
+ },
+ {
+ "English/United Kingdom",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "en-GB",
+ GoogleCode = "en"
+ }
+ },
+ {
+ "English/United States",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "en-US",
+ GoogleCode = "en"
+ }
+ },
+ {
+ "English/Zimbabwe",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "en-ZW",
+ GoogleCode = "en"
+ }
+ },
+ {
+ "Esperanto",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "eo"
+ }
+ },
+ {
+ "Estonian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "et"
+ }
+ },
+ {
+ "Ewe",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ee",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Faeroese",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "fo",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Fijian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "fj",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Finnish",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "fi"
+ }
+ },
+ {
+ "French",
+ new LanguageCodeDef
+ {
+ PluralRule = 2,
+ Code = "fr"
+ }
+ },
+ {
+ "French/Belgium",
+ new LanguageCodeDef
+ {
+ PluralRule = 2,
+ Code = "fr-BE",
+ GoogleCode = "fr"
+ }
+ },
+ {
+ "French/Canada",
+ new LanguageCodeDef
+ {
+ PluralRule = 2,
+ Code = "fr-CA",
+ GoogleCode = "fr"
+ }
+ },
+ {
+ "French/France",
+ new LanguageCodeDef
+ {
+ PluralRule = 2,
+ Code = "fr-FR",
+ GoogleCode = "fr"
+ }
+ },
+ {
+ "French/Luxembourg",
+ new LanguageCodeDef
+ {
+ PluralRule = 2,
+ Code = "fr-LU",
+ GoogleCode = "fr"
+ }
+ },
+ {
+ "French/Principality of Monaco",
+ new LanguageCodeDef
+ {
+ PluralRule = 2,
+ Code = "fr-MC",
+ GoogleCode = "fr"
+ }
+ },
+ {
+ "French/Switzerland",
+ new LanguageCodeDef
+ {
+ PluralRule = 2,
+ Code = "fr-CH",
+ GoogleCode = "fr"
+ }
+ },
+ {
+ "Fulah",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ff",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Galician",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "gl"
+ }
+ },
+ {
+ "Galician/Spain",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "gl-ES",
+ GoogleCode = "gl"
+ }
+ },
+ {
+ "Georgian",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "ka"
+ }
+ },
+ {
+ "German",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "de"
+ }
+ },
+ {
+ "German/Austria",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "de-AT",
+ GoogleCode = "de"
+ }
+ },
+ {
+ "German/Germany",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "de-DE",
+ GoogleCode = "de"
+ }
+ },
+ {
+ "German/Liechtenstein",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "de-LI",
+ GoogleCode = "de"
+ }
+ },
+ {
+ "German/Luxembourg",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "de-LU",
+ GoogleCode = "de"
+ }
+ },
+ {
+ "German/Switzerland",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "de-CH",
+ GoogleCode = "de"
+ }
+ },
+ {
+ "Greek",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "el"
+ }
+ },
+ {
+ "Guaraní",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "gn",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Gujarati",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "gu"
+ }
+ },
+ {
+ "Haitian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ht"
+ }
+ },
+ {
+ "Hausa",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ha"
+ }
+ },
+ {
+ "Hebrew",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "he",
+ GoogleCode = "iw"
+ }
+ },
+ {
+ "Herero",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "hz",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Hindi",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "hi"
+ }
+ },
+ {
+ "Hiri Motu",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ho",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Hungarian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "hu"
+ }
+ },
+ {
+ "Interlingua",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ia",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Indonesian",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "id"
+ }
+ },
+ {
+ "Interlingue",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ie",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Irish",
+ new LanguageCodeDef
+ {
+ PluralRule = 10,
+ Code = "ga"
+ }
+ },
+ {
+ "Igbo",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ig"
+ }
+ },
+ {
+ "Inupiaq",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ik",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Ido",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "io",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Icelandic",
+ new LanguageCodeDef
+ {
+ PluralRule = 14,
+ Code = "is"
+ }
+ },
+ {
+ "Italian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "it"
+ }
+ },
+ {
+ "Italian/Italy",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "it-IT",
+ GoogleCode = "it"
+ }
+ },
+ {
+ "Italian/Switzerland",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "it-CH",
+ GoogleCode = "it"
+ }
+ },
+ {
+ "Inuktitut",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "iu",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Japanese",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "ja",
+ HasJoinedWords = true
+ }
+ },
+ {
+ "Javanese",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "jv"
+ }
+ },
+ {
+ "Kalaallisut",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "kl",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Kannada",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "kn"
+ }
+ },
+ {
+ "Kanuri",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "kr",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Kashmiri",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ks",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Kazakh",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "kk"
+ }
+ },
+ {
+ "Central Khmer",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "km"
+ }
+ },
+ {
+ "Kikuyu",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ki",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Kinyarwanda",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "rw",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Kirghiz",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ky"
+ }
+ },
+ {
+ "Komi",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "kv",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Kongo",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "kg",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Korean",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "ko"
+ }
+ },
+ {
+ "Kurdish",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ku"
+ }
+ },
+ {
+ "Kuanyama",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "kj",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Latin",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "la"
+ }
+ },
+ {
+ "Luxembourgish",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "lb"
+ }
+ },
+ {
+ "Ganda",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "lg",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Limburgan",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "li",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Lingala",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ln",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Lao",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "lo"
+ }
+ },
+ {
+ "Latvian",
+ new LanguageCodeDef
+ {
+ PluralRule = 5,
+ Code = "lv"
+ }
+ },
+ {
+ "Luba-Katanga",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "lu",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Lithuanian",
+ new LanguageCodeDef
+ {
+ PluralRule = 5,
+ Code = "lt"
+ }
+ },
+ {
+ "Manx",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "gv",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Macedonian",
+ new LanguageCodeDef
+ {
+ PluralRule = 13,
+ Code = "mk"
+ }
+ },
+ {
+ "Malagasy",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "mg"
+ }
+ },
+ {
+ "Malay",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "ms"
+ }
+ },
+ {
+ "Malay/Brunei Darussalam",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "ms-BN",
+ GoogleCode = "ms"
+ }
+ },
+ {
+ "Malay/Malaysia",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "ms-MY",
+ GoogleCode = "ms"
+ }
+ },
+ {
+ "Malayalam",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ml"
+ }
+ },
+ {
+ "Maltese",
+ new LanguageCodeDef
+ {
+ PluralRule = 12,
+ Code = "mt"
+ }
+ },
+ {
+ "Maori",
+ new LanguageCodeDef
+ {
+ PluralRule = 2,
+ Code = "mi"
+ }
+ },
+ {
+ "Marathi",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "mr"
+ }
+ },
+ {
+ "Marshallese",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "mh",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Mongolian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "mn"
+ }
+ },
+ {
+ "Nauru",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "na",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Navajo",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "nv",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "North Ndebele",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "nd",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Nepali",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ne"
+ }
+ },
+ {
+ "Ndonga",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ng",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Northern Sotho",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ns",
+ GoogleCode = "st"
+ }
+ },
+ {
+ "Norwegian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "nb",
+ GoogleCode = "no"
+ }
+ },
+ {
+ "Norwegian/Nynorsk",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "nn",
+ GoogleCode = "no"
+ }
+ },
+ {
+ "Sichuan Yi",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ii",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "South Ndebele",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "nr",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Occitan",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "oc",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Ojibwa",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "oj",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Church\u00a0Slavic",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "cu",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Oromo",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "om",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Oriya",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "or",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Ossetian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "os",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Pali",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "pi",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Pashto",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ps"
+ }
+ },
+ {
+ "Persian",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "fa"
+ }
+ },
+ {
+ "Polish",
+ new LanguageCodeDef
+ {
+ PluralRule = 8,
+ Code = "pl"
+ }
+ },
+ {
+ "Portuguese",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "pt"
+ }
+ },
+ {
+ "Portuguese/Brazil",
+ new LanguageCodeDef
+ {
+ PluralRule = 2,
+ Code = "pt-BR",
+ GoogleCode = "pt"
+ }
+ },
+ {
+ "Portuguese/Portugal",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "pt-PT",
+ GoogleCode = "pt"
+ }
+ },
+ {
+ "Punjabi",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "pa"
+ }
+ },
+ {
+ "Quechua",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "qu",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Quechua/Bolivia",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "qu-BO",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Quechua/Ecuador",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "qu-EC",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Quechua/Peru",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "qu-PE",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Rhaeto-Romanic",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "rm",
+ GoogleCode = "ro"
+ }
+ },
+ {
+ "Romanian",
+ new LanguageCodeDef
+ {
+ PluralRule = 4,
+ Code = "ro"
+ }
+ },
+ {
+ "Rundi",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "rn",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Russian",
+ new LanguageCodeDef
+ {
+ PluralRule = 6,
+ Code = "ru"
+ }
+ },
+ {
+ "Russian/Republic of Moldova",
+ new LanguageCodeDef
+ {
+ PluralRule = 6,
+ Code = "ru-MO",
+ GoogleCode = "ru"
+ }
+ },
+ {
+ "Sanskrit",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "sa",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Sardinian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "sc",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Sindhi",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "sd"
+ }
+ },
+ {
+ "Northern Sami",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "se",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Samoan",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "sm"
+ }
+ },
+ {
+ "Sango",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "sg",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Serbian",
+ new LanguageCodeDef
+ {
+ PluralRule = 6,
+ Code = "sr"
+ }
+ },
+ {
+ "Serbian/Bosnia and Herzegovina",
+ new LanguageCodeDef
+ {
+ PluralRule = 5,
+ Code = "sr-BA",
+ GoogleCode = "sr"
+ }
+ },
+ {
+ "Serbian/Serbia and Montenegro",
+ new LanguageCodeDef
+ {
+ PluralRule = 5,
+ Code = "sr-SP",
+ GoogleCode = "sr"
+ }
+ },
+ {
+ "Scottish Gaelic",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "gd"
+ }
+ },
+ {
+ "Shona",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "sn"
+ }
+ },
+ {
+ "Sinhala",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "si"
+ }
+ },
+ {
+ "Slovak",
+ new LanguageCodeDef
+ {
+ PluralRule = 7,
+ Code = "sk"
+ }
+ },
+ {
+ "Slovenian",
+ new LanguageCodeDef
+ {
+ PluralRule = 9,
+ Code = "sl"
+ }
+ },
+ {
+ "Somali",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "so"
+ }
+ },
+ {
+ "Southern Sotho",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "st"
+ }
+ },
+ {
+ "Spanish",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es"
+ }
+ },
+ {
+ "Spanish/Argentina",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-AR",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Bolivia",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-BO",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Castilian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-ES",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Chile",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-CL",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Colombia",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-CO",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Costa Rica",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-CR",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Dominican Republic",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-DO",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Ecuador",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-EC",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/El Salvador",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-SV",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Guatemala",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-GT",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Honduras",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-HN",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Mexico",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-MX",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Nicaragua",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-NI",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Panama",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-PA",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Paraguay",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-PY",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Peru",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-PE",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Puerto Rico",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-PR",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Spain",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-ES",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Uruguay",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-UY",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Venezuela",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-VE",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Spanish/Latin Americas",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "es-US",
+ GoogleCode = "es"
+ }
+ },
+ {
+ "Sundanese",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "su"
+ }
+ },
+ {
+ "Swahili",
+ new LanguageCodeDef
+ {
+ Code = "sw"
+ }
+ },
+ {
+ "Swati",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ss",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Swedish",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "sv"
+ }
+ },
+ {
+ "Swedish/Finland",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "sv-FI",
+ GoogleCode = "sv"
+ }
+ },
+ {
+ "Swedish/Sweden",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "sv-SE",
+ GoogleCode = "sv"
+ }
+ },
+ {
+ "Tamil",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ta"
+ }
+ },
+ {
+ "Tatar",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "tt",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Telugu",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "te"
+ }
+ },
+ {
+ "Tajik",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "tg"
+ }
+ },
+ {
+ "Thai",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "th",
+ HasJoinedWords = true
+ }
+ },
+ {
+ "Tigrinya",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ti",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Tibetan",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "bo",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Turkmen",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "tk",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Tagalog",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "tl"
+ }
+ },
+ {
+ "Tswana",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "tn",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Tonga",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "to",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Turkish",
+ new LanguageCodeDef
+ {
+ PluralRule = 0,
+ Code = "tr"
+ }
+ },
+ {
+ "Tsonga",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ts",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Twi",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "tw",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Tahitian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ty",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Uighur",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ug",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Ukrainian",
+ new LanguageCodeDef
+ {
+ PluralRule = 6,
+ Code = "uk"
+ }
+ },
+ {
+ "Urdu",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ur"
+ }
+ },
+ {
+ "Uzbek",
+ new LanguageCodeDef
+ {
+ PluralRule = 2,
+ Code = "uz"
+ }
+ },
+ {
+ "Venda",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "ve",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Vietnamese",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "vi"
+ }
+ },
+ {
+ "Volapük",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "vo",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Walloon",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "wa",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Welsh",
+ new LanguageCodeDef
+ {
+ PluralRule = 16,
+ Code = "cy"
+ }
+ },
+ {
+ "Wolof",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "wo",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Frisian",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "fy"
+ }
+ },
+ {
+ "Xhosa",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "xh"
+ }
+ },
+ {
+ "Yiddish",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "yi"
+ }
+ },
+ {
+ "Yoruba",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "yo"
+ }
+ },
+ {
+ "Zhuang",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "za",
+ GoogleCode = "-"
+ }
+ },
+ {
+ "Zulu",
+ new LanguageCodeDef
+ {
+ PluralRule = 1,
+ Code = "zu"
+ }
+ }
+ };
+
+ public static string GetLanguageCode(string Filter, bool ShowWarnings = false)
+ {
+ if (string.IsNullOrEmpty(Filter))
+ {
+ return string.Empty;
+ }
+ string[] filters = Filter.ToLowerInvariant().Split(" /(),".ToCharArray());
+ foreach (KeyValuePair<string, LanguageCodeDef> item in mLanguageDef)
+ {
+ if (LanguageMatchesFilter(item.Key, filters))
+ {
+ return item.Value.Code;
+ }
+ }
+ if (ShowWarnings)
+ {
+ Debug.Log("Language '" + Filter + "' not recognized. Please, add the language code to GoogleTranslation.cs");
+ }
+ return string.Empty;
+ }
+
+ public static List<string> GetLanguagesForDropdown(string Filter, string CodesToExclude)
+ {
+ string[] filters = Filter.ToLowerInvariant().Split(" /(),".ToCharArray());
+ List<string> list = new List<string>();
+ foreach (KeyValuePair<string, LanguageCodeDef> item in mLanguageDef)
+ {
+ if (string.IsNullOrEmpty(Filter) || LanguageMatchesFilter(item.Key, filters))
+ {
+ string text = string.Concat("[" + item.Value.Code + "]");
+ if (!CodesToExclude.Contains(text))
+ {
+ list.Add(item.Key + " " + text);
+ }
+ }
+ }
+ for (int num = list.Count - 2; num >= 0; num--)
+ {
+ string text2 = list[num].Substring(0, list[num].IndexOf(" ["));
+ if (list[num + 1].StartsWith(text2, StringComparison.Ordinal))
+ {
+ list[num] = text2 + "/" + list[num];
+ list.Insert(num + 1, text2 + "/");
+ }
+ }
+ return list;
+ }
+
+ private static bool LanguageMatchesFilter(string Language, string[] Filters)
+ {
+ Language = Language.ToLowerInvariant();
+ int i = 0;
+ for (int num = Filters.Length; i < num; i++)
+ {
+ if (Filters[i] != "")
+ {
+ if (!Language.Contains(Filters[i].ToLower()))
+ {
+ return false;
+ }
+ Language = Language.Remove(Language.IndexOf(Filters[i], StringComparison.Ordinal), Filters[i].Length);
+ }
+ }
+ return true;
+ }
+
+ public static string GetFormatedLanguageName(string Language)
+ {
+ string empty = string.Empty;
+ int num = Language.IndexOf(" [", StringComparison.Ordinal);
+ if (num > 0)
+ {
+ Language = Language.Substring(0, num);
+ }
+ num = Language.IndexOf('/');
+ if (num > 0)
+ {
+ empty = Language.Substring(0, num);
+ if (Language == empty + "/" + empty)
+ {
+ return empty;
+ }
+ Language = Language.Replace("/", " (") + ")";
+ }
+ return Language;
+ }
+
+ public static string GetCodedLanguage(string Language, string code)
+ {
+ string languageCode = GetLanguageCode(Language);
+ if (string.Compare(code, languageCode, StringComparison.OrdinalIgnoreCase) == 0)
+ {
+ return Language;
+ }
+ return Language + " [" + code + "]";
+ }
+
+ public static void UnPackCodeFromLanguageName(string CodedLanguage, out string Language, out string code)
+ {
+ if (string.IsNullOrEmpty(CodedLanguage))
+ {
+ Language = string.Empty;
+ code = string.Empty;
+ return;
+ }
+ int num = CodedLanguage.IndexOf("[", StringComparison.Ordinal);
+ if (num < 0)
+ {
+ Language = CodedLanguage;
+ code = GetLanguageCode(Language);
+ }
+ else
+ {
+ Language = CodedLanguage.Substring(0, num).Trim();
+ code = CodedLanguage.Substring(num + 1, CodedLanguage.IndexOf("]", num, StringComparison.Ordinal) - num - 1);
+ }
+ }
+
+ public static string GetGoogleLanguageCode(string InternationalCode)
+ {
+ foreach (KeyValuePair<string, LanguageCodeDef> item in mLanguageDef)
+ {
+ if (InternationalCode == item.Value.Code)
+ {
+ if (item.Value.GoogleCode == "-")
+ {
+ return null;
+ }
+ return (!string.IsNullOrEmpty(item.Value.GoogleCode)) ? item.Value.GoogleCode : InternationalCode;
+ }
+ }
+ return InternationalCode;
+ }
+
+ public static string GetLanguageName(string code, bool useParenthesesForRegion = false, bool allowDiscardRegion = true)
+ {
+ foreach (KeyValuePair<string, LanguageCodeDef> item in mLanguageDef)
+ {
+ if (!(code == item.Value.Code))
+ {
+ continue;
+ }
+ string text = item.Key;
+ if (useParenthesesForRegion)
+ {
+ int num = text.IndexOf('/');
+ if (num > 0)
+ {
+ text = text.Substring(0, num) + " (" + text.Substring(num + 1) + ")";
+ }
+ }
+ return text;
+ }
+ if (allowDiscardRegion)
+ {
+ int num2 = code.IndexOf("-", StringComparison.Ordinal);
+ if (num2 > 0)
+ {
+ return GetLanguageName(code.Substring(0, num2), useParenthesesForRegion, allowDiscardRegion: false);
+ }
+ }
+ return null;
+ }
+
+ public static List<string> GetAllInternationalCodes()
+ {
+ HashSet<string> hashSet = new HashSet<string>(StringComparer.Ordinal);
+ foreach (KeyValuePair<string, LanguageCodeDef> item in mLanguageDef)
+ {
+ hashSet.Add(item.Value.Code);
+ }
+ return new List<string>(hashSet);
+ }
+
+ public static bool LanguageCode_HasJoinedWord(string languageCode)
+ {
+ foreach (KeyValuePair<string, LanguageCodeDef> item in mLanguageDef)
+ {
+ if (languageCode == item.Value.GoogleCode || languageCode == item.Value.Code)
+ {
+ return item.Value.HasJoinedWords;
+ }
+ }
+ return false;
+ }
+
+ private static int GetPluralRule(string langCode)
+ {
+ if (langCode.Length > 2)
+ {
+ langCode = langCode.Substring(0, 2);
+ }
+ langCode = langCode.ToLower();
+ foreach (KeyValuePair<string, LanguageCodeDef> item in mLanguageDef)
+ {
+ if (item.Value.Code == langCode)
+ {
+ return item.Value.PluralRule;
+ }
+ }
+ return 0;
+ }
+
+ public static bool LanguageHasPluralType(string langCode, string pluralType)
+ {
+ switch (pluralType)
+ {
+ case "Plural":
+ case "Zero":
+ case "One":
+ return true;
+ default:
+ switch (GetPluralRule(langCode))
+ {
+ case 3:
+ if (!(pluralType == "Two"))
+ {
+ return pluralType == "Few";
+ }
+ return true;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ return pluralType == "Few";
+ case 9:
+ if (!(pluralType == "Two"))
+ {
+ return pluralType == "Few";
+ }
+ return true;
+ case 10:
+ case 11:
+ case 15:
+ case 16:
+ if (!(pluralType == "Two") && !(pluralType == "Few"))
+ {
+ return pluralType == "Many";
+ }
+ return true;
+ case 12:
+ if (!(pluralType == "Few"))
+ {
+ return pluralType == "Many";
+ }
+ return true;
+ case 13:
+ return pluralType == "Two";
+ default:
+ return false;
+ }
+ }
+ }
+
+ public static ePluralType GetPluralType(string langCode, int n)
+ {
+ switch (n)
+ {
+ case 0:
+ return ePluralType.Zero;
+ case 1:
+ return ePluralType.One;
+ default:
+ switch (GetPluralRule(langCode))
+ {
+ case 0:
+ return ePluralType.Plural;
+ case 1:
+ if (n != 1)
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.One;
+ case 2:
+ if (n > 1)
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.One;
+ case 3:
+ switch (n)
+ {
+ default:
+ if (!inRange(n, 3, 10) && !inRange(n, 13, 19))
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.Few;
+ case 2:
+ case 12:
+ return ePluralType.Two;
+ case 1:
+ case 11:
+ return ePluralType.One;
+ }
+ case 4:
+ if (n != 1)
+ {
+ if (!inRange(n % 100, 1, 19))
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.Few;
+ }
+ return ePluralType.One;
+ case 5:
+ if (n % 10 != 1 || n % 100 == 11)
+ {
+ if (n % 10 < 2 || (n % 100 >= 10 && n % 100 < 20))
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.Few;
+ }
+ return ePluralType.One;
+ case 6:
+ if (n % 10 != 1 || n % 100 == 11)
+ {
+ if (!inRange(n % 10, 2, 4) || inRange(n % 100, 12, 14))
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.Few;
+ }
+ return ePluralType.One;
+ case 7:
+ if (n != 1)
+ {
+ if (!inRange(n, 2, 4))
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.Few;
+ }
+ return ePluralType.One;
+ case 8:
+ if (n != 1)
+ {
+ if (!inRange(n % 10, 2, 4) || inRange(n % 100, 12, 14))
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.Few;
+ }
+ return ePluralType.One;
+ case 9:
+ if (n % 100 != 1)
+ {
+ if (n % 100 != 2)
+ {
+ if (!inRange(n % 100, 3, 4))
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.Few;
+ }
+ return ePluralType.Two;
+ }
+ return ePluralType.One;
+ case 10:
+ switch (n)
+ {
+ default:
+ if (!inRange(n, 3, 6))
+ {
+ if (!inRange(n, 7, 10))
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.Many;
+ }
+ return ePluralType.Few;
+ case 2:
+ return ePluralType.Two;
+ case 1:
+ return ePluralType.One;
+ }
+ case 11:
+ switch (n)
+ {
+ default:
+ if (!inRange(n % 100, 3, 10))
+ {
+ if (n % 100 < 11)
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.Many;
+ }
+ return ePluralType.Few;
+ case 2:
+ return ePluralType.Two;
+ case 1:
+ return ePluralType.One;
+ case 0:
+ return ePluralType.Zero;
+ }
+ case 12:
+ if (n != 1)
+ {
+ if (!inRange(n % 100, 1, 10))
+ {
+ if (!inRange(n % 100, 11, 19))
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.Many;
+ }
+ return ePluralType.Few;
+ }
+ return ePluralType.One;
+ case 13:
+ if (n % 10 != 1)
+ {
+ if (n % 10 != 2)
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.Two;
+ }
+ return ePluralType.One;
+ case 14:
+ if (n % 10 != 1 || n % 100 == 11)
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.One;
+ case 15:
+ if (n % 10 != 1 || n % 100 == 11 || n % 100 == 71 || n % 100 == 91)
+ {
+ if (n % 10 != 2 || n % 100 == 12 || n % 100 == 72 || n % 100 == 92)
+ {
+ if ((n % 10 != 3 && n % 10 != 4 && n % 10 != 9) || n % 100 == 13 || n % 100 == 14 || n % 100 == 19 || n % 100 == 73 || n % 100 == 74 || n % 100 == 79 || n % 100 == 93 || n % 100 == 94 || n % 100 == 99)
+ {
+ if (n % 1000000 != 0)
+ {
+ return ePluralType.Plural;
+ }
+ return ePluralType.Many;
+ }
+ return ePluralType.Few;
+ }
+ return ePluralType.Two;
+ }
+ return ePluralType.One;
+ case 16:
+ return n switch
+ {
+ 6 => ePluralType.Many,
+ 3 => ePluralType.Few,
+ 2 => ePluralType.Two,
+ 1 => ePluralType.One,
+ 0 => ePluralType.Zero,
+ _ => ePluralType.Plural,
+ };
+ default:
+ return ePluralType.Plural;
+ }
+ }
+ }
+
+ public static int GetPluralTestNumber(string langCode, ePluralType pluralType)
+ {
+ switch (pluralType)
+ {
+ case ePluralType.Zero:
+ return 0;
+ case ePluralType.One:
+ return 1;
+ case ePluralType.Few:
+ return 3;
+ case ePluralType.Many:
+ switch (GetPluralRule(langCode))
+ {
+ case 10:
+ return 8;
+ case 11:
+ case 12:
+ return 13;
+ case 15:
+ return 1000000;
+ default:
+ return 6;
+ }
+ default:
+ return 936;
+ }
+ }
+
+ private static bool inRange(int amount, int min, int max)
+ {
+ if (amount >= min)
+ {
+ return amount <= max;
+ }
+ return false;
+ }
+}