From 6fd07f3966b1e9ae0322eee9c2aca76e091167c2 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Fri, 27 Oct 2017 20:51:54 -0500 Subject: [PATCH] add 1st migration, seed Languages --- data/DataSample.json | 29 +- data/DataSchema.json | 368 +- data/Languages.json | 3318 ++++++++--------- .../20171028013855_InitialCreate.Designer.cs | 249 ++ .../20171028013855_InitialCreate.cs | 193 + .../FilterListsDbContextModelSnapshot.cs | 248 ++ src/FilterLists.Api/Program.cs | 11 +- src/FilterLists.Data/DbInitializer.cs | 28 + 8 files changed, 2673 insertions(+), 1771 deletions(-) create mode 100644 src/FilterLists.Api/Migrations/20171028013855_InitialCreate.Designer.cs create mode 100644 src/FilterLists.Api/Migrations/20171028013855_InitialCreate.cs create mode 100644 src/FilterLists.Api/Migrations/FilterListsDbContextModelSnapshot.cs create mode 100644 src/FilterLists.Data/DbInitializer.cs diff --git a/data/DataSample.json b/data/DataSample.json index 0bb393709..9c2804c32 100644 --- a/data/DataSample.json +++ b/data/DataSample.json @@ -1,32 +1,45 @@ { + "Email": "john.smith@protonmail.com", "FilterLists": [ { - "Languages": null, "Description": "A sample list to filter out advertisements.", "DescriptionSourceUrl": "https://mysample.list/advertisements", "DonateUrl": "https://mysample.list/donate/", - "Email": "contact@mysample.list", + "EmailAddress": "contact@mysample.list", "ForumUrl": "https://mysample.list/forum/", "HomeUrl": "https://mysample.list/", "IssuesUrl": "https://github.com/johnsmith/mysamplelist/issues", + "FilterListLanguages": null, + "FilterListSoftware": null, + "MaintainerId": 0, "Name": "My Sample Advertisement Filter List", - "ViewUrl": "https://mysample.list/list.txt" + "ViewUrl": "https://mysample.list/list.txt", + "Id": 0, + "CreatedDateUtc": "0001-01-01T00:00:00", + "ModifiedDateUtc": "0001-01-01T00:00:00" }, { - "Languages": null, "Description": "A sample list to filter out malware.", "DescriptionSourceUrl": "https://mysample.list/malware", "DonateUrl": "https://mysample.list/donate/", - "Email": "contact@mysample.list", + "EmailAddress": "contact@mysample.list", "ForumUrl": "https://mysample.list/forum/", "HomeUrl": "https://mysample.list/", "IssuesUrl": "https://github.com/johnsmith/mysamplelist/issues", + "FilterListLanguages": null, + "FilterListSoftware": null, + "MaintainerId": 0, "Name": "My Sample Malware Filter List", - "ViewUrl": "https://mysample.list/list.txt" + "ViewUrl": "https://mysample.list/list.txt", + "Id": 0, + "CreatedDateUtc": "0001-01-01T00:00:00", + "ModifiedDateUtc": "0001-01-01T00:00:00" } ], - "Email": "john.smith@protonmail.com", "HomeUrl": "https://johnsmith.com", "Name": "John Smith", - "TwitterHandle": "@johnsmith" + "TwitterHandle": "@johnsmith", + "Id": 0, + "CreatedDateUtc": "0001-01-01T00:00:00", + "ModifiedDateUtc": "0001-01-01T00:00:00" } \ No newline at end of file diff --git a/data/DataSchema.json b/data/DataSchema.json index 921e2eec9..3e64bf8c2 100644 --- a/data/DataSchema.json +++ b/data/DataSchema.json @@ -6,107 +6,189 @@ "null" ], "properties": { - "Languages": { + "Description": { + "type": [ + "string", + "null" + ] + }, + "DescriptionSourceUrl": { + "type": [ + "string", + "null" + ] + }, + "DonateUrl": { + "type": [ + "string", + "null" + ] + }, + "EmailAddress": { + "type": [ + "string", + "null" + ] + }, + "ForumUrl": { + "type": [ + "string", + "null" + ] + }, + "HomeUrl": { + "type": [ + "string", + "null" + ] + }, + "IssuesUrl": { + "type": [ + "string", + "null" + ] + }, + "FilterListLanguages": { "type": [ "array", "null" ], "items": { - "$ref": "#/definitions/Language" + "$ref": "#/definitions/FilterListLanguage" } }, - "Description": { - "description": "A brief description of the list's functionality. Preferably, this is quoted (if non-English, translate to English via translator or Google Translate for consistency) from the list's documentation or composed by a maintainer of the list. If neither are available, a generic description should be composed by the FilterLists contributor.", + "FilterListSoftware": { "type": [ - "string", + "array", "null" ], - "maxLength": 1022 + "items": { + "$ref": "#/definitions/FilterListSoftware" + } }, - "DescriptionSourceUrl": { - "description": "The URL to the list's documentation page from which the description was quoted if applicable.", - "type": [ - "string", - "null" - ], - "minLength": 6, - "maxLength": 2083, - "format": "uri" - }, - "DonateUrl": { - "description": "The URL to the list's donation page. This could be a custom PayPal or similar link, or a link to a web page discussing various donation options. Pull requests that include changes to this link will undergo further verification to prevent fraud.", - "type": [ - "string", - "null" - ], - "minLength": 6, - "maxLength": 2083, - "format": "uri" - }, - "Email": { - "description": "The email address of the list's maintainer(s) if publicly available.", - "type": [ - "string", - "null" - ], - "minLength": 7, - "maxLength": 126, - "format": "email" - }, - "ForumUrl": { - "description": "The URL to the list's forum where issues, change requests, etc. are discussed.", - "type": [ - "string", - "null" - ], - "minLength": 6, - "maxLength": 2083, - "format": "uri" - }, - "HomeUrl": { - "description": "The URL to the list's home page. Preferably, this is stated in the header of the list. Alternatively, it could be a custom domain, GitHub page, blog post, forum post, etc. that serves as a primary source of information for the list.", - "type": [ - "string", - "null" - ], - "minLength": 6, - "maxLength": 2083, - "format": "uri" - }, - "IssuesUrl": { - "description": "The URL to the list's GitHub Issues.", - "type": [ - "string", - "null" - ], - "minLength": 6, - "maxLength": 2083, - "format": "uri" + "MaintainerId": { + "type": "integer" }, "Name": { - "description": "The name of the list as stated by the list maintainer(s) in title case.", - "type": "string", - "maxLength": 126 + "type": [ + "string", + "null" + ] }, "ViewUrl": { - "description": "The URL to the list in raw text format. zip files and other formats are acceptable if no text format is available.", + "type": [ + "string", + "null" + ] + }, + "Id": { + "type": "integer" + }, + "CreatedDateUtc": { "type": "string", - "minLength": 6, - "maxLength": 2083, - "format": "uri" + "format": "date-time" + }, + "ModifiedDateUtc": { + "type": "string", + "format": "date-time" } }, "required": [ - "Languages", "Description", "DescriptionSourceUrl", "DonateUrl", - "Email", + "EmailAddress", "ForumUrl", "HomeUrl", "IssuesUrl", + "FilterListLanguages", + "FilterListSoftware", + "MaintainerId", "Name", - "ViewUrl" + "ViewUrl", + "Id", + "CreatedDateUtc", + "ModifiedDateUtc" + ] + }, + "FilterListLanguage": { + "type": [ + "object", + "null" + ], + "properties": { + "FilterListId": { + "type": "integer" + }, + "FilterList": { + "$ref": "#/definitions/FilterList" + }, + "LanguageId": { + "type": "integer" + }, + "Language": { + "$ref": "#/definitions/Language" + }, + "Id": { + "type": "integer" + }, + "CreatedDateUtc": { + "type": "string", + "format": "date-time" + }, + "ModifiedDateUtc": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "FilterListId", + "FilterList", + "LanguageId", + "Language", + "Id", + "CreatedDateUtc", + "ModifiedDateUtc" + ] + }, + "FilterListSoftware": { + "type": [ + "object", + "null" + ], + "properties": { + "FilterListId": { + "type": "integer" + }, + "FilterList": { + "$ref": "#/definitions/FilterList" + }, + "SoftwareId": { + "type": "integer" + }, + "Software": { + "$ref": "#/definitions/Software" + }, + "Id": { + "type": "integer" + }, + "CreatedDateUtc": { + "type": "string", + "format": "date-time" + }, + "ModifiedDateUtc": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "FilterListId", + "FilterList", + "SoftwareId", + "Software", + "Id", + "CreatedDateUtc", + "ModifiedDateUtc" ] }, "Language": { @@ -115,6 +197,15 @@ "null" ], "properties": { + "FilterListLanguages": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/FilterListLanguage" + } + }, "Iso6391": { "type": [ "string", @@ -156,21 +247,97 @@ "string", "null" ] + }, + "Id": { + "type": "integer" + }, + "CreatedDateUtc": { + "type": "string", + "format": "date-time" + }, + "ModifiedDateUtc": { + "type": "string", + "format": "date-time" } }, "required": [ + "FilterListLanguages", "Iso6391", "Iso6392", "Iso6392B", "Iso6392T", "Iso6393", "LocalName", - "Name" + "Name", + "Id", + "CreatedDateUtc", + "ModifiedDateUtc" + ] + }, + "Software": { + "type": [ + "object", + "null" + ], + "properties": { + "DownloadUrl": { + "type": [ + "string", + "null" + ] + }, + "HomeUrl": { + "type": [ + "string", + "null" + ] + }, + "FilterListSoftware": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/FilterListSoftware" + } + }, + "Name": { + "type": [ + "string", + "null" + ] + }, + "Id": { + "type": "integer" + }, + "CreatedDateUtc": { + "type": "string", + "format": "date-time" + }, + "ModifiedDateUtc": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "DownloadUrl", + "HomeUrl", + "FilterListSoftware", + "Name", + "Id", + "CreatedDateUtc", + "ModifiedDateUtc" ] } }, "type": "object", "properties": { + "Email": { + "type": [ + "string", + "null" + ] + }, "FilterLists": { "type": [ "array", @@ -180,45 +347,44 @@ "$ref": "#/definitions/FilterList" } }, - "Email": { - "description": "The email address of the list maintainer.", - "type": [ - "string", - "null" - ], - "minLength": 7, - "maxLength": 126, - "format": "email" - }, "HomeUrl": { - "description": "The URL to the list maintainer's home page.", "type": [ "string", "null" - ], - "minLength": 6, - "maxLength": 2083, - "format": "uri" + ] }, "Name": { - "description": "The name of the list maintainer.", - "type": "string", - "maxLength": 126 - }, - "TwitterHandle": { - "description": "The Twitter handle of the list maintainer.", "type": [ "string", "null" - ], - "maxLength": 126 + ] + }, + "TwitterHandle": { + "type": [ + "string", + "null" + ] + }, + "Id": { + "type": "integer" + }, + "CreatedDateUtc": { + "type": "string", + "format": "date-time" + }, + "ModifiedDateUtc": { + "type": "string", + "format": "date-time" } }, "required": [ - "FilterLists", "Email", + "FilterLists", "HomeUrl", "Name", - "TwitterHandle" + "TwitterHandle", + "Id", + "CreatedDateUtc", + "ModifiedDateUtc" ] } \ No newline at end of file diff --git a/data/Languages.json b/data/Languages.json index 9454135f7..beea38f93 100644 --- a/data/Languages.json +++ b/data/Languages.json @@ -1,1660 +1,1658 @@ -{ - "Languages": [ - { - "Iso6391": "ab", - "Iso6392": "abk", - "Iso6392B": "abk", - "Iso6392T": "abk", - "Iso6393": "abk", - "LocalName": "Аҧсуа", - "Name": "Abkhaz" - }, - { - "Iso6391": "aa", - "Iso6392": "aar", - "Iso6392B": "aar", - "Iso6392T": "aar", - "Iso6393": "aar", - "LocalName": "Afaraf", - "Name": "Afar" - }, - { - "Iso6391": "af", - "Iso6392": "afr", - "Iso6392B": "afr", - "Iso6392T": "afr", - "Iso6393": "afr", - "LocalName": "Afrikaans", - "Name": "Afrikaans" - }, - { - "Iso6391": "ak", - "Iso6392": "aka", - "Iso6392B": "aka", - "Iso6392T": "aka", - "Iso6393": "aka", - "LocalName": "Akan", - "Name": "Akan" - }, - { - "Iso6391": "sq", - "Iso6392": "sqi", - "Iso6392B": "alb", - "Iso6392T": "sqi", - "Iso6393": "sqi", - "LocalName": "Shqip", - "Name": "Albanian" - }, - { - "Iso6391": "am", - "Iso6392": "amh", - "Iso6392B": "amh", - "Iso6392T": "amh", - "Iso6393": "amh", - "LocalName": "አማርኛ", - "Name": "Amharic" - }, - { - "Iso6391": "ar", - "Iso6392": "ara", - "Iso6392B": "ara", - "Iso6392T": "ara", - "Iso6393": "ara", - "LocalName": "العربية", - "Name": "Arabic" - }, - { - "Iso6391": "an", - "Iso6392": "arg", - "Iso6392B": "arg", - "Iso6392T": "arg", - "Iso6393": "arg", - "LocalName": "Aragonés", - "Name": "Aragonese" - }, - { - "Iso6391": "hy", - "Iso6392": "hye", - "Iso6392B": "arm", - "Iso6392T": "hye", - "Iso6393": "hye", - "LocalName": "Հայերեն", - "Name": "Armenian" - }, - { - "Iso6391": "as", - "Iso6392": "asm", - "Iso6392B": "asm", - "Iso6392T": "asm", - "Iso6393": "asm", - "LocalName": "অসমীয়া", - "Name": "Assamese" - }, - { - "Iso6391": "av", - "Iso6392": "ava", - "Iso6392B": "ava", - "Iso6392T": "ava", - "Iso6393": "ava", - "LocalName": "Авар", - "Name": "Avaric" - }, - { - "Iso6391": "ae", - "Iso6392": "ave", - "Iso6392B": "ave", - "Iso6392T": "ave", - "Iso6393": "ave", - "LocalName": "avesta", - "Name": "Avestan" - }, - { - "Iso6391": "ay", - "Iso6392": "aym", - "Iso6392B": "aym", - "Iso6392T": "aym", - "Iso6393": "aym", - "LocalName": "Aymar", - "Name": "Aymara" - }, - { - "Iso6391": "az", - "Iso6392": "aze", - "Iso6392B": "aze", - "Iso6392T": "aze", - "Iso6393": "aze", - "LocalName": "Azərbaycanca", - "Name": "Azerbaijani" - }, - { - "Iso6391": "bm", - "Iso6392": "bam", - "Iso6392B": "bam", - "Iso6392T": "bam", - "Iso6393": "bam", - "LocalName": "Bamanankan", - "Name": "Bambara" - }, - { - "Iso6391": "ba", - "Iso6392": "bak", - "Iso6392B": "bak", - "Iso6392T": "bak", - "Iso6393": "bak", - "LocalName": "Башҡортса", - "Name": "Bashkir" - }, - { - "Iso6391": "eu", - "Iso6392": "eus", - "Iso6392B": "baq", - "Iso6392T": "eus", - "Iso6393": "eus", - "LocalName": "Euskara", - "Name": "Basque" - }, - { - "Iso6391": "be", - "Iso6392": "bel", - "Iso6392B": "bel", - "Iso6392T": "bel", - "Iso6393": "bel", - "LocalName": "Беларуская", - "Name": "Belarusian" - }, - { - "Iso6391": "bn", - "Iso6392": "ben", - "Iso6392B": "ben", - "Iso6392T": "ben", - "Iso6393": "ben", - "LocalName": "বাংলা", - "Name": "Bengali" - }, - { - "Iso6391": "bh", - "Iso6392": "bih", - "Iso6392B": "bih", - "Iso6392T": "bih", - "Iso6393": "bih", - "LocalName": "भोजपुरी", - "Name": "Bihari" - }, - { - "Iso6391": "bi", - "Iso6392": "bis", - "Iso6392B": "bis", - "Iso6392T": "bis", - "Iso6393": "bis", - "LocalName": "Bislama", - "Name": "Bislama" - }, - { - "Iso6391": "bs", - "Iso6392": "bos", - "Iso6392B": "bos", - "Iso6392T": "bos", - "Iso6393": "bos", - "LocalName": "Bosanski", - "Name": "Bosnian" - }, - { - "Iso6391": "br", - "Iso6392": "bre", - "Iso6392B": "bre", - "Iso6392T": "bre", - "Iso6393": "bre", - "LocalName": "Brezhoneg", - "Name": "Breton" - }, - { - "Iso6391": "bg", - "Iso6392": "bul", - "Iso6392B": "bul", - "Iso6392T": "bul", - "Iso6393": "bul", - "LocalName": "Български", - "Name": "Bulgarian" - }, - { - "Iso6391": "my", - "Iso6392": "mya", - "Iso6392B": "bur", - "Iso6392T": "mya", - "Iso6393": "mya", - "LocalName": "မြန်မာဘာသာ", - "Name": "Burmese" - }, - { - "Iso6391": "ca", - "Iso6392": "cat", - "Iso6392B": "cat", - "Iso6392T": "cat", - "Iso6393": "cat", - "LocalName": "Català", - "Name": "Catalan" - }, - { - "Iso6391": "ch", - "Iso6392": "cha", - "Iso6392B": "cha", - "Iso6392T": "cha", - "Iso6393": "cha", - "LocalName": "Chamoru", - "Name": "Chamorro" - }, - { - "Iso6391": "ce", - "Iso6392": "che", - "Iso6392B": "che", - "Iso6392T": "che", - "Iso6393": "che", - "LocalName": "Нохчийн", - "Name": "Chechen" - }, - { - "Iso6391": "ny", - "Iso6392": "nya", - "Iso6392B": "nya", - "Iso6392T": "nya", - "Iso6393": "nya", - "LocalName": "Chichewa", - "Name": "Chichewa" - }, - { - "Iso6391": "zh", - "Iso6392": "zho", - "Iso6392B": "chi", - "Iso6392T": "zho", - "Iso6393": "zho", - "LocalName": "中文", - "Name": "Chinese" - }, - { - "Iso6391": "cv", - "Iso6392": "chv", - "Iso6392B": "chv", - "Iso6392T": "chv", - "Iso6393": "chv", - "LocalName": "Чӑвашла", - "Name": "Chuvash" - }, - { - "Iso6391": "kw", - "Iso6392": "cor", - "Iso6392B": "cor", - "Iso6392T": "cor", - "Iso6393": "cor", - "LocalName": "Kernewek", - "Name": "Cornish" - }, - { - "Iso6391": "co", - "Iso6392": "cos", - "Iso6392B": "cos", - "Iso6392T": "cos", - "Iso6393": "cos", - "LocalName": "Corsu", - "Name": "Corsican" - }, - { - "Iso6391": "cr", - "Iso6392": "cre", - "Iso6392B": "cre", - "Iso6392T": "cre", - "Iso6393": "cre", - "LocalName": "ᓀᐦᐃᔭᐍᐏᐣ", - "Name": "Cree" - }, - { - "Iso6391": "hr", - "Iso6392": "hrv", - "Iso6392B": "hrv", - "Iso6392T": "hrv", - "Iso6393": "hrv", - "LocalName": "Hrvatski", - "Name": "Croatian" - }, - { - "Iso6391": "cs", - "Iso6392": "ces", - "Iso6392B": "cze", - "Iso6392T": "ces", - "Iso6393": "ces", - "LocalName": "Čeština", - "Name": "Czech" - }, - { - "Iso6391": "da", - "Iso6392": "dan", - "Iso6392B": "dan", - "Iso6392T": "dan", - "Iso6393": "dan", - "LocalName": "Dansk", - "Name": "Danish" - }, - { - "Iso6391": "dv", - "Iso6392": "div", - "Iso6392B": "div", - "Iso6392T": "div", - "Iso6393": "div", - "LocalName": "Divehi", - "Name": "Divehi" - }, - { - "Iso6391": "nl", - "Iso6392": "nld", - "Iso6392B": "dut", - "Iso6392T": "nld", - "Iso6393": "nld", - "LocalName": "Nederlands", - "Name": "Dutch" - }, - { - "Iso6391": "dz", - "Iso6392": "dzo", - "Iso6392B": "dzo", - "Iso6392T": "dzo", - "Iso6393": "dzo", - "LocalName": "རྫོང་ཁ", - "Name": "Dzongkha" - }, - { - "Iso6391": "en", - "Iso6392": "eng", - "Iso6392B": "eng", - "Iso6392T": "eng", - "Iso6393": "eng", - "LocalName": "English", - "Name": "English" - }, - { - "Iso6391": "eo", - "Iso6392": "epo", - "Iso6392B": "epo", - "Iso6392T": "epo", - "Iso6393": "epo", - "LocalName": "Esperanto", - "Name": "Esperanto" - }, - { - "Iso6391": "et", - "Iso6392": "est", - "Iso6392B": "est", - "Iso6392T": "est", - "Iso6393": "est", - "LocalName": "Eesti", - "Name": "Estonian" - }, - { - "Iso6391": "ee", - "Iso6392": "ewe", - "Iso6392B": "ewe", - "Iso6392T": "ewe", - "Iso6393": "ewe", - "LocalName": "Eʋegbe", - "Name": "Ewe" - }, - { - "Iso6391": "fo", - "Iso6392": "fao", - "Iso6392B": "fao", - "Iso6392T": "fao", - "Iso6393": "fao", - "LocalName": "Føroyskt", - "Name": "Faroese" - }, - { - "Iso6391": "fj", - "Iso6392": "fij", - "Iso6392B": "fij", - "Iso6392T": "fij", - "Iso6393": "fij", - "LocalName": "Na Vosa Vaka-Viti", - "Name": "Fijian" - }, - { - "Iso6391": "fi", - "Iso6392": "fin", - "Iso6392B": "fin", - "Iso6392T": "fin", - "Iso6393": "fin", - "LocalName": "Suomi", - "Name": "Finnish" - }, - { - "Iso6391": "fr", - "Iso6392": "fra", - "Iso6392B": "fre", - "Iso6392T": "fra", - "Iso6393": "fra", - "LocalName": "Français", - "Name": "French" - }, - { - "Iso6391": "ff", - "Iso6392": "ful", - "Iso6392B": "ful", - "Iso6392T": "ful", - "Iso6393": "ful", - "LocalName": "Fulfulde", - "Name": "Fula" - }, - { - "Iso6391": "gl", - "Iso6392": "glg", - "Iso6392B": "glg", - "Iso6392T": "glg", - "Iso6393": "glg", - "LocalName": "Galego", - "Name": "Galician" - }, - { - "Iso6391": "ka", - "Iso6392": "kat", - "Iso6392B": "geo", - "Iso6392T": "kat", - "Iso6393": "kat", - "LocalName": "ქართული", - "Name": "Georgian" - }, - { - "Iso6391": "de", - "Iso6392": "deu", - "Iso6392B": "ger", - "Iso6392T": "deu", - "Iso6393": "deu", - "LocalName": "Deutsch", - "Name": "German" - }, - { - "Iso6391": "el", - "Iso6392": "ell", - "Iso6392B": "gre", - "Iso6392T": "ell", - "Iso6393": "ell", - "LocalName": "Ελληνικά", - "Name": "Greek" - }, - { - "Iso6391": "gn", - "Iso6392": "grn", - "Iso6392B": "grn", - "Iso6392T": "grn", - "Iso6393": "grn", - "LocalName": "Avañe'ẽ", - "Name": "Guaraní" - }, - { - "Iso6391": "gu", - "Iso6392": "guj", - "Iso6392B": "guj", - "Iso6392T": "guj", - "Iso6393": "guj", - "LocalName": "ગુજરાતી", - "Name": "Gujarati" - }, - { - "Iso6391": "ht", - "Iso6392": "hat", - "Iso6392B": "hat", - "Iso6392T": "hat", - "Iso6393": "hat", - "LocalName": "Kreyòl Ayisyen", - "Name": "Haitian" - }, - { - "Iso6391": "ha", - "Iso6392": "hau", - "Iso6392B": "hau", - "Iso6392T": "hau", - "Iso6393": "hau", - "LocalName": "هَوُسَ", - "Name": "Hausa" - }, - { - "Iso6391": "he", - "Iso6392": "heb", - "Iso6392B": "heb", - "Iso6392T": "heb", - "Iso6393": "heb", - "LocalName": "עברית", - "Name": "Hebrew" - }, - { - "Iso6391": "hz", - "Iso6392": "her", - "Iso6392B": "her", - "Iso6392T": "her", - "Iso6393": "her", - "LocalName": "Otjiherero", - "Name": "Herero" - }, - { - "Iso6391": "hi", - "Iso6392": "hin", - "Iso6392B": "hin", - "Iso6392T": "hin", - "Iso6393": "hin", - "LocalName": "हिन्दी", - "Name": "Hindi" - }, - { - "Iso6391": "ho", - "Iso6392": "hmo", - "Iso6392B": "hmo", - "Iso6392T": "hmo", - "Iso6393": "hmo", - "LocalName": "Hiri Motu", - "Name": "Hiri Motu" - }, - { - "Iso6391": "hu", - "Iso6392": "hun", - "Iso6392B": "hun", - "Iso6392T": "hun", - "Iso6393": "hun", - "LocalName": "Magyar", - "Name": "Hungarian" - }, - { - "Iso6391": "ia", - "Iso6392": "ina", - "Iso6392B": "ina", - "Iso6392T": "ina", - "Iso6393": "ina", - "LocalName": "Interlingua", - "Name": "Interlingua" - }, - { - "Iso6391": "id", - "Iso6392": "ind", - "Iso6392B": "ind", - "Iso6392T": "ind", - "Iso6393": "ind", - "LocalName": "Bahasa Indonesia", - "Name": "Indonesian" - }, - { - "Iso6391": "ie", - "Iso6392": "ile", - "Iso6392B": "ile", - "Iso6392T": "ile", - "Iso6393": "ile", - "LocalName": "Interlingue", - "Name": "Interlingue" - }, - { - "Iso6391": "ga", - "Iso6392": "gle", - "Iso6392B": "gle", - "Iso6392T": "gle", - "Iso6393": "gle", - "LocalName": "Gaeilge", - "Name": "Irish" - }, - { - "Iso6391": "ig", - "Iso6392": "ibo", - "Iso6392B": "ibo", - "Iso6392T": "ibo", - "Iso6393": "ibo", - "LocalName": "Igbo", - "Name": "Igbo" - }, - { - "Iso6391": "ik", - "Iso6392": "ipk", - "Iso6392B": "ipk", - "Iso6392T": "ipk", - "Iso6393": "ipk", - "LocalName": "Iñupiak", - "Name": "Inupiaq" - }, - { - "Iso6391": "io", - "Iso6392": "ido", - "Iso6392B": "ido", - "Iso6392T": "ido", - "Iso6393": "ido", - "LocalName": "Ido", - "Name": "Ido" - }, - { - "Iso6391": "is", - "Iso6392": "isl", - "Iso6392B": "ice", - "Iso6392T": "isl", - "Iso6393": "isl", - "LocalName": "Íslenska", - "Name": "Icelandic" - }, - { - "Iso6391": "it", - "Iso6392": "ita", - "Iso6392B": "ita", - "Iso6392T": "ita", - "Iso6393": "ita", - "LocalName": "Italiano", - "Name": "Italian" - }, - { - "Iso6391": "iu", - "Iso6392": "iku", - "Iso6392B": "iku", - "Iso6392T": "iku", - "Iso6393": "iku", - "LocalName": "ᐃᓄᒃᑎᑐᑦ", - "Name": "Inuktitut" - }, - { - "Iso6391": "ja", - "Iso6392": "jpn", - "Iso6392B": "jpn", - "Iso6392T": "jpn", - "Iso6393": "jpn", - "LocalName": "日本語", - "Name": "Japanese" - }, - { - "Iso6391": "jv", - "Iso6392": "jav", - "Iso6392B": "jav", - "Iso6392T": "jav", - "Iso6393": "jav", - "LocalName": "Basa Jawa", - "Name": "Javanese" - }, - { - "Iso6391": "kl", - "Iso6392": "kal", - "Iso6392B": "kal", - "Iso6392T": "kal", - "Iso6393": "kal", - "LocalName": "Kalaallisut", - "Name": "Kalaallisut" - }, - { - "Iso6391": "kn", - "Iso6392": "kan", - "Iso6392B": "kan", - "Iso6392T": "kan", - "Iso6393": "kan", - "LocalName": "ಕನ್ನಡ", - "Name": "Kannada" - }, - { - "Iso6391": "kr", - "Iso6392": "kau", - "Iso6392B": "kau", - "Iso6392T": "kau", - "Iso6393": "kau", - "LocalName": "Kanuri", - "Name": "Kanuri" - }, - { - "Iso6391": "ks", - "Iso6392": "kas", - "Iso6392B": "kas", - "Iso6392T": "kas", - "Iso6393": "kas", - "LocalName": "كشميري", - "Name": "Kashmiri" - }, - { - "Iso6391": "kk", - "Iso6392": "kaz", - "Iso6392B": "kaz", - "Iso6392T": "kaz", - "Iso6393": "kaz", - "LocalName": "Қазақша", - "Name": "Kazakh" - }, - { - "Iso6391": "km", - "Iso6392": "khm", - "Iso6392B": "khm", - "Iso6392T": "khm", - "Iso6393": "khm", - "LocalName": "ភាសាខ្មែរ", - "Name": "Khmer" - }, - { - "Iso6391": "ki", - "Iso6392": "kik", - "Iso6392B": "kik", - "Iso6392T": "kik", - "Iso6393": "kik", - "LocalName": "Gĩkũyũ", - "Name": "Kikuyu" - }, - { - "Iso6391": "rw", - "Iso6392": "kin", - "Iso6392B": "kin", - "Iso6392T": "kin", - "Iso6393": "kin", - "LocalName": "Kinyarwanda", - "Name": "Kinyarwanda" - }, - { - "Iso6391": "ky", - "Iso6392": "kir", - "Iso6392B": "kir", - "Iso6392T": "kir", - "Iso6393": "kir", - "LocalName": "Кыргызча", - "Name": "Kyrgyz" - }, - { - "Iso6391": "kv", - "Iso6392": "kom", - "Iso6392B": "kom", - "Iso6392T": "kom", - "Iso6393": "kom", - "LocalName": "Коми", - "Name": "Komi" - }, - { - "Iso6391": "kg", - "Iso6392": "kon", - "Iso6392B": "kon", - "Iso6392T": "kon", - "Iso6393": "kon", - "LocalName": "Kongo", - "Name": "Kongo" - }, - { - "Iso6391": "ko", - "Iso6392": "kor", - "Iso6392B": "kor", - "Iso6392T": "kor", - "Iso6393": "kor", - "LocalName": "한국어", - "Name": "Korean" - }, - { - "Iso6391": "ku", - "Iso6392": "kur", - "Iso6392B": "kur", - "Iso6392T": "kur", - "Iso6393": "kur", - "LocalName": "Kurdî", - "Name": "Kurdish" - }, - { - "Iso6391": "kj", - "Iso6392": "kua", - "Iso6392B": "kua", - "Iso6392T": "kua", - "Iso6393": "kua", - "LocalName": "Kuanyama", - "Name": "Kwanyama" - }, - { - "Iso6391": "la", - "Iso6392": "lat", - "Iso6392B": "lat", - "Iso6392T": "lat", - "Iso6393": "lat", - "LocalName": "Latina", - "Name": "Latin" - }, - { - "Iso6391": "lb", - "Iso6392": "ltz", - "Iso6392B": "ltz", - "Iso6392T": "ltz", - "Iso6393": "ltz", - "LocalName": "Lëtzebuergesch", - "Name": "Luxembourgish" - }, - { - "Iso6391": "lg", - "Iso6392": "lug", - "Iso6392B": "lug", - "Iso6392T": "lug", - "Iso6393": "lug", - "LocalName": "Luganda", - "Name": "Ganda" - }, - { - "Iso6391": "li", - "Iso6392": "lim", - "Iso6392B": "lim", - "Iso6392T": "lim", - "Iso6393": "lim", - "LocalName": "Limburgs", - "Name": "Limburgish" - }, - { - "Iso6391": "ln", - "Iso6392": "lin", - "Iso6392B": "lin", - "Iso6392T": "lin", - "Iso6393": "lin", - "LocalName": "Lingála", - "Name": "Lingala" - }, - { - "Iso6391": "lo", - "Iso6392": "lao", - "Iso6392B": "lao", - "Iso6392T": "lao", - "Iso6393": "lao", - "LocalName": "ພາສາລາວ", - "Name": "Lao" - }, - { - "Iso6391": "lt", - "Iso6392": "lit", - "Iso6392B": "lit", - "Iso6392T": "lit", - "Iso6393": "lit", - "LocalName": "Lietuvių", - "Name": "Lithuanian" - }, - { - "Iso6391": "lu", - "Iso6392": "lub", - "Iso6392B": "lub", - "Iso6392T": "lub", - "Iso6393": "lub", - "LocalName": "Tshiluba", - "Name": "Luba-Katanga" - }, - { - "Iso6391": "lv", - "Iso6392": "lav", - "Iso6392B": "lav", - "Iso6392T": "lav", - "Iso6393": "lav", - "LocalName": "Latviešu", - "Name": "Latvian" - }, - { - "Iso6391": "gv", - "Iso6392": "glv", - "Iso6392B": "glv", - "Iso6392T": "glv", - "Iso6393": "glv", - "LocalName": "Gaelg", - "Name": "Manx" - }, - { - "Iso6391": "mk", - "Iso6392": "mkd", - "Iso6392B": "mac", - "Iso6392T": "mkd", - "Iso6393": "mkd", - "LocalName": "Македонски", - "Name": "Macedonian" - }, - { - "Iso6391": "mg", - "Iso6392": "mlg", - "Iso6392B": "mlg", - "Iso6392T": "mlg", - "Iso6393": "mlg", - "LocalName": "Malagasy", - "Name": "Malagasy" - }, - { - "Iso6391": "ms", - "Iso6392": "msa", - "Iso6392B": "may", - "Iso6392T": "msa", - "Iso6393": "msa", - "LocalName": "Bahasa Melayu", - "Name": "Malay" - }, - { - "Iso6391": "ml", - "Iso6392": "mal", - "Iso6392B": "mal", - "Iso6392T": "mal", - "Iso6393": "mal", - "LocalName": "മലയാളം", - "Name": "Malayalam" - }, - { - "Iso6391": "mt", - "Iso6392": "mlt", - "Iso6392B": "mlt", - "Iso6392T": "mlt", - "Iso6393": "mlt", - "LocalName": "Malti", - "Name": "Maltese" - }, - { - "Iso6391": "mi", - "Iso6392": "mri", - "Iso6392B": "mao", - "Iso6392T": "mri", - "Iso6393": "mri", - "LocalName": "Māori", - "Name": "Māori" - }, - { - "Iso6391": "mr", - "Iso6392": "mar", - "Iso6392B": "mar", - "Iso6392T": "mar", - "Iso6393": "mar", - "LocalName": "मराठी", - "Name": "Marathi" - }, - { - "Iso6391": "mh", - "Iso6392": "mah", - "Iso6392B": "mah", - "Iso6392T": "mah", - "Iso6393": "mah", - "LocalName": "Kajin M̧ajeļ", - "Name": "Marshallese" - }, - { - "Iso6391": "mn", - "Iso6392": "mon", - "Iso6392B": "mon", - "Iso6392T": "mon", - "Iso6393": "mon", - "LocalName": "Монгол", - "Name": "Mongolian" - }, - { - "Iso6391": "na", - "Iso6392": "nau", - "Iso6392B": "nau", - "Iso6392T": "nau", - "Iso6393": "nau", - "LocalName": "Dorerin Naoero", - "Name": "Nauru" - }, - { - "Iso6391": "nv", - "Iso6392": "nav", - "Iso6392B": "nav", - "Iso6392T": "nav", - "Iso6393": "nav", - "LocalName": "Diné Bizaad", - "Name": "Navajo" - }, - { - "Iso6391": "nd", - "Iso6392": "nde", - "Iso6392B": "nde", - "Iso6392T": "nde", - "Iso6393": "nde", - "LocalName": "isiNdebele", - "Name": "Northern Ndebele" - }, - { - "Iso6391": "ne", - "Iso6392": "nep", - "Iso6392B": "nep", - "Iso6392T": "nep", - "Iso6393": "nep", - "LocalName": "नेपाली", - "Name": "Nepali" - }, - { - "Iso6391": "ng", - "Iso6392": "ndo", - "Iso6392B": "ndo", - "Iso6392T": "ndo", - "Iso6393": "ndo", - "LocalName": "Owambo", - "Name": "Ndonga" - }, - { - "Iso6391": "nb", - "Iso6392": "nob", - "Iso6392B": "nob", - "Iso6392T": "nob", - "Iso6393": "nob", - "LocalName": "Norsk (Bokmål)", - "Name": "Norwegian Bokmål" - }, - { - "Iso6391": "nn", - "Iso6392": "nno", - "Iso6392B": "nno", - "Iso6392T": "nno", - "Iso6393": "nno", - "LocalName": "Norsk (Nynorsk)", - "Name": "Norwegian Nynorsk" - }, - { - "Iso6391": "no", - "Iso6392": "nor", - "Iso6392B": "nor", - "Iso6392T": "nor", - "Iso6393": "nor", - "LocalName": "Norsk", - "Name": "Norwegian" - }, - { - "Iso6391": "ii", - "Iso6392": "iii", - "Iso6392B": "iii", - "Iso6392T": "iii", - "Iso6393": "iii", - "LocalName": "ꆈꌠ꒿ Nuosuhxop", - "Name": "Nuosu" - }, - { - "Iso6391": "nr", - "Iso6392": "nbl", - "Iso6392B": "nbl", - "Iso6392T": "nbl", - "Iso6393": "nbl", - "LocalName": "isiNdebele", - "Name": "Southern Ndebele" - }, - { - "Iso6391": "oc", - "Iso6392": "oci", - "Iso6392B": "oci", - "Iso6392T": "oci", - "Iso6393": "oci", - "LocalName": "Occitan", - "Name": "Occitan" - }, - { - "Iso6391": "oj", - "Iso6392": "oji", - "Iso6392B": "oji", - "Iso6392T": "oji", - "Iso6393": "oji", - "LocalName": "ᐊᓂᔑᓈᐯᒧᐎᓐ", - "Name": "Ojibwe" - }, - { - "Iso6391": "cu", - "Iso6392": "chu", - "Iso6392B": "chu", - "Iso6392T": "chu", - "Iso6393": "chu", - "LocalName": "Словѣ́ньскъ", - "Name": "Old Church Slavonic" - }, - { - "Iso6391": "om", - "Iso6392": "orm", - "Iso6392B": "orm", - "Iso6392T": "orm", - "Iso6393": "orm", - "LocalName": "Afaan Oromoo", - "Name": "Oromo" - }, - { - "Iso6391": "or", - "Iso6392": "ori", - "Iso6392B": "ori", - "Iso6392T": "ori", - "Iso6393": "ori", - "LocalName": "ଓଡି଼ଆ", - "Name": "Oriya" - }, - { - "Iso6391": "os", - "Iso6392": "oss", - "Iso6392B": "oss", - "Iso6392T": "oss", - "Iso6393": "oss", - "LocalName": "Ирон æвзаг", - "Name": "Ossetian" - }, - { - "Iso6391": "pa", - "Iso6392": "pan", - "Iso6392B": "pan", - "Iso6392T": "pan", - "Iso6393": "pan", - "LocalName": "ਪੰਜਾਬੀ", - "Name": "Panjabi" - }, - { - "Iso6391": "pi", - "Iso6392": "pli", - "Iso6392B": "pli", - "Iso6392T": "pli", - "Iso6393": "pli", - "LocalName": "पाऴि", - "Name": "Pāli" - }, - { - "Iso6391": "fa", - "Iso6392": "fas", - "Iso6392B": "per", - "Iso6392T": "fas", - "Iso6393": "fas", - "LocalName": "فارسی", - "Name": "Persian" - }, - { - "Iso6391": "pl", - "Iso6392": "pol", - "Iso6392B": "pol", - "Iso6392T": "pol", - "Iso6393": "pol", - "LocalName": "Polski", - "Name": "Polish" - }, - { - "Iso6391": "ps", - "Iso6392": "pus", - "Iso6392B": "pus", - "Iso6392T": "pus", - "Iso6393": "pus", - "LocalName": "پښتو", - "Name": "Pashto" - }, - { - "Iso6391": "pt", - "Iso6392": "por", - "Iso6392B": "por", - "Iso6392T": "por", - "Iso6393": "por", - "LocalName": "Português", - "Name": "Portuguese" - }, - { - "Iso6391": "qu", - "Iso6392": "que", - "Iso6392B": "que", - "Iso6392T": "que", - "Iso6393": "que", - "LocalName": "Runa Simi", - "Name": "Quechua" - }, - { - "Iso6391": "rm", - "Iso6392": "roh", - "Iso6392B": "roh", - "Iso6392T": "roh", - "Iso6393": "roh", - "LocalName": "Rumantsch", - "Name": "Romansh" - }, - { - "Iso6391": "rn", - "Iso6392": "run", - "Iso6392B": "run", - "Iso6392T": "run", - "Iso6393": "run", - "LocalName": "Kirundi", - "Name": "Kirundi" - }, - { - "Iso6391": "ro", - "Iso6392": "ron", - "Iso6392B": "rum", - "Iso6392T": "ron", - "Iso6393": "ron", - "LocalName": "Română", - "Name": "Romanian" - }, - { - "Iso6391": "ru", - "Iso6392": "rus", - "Iso6392B": "rus", - "Iso6392T": "rus", - "Iso6393": "rus", - "LocalName": "Русский", - "Name": "Russian" - }, - { - "Iso6391": "sa", - "Iso6392": "san", - "Iso6392B": "san", - "Iso6392T": "san", - "Iso6393": "san", - "LocalName": "संस्कृतम्", - "Name": "Sanskrit" - }, - { - "Iso6391": "sc", - "Iso6392": "srd", - "Iso6392B": "srd", - "Iso6392T": "srd", - "Iso6393": "srd", - "LocalName": "Sardu", - "Name": "Sardinian" - }, - { - "Iso6391": "sd", - "Iso6392": "snd", - "Iso6392B": "snd", - "Iso6392T": "snd", - "Iso6393": "snd", - "LocalName": "سنڌي‎", - "Name": "Sindhi" - }, - { - "Iso6391": "se", - "Iso6392": "sme", - "Iso6392B": "sme", - "Iso6392T": "sme", - "Iso6393": "sme", - "LocalName": "Sámegiella", - "Name": "Northern Sami" - }, - { - "Iso6391": "sm", - "Iso6392": "smo", - "Iso6392B": "smo", - "Iso6392T": "smo", - "Iso6393": "smo", - "LocalName": "Gagana Sāmoa", - "Name": "Samoan" - }, - { - "Iso6391": "sg", - "Iso6392": "sag", - "Iso6392B": "sag", - "Iso6392T": "sag", - "Iso6393": "sag", - "LocalName": "Sängö", - "Name": "Sango" - }, - { - "Iso6391": "sr", - "Iso6392": "srp", - "Iso6392B": "srp", - "Iso6392T": "srp", - "Iso6393": "srp", - "LocalName": "Српски", - "Name": "Serbian" - }, - { - "Iso6391": "gd", - "Iso6392": "gla", - "Iso6392B": "gla", - "Iso6392T": "gla", - "Iso6393": "gla", - "LocalName": "Gàidhlig", - "Name": "Gaelic" - }, - { - "Iso6391": "sn", - "Iso6392": "sna", - "Iso6392B": "sna", - "Iso6392T": "sna", - "Iso6393": "sna", - "LocalName": "ChiShona", - "Name": "Shona" - }, - { - "Iso6391": "si", - "Iso6392": "sin", - "Iso6392B": "sin", - "Iso6392T": "sin", - "Iso6393": "sin", - "LocalName": "සිංහල", - "Name": "Sinhala" - }, - { - "Iso6391": "sk", - "Iso6392": "slk", - "Iso6392B": "slo", - "Iso6392T": "slk", - "Iso6393": "slk", - "LocalName": "Slovenčina", - "Name": "Slovak" - }, - { - "Iso6391": "sl", - "Iso6392": "slv", - "Iso6392B": "slv", - "Iso6392T": "slv", - "Iso6393": "slv", - "LocalName": "Slovenščina", - "Name": "Slovene" - }, - { - "Iso6391": "so", - "Iso6392": "som", - "Iso6392B": "som", - "Iso6392T": "som", - "Iso6393": "som", - "LocalName": "Soomaaliga", - "Name": "Somali" - }, - { - "Iso6391": "st", - "Iso6392": "sot", - "Iso6392B": "sot", - "Iso6392T": "sot", - "Iso6393": "sot", - "LocalName": "Sesotho", - "Name": "Southern Sotho" - }, - { - "Iso6391": "es", - "Iso6392": "spa", - "Iso6392B": "spa", - "Iso6392T": "spa", - "Iso6393": "spa", - "LocalName": "Español", - "Name": "Spanish" - }, - { - "Iso6391": "su", - "Iso6392": "sun", - "Iso6392B": "sun", - "Iso6392T": "sun", - "Iso6393": "sun", - "LocalName": "Basa Sunda", - "Name": "Sundanese" - }, - { - "Iso6391": "sw", - "Iso6392": "swa", - "Iso6392B": "swa", - "Iso6392T": "swa", - "Iso6393": "swa", - "LocalName": "Kiswahili", - "Name": "Swahili" - }, - { - "Iso6391": "ss", - "Iso6392": "ssw", - "Iso6392B": "ssw", - "Iso6392T": "ssw", - "Iso6393": "ssw", - "LocalName": "SiSwati", - "Name": "Swati" - }, - { - "Iso6391": "sv", - "Iso6392": "swe", - "Iso6392B": "swe", - "Iso6392T": "swe", - "Iso6393": "swe", - "LocalName": "Svenska", - "Name": "Swedish" - }, - { - "Iso6391": "ta", - "Iso6392": "tam", - "Iso6392B": "tam", - "Iso6392T": "tam", - "Iso6393": "tam", - "LocalName": "தமிழ்", - "Name": "Tamil" - }, - { - "Iso6391": "te", - "Iso6392": "tel", - "Iso6392B": "tel", - "Iso6392T": "tel", - "Iso6393": "tel", - "LocalName": "తెలుగు", - "Name": "Telugu" - }, - { - "Iso6391": "tg", - "Iso6392": "tgk", - "Iso6392B": "tgk", - "Iso6392T": "tgk", - "Iso6393": "tgk", - "LocalName": "Тоҷикӣ", - "Name": "Tajik" - }, - { - "Iso6391": "th", - "Iso6392": "tha", - "Iso6392B": "tha", - "Iso6392T": "tha", - "Iso6393": "tha", - "LocalName": "ภาษาไทย", - "Name": "Thai" - }, - { - "Iso6391": "ti", - "Iso6392": "tir", - "Iso6392B": "tir", - "Iso6392T": "tir", - "Iso6393": "tir", - "LocalName": "ትግርኛ", - "Name": "Tigrinya" - }, - { - "Iso6391": "bo", - "Iso6392": "bod", - "Iso6392B": "tib", - "Iso6392T": "bod", - "Iso6393": "bod", - "LocalName": "བོད་ཡིག", - "Name": "Tibetan Standard" - }, - { - "Iso6391": "tk", - "Iso6392": "tuk", - "Iso6392B": "tuk", - "Iso6392T": "tuk", - "Iso6393": "tuk", - "LocalName": "Türkmençe", - "Name": "Turkmen" - }, - { - "Iso6391": "tl", - "Iso6392": "tgl", - "Iso6392B": "tgl", - "Iso6392T": "tgl", - "Iso6393": "tgl", - "LocalName": "Tagalog", - "Name": "Tagalog" - }, - { - "Iso6391": "tn", - "Iso6392": "tsn", - "Iso6392B": "tsn", - "Iso6392T": "tsn", - "Iso6393": "tsn", - "LocalName": "Setswana", - "Name": "Tswana" - }, - { - "Iso6391": "to", - "Iso6392": "ton", - "Iso6392B": "ton", - "Iso6392T": "ton", - "Iso6393": "ton", - "LocalName": "faka Tonga", - "Name": "Tonga" - }, - { - "Iso6391": "tr", - "Iso6392": "tur", - "Iso6392B": "tur", - "Iso6392T": "tur", - "Iso6393": "tur", - "LocalName": "Türkçe", - "Name": "Turkish" - }, - { - "Iso6391": "ts", - "Iso6392": "tso", - "Iso6392B": "tso", - "Iso6392T": "tso", - "Iso6393": "tso", - "LocalName": "Xitsonga", - "Name": "Tsonga" - }, - { - "Iso6391": "tt", - "Iso6392": "tat", - "Iso6392B": "tat", - "Iso6392T": "tat", - "Iso6393": "tat", - "LocalName": "Татарча", - "Name": "Tatar" - }, - { - "Iso6391": "tw", - "Iso6392": "twi", - "Iso6392B": "twi", - "Iso6392T": "twi", - "Iso6393": "twi", - "LocalName": "Twi", - "Name": "Twi" - }, - { - "Iso6391": "ty", - "Iso6392": "tah", - "Iso6392B": "tah", - "Iso6392T": "tah", - "Iso6393": "tah", - "LocalName": "Reo Mā’ohi", - "Name": "Tahitian" - }, - { - "Iso6391": "ug", - "Iso6392": "uig", - "Iso6392B": "uig", - "Iso6392T": "uig", - "Iso6393": "uig", - "LocalName": "ئۇيغۇرچه", - "Name": "Uyghur" - }, - { - "Iso6391": "uk", - "Iso6392": "ukr", - "Iso6392B": "ukr", - "Iso6392T": "ukr", - "Iso6393": "ukr", - "LocalName": "Українська", - "Name": "Ukrainian" - }, - { - "Iso6391": "ur", - "Iso6392": "urd", - "Iso6392B": "urd", - "Iso6392T": "urd", - "Iso6393": "urd", - "LocalName": "اردو", - "Name": "Urdu" - }, - { - "Iso6391": "uz", - "Iso6392": "uzb", - "Iso6392B": "uzb", - "Iso6392T": "uzb", - "Iso6393": "uzb", - "LocalName": "O‘zbek", - "Name": "Uzbek" - }, - { - "Iso6391": "ve", - "Iso6392": "ven", - "Iso6392B": "ven", - "Iso6392T": "ven", - "Iso6393": "ven", - "LocalName": "Tshivenḓa", - "Name": "Venda" - }, - { - "Iso6391": "vi", - "Iso6392": "vie", - "Iso6392B": "vie", - "Iso6392T": "vie", - "Iso6393": "vie", - "LocalName": "Tiếng Việt", - "Name": "Vietnamese" - }, - { - "Iso6391": "vo", - "Iso6392": "vol", - "Iso6392B": "vol", - "Iso6392T": "vol", - "Iso6393": "vol", - "LocalName": "Volapük", - "Name": "Volapük" - }, - { - "Iso6391": "wa", - "Iso6392": "wln", - "Iso6392B": "wln", - "Iso6392T": "wln", - "Iso6393": "wln", - "LocalName": "Walon", - "Name": "Walloon" - }, - { - "Iso6391": "cy", - "Iso6392": "cym", - "Iso6392B": "wel", - "Iso6392T": "cym", - "Iso6393": "cym", - "LocalName": "Cymraeg", - "Name": "Welsh" - }, - { - "Iso6391": "wo", - "Iso6392": "wol", - "Iso6392B": "wol", - "Iso6392T": "wol", - "Iso6393": "wol", - "LocalName": "Wolof", - "Name": "Wolof" - }, - { - "Iso6391": "fy", - "Iso6392": "fry", - "Iso6392B": "fry", - "Iso6392T": "fry", - "Iso6393": "fry", - "LocalName": "Frysk", - "Name": "Western Frisian" - }, - { - "Iso6391": "xh", - "Iso6392": "xho", - "Iso6392B": "xho", - "Iso6392T": "xho", - "Iso6393": "xho", - "LocalName": "isiXhosa", - "Name": "Xhosa" - }, - { - "Iso6391": "yi", - "Iso6392": "yid", - "Iso6392B": "yid", - "Iso6392T": "yid", - "Iso6393": "yid", - "LocalName": "ייִדיש", - "Name": "Yiddish" - }, - { - "Iso6391": "yo", - "Iso6392": "yor", - "Iso6392B": "yor", - "Iso6392T": "yor", - "Iso6393": "yor", - "LocalName": "Yorùbá", - "Name": "Yoruba" - }, - { - "Iso6391": "za", - "Iso6392": "zha", - "Iso6392B": "zha", - "Iso6392T": "zha", - "Iso6393": "zha", - "LocalName": "Cuengh", - "Name": "Zhuang" - }, - { - "Iso6391": "zu", - "Iso6392": "zul", - "Iso6392B": "zul", - "Iso6392T": "zul", - "Iso6393": "zul", - "LocalName": "isiZulu", - "Name": "Zulu" - } - ] -} \ No newline at end of file +[ + { + "Iso6391": "ab", + "Iso6392": "abk", + "Iso6392B": "abk", + "Iso6392T": "abk", + "Iso6393": "abk", + "LocalName": "Аҧсуа", + "Name": "Abkhaz" + }, + { + "Iso6391": "aa", + "Iso6392": "aar", + "Iso6392B": "aar", + "Iso6392T": "aar", + "Iso6393": "aar", + "LocalName": "Afaraf", + "Name": "Afar" + }, + { + "Iso6391": "af", + "Iso6392": "afr", + "Iso6392B": "afr", + "Iso6392T": "afr", + "Iso6393": "afr", + "LocalName": "Afrikaans", + "Name": "Afrikaans" + }, + { + "Iso6391": "ak", + "Iso6392": "aka", + "Iso6392B": "aka", + "Iso6392T": "aka", + "Iso6393": "aka", + "LocalName": "Akan", + "Name": "Akan" + }, + { + "Iso6391": "sq", + "Iso6392": "sqi", + "Iso6392B": "alb", + "Iso6392T": "sqi", + "Iso6393": "sqi", + "LocalName": "Shqip", + "Name": "Albanian" + }, + { + "Iso6391": "am", + "Iso6392": "amh", + "Iso6392B": "amh", + "Iso6392T": "amh", + "Iso6393": "amh", + "LocalName": "አማርኛ", + "Name": "Amharic" + }, + { + "Iso6391": "ar", + "Iso6392": "ara", + "Iso6392B": "ara", + "Iso6392T": "ara", + "Iso6393": "ara", + "LocalName": "العربية", + "Name": "Arabic" + }, + { + "Iso6391": "an", + "Iso6392": "arg", + "Iso6392B": "arg", + "Iso6392T": "arg", + "Iso6393": "arg", + "LocalName": "Aragonés", + "Name": "Aragonese" + }, + { + "Iso6391": "hy", + "Iso6392": "hye", + "Iso6392B": "arm", + "Iso6392T": "hye", + "Iso6393": "hye", + "LocalName": "Հայերեն", + "Name": "Armenian" + }, + { + "Iso6391": "as", + "Iso6392": "asm", + "Iso6392B": "asm", + "Iso6392T": "asm", + "Iso6393": "asm", + "LocalName": "অসমীয়া", + "Name": "Assamese" + }, + { + "Iso6391": "av", + "Iso6392": "ava", + "Iso6392B": "ava", + "Iso6392T": "ava", + "Iso6393": "ava", + "LocalName": "Авар", + "Name": "Avaric" + }, + { + "Iso6391": "ae", + "Iso6392": "ave", + "Iso6392B": "ave", + "Iso6392T": "ave", + "Iso6393": "ave", + "LocalName": "avesta", + "Name": "Avestan" + }, + { + "Iso6391": "ay", + "Iso6392": "aym", + "Iso6392B": "aym", + "Iso6392T": "aym", + "Iso6393": "aym", + "LocalName": "Aymar", + "Name": "Aymara" + }, + { + "Iso6391": "az", + "Iso6392": "aze", + "Iso6392B": "aze", + "Iso6392T": "aze", + "Iso6393": "aze", + "LocalName": "Azərbaycanca", + "Name": "Azerbaijani" + }, + { + "Iso6391": "bm", + "Iso6392": "bam", + "Iso6392B": "bam", + "Iso6392T": "bam", + "Iso6393": "bam", + "LocalName": "Bamanankan", + "Name": "Bambara" + }, + { + "Iso6391": "ba", + "Iso6392": "bak", + "Iso6392B": "bak", + "Iso6392T": "bak", + "Iso6393": "bak", + "LocalName": "Башҡортса", + "Name": "Bashkir" + }, + { + "Iso6391": "eu", + "Iso6392": "eus", + "Iso6392B": "baq", + "Iso6392T": "eus", + "Iso6393": "eus", + "LocalName": "Euskara", + "Name": "Basque" + }, + { + "Iso6391": "be", + "Iso6392": "bel", + "Iso6392B": "bel", + "Iso6392T": "bel", + "Iso6393": "bel", + "LocalName": "Беларуская", + "Name": "Belarusian" + }, + { + "Iso6391": "bn", + "Iso6392": "ben", + "Iso6392B": "ben", + "Iso6392T": "ben", + "Iso6393": "ben", + "LocalName": "বাংলা", + "Name": "Bengali" + }, + { + "Iso6391": "bh", + "Iso6392": "bih", + "Iso6392B": "bih", + "Iso6392T": "bih", + "Iso6393": "bih", + "LocalName": "भोजपुरी", + "Name": "Bihari" + }, + { + "Iso6391": "bi", + "Iso6392": "bis", + "Iso6392B": "bis", + "Iso6392T": "bis", + "Iso6393": "bis", + "LocalName": "Bislama", + "Name": "Bislama" + }, + { + "Iso6391": "bs", + "Iso6392": "bos", + "Iso6392B": "bos", + "Iso6392T": "bos", + "Iso6393": "bos", + "LocalName": "Bosanski", + "Name": "Bosnian" + }, + { + "Iso6391": "br", + "Iso6392": "bre", + "Iso6392B": "bre", + "Iso6392T": "bre", + "Iso6393": "bre", + "LocalName": "Brezhoneg", + "Name": "Breton" + }, + { + "Iso6391": "bg", + "Iso6392": "bul", + "Iso6392B": "bul", + "Iso6392T": "bul", + "Iso6393": "bul", + "LocalName": "Български", + "Name": "Bulgarian" + }, + { + "Iso6391": "my", + "Iso6392": "mya", + "Iso6392B": "bur", + "Iso6392T": "mya", + "Iso6393": "mya", + "LocalName": "မြန်မာဘာသာ", + "Name": "Burmese" + }, + { + "Iso6391": "ca", + "Iso6392": "cat", + "Iso6392B": "cat", + "Iso6392T": "cat", + "Iso6393": "cat", + "LocalName": "Català", + "Name": "Catalan" + }, + { + "Iso6391": "ch", + "Iso6392": "cha", + "Iso6392B": "cha", + "Iso6392T": "cha", + "Iso6393": "cha", + "LocalName": "Chamoru", + "Name": "Chamorro" + }, + { + "Iso6391": "ce", + "Iso6392": "che", + "Iso6392B": "che", + "Iso6392T": "che", + "Iso6393": "che", + "LocalName": "Нохчийн", + "Name": "Chechen" + }, + { + "Iso6391": "ny", + "Iso6392": "nya", + "Iso6392B": "nya", + "Iso6392T": "nya", + "Iso6393": "nya", + "LocalName": "Chichewa", + "Name": "Chichewa" + }, + { + "Iso6391": "zh", + "Iso6392": "zho", + "Iso6392B": "chi", + "Iso6392T": "zho", + "Iso6393": "zho", + "LocalName": "中文", + "Name": "Chinese" + }, + { + "Iso6391": "cv", + "Iso6392": "chv", + "Iso6392B": "chv", + "Iso6392T": "chv", + "Iso6393": "chv", + "LocalName": "Чӑвашла", + "Name": "Chuvash" + }, + { + "Iso6391": "kw", + "Iso6392": "cor", + "Iso6392B": "cor", + "Iso6392T": "cor", + "Iso6393": "cor", + "LocalName": "Kernewek", + "Name": "Cornish" + }, + { + "Iso6391": "co", + "Iso6392": "cos", + "Iso6392B": "cos", + "Iso6392T": "cos", + "Iso6393": "cos", + "LocalName": "Corsu", + "Name": "Corsican" + }, + { + "Iso6391": "cr", + "Iso6392": "cre", + "Iso6392B": "cre", + "Iso6392T": "cre", + "Iso6393": "cre", + "LocalName": "ᓀᐦᐃᔭᐍᐏᐣ", + "Name": "Cree" + }, + { + "Iso6391": "hr", + "Iso6392": "hrv", + "Iso6392B": "hrv", + "Iso6392T": "hrv", + "Iso6393": "hrv", + "LocalName": "Hrvatski", + "Name": "Croatian" + }, + { + "Iso6391": "cs", + "Iso6392": "ces", + "Iso6392B": "cze", + "Iso6392T": "ces", + "Iso6393": "ces", + "LocalName": "Čeština", + "Name": "Czech" + }, + { + "Iso6391": "da", + "Iso6392": "dan", + "Iso6392B": "dan", + "Iso6392T": "dan", + "Iso6393": "dan", + "LocalName": "Dansk", + "Name": "Danish" + }, + { + "Iso6391": "dv", + "Iso6392": "div", + "Iso6392B": "div", + "Iso6392T": "div", + "Iso6393": "div", + "LocalName": "Divehi", + "Name": "Divehi" + }, + { + "Iso6391": "nl", + "Iso6392": "nld", + "Iso6392B": "dut", + "Iso6392T": "nld", + "Iso6393": "nld", + "LocalName": "Nederlands", + "Name": "Dutch" + }, + { + "Iso6391": "dz", + "Iso6392": "dzo", + "Iso6392B": "dzo", + "Iso6392T": "dzo", + "Iso6393": "dzo", + "LocalName": "རྫོང་ཁ", + "Name": "Dzongkha" + }, + { + "Iso6391": "en", + "Iso6392": "eng", + "Iso6392B": "eng", + "Iso6392T": "eng", + "Iso6393": "eng", + "LocalName": "English", + "Name": "English" + }, + { + "Iso6391": "eo", + "Iso6392": "epo", + "Iso6392B": "epo", + "Iso6392T": "epo", + "Iso6393": "epo", + "LocalName": "Esperanto", + "Name": "Esperanto" + }, + { + "Iso6391": "et", + "Iso6392": "est", + "Iso6392B": "est", + "Iso6392T": "est", + "Iso6393": "est", + "LocalName": "Eesti", + "Name": "Estonian" + }, + { + "Iso6391": "ee", + "Iso6392": "ewe", + "Iso6392B": "ewe", + "Iso6392T": "ewe", + "Iso6393": "ewe", + "LocalName": "Eʋegbe", + "Name": "Ewe" + }, + { + "Iso6391": "fo", + "Iso6392": "fao", + "Iso6392B": "fao", + "Iso6392T": "fao", + "Iso6393": "fao", + "LocalName": "Føroyskt", + "Name": "Faroese" + }, + { + "Iso6391": "fj", + "Iso6392": "fij", + "Iso6392B": "fij", + "Iso6392T": "fij", + "Iso6393": "fij", + "LocalName": "Na Vosa Vaka-Viti", + "Name": "Fijian" + }, + { + "Iso6391": "fi", + "Iso6392": "fin", + "Iso6392B": "fin", + "Iso6392T": "fin", + "Iso6393": "fin", + "LocalName": "Suomi", + "Name": "Finnish" + }, + { + "Iso6391": "fr", + "Iso6392": "fra", + "Iso6392B": "fre", + "Iso6392T": "fra", + "Iso6393": "fra", + "LocalName": "Français", + "Name": "French" + }, + { + "Iso6391": "ff", + "Iso6392": "ful", + "Iso6392B": "ful", + "Iso6392T": "ful", + "Iso6393": "ful", + "LocalName": "Fulfulde", + "Name": "Fula" + }, + { + "Iso6391": "gl", + "Iso6392": "glg", + "Iso6392B": "glg", + "Iso6392T": "glg", + "Iso6393": "glg", + "LocalName": "Galego", + "Name": "Galician" + }, + { + "Iso6391": "ka", + "Iso6392": "kat", + "Iso6392B": "geo", + "Iso6392T": "kat", + "Iso6393": "kat", + "LocalName": "ქართული", + "Name": "Georgian" + }, + { + "Iso6391": "de", + "Iso6392": "deu", + "Iso6392B": "ger", + "Iso6392T": "deu", + "Iso6393": "deu", + "LocalName": "Deutsch", + "Name": "German" + }, + { + "Iso6391": "el", + "Iso6392": "ell", + "Iso6392B": "gre", + "Iso6392T": "ell", + "Iso6393": "ell", + "LocalName": "Ελληνικά", + "Name": "Greek" + }, + { + "Iso6391": "gn", + "Iso6392": "grn", + "Iso6392B": "grn", + "Iso6392T": "grn", + "Iso6393": "grn", + "LocalName": "Avañe'ẽ", + "Name": "Guaraní" + }, + { + "Iso6391": "gu", + "Iso6392": "guj", + "Iso6392B": "guj", + "Iso6392T": "guj", + "Iso6393": "guj", + "LocalName": "ગુજરાતી", + "Name": "Gujarati" + }, + { + "Iso6391": "ht", + "Iso6392": "hat", + "Iso6392B": "hat", + "Iso6392T": "hat", + "Iso6393": "hat", + "LocalName": "Kreyòl Ayisyen", + "Name": "Haitian" + }, + { + "Iso6391": "ha", + "Iso6392": "hau", + "Iso6392B": "hau", + "Iso6392T": "hau", + "Iso6393": "hau", + "LocalName": "هَوُسَ", + "Name": "Hausa" + }, + { + "Iso6391": "he", + "Iso6392": "heb", + "Iso6392B": "heb", + "Iso6392T": "heb", + "Iso6393": "heb", + "LocalName": "עברית", + "Name": "Hebrew" + }, + { + "Iso6391": "hz", + "Iso6392": "her", + "Iso6392B": "her", + "Iso6392T": "her", + "Iso6393": "her", + "LocalName": "Otjiherero", + "Name": "Herero" + }, + { + "Iso6391": "hi", + "Iso6392": "hin", + "Iso6392B": "hin", + "Iso6392T": "hin", + "Iso6393": "hin", + "LocalName": "हिन्दी", + "Name": "Hindi" + }, + { + "Iso6391": "ho", + "Iso6392": "hmo", + "Iso6392B": "hmo", + "Iso6392T": "hmo", + "Iso6393": "hmo", + "LocalName": "Hiri Motu", + "Name": "Hiri Motu" + }, + { + "Iso6391": "hu", + "Iso6392": "hun", + "Iso6392B": "hun", + "Iso6392T": "hun", + "Iso6393": "hun", + "LocalName": "Magyar", + "Name": "Hungarian" + }, + { + "Iso6391": "ia", + "Iso6392": "ina", + "Iso6392B": "ina", + "Iso6392T": "ina", + "Iso6393": "ina", + "LocalName": "Interlingua", + "Name": "Interlingua" + }, + { + "Iso6391": "id", + "Iso6392": "ind", + "Iso6392B": "ind", + "Iso6392T": "ind", + "Iso6393": "ind", + "LocalName": "Bahasa Indonesia", + "Name": "Indonesian" + }, + { + "Iso6391": "ie", + "Iso6392": "ile", + "Iso6392B": "ile", + "Iso6392T": "ile", + "Iso6393": "ile", + "LocalName": "Interlingue", + "Name": "Interlingue" + }, + { + "Iso6391": "ga", + "Iso6392": "gle", + "Iso6392B": "gle", + "Iso6392T": "gle", + "Iso6393": "gle", + "LocalName": "Gaeilge", + "Name": "Irish" + }, + { + "Iso6391": "ig", + "Iso6392": "ibo", + "Iso6392B": "ibo", + "Iso6392T": "ibo", + "Iso6393": "ibo", + "LocalName": "Igbo", + "Name": "Igbo" + }, + { + "Iso6391": "ik", + "Iso6392": "ipk", + "Iso6392B": "ipk", + "Iso6392T": "ipk", + "Iso6393": "ipk", + "LocalName": "Iñupiak", + "Name": "Inupiaq" + }, + { + "Iso6391": "io", + "Iso6392": "ido", + "Iso6392B": "ido", + "Iso6392T": "ido", + "Iso6393": "ido", + "LocalName": "Ido", + "Name": "Ido" + }, + { + "Iso6391": "is", + "Iso6392": "isl", + "Iso6392B": "ice", + "Iso6392T": "isl", + "Iso6393": "isl", + "LocalName": "Íslenska", + "Name": "Icelandic" + }, + { + "Iso6391": "it", + "Iso6392": "ita", + "Iso6392B": "ita", + "Iso6392T": "ita", + "Iso6393": "ita", + "LocalName": "Italiano", + "Name": "Italian" + }, + { + "Iso6391": "iu", + "Iso6392": "iku", + "Iso6392B": "iku", + "Iso6392T": "iku", + "Iso6393": "iku", + "LocalName": "ᐃᓄᒃᑎᑐᑦ", + "Name": "Inuktitut" + }, + { + "Iso6391": "ja", + "Iso6392": "jpn", + "Iso6392B": "jpn", + "Iso6392T": "jpn", + "Iso6393": "jpn", + "LocalName": "日本語", + "Name": "Japanese" + }, + { + "Iso6391": "jv", + "Iso6392": "jav", + "Iso6392B": "jav", + "Iso6392T": "jav", + "Iso6393": "jav", + "LocalName": "Basa Jawa", + "Name": "Javanese" + }, + { + "Iso6391": "kl", + "Iso6392": "kal", + "Iso6392B": "kal", + "Iso6392T": "kal", + "Iso6393": "kal", + "LocalName": "Kalaallisut", + "Name": "Kalaallisut" + }, + { + "Iso6391": "kn", + "Iso6392": "kan", + "Iso6392B": "kan", + "Iso6392T": "kan", + "Iso6393": "kan", + "LocalName": "ಕನ್ನಡ", + "Name": "Kannada" + }, + { + "Iso6391": "kr", + "Iso6392": "kau", + "Iso6392B": "kau", + "Iso6392T": "kau", + "Iso6393": "kau", + "LocalName": "Kanuri", + "Name": "Kanuri" + }, + { + "Iso6391": "ks", + "Iso6392": "kas", + "Iso6392B": "kas", + "Iso6392T": "kas", + "Iso6393": "kas", + "LocalName": "كشميري", + "Name": "Kashmiri" + }, + { + "Iso6391": "kk", + "Iso6392": "kaz", + "Iso6392B": "kaz", + "Iso6392T": "kaz", + "Iso6393": "kaz", + "LocalName": "Қазақша", + "Name": "Kazakh" + }, + { + "Iso6391": "km", + "Iso6392": "khm", + "Iso6392B": "khm", + "Iso6392T": "khm", + "Iso6393": "khm", + "LocalName": "ភាសាខ្មែរ", + "Name": "Khmer" + }, + { + "Iso6391": "ki", + "Iso6392": "kik", + "Iso6392B": "kik", + "Iso6392T": "kik", + "Iso6393": "kik", + "LocalName": "Gĩkũyũ", + "Name": "Kikuyu" + }, + { + "Iso6391": "rw", + "Iso6392": "kin", + "Iso6392B": "kin", + "Iso6392T": "kin", + "Iso6393": "kin", + "LocalName": "Kinyarwanda", + "Name": "Kinyarwanda" + }, + { + "Iso6391": "ky", + "Iso6392": "kir", + "Iso6392B": "kir", + "Iso6392T": "kir", + "Iso6393": "kir", + "LocalName": "Кыргызча", + "Name": "Kyrgyz" + }, + { + "Iso6391": "kv", + "Iso6392": "kom", + "Iso6392B": "kom", + "Iso6392T": "kom", + "Iso6393": "kom", + "LocalName": "Коми", + "Name": "Komi" + }, + { + "Iso6391": "kg", + "Iso6392": "kon", + "Iso6392B": "kon", + "Iso6392T": "kon", + "Iso6393": "kon", + "LocalName": "Kongo", + "Name": "Kongo" + }, + { + "Iso6391": "ko", + "Iso6392": "kor", + "Iso6392B": "kor", + "Iso6392T": "kor", + "Iso6393": "kor", + "LocalName": "한국어", + "Name": "Korean" + }, + { + "Iso6391": "ku", + "Iso6392": "kur", + "Iso6392B": "kur", + "Iso6392T": "kur", + "Iso6393": "kur", + "LocalName": "Kurdî", + "Name": "Kurdish" + }, + { + "Iso6391": "kj", + "Iso6392": "kua", + "Iso6392B": "kua", + "Iso6392T": "kua", + "Iso6393": "kua", + "LocalName": "Kuanyama", + "Name": "Kwanyama" + }, + { + "Iso6391": "la", + "Iso6392": "lat", + "Iso6392B": "lat", + "Iso6392T": "lat", + "Iso6393": "lat", + "LocalName": "Latina", + "Name": "Latin" + }, + { + "Iso6391": "lb", + "Iso6392": "ltz", + "Iso6392B": "ltz", + "Iso6392T": "ltz", + "Iso6393": "ltz", + "LocalName": "Lëtzebuergesch", + "Name": "Luxembourgish" + }, + { + "Iso6391": "lg", + "Iso6392": "lug", + "Iso6392B": "lug", + "Iso6392T": "lug", + "Iso6393": "lug", + "LocalName": "Luganda", + "Name": "Ganda" + }, + { + "Iso6391": "li", + "Iso6392": "lim", + "Iso6392B": "lim", + "Iso6392T": "lim", + "Iso6393": "lim", + "LocalName": "Limburgs", + "Name": "Limburgish" + }, + { + "Iso6391": "ln", + "Iso6392": "lin", + "Iso6392B": "lin", + "Iso6392T": "lin", + "Iso6393": "lin", + "LocalName": "Lingála", + "Name": "Lingala" + }, + { + "Iso6391": "lo", + "Iso6392": "lao", + "Iso6392B": "lao", + "Iso6392T": "lao", + "Iso6393": "lao", + "LocalName": "ພາສາລາວ", + "Name": "Lao" + }, + { + "Iso6391": "lt", + "Iso6392": "lit", + "Iso6392B": "lit", + "Iso6392T": "lit", + "Iso6393": "lit", + "LocalName": "Lietuvių", + "Name": "Lithuanian" + }, + { + "Iso6391": "lu", + "Iso6392": "lub", + "Iso6392B": "lub", + "Iso6392T": "lub", + "Iso6393": "lub", + "LocalName": "Tshiluba", + "Name": "Luba-Katanga" + }, + { + "Iso6391": "lv", + "Iso6392": "lav", + "Iso6392B": "lav", + "Iso6392T": "lav", + "Iso6393": "lav", + "LocalName": "Latviešu", + "Name": "Latvian" + }, + { + "Iso6391": "gv", + "Iso6392": "glv", + "Iso6392B": "glv", + "Iso6392T": "glv", + "Iso6393": "glv", + "LocalName": "Gaelg", + "Name": "Manx" + }, + { + "Iso6391": "mk", + "Iso6392": "mkd", + "Iso6392B": "mac", + "Iso6392T": "mkd", + "Iso6393": "mkd", + "LocalName": "Македонски", + "Name": "Macedonian" + }, + { + "Iso6391": "mg", + "Iso6392": "mlg", + "Iso6392B": "mlg", + "Iso6392T": "mlg", + "Iso6393": "mlg", + "LocalName": "Malagasy", + "Name": "Malagasy" + }, + { + "Iso6391": "ms", + "Iso6392": "msa", + "Iso6392B": "may", + "Iso6392T": "msa", + "Iso6393": "msa", + "LocalName": "Bahasa Melayu", + "Name": "Malay" + }, + { + "Iso6391": "ml", + "Iso6392": "mal", + "Iso6392B": "mal", + "Iso6392T": "mal", + "Iso6393": "mal", + "LocalName": "മലയാളം", + "Name": "Malayalam" + }, + { + "Iso6391": "mt", + "Iso6392": "mlt", + "Iso6392B": "mlt", + "Iso6392T": "mlt", + "Iso6393": "mlt", + "LocalName": "Malti", + "Name": "Maltese" + }, + { + "Iso6391": "mi", + "Iso6392": "mri", + "Iso6392B": "mao", + "Iso6392T": "mri", + "Iso6393": "mri", + "LocalName": "Māori", + "Name": "Māori" + }, + { + "Iso6391": "mr", + "Iso6392": "mar", + "Iso6392B": "mar", + "Iso6392T": "mar", + "Iso6393": "mar", + "LocalName": "मराठी", + "Name": "Marathi" + }, + { + "Iso6391": "mh", + "Iso6392": "mah", + "Iso6392B": "mah", + "Iso6392T": "mah", + "Iso6393": "mah", + "LocalName": "Kajin M̧ajeļ", + "Name": "Marshallese" + }, + { + "Iso6391": "mn", + "Iso6392": "mon", + "Iso6392B": "mon", + "Iso6392T": "mon", + "Iso6393": "mon", + "LocalName": "Монгол", + "Name": "Mongolian" + }, + { + "Iso6391": "na", + "Iso6392": "nau", + "Iso6392B": "nau", + "Iso6392T": "nau", + "Iso6393": "nau", + "LocalName": "Dorerin Naoero", + "Name": "Nauru" + }, + { + "Iso6391": "nv", + "Iso6392": "nav", + "Iso6392B": "nav", + "Iso6392T": "nav", + "Iso6393": "nav", + "LocalName": "Diné Bizaad", + "Name": "Navajo" + }, + { + "Iso6391": "nd", + "Iso6392": "nde", + "Iso6392B": "nde", + "Iso6392T": "nde", + "Iso6393": "nde", + "LocalName": "isiNdebele", + "Name": "Northern Ndebele" + }, + { + "Iso6391": "ne", + "Iso6392": "nep", + "Iso6392B": "nep", + "Iso6392T": "nep", + "Iso6393": "nep", + "LocalName": "नेपाली", + "Name": "Nepali" + }, + { + "Iso6391": "ng", + "Iso6392": "ndo", + "Iso6392B": "ndo", + "Iso6392T": "ndo", + "Iso6393": "ndo", + "LocalName": "Owambo", + "Name": "Ndonga" + }, + { + "Iso6391": "nb", + "Iso6392": "nob", + "Iso6392B": "nob", + "Iso6392T": "nob", + "Iso6393": "nob", + "LocalName": "Norsk (Bokmål)", + "Name": "Norwegian Bokmål" + }, + { + "Iso6391": "nn", + "Iso6392": "nno", + "Iso6392B": "nno", + "Iso6392T": "nno", + "Iso6393": "nno", + "LocalName": "Norsk (Nynorsk)", + "Name": "Norwegian Nynorsk" + }, + { + "Iso6391": "no", + "Iso6392": "nor", + "Iso6392B": "nor", + "Iso6392T": "nor", + "Iso6393": "nor", + "LocalName": "Norsk", + "Name": "Norwegian" + }, + { + "Iso6391": "ii", + "Iso6392": "iii", + "Iso6392B": "iii", + "Iso6392T": "iii", + "Iso6393": "iii", + "LocalName": "ꆈꌠ꒿ Nuosuhxop", + "Name": "Nuosu" + }, + { + "Iso6391": "nr", + "Iso6392": "nbl", + "Iso6392B": "nbl", + "Iso6392T": "nbl", + "Iso6393": "nbl", + "LocalName": "isiNdebele", + "Name": "Southern Ndebele" + }, + { + "Iso6391": "oc", + "Iso6392": "oci", + "Iso6392B": "oci", + "Iso6392T": "oci", + "Iso6393": "oci", + "LocalName": "Occitan", + "Name": "Occitan" + }, + { + "Iso6391": "oj", + "Iso6392": "oji", + "Iso6392B": "oji", + "Iso6392T": "oji", + "Iso6393": "oji", + "LocalName": "ᐊᓂᔑᓈᐯᒧᐎᓐ", + "Name": "Ojibwe" + }, + { + "Iso6391": "cu", + "Iso6392": "chu", + "Iso6392B": "chu", + "Iso6392T": "chu", + "Iso6393": "chu", + "LocalName": "Словѣ́ньскъ", + "Name": "Old Church Slavonic" + }, + { + "Iso6391": "om", + "Iso6392": "orm", + "Iso6392B": "orm", + "Iso6392T": "orm", + "Iso6393": "orm", + "LocalName": "Afaan Oromoo", + "Name": "Oromo" + }, + { + "Iso6391": "or", + "Iso6392": "ori", + "Iso6392B": "ori", + "Iso6392T": "ori", + "Iso6393": "ori", + "LocalName": "ଓଡି଼ଆ", + "Name": "Oriya" + }, + { + "Iso6391": "os", + "Iso6392": "oss", + "Iso6392B": "oss", + "Iso6392T": "oss", + "Iso6393": "oss", + "LocalName": "Ирон æвзаг", + "Name": "Ossetian" + }, + { + "Iso6391": "pa", + "Iso6392": "pan", + "Iso6392B": "pan", + "Iso6392T": "pan", + "Iso6393": "pan", + "LocalName": "ਪੰਜਾਬੀ", + "Name": "Panjabi" + }, + { + "Iso6391": "pi", + "Iso6392": "pli", + "Iso6392B": "pli", + "Iso6392T": "pli", + "Iso6393": "pli", + "LocalName": "पाऴि", + "Name": "Pāli" + }, + { + "Iso6391": "fa", + "Iso6392": "fas", + "Iso6392B": "per", + "Iso6392T": "fas", + "Iso6393": "fas", + "LocalName": "فارسی", + "Name": "Persian" + }, + { + "Iso6391": "pl", + "Iso6392": "pol", + "Iso6392B": "pol", + "Iso6392T": "pol", + "Iso6393": "pol", + "LocalName": "Polski", + "Name": "Polish" + }, + { + "Iso6391": "ps", + "Iso6392": "pus", + "Iso6392B": "pus", + "Iso6392T": "pus", + "Iso6393": "pus", + "LocalName": "پښتو", + "Name": "Pashto" + }, + { + "Iso6391": "pt", + "Iso6392": "por", + "Iso6392B": "por", + "Iso6392T": "por", + "Iso6393": "por", + "LocalName": "Português", + "Name": "Portuguese" + }, + { + "Iso6391": "qu", + "Iso6392": "que", + "Iso6392B": "que", + "Iso6392T": "que", + "Iso6393": "que", + "LocalName": "Runa Simi", + "Name": "Quechua" + }, + { + "Iso6391": "rm", + "Iso6392": "roh", + "Iso6392B": "roh", + "Iso6392T": "roh", + "Iso6393": "roh", + "LocalName": "Rumantsch", + "Name": "Romansh" + }, + { + "Iso6391": "rn", + "Iso6392": "run", + "Iso6392B": "run", + "Iso6392T": "run", + "Iso6393": "run", + "LocalName": "Kirundi", + "Name": "Kirundi" + }, + { + "Iso6391": "ro", + "Iso6392": "ron", + "Iso6392B": "rum", + "Iso6392T": "ron", + "Iso6393": "ron", + "LocalName": "Română", + "Name": "Romanian" + }, + { + "Iso6391": "ru", + "Iso6392": "rus", + "Iso6392B": "rus", + "Iso6392T": "rus", + "Iso6393": "rus", + "LocalName": "Русский", + "Name": "Russian" + }, + { + "Iso6391": "sa", + "Iso6392": "san", + "Iso6392B": "san", + "Iso6392T": "san", + "Iso6393": "san", + "LocalName": "संस्कृतम्", + "Name": "Sanskrit" + }, + { + "Iso6391": "sc", + "Iso6392": "srd", + "Iso6392B": "srd", + "Iso6392T": "srd", + "Iso6393": "srd", + "LocalName": "Sardu", + "Name": "Sardinian" + }, + { + "Iso6391": "sd", + "Iso6392": "snd", + "Iso6392B": "snd", + "Iso6392T": "snd", + "Iso6393": "snd", + "LocalName": "سنڌي‎", + "Name": "Sindhi" + }, + { + "Iso6391": "se", + "Iso6392": "sme", + "Iso6392B": "sme", + "Iso6392T": "sme", + "Iso6393": "sme", + "LocalName": "Sámegiella", + "Name": "Northern Sami" + }, + { + "Iso6391": "sm", + "Iso6392": "smo", + "Iso6392B": "smo", + "Iso6392T": "smo", + "Iso6393": "smo", + "LocalName": "Gagana Sāmoa", + "Name": "Samoan" + }, + { + "Iso6391": "sg", + "Iso6392": "sag", + "Iso6392B": "sag", + "Iso6392T": "sag", + "Iso6393": "sag", + "LocalName": "Sängö", + "Name": "Sango" + }, + { + "Iso6391": "sr", + "Iso6392": "srp", + "Iso6392B": "srp", + "Iso6392T": "srp", + "Iso6393": "srp", + "LocalName": "Српски", + "Name": "Serbian" + }, + { + "Iso6391": "gd", + "Iso6392": "gla", + "Iso6392B": "gla", + "Iso6392T": "gla", + "Iso6393": "gla", + "LocalName": "Gàidhlig", + "Name": "Gaelic" + }, + { + "Iso6391": "sn", + "Iso6392": "sna", + "Iso6392B": "sna", + "Iso6392T": "sna", + "Iso6393": "sna", + "LocalName": "ChiShona", + "Name": "Shona" + }, + { + "Iso6391": "si", + "Iso6392": "sin", + "Iso6392B": "sin", + "Iso6392T": "sin", + "Iso6393": "sin", + "LocalName": "සිංහල", + "Name": "Sinhala" + }, + { + "Iso6391": "sk", + "Iso6392": "slk", + "Iso6392B": "slo", + "Iso6392T": "slk", + "Iso6393": "slk", + "LocalName": "Slovenčina", + "Name": "Slovak" + }, + { + "Iso6391": "sl", + "Iso6392": "slv", + "Iso6392B": "slv", + "Iso6392T": "slv", + "Iso6393": "slv", + "LocalName": "Slovenščina", + "Name": "Slovene" + }, + { + "Iso6391": "so", + "Iso6392": "som", + "Iso6392B": "som", + "Iso6392T": "som", + "Iso6393": "som", + "LocalName": "Soomaaliga", + "Name": "Somali" + }, + { + "Iso6391": "st", + "Iso6392": "sot", + "Iso6392B": "sot", + "Iso6392T": "sot", + "Iso6393": "sot", + "LocalName": "Sesotho", + "Name": "Southern Sotho" + }, + { + "Iso6391": "es", + "Iso6392": "spa", + "Iso6392B": "spa", + "Iso6392T": "spa", + "Iso6393": "spa", + "LocalName": "Español", + "Name": "Spanish" + }, + { + "Iso6391": "su", + "Iso6392": "sun", + "Iso6392B": "sun", + "Iso6392T": "sun", + "Iso6393": "sun", + "LocalName": "Basa Sunda", + "Name": "Sundanese" + }, + { + "Iso6391": "sw", + "Iso6392": "swa", + "Iso6392B": "swa", + "Iso6392T": "swa", + "Iso6393": "swa", + "LocalName": "Kiswahili", + "Name": "Swahili" + }, + { + "Iso6391": "ss", + "Iso6392": "ssw", + "Iso6392B": "ssw", + "Iso6392T": "ssw", + "Iso6393": "ssw", + "LocalName": "SiSwati", + "Name": "Swati" + }, + { + "Iso6391": "sv", + "Iso6392": "swe", + "Iso6392B": "swe", + "Iso6392T": "swe", + "Iso6393": "swe", + "LocalName": "Svenska", + "Name": "Swedish" + }, + { + "Iso6391": "ta", + "Iso6392": "tam", + "Iso6392B": "tam", + "Iso6392T": "tam", + "Iso6393": "tam", + "LocalName": "தமிழ்", + "Name": "Tamil" + }, + { + "Iso6391": "te", + "Iso6392": "tel", + "Iso6392B": "tel", + "Iso6392T": "tel", + "Iso6393": "tel", + "LocalName": "తెలుగు", + "Name": "Telugu" + }, + { + "Iso6391": "tg", + "Iso6392": "tgk", + "Iso6392B": "tgk", + "Iso6392T": "tgk", + "Iso6393": "tgk", + "LocalName": "Тоҷикӣ", + "Name": "Tajik" + }, + { + "Iso6391": "th", + "Iso6392": "tha", + "Iso6392B": "tha", + "Iso6392T": "tha", + "Iso6393": "tha", + "LocalName": "ภาษาไทย", + "Name": "Thai" + }, + { + "Iso6391": "ti", + "Iso6392": "tir", + "Iso6392B": "tir", + "Iso6392T": "tir", + "Iso6393": "tir", + "LocalName": "ትግርኛ", + "Name": "Tigrinya" + }, + { + "Iso6391": "bo", + "Iso6392": "bod", + "Iso6392B": "tib", + "Iso6392T": "bod", + "Iso6393": "bod", + "LocalName": "བོད་ཡིག", + "Name": "Tibetan Standard" + }, + { + "Iso6391": "tk", + "Iso6392": "tuk", + "Iso6392B": "tuk", + "Iso6392T": "tuk", + "Iso6393": "tuk", + "LocalName": "Türkmençe", + "Name": "Turkmen" + }, + { + "Iso6391": "tl", + "Iso6392": "tgl", + "Iso6392B": "tgl", + "Iso6392T": "tgl", + "Iso6393": "tgl", + "LocalName": "Tagalog", + "Name": "Tagalog" + }, + { + "Iso6391": "tn", + "Iso6392": "tsn", + "Iso6392B": "tsn", + "Iso6392T": "tsn", + "Iso6393": "tsn", + "LocalName": "Setswana", + "Name": "Tswana" + }, + { + "Iso6391": "to", + "Iso6392": "ton", + "Iso6392B": "ton", + "Iso6392T": "ton", + "Iso6393": "ton", + "LocalName": "faka Tonga", + "Name": "Tonga" + }, + { + "Iso6391": "tr", + "Iso6392": "tur", + "Iso6392B": "tur", + "Iso6392T": "tur", + "Iso6393": "tur", + "LocalName": "Türkçe", + "Name": "Turkish" + }, + { + "Iso6391": "ts", + "Iso6392": "tso", + "Iso6392B": "tso", + "Iso6392T": "tso", + "Iso6393": "tso", + "LocalName": "Xitsonga", + "Name": "Tsonga" + }, + { + "Iso6391": "tt", + "Iso6392": "tat", + "Iso6392B": "tat", + "Iso6392T": "tat", + "Iso6393": "tat", + "LocalName": "Татарча", + "Name": "Tatar" + }, + { + "Iso6391": "tw", + "Iso6392": "twi", + "Iso6392B": "twi", + "Iso6392T": "twi", + "Iso6393": "twi", + "LocalName": "Twi", + "Name": "Twi" + }, + { + "Iso6391": "ty", + "Iso6392": "tah", + "Iso6392B": "tah", + "Iso6392T": "tah", + "Iso6393": "tah", + "LocalName": "Reo Mā’ohi", + "Name": "Tahitian" + }, + { + "Iso6391": "ug", + "Iso6392": "uig", + "Iso6392B": "uig", + "Iso6392T": "uig", + "Iso6393": "uig", + "LocalName": "ئۇيغۇرچه", + "Name": "Uyghur" + }, + { + "Iso6391": "uk", + "Iso6392": "ukr", + "Iso6392B": "ukr", + "Iso6392T": "ukr", + "Iso6393": "ukr", + "LocalName": "Українська", + "Name": "Ukrainian" + }, + { + "Iso6391": "ur", + "Iso6392": "urd", + "Iso6392B": "urd", + "Iso6392T": "urd", + "Iso6393": "urd", + "LocalName": "اردو", + "Name": "Urdu" + }, + { + "Iso6391": "uz", + "Iso6392": "uzb", + "Iso6392B": "uzb", + "Iso6392T": "uzb", + "Iso6393": "uzb", + "LocalName": "O‘zbek", + "Name": "Uzbek" + }, + { + "Iso6391": "ve", + "Iso6392": "ven", + "Iso6392B": "ven", + "Iso6392T": "ven", + "Iso6393": "ven", + "LocalName": "Tshivenḓa", + "Name": "Venda" + }, + { + "Iso6391": "vi", + "Iso6392": "vie", + "Iso6392B": "vie", + "Iso6392T": "vie", + "Iso6393": "vie", + "LocalName": "Tiếng Việt", + "Name": "Vietnamese" + }, + { + "Iso6391": "vo", + "Iso6392": "vol", + "Iso6392B": "vol", + "Iso6392T": "vol", + "Iso6393": "vol", + "LocalName": "Volapük", + "Name": "Volapük" + }, + { + "Iso6391": "wa", + "Iso6392": "wln", + "Iso6392B": "wln", + "Iso6392T": "wln", + "Iso6393": "wln", + "LocalName": "Walon", + "Name": "Walloon" + }, + { + "Iso6391": "cy", + "Iso6392": "cym", + "Iso6392B": "wel", + "Iso6392T": "cym", + "Iso6393": "cym", + "LocalName": "Cymraeg", + "Name": "Welsh" + }, + { + "Iso6391": "wo", + "Iso6392": "wol", + "Iso6392B": "wol", + "Iso6392T": "wol", + "Iso6393": "wol", + "LocalName": "Wolof", + "Name": "Wolof" + }, + { + "Iso6391": "fy", + "Iso6392": "fry", + "Iso6392B": "fry", + "Iso6392T": "fry", + "Iso6393": "fry", + "LocalName": "Frysk", + "Name": "Western Frisian" + }, + { + "Iso6391": "xh", + "Iso6392": "xho", + "Iso6392B": "xho", + "Iso6392T": "xho", + "Iso6393": "xho", + "LocalName": "isiXhosa", + "Name": "Xhosa" + }, + { + "Iso6391": "yi", + "Iso6392": "yid", + "Iso6392B": "yid", + "Iso6392T": "yid", + "Iso6393": "yid", + "LocalName": "ייִדיש", + "Name": "Yiddish" + }, + { + "Iso6391": "yo", + "Iso6392": "yor", + "Iso6392B": "yor", + "Iso6392T": "yor", + "Iso6393": "yor", + "LocalName": "Yorùbá", + "Name": "Yoruba" + }, + { + "Iso6391": "za", + "Iso6392": "zha", + "Iso6392B": "zha", + "Iso6392T": "zha", + "Iso6393": "zha", + "LocalName": "Cuengh", + "Name": "Zhuang" + }, + { + "Iso6391": "zu", + "Iso6392": "zul", + "Iso6392B": "zul", + "Iso6392T": "zul", + "Iso6393": "zul", + "LocalName": "isiZulu", + "Name": "Zulu" + } +] \ No newline at end of file diff --git a/src/FilterLists.Api/Migrations/20171028013855_InitialCreate.Designer.cs b/src/FilterLists.Api/Migrations/20171028013855_InitialCreate.Designer.cs new file mode 100644 index 000000000..8784f74cb --- /dev/null +++ b/src/FilterLists.Api/Migrations/20171028013855_InitialCreate.Designer.cs @@ -0,0 +1,249 @@ +// +using FilterLists.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage; +using Microsoft.EntityFrameworkCore.Storage.Internal; +using System; + +namespace FilterLists.Api.Migrations +{ + [DbContext(typeof(FilterListsDbContext))] + [Migration("20171028013855_InitialCreate")] + partial class InitialCreate + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn) + .HasAnnotation("ProductVersion", "2.0.0-rtm-26452"); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterList", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("Description") + .HasMaxLength(4096); + + b.Property("DescriptionSourceUrl") + .HasMaxLength(2083); + + b.Property("DonateUrl") + .HasMaxLength(2083); + + b.Property("EmailAddress") + .HasMaxLength(126); + + b.Property("ForumUrl") + .HasMaxLength(2083); + + b.Property("HomeUrl") + .HasMaxLength(2083); + + b.Property("IssuesUrl") + .HasMaxLength(2083); + + b.Property("MaintainerId"); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(126); + + b.Property("ViewUrl") + .HasMaxLength(2083); + + b.HasKey("Id"); + + b.HasIndex("MaintainerId"); + + b.ToTable("filterlists"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterListLanguage", b => + { + b.Property("FilterListId"); + + b.Property("LanguageId"); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.HasKey("FilterListId", "LanguageId"); + + b.HasIndex("LanguageId"); + + b.ToTable("filterlists_languages"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterListSoftware", b => + { + b.Property("FilterListId"); + + b.Property("SoftwareId"); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.HasKey("FilterListId", "SoftwareId"); + + b.HasIndex("SoftwareId"); + + b.ToTable("filterlists_software"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.Language", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("Iso6391") + .HasMaxLength(2); + + b.Property("Iso6392") + .HasMaxLength(3); + + b.Property("Iso6392B") + .HasMaxLength(3); + + b.Property("Iso6392T") + .HasMaxLength(3); + + b.Property("Iso6393") + .HasMaxLength(3); + + b.Property("LocalName") + .HasMaxLength(126); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.Property("Name") + .HasMaxLength(126); + + b.HasKey("Id"); + + b.ToTable("languages"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.Maintainer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("Email") + .HasMaxLength(126); + + b.Property("HomeUrl") + .HasMaxLength(2083); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(126); + + b.Property("TwitterHandle") + .HasMaxLength(126); + + b.HasKey("Id"); + + b.ToTable("maintainers"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.Software", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("DownloadUrl") + .HasMaxLength(2083); + + b.Property("HomeUrl") + .HasMaxLength(2083); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.Property("Name") + .HasMaxLength(126); + + b.HasKey("Id"); + + b.ToTable("software"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterList", b => + { + b.HasOne("FilterLists.Data.Entities.Maintainer") + .WithMany("FilterLists") + .HasForeignKey("MaintainerId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterListLanguage", b => + { + b.HasOne("FilterLists.Data.Entities.FilterList", "FilterList") + .WithMany("FilterListLanguages") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("FilterLists.Data.Entities.Language", "Language") + .WithMany("FilterListLanguages") + .HasForeignKey("LanguageId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterListSoftware", b => + { + b.HasOne("FilterLists.Data.Entities.FilterList", "FilterList") + .WithMany("FilterListSoftware") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("FilterLists.Data.Entities.Software", "Software") + .WithMany("FilterListSoftware") + .HasForeignKey("SoftwareId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/FilterLists.Api/Migrations/20171028013855_InitialCreate.cs b/src/FilterLists.Api/Migrations/20171028013855_InitialCreate.cs new file mode 100644 index 000000000..29b000a98 --- /dev/null +++ b/src/FilterLists.Api/Migrations/20171028013855_InitialCreate.cs @@ -0,0 +1,193 @@ +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using System; +using System.Collections.Generic; + +namespace FilterLists.Api.Migrations +{ + public partial class InitialCreate : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "languages", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + Iso6391 = table.Column(type: "varchar(2)", maxLength: 2, nullable: true), + Iso6392 = table.Column(type: "varchar(3)", maxLength: 3, nullable: true), + Iso6392B = table.Column(type: "varchar(3)", maxLength: 3, nullable: true), + Iso6392T = table.Column(type: "varchar(3)", maxLength: 3, nullable: true), + Iso6393 = table.Column(type: "varchar(3)", maxLength: 3, nullable: true), + LocalName = table.Column(type: "varchar(126)", maxLength: 126, nullable: true), + ModifiedDateUtc = table.Column(type: "TIMESTAMP", nullable: false), + Name = table.Column(type: "varchar(126)", maxLength: 126, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_languages", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "maintainers", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + Email = table.Column(type: "varchar(126)", maxLength: 126, nullable: true), + HomeUrl = table.Column(type: "varchar(2083)", maxLength: 2083, nullable: true), + ModifiedDateUtc = table.Column(type: "TIMESTAMP", nullable: false), + Name = table.Column(type: "varchar(126)", maxLength: 126, nullable: false), + TwitterHandle = table.Column(type: "varchar(126)", maxLength: 126, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_maintainers", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "software", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + DownloadUrl = table.Column(type: "varchar(2083)", maxLength: 2083, nullable: true), + HomeUrl = table.Column(type: "varchar(2083)", maxLength: 2083, nullable: true), + ModifiedDateUtc = table.Column(type: "TIMESTAMP", nullable: false), + Name = table.Column(type: "varchar(126)", maxLength: 126, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_software", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "filterlists", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + Description = table.Column(type: "varchar(4096)", maxLength: 4096, nullable: true), + DescriptionSourceUrl = table.Column(type: "varchar(2083)", maxLength: 2083, nullable: true), + DonateUrl = table.Column(type: "varchar(2083)", maxLength: 2083, nullable: true), + EmailAddress = table.Column(type: "varchar(126)", maxLength: 126, nullable: true), + ForumUrl = table.Column(type: "varchar(2083)", maxLength: 2083, nullable: true), + HomeUrl = table.Column(type: "varchar(2083)", maxLength: 2083, nullable: true), + IssuesUrl = table.Column(type: "varchar(2083)", maxLength: 2083, nullable: true), + MaintainerId = table.Column(type: "int", nullable: false), + ModifiedDateUtc = table.Column(type: "TIMESTAMP", nullable: false), + Name = table.Column(type: "varchar(126)", maxLength: 126, nullable: false), + ViewUrl = table.Column(type: "varchar(2083)", maxLength: 2083, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_filterlists", x => x.Id); + table.ForeignKey( + name: "FK_filterlists_maintainers_MaintainerId", + column: x => x.MaintainerId, + principalTable: "maintainers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "filterlists_languages", + columns: table => new + { + FilterListId = table.Column(type: "int", nullable: false), + LanguageId = table.Column(type: "int", nullable: false), + CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + ModifiedDateUtc = table.Column(type: "TIMESTAMP", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_filterlists_languages", x => new { x.FilterListId, x.LanguageId }); + table.ForeignKey( + name: "FK_filterlists_languages_filterlists_FilterListId", + column: x => x.FilterListId, + principalTable: "filterlists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_filterlists_languages_languages_LanguageId", + column: x => x.LanguageId, + principalTable: "languages", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "filterlists_software", + columns: table => new + { + FilterListId = table.Column(type: "int", nullable: false), + SoftwareId = table.Column(type: "int", nullable: false), + CreatedDateUtc = table.Column(type: "TIMESTAMP", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + ModifiedDateUtc = table.Column(type: "TIMESTAMP", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_filterlists_software", x => new { x.FilterListId, x.SoftwareId }); + table.ForeignKey( + name: "FK_filterlists_software_filterlists_FilterListId", + column: x => x.FilterListId, + principalTable: "filterlists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_filterlists_software_software_SoftwareId", + column: x => x.SoftwareId, + principalTable: "software", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_filterlists_MaintainerId", + table: "filterlists", + column: "MaintainerId"); + + migrationBuilder.CreateIndex( + name: "IX_filterlists_languages_LanguageId", + table: "filterlists_languages", + column: "LanguageId"); + + migrationBuilder.CreateIndex( + name: "IX_filterlists_software_SoftwareId", + table: "filterlists_software", + column: "SoftwareId"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "filterlists_languages"); + + migrationBuilder.DropTable( + name: "filterlists_software"); + + migrationBuilder.DropTable( + name: "languages"); + + migrationBuilder.DropTable( + name: "filterlists"); + + migrationBuilder.DropTable( + name: "software"); + + migrationBuilder.DropTable( + name: "maintainers"); + } + } +} diff --git a/src/FilterLists.Api/Migrations/FilterListsDbContextModelSnapshot.cs b/src/FilterLists.Api/Migrations/FilterListsDbContextModelSnapshot.cs new file mode 100644 index 000000000..8b21b8d3d --- /dev/null +++ b/src/FilterLists.Api/Migrations/FilterListsDbContextModelSnapshot.cs @@ -0,0 +1,248 @@ +// +using FilterLists.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage; +using Microsoft.EntityFrameworkCore.Storage.Internal; +using System; + +namespace FilterLists.Api.Migrations +{ + [DbContext(typeof(FilterListsDbContext))] + partial class FilterListsDbContextModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn) + .HasAnnotation("ProductVersion", "2.0.0-rtm-26452"); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterList", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("Description") + .HasMaxLength(4096); + + b.Property("DescriptionSourceUrl") + .HasMaxLength(2083); + + b.Property("DonateUrl") + .HasMaxLength(2083); + + b.Property("EmailAddress") + .HasMaxLength(126); + + b.Property("ForumUrl") + .HasMaxLength(2083); + + b.Property("HomeUrl") + .HasMaxLength(2083); + + b.Property("IssuesUrl") + .HasMaxLength(2083); + + b.Property("MaintainerId"); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(126); + + b.Property("ViewUrl") + .HasMaxLength(2083); + + b.HasKey("Id"); + + b.HasIndex("MaintainerId"); + + b.ToTable("filterlists"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterListLanguage", b => + { + b.Property("FilterListId"); + + b.Property("LanguageId"); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.HasKey("FilterListId", "LanguageId"); + + b.HasIndex("LanguageId"); + + b.ToTable("filterlists_languages"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterListSoftware", b => + { + b.Property("FilterListId"); + + b.Property("SoftwareId"); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.HasKey("FilterListId", "SoftwareId"); + + b.HasIndex("SoftwareId"); + + b.ToTable("filterlists_software"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.Language", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("Iso6391") + .HasMaxLength(2); + + b.Property("Iso6392") + .HasMaxLength(3); + + b.Property("Iso6392B") + .HasMaxLength(3); + + b.Property("Iso6392T") + .HasMaxLength(3); + + b.Property("Iso6393") + .HasMaxLength(3); + + b.Property("LocalName") + .HasMaxLength(126); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.Property("Name") + .HasMaxLength(126); + + b.HasKey("Id"); + + b.ToTable("languages"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.Maintainer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("Email") + .HasMaxLength(126); + + b.Property("HomeUrl") + .HasMaxLength(2083); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(126); + + b.Property("TwitterHandle") + .HasMaxLength(126); + + b.HasKey("Id"); + + b.ToTable("maintainers"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.Software", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CreatedDateUtc") + .ValueGeneratedOnAdd() + .HasColumnType("TIMESTAMP"); + + b.Property("DownloadUrl") + .HasMaxLength(2083); + + b.Property("HomeUrl") + .HasMaxLength(2083); + + b.Property("ModifiedDateUtc") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("TIMESTAMP"); + + b.Property("Name") + .HasMaxLength(126); + + b.HasKey("Id"); + + b.ToTable("software"); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterList", b => + { + b.HasOne("FilterLists.Data.Entities.Maintainer") + .WithMany("FilterLists") + .HasForeignKey("MaintainerId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterListLanguage", b => + { + b.HasOne("FilterLists.Data.Entities.FilterList", "FilterList") + .WithMany("FilterListLanguages") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("FilterLists.Data.Entities.Language", "Language") + .WithMany("FilterListLanguages") + .HasForeignKey("LanguageId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("FilterLists.Data.Entities.FilterListSoftware", b => + { + b.HasOne("FilterLists.Data.Entities.FilterList", "FilterList") + .WithMany("FilterListSoftware") + .HasForeignKey("FilterListId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("FilterLists.Data.Entities.Software", "Software") + .WithMany("FilterListSoftware") + .HasForeignKey("SoftwareId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/FilterLists.Api/Program.cs b/src/FilterLists.Api/Program.cs index 9bf656fc9..636d2bf03 100644 --- a/src/FilterLists.Api/Program.cs +++ b/src/FilterLists.Api/Program.cs @@ -1,6 +1,8 @@ -using FilterLists.Data.Json; +using FilterLists.Data; +using FilterLists.Data.Json; using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.DependencyInjection; namespace FilterLists.Api { @@ -10,7 +12,12 @@ public static void Main(string[] args) { JsonSchemaGenerator.WriteSchemaToFile(); JsonSampleGenerator.WriteSampleToFile(); - BuildWebHost(args).Run(); + var host = BuildWebHost(args); + using (var scope = host.Services.CreateScope()) + { + DbInitializer.Initialize(scope.ServiceProvider.GetRequiredService()); + } + host.Run(); } public static IWebHost BuildWebHost(string[] args) diff --git a/src/FilterLists.Data/DbInitializer.cs b/src/FilterLists.Data/DbInitializer.cs new file mode 100644 index 000000000..5374022fb --- /dev/null +++ b/src/FilterLists.Data/DbInitializer.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using FilterLists.Data.Entities; +using Microsoft.EntityFrameworkCore; +using Newtonsoft.Json; + +namespace FilterLists.Data +{ + public static class DbInitializer + { + public static void Initialize(FilterListsDbContext filterListsDbContext) + { + filterListsDbContext.Database.Migrate(); + InitializeLanguages(filterListsDbContext); + } + + private static void InitializeLanguages(FilterListsDbContext filterListsDbContext) + { + if (filterListsDbContext.Languages.Any()) return; + filterListsDbContext.AddRange(JsonConvert.DeserializeObject>( + File.ReadAllText(Path.GetFullPath(Path.Combine(AppContext.BaseDirectory + @"\", + @"..\..\..\..\..\data\Languages.json"))))); + filterListsDbContext.SaveChanges(); + } + } +} \ No newline at end of file