Commit 67336cd0 authored by Seb's avatar Seb
Browse files

track tag output

parent 4ebba068
...@@ -21,6 +21,7 @@ setup( ...@@ -21,6 +21,7 @@ setup(
'wagtail>=2.4', 'wagtail>=2.4',
'Django>=1.11', 'Django>=1.11',
'django-enumchoicefield>=1.1.0', 'django-enumchoicefield>=1.1.0',
'bcp47==0.0.4',
], ],
extras_require={ extras_require={
'testing': [ 'testing': [
......
# Generated by Django 2.2.17 on 2021-01-28 00:22 # Generated by Django 2.2.17 on 2021-01-29 03:21
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
...@@ -17,10 +17,10 @@ class Migration(migrations.Migration): ...@@ -17,10 +17,10 @@ class Migration(migrations.Migration):
initial = True initial = True
dependencies = [ dependencies = [
('taggit', '0003_taggeditem_add_unique_index'), ('wagtailcore', '0059_apply_collection_ordering'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL), migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('wagtailvideos', '0010_video_ordering'), ('wagtailvideos', '0010_video_ordering'),
('wagtailcore', '0059_apply_collection_ordering'), ('taggit', '0003_taggeditem_add_unique_index'),
] ]
operations = [ operations = [
......
# Generated by Django 2.2.17 on 2021-01-28 03:08
from django.db import migrations, models
import django.db.models.deletion
import wagtailvideos.models
class Migration(migrations.Migration):
dependencies = [
('app', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='CustomTrack',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('file', models.FileField(upload_to=wagtailvideos.models.get_upload_to, verbose_name='file')),
('kind', models.CharField(choices=[('subtitles', 'Subtitles'), ('captions', 'Captions'), ('descriptions', 'Descriptions'), ('chapters', 'Chapters'), ('metadata', 'Metadata')], default='subtitles', max_length=50)),
('label', models.CharField(blank=True, help_text='A user-readable title of the text track.', max_length=255)),
('language', models.CharField(blank=True, choices=[('Afar', 'aa'), ('Afar - Djibouti', 'aa-DJ'), ('Afar - Eritrea', 'aa-ER'), ('Afar - Ethiopia', 'aa-ET'), ('Afrikaans', 'af'), ('Afrikaans - Namibia', 'af-NA'), ('Afrikaans - South Africa', 'af-ZA'), ('Aghem', 'agq'), ('Aghem - Cameroon', 'agq-CM'), ('Akan', 'ak'), ('Akan - Ghana', 'ak-GH'), ('Albanian', 'sq'), ('Albanian - Albania', 'sq-AL'), ('Albanian - North Macedonia', 'sq-MK'), ('Alsatian', 'gsw'), ('Alsatian - France', 'gsw-FR'), ('Alsatian - Liechtenstein', 'gsw-LI'), ('Alsatian - Switzerland', 'gsw-CH'), ('Amharic', 'am'), ('Amharic - Ethiopia', 'am-ET'), ('Arabic', 'ar'), ('Arabic - Algeria', 'ar-DZ'), ('Arabic - Bahrain', 'ar-BH'), ('Arabic - Chad', 'ar-TD'), ('Arabic - Comoros', 'ar-KM'), ('Arabic - Djibouti', 'ar-DJ'), ('Arabic - Egypt', 'ar-EG'), ('Arabic - Eritrea', 'ar-ER'), ('Arabic - Iraq', 'ar-IQ'), ('Arabic - Israel', 'ar-IL'), ('Arabic - Jordan', 'ar-JO'), ('Arabic - Kuwait', 'ar-KW'), ('Arabic - Lebanon', 'ar-LB'), ('Arabic - Libya', 'ar-LY'), ('Arabic - Mauritania', 'ar-MR'), ('Arabic - Morocco', 'ar-MA'), ('Arabic - Oman', 'ar-OM'), ('Arabic - Palestinian Authority', 'ar-PS'), ('Arabic - Qatar', 'ar-QA'), ('Arabic - Saudi Arabia', 'ar-SA'), ('Arabic - Somalia', 'ar-SO'), ('Arabic - South Sudan', 'ar-SS'), ('Arabic - Sudan', 'ar-SD'), ('Arabic - Syria', 'ar-SY'), ('Arabic - Tunisia', 'ar-TN'), ('Arabic - U.A.E.', 'ar-AE'), ('Arabic - World', 'ar-001'), ('Arabic - Yemen', 'ar-YE'), ('Armenian', 'hy'), ('Armenian - Armenia', 'hy-AM'), ('Assamese', 'as'), ('Assamese - India', 'as-IN'), ('Asturian', 'ast'), ('Asturian - Spain', 'ast-ES'), ('Asu', 'asa'), ('Asu - Tanzania', 'asa-TZ'), ('Azerbaijani (Cyrillic)', 'az-Cyrl'), ('Azerbaijani (Cyrillic) - Azerbaijan', 'az-Cyrl-AZ'), ('Azerbaijani (Latin)', 'az'), ('Azerbaijani (Latin), Latn', 'az-Latn'), ('Azerbaijani (Latin) - Azerbaijan', 'az-Latn-AZ'), ('Bafia', 'ksf'), ('Bafia - Cameroon', 'ksf-CM'), ('Bamanankan', 'bm'), ('Bamanankan (Latin) - Mali', 'bm-Latn-ML'), ('Bangla', 'bn'), ('Bangla - Bangladesh', 'bn-BD'), ('Bangla - India', 'bn-IN'), ('Basaa', 'bas'), ('Basaa - Cameroon', 'bas-CM'), ('Bashkir', 'ba'), ('Bashkir - Russia', 'ba-RU'), ('Basque', 'eu'), ('Basque - Spain', 'eu-ES'), ('Belarusian', 'be'), ('Belarusian - Belarus', 'be-BY'), ('Bemba', 'bem'), ('Bemba - Zambia', 'bem-ZM'), ('Bena', 'bez'), ('Bena - Tanzania', 'bez-TZ'), ('Blin', 'byn'), ('Blin - Eritrea', 'byn-ER'), ('Bodo', 'brx'), ('Bodo - India', 'brx-IN'), ('Bosnian (Cyrillic)', 'bs-Cyrl'), ('Bosnian (Cyrillic) - Bosnia and Herzegovina', 'bs-Cyrl-BA'), ('Bosnian (Latin)', 'bs'), ('Bosnian (Latin), Latn', 'bs-Latn'), ('Bosnian (Latin) - Bosnia and Herzegovina', 'bs-Latn-BA'), ('Breton', 'br'), ('Breton - France', 'br-FR'), ('Bulgarian', 'bg'), ('Bulgarian - Bulgaria', 'bg-BG'), ('Burmese', 'my'), ('Burmese - Myanmar', 'my-MM'), ('Catalan', 'ca'), ('Catalan - Andorra', 'ca-AD'), ('Catalan - France', 'ca-FR'), ('Catalan - Italy', 'ca-IT'), ('Catalan - Spain', 'ca-ES'), ('Cebuano', 'ceb'), ('Cebuan (Latin)', 'ceb-Latn'), ('Cebuan (Latin) - Philippines', 'ceb-Latn-PH'), ('Central Atlas Tamazight (Latin) - Morocco', 'tzm-Latn-MA'), ('Central Kurdish', 'ku'), ('Central Kurdish, Arab', 'ku-Arab'), ('Central Kurdish - Iraq', 'ku-Arab-IQ'), ('Chakma', 'ccp'), ('Chakma - Chakma', 'ccp-Cakm'), ('Chakma - Bangladesh', 'ccp-Cakm-BD'), ('Chakma - India', 'ccp-Cakm-IN'), ('Chechen - Russia', 'cd-RU'), ('Cherokee', 'chr'), ('Cherokee, Cher', 'chr-Cher'), ('Cherokee - United States', 'chr-Cher-US'), ('Chiga', 'cgg'), ('Chiga - Uganda', 'cgg-UG'), ('Chinese (Simplified)', 'zh'), ('Chinese (Simplified), Hans', 'zh-Hans'), ("Chinese (Simplified) - People's Republic of China", 'zh-CN'), ('Chinese (Simplified) - Singapore', 'zh-SG'), ('Chinese (Traditional)', 'zh-Hant'), ('Chinese (Traditional) - Hong Kong S.A.R.', 'zh-HK'), ('Chinese (Traditional) - Macao S.A.R.', 'zh-MO'), ('Chinese (Traditional) - Taiwan', 'zh-TW'), ('Church Slavic - Russia', 'cu-RU'), ('Congo Swahili', 'swc'), ('Congo Swahili - Congo DRC', 'swc-CD'), ('Cornish', 'kw'), ('Cornish - United Kingdom', 'kw-GB'), ('Corsican', 'co'), ('Corsican - France', 'co-FR'), ('Croatian', 'hr,'), ('Croatian - Croatia', 'hr-HR'), ('Croatian (Latin) - Bosnia and Herzegovina', 'hr-BA'), ('Czech', 'cs'), ('Czech - Czech Republic', 'cs-CZ'), ('Danish', 'da'), ('Danish - Denmark', 'da-DK'), ('Danish - Greenland', 'da-GL'), ('Dari', 'prs'), ('Dari - Afghanistan', 'prs-AF'), ('Divehi', 'dv'), ('Divehi - Maldives', 'dv-MV'), ('Duala', 'dua'), ('Duala - Cameroon', 'dua-CM'), ('Dutch', 'nl'), ('Dutch - Aruba', 'nl-AW'), ('Dutch - Belgium', 'nl-BE'), ('Dutch - Bonaire, Sint Eustatius and Saba', 'nl-BQ'), ('Dutch - Curaçao', 'nl-CW'), ('Dutch - Netherlands', 'nl-NL'), ('Dutch - Sint Maarten', 'nl-SX'), ('Dutch - Suriname', 'nl-SR'), ('Dzongkha', 'dz'), ('Dzongkha - Bhutan', 'dz-BT'), ('Embu', 'ebu'), ('Embu - Kenya', 'ebu-KE'), ('English', 'en'), ('English - American Samoa', 'en-AS'), ('English - Anguilla', 'en-AI'), ('English - Antigua and Barbuda', 'en-AG'), ('English - Australia', 'en-AU'), ('English - Austria', 'en-AT'), ('English - Bahamas', 'en-BS'), ('English - Barbados', 'en-BB'), ('English - Belgium', 'en-BE'), ('English - Belize', 'en-BZ'), ('English - Bermuda', 'en-BM'), ('English - Botswana', 'en-BW'), ('English - British Indian Ocean Territory', 'en-IO'), ('English - British Virgin Islands', 'en-VG'), ('English - Burundi', 'en-BI'), ('English - Cameroon', 'en-CM'), ('English - Canada', 'en-CA'), ('English - Caribbean', 'en-029'), ('English - Cayman Islands', 'en-KY'), ('English - Christmas Island', 'en-CX'), ('English - Cocos [Keeling] Islands', 'en-CC'), ('English - Cook Islands', 'en-CK'), ('English - Cyprus', 'en-CY'), ('English - Denmark', 'en-DK'), ('English - Dominica', 'en-DM'), ('English - Eritrea', 'en-ER'), ('English - Europe', 'en-150'), ('English - Falkland Islands', 'en-FK'), ('English - Finland', 'en-FI'), ('English - Fiji', 'en-FJ'), ('English - Gambia', 'en-GM'), ('English - Germany', 'en-DE'), ('English - Ghana', 'en-GH'), ('English - Gibraltar', 'en-GI'), ('English - Grenada', 'en-GD'), ('English - Guam', 'en-GU'), ('English - Guernsey', 'en-GG'), ('English - Guyana', 'en-GY'), ('English - Hong Kong', 'en-HK'), ('English - India', 'en-IN'), ('English - Ireland', 'en-IE'), ('English - Isle of Man', 'en-IM'), ('English - Israel', 'en-IL'), ('English - Jamaica', 'en-JM'), ('English - Jersey', 'en-JE'), ('English - Kenya', 'en-KE'), ('English - Kiribati', 'en-KI'), ('English - Lesotho', 'en-LS'), ('English - Liberia', 'en-LR'), ('English - Macao SAR', 'en-MO'), ('English - Madagascar', 'en-MG'), ('English - Malawi', 'en-MW'), ('English - Malaysia', 'en-MY'), ('English - Malta', 'en-MT'), ('English - Marshall Islands', 'en-MH'), ('English - Mauritius', 'en-MU'), ('English - Micronesia', 'en-FM'), ('English - Montserrat', 'en-MS'), ('English - Namibia', 'en-NA'), ('English - Nauru', 'en-NR'), ('English - Netherlands', 'en-NL'), ('English - New Zealand', 'en-NZ'), ('English - Nigeria', 'en-NG'), ('English - Niue', 'en-NU'), ('English - Norfolk Island', 'en-NF'), ('English - Northern Mariana Islands', 'en-MP'), ('English - Pakistan', 'en-PK'), ('English - Palau', 'en-PW'), ('English - Papua New Guinea', 'en-PG'), ('English - Pitcairn Islands', 'en-PN'), ('English - Puerto Rico', 'en-PR'), ('English - Republic of the Philippines', 'en-PH'), ('English - Rwanda', 'en-RW'), ('English - Saint Kitts and Nevis', 'en-KN'), ('English - Saint Lucia', 'en-LC'), ('English - Saint Vincent and the Grenadines', 'en-VC'), ('English - Samoa', 'en-WS'), ('English - Seychelles', 'en-SC'), ('English - Sierra Leone', 'en-SL'), ('English - Singapore', 'en-SG'), ('English - Sint Maarten', 'en-SX'), ('English - Slovenia', 'en-SI'), ('English - Solomon Islands', 'en-SB'), ('English - South Africa', 'en-ZA'), ('English - South Sudan', 'en-SS'), ('English - St Helena, Ascension, Tristan da Cunha', 'en-SH'), ('English - Sudan', 'en-SD'), ('English - Swaziland', 'en-SZ'), ('English - Sweden', 'en-SE'), ('English - Switzerland', 'en-CH'), ('English - Tanzania', 'en-TZ'), ('English - Tokelau', 'en-TK'), ('English - Tonga', 'en-TO'), ('English - Trinidad and Tobago', 'en-TT'), ('English - Turks and Caicos Islands', 'en-TC'), ('English - Tuvalu', 'en-TV'), ('English - Uganda', 'en-UG'), ('English - United Arab Emirates', 'en-AE'), ('English - United Kingdom', 'en-GB'), ('English - United States', 'en-US'), ('English - US Minor Outlying Islands', 'en-UM'), ('English - US Virgin Islands', 'en-VI'), ('English - Vanuatu', 'en-VU'), ('English - World', 'en-001'), ('English - Zambia', 'en-ZM'), ('English - Zimbabwe', 'en-ZW'), ('Esperanto', 'eo'), ('Esperanto - World', 'eo-001'), ('Estonian', 'et'), ('Estonian - Estonia', 'et-EE'), ('Ewe', 'ee'), ('Ewe - Ghana', 'ee-GH'), ('Ewe - Togo', 'ee-TG'), ('Ewondo', 'ewo'), ('Ewondo - Cameroon', 'ewo-CM'), ('Faroese', 'fo'), ('Faroese - Denmark', 'fo-DK'), ('Faroese - Faroe Islands', 'fo-FO'), ('Filipino', 'fil'), ('Filipino - Philippines', 'fil-PH'), ('Finnish', 'fi'), ('Finnish - Finland', 'fi-FI'), ('French', 'fr'), ('French - Algeria', 'fr-DZ'), ('French - Belgium', 'fr-BE'), ('French - Benin', 'fr-BJ'), ('French - Burkina Faso', 'fr-BF'), ('French - Burundi', 'fr-BI'), ('French - Cameroon', 'fr-CM'), ('French - Canada', 'fr-CA'), ('French - Central African Republic', 'fr-CF'), ('French - Chad', 'fr-TD'), ('French - Comoros', 'fr-KM'), ('French - Congo', 'fr-CG'), ('French - Congo, DRC', 'fr-CD'), ("French - Côte d'Ivoire", 'fr-CI'), ('French - Djibouti', 'fr-DJ'), ('French - Equatorial Guinea', 'fr-GQ'), ('French - France', 'fr-FR'), ('French - French Guiana', 'fr-GF'), ('French - French Polynesia', 'fr-PF'), ('French - Gabon', 'fr-GA'), ('French - Guadeloupe', 'fr-GP'), ('French - Guinea', 'fr-GN'), ('French - Haiti', 'fr-HT'), ('French - Luxembourg', 'fr-LU'), ('French - Madagascar', 'fr-MG'), ('French - Mali', 'fr-ML'), ('French - Martinique', 'fr-MQ'), ('French - Mauritania', 'fr-MR'), ('French - Mauritius', 'fr-MU'), ('French - Mayotte', 'fr-YT'), ('French - Morocco', 'fr-MA'), ('French - New Caledonia', 'fr-NC'), ('French - Niger', 'fr-NE'), ('French - Principality of Monaco', 'fr-MC'), ('French - Reunion', 'fr-RE'), ('French - Rwanda', 'fr-RW'), ('French - Saint Barthélemy', 'fr-BL'), ('French - Saint Martin', 'fr-MF'), ('French - Saint Pierre and Miquelon', 'fr-PM'), ('French - Senegal', 'fr-SN'), ('French - Seychelles', 'fr-SC'), ('French - Switzerland', 'fr-CH'), ('French - Syria', 'fr-SY'), ('French - Togo', 'fr-TG'), ('French - Tunisia', 'fr-TN'), ('French - Vanuatu', 'fr-VU'), ('French - Wallis and Futuna', 'fr-WF'), ('Frisian', 'fy'), ('Frisian - Netherlands', 'fy-NL'), ('Friulian', 'fur'), ('Friulian - Italy', 'fur-IT'), ('Fulah', 'ff'), ('Fulah (Latin)', 'ff-Latn'), ('Fulah (Latin) - Burkina Faso', 'ff-Latn-BF'), ('Fulah - Cameroon', 'ff-CM'), ('Fulah (Latin) - Cameroon', 'ff-Latn-CM'), ('Fulah (Latin) - Gambia', 'ff-Latn-GM'), ('Fulah (Latin) - Ghana', 'ff-Latn-GH'), ('Fulah - Guinea', 'ff-GN'), ('Fulah (Latin) - Guinea', 'ff-Latn-GN'), ('Fulah (Latin) - Guinea-Bissau', 'ff-Latn-GW'), ('Fulah (Latin) - Liberia', 'ff-Latn-LR'), ('Fulah - Mauritania', 'ff-MR'), ('Fulah (Latin) - Mauritania', 'ff-Latn-MR'), ('Fulah (Latin) - Niger', 'ff-Latn-NE'), ('Fulah - Nigeria', 'ff-NG'), ('Fulah (Latin) - Nigeria', 'ff-Latn-NG'), ('Fulah - Senegal', 'ff-Latn-SN'), ('Fulah (Latin) - Sierra Leone', 'ff-Latn-SL'), ('Galician', 'gl'), ('Galician - Spain', 'gl-ES'), ('Ganda', 'lg'), ('Ganda - Uganda', 'lg-UG'), ('Georgian', 'ka'), ('Georgian - Georgia', 'ka-GE'), ('German', 'de'), ('German - Austria', 'de-AT'), ('German - Belgium', 'de-BE'), ('German - Germany', 'de-DE'), ('German - Italy', 'de-IT'), ('German - Liechtenstein', 'de-LI'), ('German - Luxembourg', 'de-LU'), ('German - Switzerland', 'de-CH'), ('Greek', 'el'), ('Greek - Cyprus', 'el-CY'), ('Greek - Greece', 'el-GR'), ('Greenlandic', 'kl'), ('Greenlandic - Greenland', 'kl-GL'), ('Guarani', 'gn'), ('Guarani - Paraguay', 'gn-PY'), ('Gujarati', 'gu'), ('Gujarati - India', 'gu-IN'), ('Gusii', 'guz'), ('Gusii - Kenya', 'guz-KE'), ('Hausa (Latin)', 'ha'), ('Hausa (Latin), Latn', 'ha-Latn'), ('Hausa (Latin) - Ghana', 'ha-Latn-GH'), ('Hausa (Latin) - Niger', 'ha-Latn-NE'), ('Hausa (Latin) - Nigeria', 'ha-Latn-NG'), ('Hawaiian', 'haw'), ('Hawaiian - United States', 'haw-US'), ('Hebrew', 'he'), ('Hebrew - Israel', 'he-IL'), ('Hindi', 'hi'), ('Hindi - India', 'hi-IN'), ('Hungarian', 'hu'), ('Hungarian - Hungary', 'hu-HU'), ('Icelandic', 'is'), ('Icelandic - Iceland', 'is-IS'), ('Igbo', 'ig'), ('Igbo - Nigeria', 'ig-NG'), ('Indonesian', 'id'), ('Indonesian - Indonesia', 'id-ID'), ('Interlingua', 'ia'), ('Interlingua - France', 'ia-FR'), ('Interlingua - World', 'ia-001'), ('Inuktitut (Latin)', 'iu'), ('Inuktitut (Latin), Latn', 'iu-Latn'), ('Inuktitut (Latin) - Canada', 'iu-Latn-CA'), ('Inuktitut (Syllabics)', 'iu-Cans'), ('Inuktitut (Syllabics) - Canada', 'iu-Cans-CA'), ('Irish', 'ga'), ('Irish - Ireland', 'ga-IE'), ('Italian', 'it'), ('Italian - Italy', 'it-IT'), ('Italian - San Marino', 'it-SM'), ('Italian - Switzerland', 'it-CH'), ('Italian - Vatican City', 'it-VA'), ('Japanese', 'ja'), ('Japanese - Japan', 'ja-JP'), ('Javanese', 'jv'), ('Javanese - Latin', 'jv-Latn'), ('Javanese - Latin, Indonesia', 'jv-Latn-ID'), ('Jola-Fonyi', 'dyo'), ('Jola-Fonyi - Senegal', 'dyo-SN'), ('Kabuverdianu', 'kea'), ('Kabuverdianu - Cabo Verde', 'kea-CV'), ('Kabyle', 'kab'), ('Kabyle - Algeria', 'kab-DZ'), ('Kako', 'kkj'), ('Kako - Cameroon', 'kkj-CM'), ('Kalenjin', 'kln'), ('Kalenjin - Kenya', 'kln-KE'), ('Kamba', 'kam'), ('Kamba - Kenya', 'kam-KE'), ('Kannada', 'kn'), ('Kannada - India', 'kn-IN'), ('Kashmiri', 'ks'), ('Kashmiri - Perso-Arabic', 'ks-Arab'), ('Kashmiri - Perso-Arabic, IN', 'ks-Arab-IN'), ('Kazakh', 'kk'), ('Kazakh - Kazakhstan', 'kk-KZ'), ('Khmer', 'km'), ('Khmer - Cambodia', 'km-KH'), ("K'iche", 'quc'), ("K'iche - Guatemala", 'quc-Latn-GT'), ('Kikuyu', 'ki'), ('Kikuyu - Kenya', 'ki-KE'), ('Kinyarwanda', 'rw'), ('Kinyarwanda - Rwanda', 'rw-RW'), ('Kiswahili', 'sw'), ('Kiswahili - Kenya', 'sw-KE'), ('Kiswahili - Tanzania', 'sw-TZ'), ('Kiswahili - Uganda', 'sw-UG'), ('Konkani', 'kok'), ('Konkani - India', 'kok-IN'), ('Korean', 'ko'), ('Korean - Korea', 'ko-KR'), ('Korean - North Korea', 'ko-KP'), ('Koyra Chiini', 'khq'), ('Koyra Chiini - Mali', 'khq-ML'), ('Koyraboro Senni', 'ses'), ('Koyraboro Senni - Mali', 'ses-ML'), ('Kwasio', 'nmg'), ('Kwasio - Cameroon', 'nmg-CM'), ('Kyrgyz', 'ky'), ('Kyrgyz - Kyrgyzstan', 'ky-KG'), ('Kurdish - Perso-Arabic, Iran', 'ku-Arab-IR'), ('Lakota', 'lkt'), ('Lakota - United States', 'lkt-US'), ('Langi', 'lag'), ('Langi - Tanzania', 'lag-TZ'), ('Lao', 'lo'), ('Lao - Lao P.D.R.', 'lo-LA'), ('Latvian', 'lv'), ('Latvian - Latvia', 'lv-LV'), ('Lingala', 'ln'), ('Lingala - Angola', 'ln-AO'), ('Lingala - Central African Republic', 'ln-CF'), ('Lingala - Congo', 'ln-CG'), ('Lingala - Congo DRC', 'ln-CD'), ('Lithuanian', 'lt'), ('Lithuanian - Lithuania', 'lt-LT'), ('Low German', 'nds'), ('Low German - Germany', 'nds-DE'), ('Low German - Netherlands', 'nds-NL'), ('Lower Sorbian', 'dsb'), ('Lower Sorbian - Germany', 'dsb-DE'), ('Luba-Katanga', 'lu'), ('Luba-Katanga - Congo DRC', 'lu-CD'), ('Luo', 'luo'), ('Luo - Kenya', 'luo-KE'), ('Luxembourgish', 'lb'), ('Luxembourgish - Luxembourg', 'lb-LU'), ('Luyia', 'luy'), ('Luyia - Kenya', 'luy-KE'), ('Macedonian', 'mk'), ('Macedonian - North Macedonia', 'mk-MK'), ('Machame', 'jmc'), ('Machame - Tanzania', 'jmc-TZ'), ('Makhuwa-Meetto', 'mgh'), ('Makhuwa-Meetto - Mozambique', 'mgh-MZ'), ('Makonde', 'kde'), ('Makonde - Tanzania', 'kde-TZ'), ('Malagasy', 'mg'), ('Malagasy - Madagascar', 'mg-MG'), ('Malay', 'ms'), ('Malay - Brunei Darussalam', 'ms-BN'), ('Malay - Malaysia', 'ms-MY'), ('Malayalam', 'ml'), ('Malayalam - India', 'ml-IN'), ('Maltese', 'mt'), ('Maltese - Malta', 'mt-MT'), ('Manx', 'gv'), ('Manx - Isle of Man', 'gv-IM'), ('Maori', 'mi'), ('Maori - New Zealand', 'mi-NZ'), ('Mapudungun', 'arn'), ('Mapudungun - Chile', 'arn-CL'), ('Marathi', 'mr'), ('Marathi - India', 'mr-IN'), ('Masai', 'mas'), ('Masai - Kenya', 'mas-KE'), ('Masai - Tanzania', 'mas-TZ'), ('Mazanderani - Iran', 'mzn-IR'), ('Meru', 'mer'), ('Meru - Kenya', 'mer-KE'), ("Meta'", 'mgo'), ("Meta' - Cameroon", 'mgo-CM'), ('Mohawk', 'moh'), ('Mohawk - Canada', 'moh-CA'), ('Mongolian (Cyrillic)', 'mn'), ('Mongolian (Cyrillic), Cyrl', 'mn-Cyrl'), ('Mongolian (Cyrillic) - Mongolia', 'mn-MN'), ('Mongolian (Traditional Mongolian)', 'mn-Mong'), ("Mongolian (Traditional Mongolian) - People's Republic of China", 'mn-Mong-CN'), ('Mongolian (Traditional Mongolian) - Mongolia', 'mn-Mong-MN'), ('Morisyen', 'mfe'), ('Morisyen - Mauritius', 'mfe-MU'), ('Mundang', 'mua'), ('Mundang - Cameroon', 'mua-CM'), ("N'ko", 'nqo'), ("N'ko - Guinea", 'nqo-GN'), ('Nama', 'naq'), ('Nama - Namibia', 'naq-NA'), ('Nepali', 'ne'), ('Nepali - India', 'ne-IN'), ('Nepali - Nepal', 'ne-NP'), ('Ngiemboon', 'nnh'), ('Ngiemboon - Cameroon', 'nnh-CM'), ('Ngomba', 'jgo'), ('Ngomba - Cameroon', 'jgo-CM'), ('Northern Luri - Iraq', 'lrc-IQ'), ('Northern Luri - Iran', 'lrc-IR'), ('North Ndebele', 'nd'), ('North Ndebele - Zimbabwe', 'nd-ZW'), ('Norwegian (Bokmal)', 'no'), ('Norwegian (Bokmal), nb', 'nb'), ('Norwegian (Bokmal) - Norway', 'nb-NO'), ('Norwegian (Nynorsk)', 'nn'), ('Norwegian (Nynorsk) - Norway', 'nn-NO'), ('Norwegian Bokmål - Svalbard and Jan Mayen', 'nb-SJ'), ('Nuer', 'nus'), ('Nuer - Sudan', 'nus-SD'), ('Nuer - South Sudan', 'nus-SS'), ('Nyankole', 'nyn'), ('Nyankole - Uganda', 'nyn-UG'), ('Occitan', 'oc'), ('Occitan - France', 'oc-FR'), ('Odia', 'or'), ('Odia - India', 'or-IN'), ('Oromo', 'om'), ('Oromo - Ethiopia', 'om-ET'), ('Oromo - Kenya', 'om-KE'), ('Ossetian', 'os'), ('Ossetian - Cyrillic, Georgia', 'os-GE'), ('Ossetian - Cyrillic, Russia', 'os-RU'), ('Pashto', 'ps'), ('Pashto - Afghanistan', 'ps-AF'), ('Pashto - Pakistan', 'ps-PK'), ('Persian', 'fa'), ('Persian - Afghanistan', 'fa-AF'), ('Persian - Iran', 'fa-IR'), ('Polish', 'pl'), ('Polish - Poland', 'pl-PL'), ('Portuguese', 'pt'), ('Portuguese - Angola', 'pt-AO'), ('Portuguese - Brazil', 'pt-BR'), ('Portuguese - Cabo Verde', 'pt-CV'), ('Portuguese - Equatorial Guinea', 'pt-GQ'), ('Portuguese - Guinea-Bissau', 'pt-GW'), ('Portuguese - Luxembourg', 'pt-LU'), ('Portuguese - Macao SAR', 'pt-MO'), ('Portuguese - Mozambique', 'pt-MZ'), ('Portuguese - Portugal', 'pt-PT'), ('Portuguese - São Tomé and Príncipe', 'pt-ST'), ('Portuguese - Switzerland', 'pt-CH'), ('Portuguese - Timor-Leste', 'pt-TL'), ('Prussian', 'prg-001'), ('Pseudo Language - Pseudo locale for east Asian/complex script localization testing', 'qps-ploca'), ('Pseudo Language - Pseudo locale used for localization testing', 'qps-ploc'), ('Pseudo Language - Pseudo locale used for localization testing of mirroredlocales', 'qps-plocm'), ('Punjabi', 'pa'), ('Punjabi, Arab', 'pa-Arab'), ('Punjabi - India', 'pa-IN'), ('Punjabi - Islamic Republic of Pakistan', 'pa-Arab-PK'), ('Quechua', 'quz'), ('Quechua - Bolivia', 'quz-BO'), ('Quechua - Ecuador', 'quz-EC'), ('Quechua - Peru', 'quz-PE'), ('Ripuarian', 'ksh'), ('Ripuarian - Germany', 'ksh-DE'), ('Romanian', 'ro'), ('Romanian - Moldova', 'ro-MD'), ('Romanian - Romania', 'ro-RO'), ('Romansh', 'rm'), ('Romansh - Switzerland', 'rm-CH'), ('Rombo', 'rof'), ('Rombo - Tanzania', 'rof-TZ'), ('Rundi', 'rn'), ('Rundi - Burundi', 'rn-BI'), ('Russian', 'ru'), ('Russian - Belarus', 'ru-BY'), ('Russian - Kazakhstan', 'ru-KZ'), ('Russian - Kyrgyzstan', 'ru-KG'), ('Russian - Moldova', 'ru-MD'), ('Russian - Russia', 'ru-RU'), ('Russian - Ukraine', 'ru-UA'), ('Rwa', 'rwk'), ('Rwa - Tanzania', 'rwk-TZ'), ('Saho', 'ssy'), ('Saho - Eritrea', 'ssy-ER'), ('Sakha', 'sah'), ('Sakha - Russia', 'sah-RU'), ('Samburu', 'saq'), ('Samburu - Kenya', 'saq-KE'), ('Sami (Inari)', 'smn'), ('Sami (Inari) - Finland', 'smn-FI'), ('Sami (Lule)', 'smj'), ('Sami (Lule) - Norway', 'smj-NO'), ('Sami (Lule) - Sweden', 'smj-SE'), ('Sami (Northern)', 'se'), ('Sami (Northern) - Finland', 'se-FI'), ('Sami (Northern) - Norway', 'se-NO'), ('Sami (Northern) - Sweden', 'se-SE'), ('Sami (Skolt)', 'sms'), ('Sami (Skolt) - Finland', 'sms-FI'), ('Sami (Southern)', 'sma'), ('Sami (Southern) - Norway', 'sma-NO'), ('Sami (Southern) - Sweden', 'sma-SE'), ('Sango', 'sg'), ('Sango - Central African Republic', 'sg-CF'), ('Sangu', 'sbp'), ('Sangu - Tanzania', 'sbp-TZ'), ('Sanskrit', 'sa'), ('Sanskrit - India', 'sa-IN'), ('Scottish Gaelic', 'gd'), ('Scottish Gaelic - United Kingdom', 'gd-GB'), ('Sena', 'seh'), ('Sena - Mozambique', 'seh-MZ'), ('Serbian (Cyrillic)', 'sr-Cyrl'), ('Serbian (Cyrillic) - Bosnia and Herzegovina', 'sr-Cyrl-BA'), ('Serbian (Cyrillic) - Montenegro', 'sr-Cyrl-ME'), ('Serbian (Cyrillic) - Serbia', 'sr-Cyrl-RS'), ('Serbian (Cyrillic) - Serbia and Montenegro (Former)', 'sr-Cyrl-CS'), ('Serbian (Latin)', 'sr'), ('Serbian (Latin), Latn', 'sr-Latn'), ('Serbian (Latin) - Bosnia and Herzegovina', 'sr-Latn-BA'), ('Serbian (Latin) - Montenegro', 'sr-Latn-ME'), ('Serbian (Latin) - Serbia', 'sr-Latn-RS'), ('Serbian (Latin) - Serbia and Montenegro (Former)', 'sr-Latn-CS'), ('Sesotho sa Leboa', 'nso'), ('Sesotho sa Leboa - South Africa', 'nso-ZA'), ('Setswana', 'tn'), ('Setswana - Botswana', 'tn-BW'), ('Setswana - South Africa', 'tn-ZA'), ('Shambala', 'ksb'), ('Shambala - Tanzania', 'ksb-TZ'), ('Shona', 'sn'), ('Shona - Latin', 'sn-Latn'), ('Shona - Zimbabwe', 'sn-Latn-ZW'), ('Sindhi', 'sd'), ('Sindhi, Arab', 'sd-Arab'), ('Sindhi - Islamic Republic of Pakistan', 'sd-Arab-PK'), ('Sinhala', 'si'), ('Sinhala - Sri Lanka', 'si-LK'), ('Slovak', 'sk'), ('Slovak - Slovakia', 'sk-SK'), ('Slovenian', 'sl'), ('Slovenian - Slovenia', 'sl-SI'), ('Soga', 'xog'), ('Soga - Uganda', 'xog-UG'), ('Somali', 'so'), ('Somali - Djibouti', 'so-DJ'), ('Somali - Ethiopia', 'so-ET'), ('Somali - Kenya', 'so-KE'), ('Somali - Somalia', 'so-SO'), ('Sotho', 'st'), ('Sotho - South Africa', 'st-ZA'), ('South Ndebele', 'nr'), ('South Ndebele - South Africa', 'nr-ZA'), ('Southern Sotho - Lesotho', 'st-LS'), ('Spanish', 'es'), ('Spanish - Argentina', 'es-AR'), ('Spanish - Belize', 'es-BZ'), ('Spanish - Bolivarian Republic of Venezuela', 'es-VE'), ('Spanish - Bolivia', 'es-BO'), ('Spanish - Brazil', 'es-BR'), ('Spanish - Chile', 'es-CL'), ('Spanish - Colombia', 'es-CO'), ('Spanish - Costa Rica', 'es-CR'), ('Spanish - Cuba', 'es-CU'), ('Spanish - Dominican Republic', 'es-DO'), ('Spanish - Ecuador', 'es-EC'), ('Spanish - El Salvador', 'es-SV'), ('Spanish - Equatorial Guinea', 'es-GQ'), ('Spanish - Guatemala', 'es-GT'), ('Spanish - Honduras', 'es-HN'), ('Spanish - Latin America', 'es-419'), ('Spanish - Mexico', 'es-MX'), ('Spanish - Nicaragua', 'es-NI'), ('Spanish - Panama', 'es-PA'), ('Spanish - Paraguay', 'es-PY'), ('Spanish - Peru', 'es-PE'), ('Spanish - Philippines', 'es-PH'), ('Spanish - Puerto Rico', 'es-PR'), ('Spanish - Spain', 'es-ES'), ('Spanish - Spain, ES_tradnl', 'es-ES_tradnl'), ('Spanish - United - States', 'es-US'), ('Spanish - Uruguay', 'es-UY'), ('Standard Moroccan Tamazight', 'zgh'), ('Standard Moroccan Tamazight - Morocco', 'zgh-Tfng-MA'), ('Standard Moroccan Tamazight - Tifinagh', 'zgh-Tfng'), ('Swati', 'ss'), ('Swati - South Africa', 'ss-ZA'), ('Swati - Swaziland', 'ss-SZ'), ('Swedish', 'sv'), ('Swedish - Åland Islands', 'sv-AX'), ('Swedish - Finland', 'sv-FI'), ('Swedish - Sweden', 'sv-SE'), ('Syriac', 'syr'), ('Syriac - Syria', 'syr-SY'), ('Tachelhit', 'shi'), ('Tachelhit - Tifinagh', 'shi-Tfng'), ('Tachelhit - Tifinagh, Morocco', 'shi-Tfng-MA'), ('Tachelhit (Latin)', 'shi-Latn'), ('Tachelhit (Latin) - Morocco', 'shi-Latn-MA'), ('Taita', 'dav'), ('Taita - Kenya', 'dav-KE'), ('Tajik (Cyrillic)', 'tg'), ('Tajik (Cyrillic), Cyrl', 'tg-Cyrl'), ('Tajik (Cyrillic) - Tajikistan', 'tg-Cyrl-TJ'), ('Tamazight (Latin)', 'tzm'), ('Tamazight (Latin), Latn', 'tzm-Latn'), ('Tamazight (Latin) - Algeria', 'tzm-Latn-DZ'), ('Tamil', 'ta'), ('Tamil - India', 'ta-IN'), ('Tamil - Malaysia', 'ta-MY'), ('Tamil - Singapore', 'ta-SG'), ('Tamil - Sri Lanka', 'ta-LK'), ('Tasawaq', 'twq'), ('Tasawaq - Niger', 'twq-NE'), ('Tatar', 'tt'), ('Tatar - Russia', 'tt-RU'), ('Telugu', 'te'), ('Telugu - India', 'te-IN'), ('Teso', 'teo'), ('Teso - Kenya', 'teo-KE'), ('Teso - Uganda', 'teo-UG'), ('Thai', 'th'), ('Thai - Thailand', 'th-TH'), ('Tibetan', 'bo'), ('Tibetan - India', 'bo-IN'), ("Tibetan - People's Republic of China", 'bo-CN'), ('Tigre', 'tig'), ('Tigre - Eritrea', 'tig-ER'), ('Tigrinya', 'ti'), ('Tigrinya - Eritrea', 'ti-ER'), ('Tigrinya - Ethiopia', 'ti-ET'), ('Tongan', 'to'), ('Tongan - Tonga', 'to-TO'), ('Tsonga', 'ts'), ('Tsonga - South Africa', 'ts-ZA'), ('Turkish', 'tr'), ('Turkish - Cyprus', 'tr-CY'), ('Turkish - Turkey', 'tr-TR'), ('Turkmen', 'tk'), ('Turkmen - Turkmenistan', 'tk-TM'), ('Ukrainian', 'uk'), ('Ukrainian - Ukraine', 'uk-UA'), ('Upper Sorbian', 'hsb'), ('Upper Sorbian - Germany', 'hsb-DE'), ('Urdu', 'ur'), ('Urdu - India', 'ur-IN'), ('Urdu - Islamic Republic of Pakistan', 'ur-PK'), ('Uyghur', 'ug'), ("Uyghur - People's Republic of China", 'ug-CN'), ('Uzbek - Perso-Arabic', 'uz-Arab'), ('Uzbek - Perso-Arabic, Afghanistan', 'uz-Arab-AF'), ('Uzbek (Cyrillic)', 'uz-Cyrl'), ('Uzbek (Cyrillic) - Uzbekistan', 'uz-Cyrl-UZ'), ('Uzbek (Latin)', 'uz'), ('Uzbek (Latin), Latn', 'uz-Latn'), ('Uzbek (Latin) - Uzbekistan', 'uz-Latn-UZ'), ('Vai', 'vai'), ('Vai, Vaii', 'vai-Vaii'), ('Vai - Liberia', 'vai-Vaii-LR'), ('Vai (Latin) - Liberia', 'vai-Latn-LR'), ('Vai (Latin)', 'vai-Latn'), ('Valencian - Spain', 'ca-ES-valencia'), ('Venda', 've'), ('Venda - South Africa', 've-ZA'), ('Vietnamese', 'vi'), ('Vietnamese - Vietnam', 'vi-VN'), ('Volapük', 'vo'), ('Volapük - World', 'vo-001'), ('Vunjo', 'vun'), ('Vunjo - Tanzania', 'vun-TZ'), ('Walser', 'wae'), ('Walser - Switzerland', 'wae-CH'), ('Welsh', 'cy'), ('Welsh - United Kingdom', 'cy-GB'), ('Wolaytta', 'wal'), ('Wolaytta - Ethiopia', 'wal-ET'), ('Wolof', 'wo'), ('Wolof - Senegal', 'wo-SN'), ('Xhosa', 'xh'), ('Xhosa - South Africa', 'xh-ZA'), ('Yangben', 'yav'), ('Yangben - Cameroon', 'yav-CM'), ('Yi', 'ii'), ("Yi - People's Republic of China", 'ii-CN'), ('Yoruba', 'yo'), ('Yoruba - Benin', 'yo-BJ'), ('Yoruba - Nigeria', 'yo-NG'), ('Zarma', 'dje'), ('Zarma - Niger', 'dje-NE'), ('Zulu', 'zu'), ('Zulu - South Africa', 'zu-ZA')], default='en', help_text='Required if type is "Subtitle"', max_length=50, unique=True)),
('video', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tracks', to='app.CustomVideoModel')),
],
options={
'abstract': False,
},
),
]
# Generated by Django 2.2.17 on 2021-01-28 23:06
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0002_customtrack'),
]
operations = [
migrations.AlterField(
model_name='customtrack',
name='language',
field=models.CharField(blank=True, choices=[('aa', 'Afar'), ('aa-DJ', 'Afar - Djibouti'), ('aa-ER', 'Afar - Eritrea'), ('aa-ET', 'Afar - Ethiopia'), ('af', 'Afrikaans'), ('af-NA', 'Afrikaans - Namibia'), ('af-ZA', 'Afrikaans - South Africa'), ('agq', 'Aghem'), ('agq-CM', 'Aghem - Cameroon'), ('ak', 'Akan'), ('ak-GH', 'Akan - Ghana'), ('sq', 'Albanian'), ('sq-AL', 'Albanian - Albania'), ('sq-MK', 'Albanian - North Macedonia'), ('gsw', 'Alsatian'), ('gsw-FR', 'Alsatian - France'), ('gsw-LI', 'Alsatian - Liechtenstein'), ('gsw-CH', 'Alsatian - Switzerland'), ('am', 'Amharic'), ('am-ET', 'Amharic - Ethiopia'), ('ar', 'Arabic'), ('ar-DZ', 'Arabic - Algeria'), ('ar-BH', 'Arabic - Bahrain'), ('ar-TD', 'Arabic - Chad'), ('ar-KM', 'Arabic - Comoros'), ('ar-DJ', 'Arabic - Djibouti'), ('ar-EG', 'Arabic - Egypt'), ('ar-ER', 'Arabic - Eritrea'), ('ar-IQ', 'Arabic - Iraq'), ('ar-IL', 'Arabic - Israel'), ('ar-JO', 'Arabic - Jordan'), ('ar-KW', 'Arabic - Kuwait'), ('ar-LB', 'Arabic - Lebanon'), ('ar-LY', 'Arabic - Libya'), ('ar-MR', 'Arabic - Mauritania'), ('ar-MA', 'Arabic - Morocco'), ('ar-OM', 'Arabic - Oman'), ('ar-PS', 'Arabic - Palestinian Authority'), ('ar-QA', 'Arabic - Qatar'), ('ar-SA', 'Arabic - Saudi Arabia'), ('ar-SO', 'Arabic - Somalia'), ('ar-SS', 'Arabic - South Sudan'), ('ar-SD', 'Arabic - Sudan'), ('ar-SY', 'Arabic - Syria'), ('ar-TN', 'Arabic - Tunisia'), ('ar-AE', 'Arabic - U.A.E.'), ('ar-001', 'Arabic - World'), ('ar-YE', 'Arabic - Yemen'), ('hy', 'Armenian'), ('hy-AM', 'Armenian - Armenia'), ('as', 'Assamese'), ('as-IN', 'Assamese - India'), ('ast', 'Asturian'), ('ast-ES', 'Asturian - Spain'), ('asa', 'Asu'), ('asa-TZ', 'Asu - Tanzania'), ('az-Cyrl', 'Azerbaijani (Cyrillic)'), ('az-Cyrl-AZ', 'Azerbaijani (Cyrillic) - Azerbaijan'), ('az', 'Azerbaijani (Latin)'), ('az-Latn', 'Azerbaijani (Latin), Latn'), ('az-Latn-AZ', 'Azerbaijani (Latin) - Azerbaijan'), ('ksf', 'Bafia'), ('ksf-CM', 'Bafia - Cameroon'), ('bm', 'Bamanankan'), ('bm-Latn-ML', 'Bamanankan (Latin) - Mali'), ('bn', 'Bangla'), ('bn-BD', 'Bangla - Bangladesh'), ('bn-IN', 'Bangla - India'), ('bas', 'Basaa'), ('bas-CM', 'Basaa - Cameroon'), ('ba', 'Bashkir'), ('ba-RU', 'Bashkir - Russia'), ('eu', 'Basque'), ('eu-ES', 'Basque - Spain'), ('be', 'Belarusian'), ('be-BY', 'Belarusian - Belarus'), ('bem', 'Bemba'), ('bem-ZM', 'Bemba - Zambia'), ('bez', 'Bena'), ('bez-TZ', 'Bena - Tanzania'), ('byn', 'Blin'), ('byn-ER', 'Blin - Eritrea'), ('brx', 'Bodo'), ('brx-IN', 'Bodo - India'), ('bs-Cyrl', 'Bosnian (Cyrillic)'), ('bs-Cyrl-BA', 'Bosnian (Cyrillic) - Bosnia and Herzegovina'), ('bs', 'Bosnian (Latin)'), ('bs-Latn', 'Bosnian (Latin), Latn'), ('bs-Latn-BA', 'Bosnian (Latin) - Bosnia and Herzegovina'), ('br', 'Breton'), ('br-FR', 'Breton - France'), ('bg', 'Bulgarian'), ('bg-BG', 'Bulgarian - Bulgaria'), ('my', 'Burmese'), ('my-MM', 'Burmese - Myanmar'), ('ca', 'Catalan'), ('ca-AD', 'Catalan - Andorra'), ('ca-FR', 'Catalan - France'), ('ca-IT', 'Catalan - Italy'), ('ca-ES', 'Catalan - Spain'), ('ceb', 'Cebuano'), ('ceb-Latn', 'Cebuan (Latin)'), ('ceb-Latn-PH', 'Cebuan (Latin) - Philippines'), ('tzm-Latn-MA', 'Central Atlas Tamazight (Latin) - Morocco'), ('ku', 'Central Kurdish'), ('ku-Arab', 'Central Kurdish, Arab'), ('ku-Arab-IQ', 'Central Kurdish - Iraq'), ('ccp', 'Chakma'), ('ccp-Cakm', 'Chakma - Chakma'), ('ccp-Cakm-BD', 'Chakma - Bangladesh'), ('ccp-Cakm-IN', 'Chakma - India'), ('cd-RU', 'Chechen - Russia'), ('chr', 'Cherokee'), ('chr-Cher', 'Cherokee, Cher'), ('chr-Cher-US', 'Cherokee - United States'), ('cgg', 'Chiga'), ('cgg-UG', 'Chiga - Uganda'), ('zh', 'Chinese (Simplified)'), ('zh-Hans', 'Chinese (Simplified), Hans'), ('zh-CN', "Chinese (Simplified) - People's Republic of China"), ('zh-SG', 'Chinese (Simplified) - Singapore'), ('zh-Hant', 'Chinese (Traditional)'), ('zh-HK', 'Chinese (Traditional) - Hong Kong S.A.R.'), ('zh-MO', 'Chinese (Traditional) - Macao S.A.R.'), ('zh-TW', 'Chinese (Traditional) - Taiwan'), ('cu-RU', 'Church Slavic - Russia'), ('swc', 'Congo Swahili'), ('swc-CD', 'Congo Swahili - Congo DRC'), ('kw', 'Cornish'), ('kw-GB', 'Cornish - United Kingdom'), ('co', 'Corsican'), ('co-FR', 'Corsican - France'), ('hr,', 'Croatian'), ('hr-HR', 'Croatian - Croatia'), ('hr-BA', 'Croatian (Latin) - Bosnia and Herzegovina'), ('cs', 'Czech'), ('cs-CZ', 'Czech - Czech Republic'), ('da', 'Danish'), ('da-DK', 'Danish - Denmark'), ('da-GL', 'Danish - Greenland'), ('prs', 'Dari'), ('prs-AF', 'Dari - Afghanistan'), ('dv', 'Divehi'), ('dv-MV', 'Divehi - Maldives'), ('dua', 'Duala'), ('dua-CM', 'Duala - Cameroon'), ('nl', 'Dutch'), ('nl-AW', 'Dutch - Aruba'), ('nl-BE', 'Dutch - Belgium'), ('nl-BQ', 'Dutch - Bonaire, Sint Eustatius and Saba'), ('nl-CW', 'Dutch - Curaçao'), ('nl-NL', 'Dutch - Netherlands'), ('nl-SX', 'Dutch - Sint Maarten'), ('nl-SR', 'Dutch - Suriname'), ('dz', 'Dzongkha'), ('dz-BT', 'Dzongkha - Bhutan'), ('ebu', 'Embu'), ('ebu-KE', 'Embu - Kenya'), ('en', 'English'), ('en-AS', 'English - American Samoa'), ('en-AI', 'English - Anguilla'), ('en-AG', 'English - Antigua and Barbuda'), ('en-AU', 'English - Australia'), ('en-AT', 'English - Austria'), ('en-BS', 'English - Bahamas'), ('en-BB', 'English - Barbados'), ('en-BE', 'English - Belgium'), ('en-BZ', 'English - Belize'), ('en-BM', 'English - Bermuda'), ('en-BW', 'English - Botswana'), ('en-IO', 'English - British Indian Ocean Territory'), ('en-VG', 'English - British Virgin Islands'), ('en-BI', 'English - Burundi'), ('en-CM', 'English - Cameroon'), ('en-CA', 'English - Canada'), ('en-029', 'English - Caribbean'), ('en-KY', 'English - Cayman Islands'), ('en-CX', 'English - Christmas Island'), ('en-CC', 'English - Cocos [Keeling] Islands'), ('en-CK', 'English - Cook Islands'), ('en-CY', 'English - Cyprus'), ('en-DK', 'English - Denmark'), ('en-DM', 'English - Dominica'), ('en-ER', 'English - Eritrea'), ('en-150', 'English - Europe'), ('en-FK', 'English - Falkland Islands'), ('en-FI', 'English - Finland'), ('en-FJ', 'English - Fiji'), ('en-GM', 'English - Gambia'), ('en-DE', 'English - Germany'), ('en-GH', 'English - Ghana'), ('en-GI', 'English - Gibraltar'), ('en-GD', 'English - Grenada'), ('en-GU', 'English - Guam'), ('en-GG', 'English - Guernsey'), ('en-GY', 'English - Guyana'), ('en-HK', 'English - Hong Kong'), ('en-IN', 'English - India'), ('en-IE', 'English - Ireland'), ('en-IM', 'English - Isle of Man'), ('en-IL', 'English - Israel'), ('en-JM', 'English - Jamaica'), ('en-JE', 'English - Jersey'), ('en-KE', 'English - Kenya'), ('en-KI', 'English - Kiribati'), ('en-LS', 'English - Lesotho'), ('en-LR', 'English - Liberia'), ('en-MO', 'English - Macao SAR'), ('en-MG', 'English - Madagascar'), ('en-MW', 'English - Malawi'), ('en-MY', 'English - Malaysia'), ('en-MT', 'English - Malta'), ('en-MH', 'English - Marshall Islands'), ('en-MU', 'English - Mauritius'), ('en-FM', 'English - Micronesia'), ('en-MS', 'English - Montserrat'), ('en-NA', 'English - Namibia'), ('en-NR', 'English - Nauru'), ('en-NL', 'English - Netherlands'), ('en-NZ', 'English - New Zealand'), ('en-NG', 'English - Nigeria'), ('en-NU', 'English - Niue'), ('en-NF', 'English - Norfolk Island'), ('en-MP', 'English - Northern Mariana Islands'), ('en-PK', 'English - Pakistan'), ('en-PW', 'English - Palau'), ('en-PG', 'English - Papua New Guinea'), ('en-PN', 'English - Pitcairn Islands'), ('en-PR', 'English - Puerto Rico'), ('en-PH', 'English - Republic of the Philippines'), ('en-RW', 'English - Rwanda'), ('en-KN', 'English - Saint Kitts and Nevis'), ('en-LC', 'English - Saint Lucia'), ('en-VC', 'English - Saint Vincent and the Grenadines'), ('en-WS', 'English - Samoa'), ('en-SC', 'English - Seychelles'), ('en-SL', 'English - Sierra Leone'), ('en-SG', 'English - Singapore'), ('en-SX', 'English - Sint Maarten'), ('en-SI', 'English - Slovenia'), ('en-SB', 'English - Solomon Islands'), ('en-ZA', 'English - South Africa'), ('en-SS', 'English - South Sudan'), ('en-SH', 'English - St Helena, Ascension, Tristan da Cunha'), ('en-SD', 'English - Sudan'), ('en-SZ', 'English - Swaziland'), ('en-SE', 'English - Sweden'), ('en-CH', 'English - Switzerland'), ('en-TZ', 'English - Tanzania'), ('en-TK', 'English - Tokelau'), ('en-TO', 'English - Tonga'), ('en-TT', 'English - Trinidad and Tobago'), ('en-TC', 'English - Turks and Caicos Islands'), ('en-TV', 'English - Tuvalu'), ('en-UG', 'English - Uganda'), ('en-AE', 'English - United Arab Emirates'), ('en-GB', 'English - United Kingdom'), ('en-US', 'English - United States'), ('en-UM', 'English - US Minor Outlying Islands'), ('en-VI', 'English - US Virgin Islands'), ('en-VU', 'English - Vanuatu'), ('en-001', 'English - World'), ('en-ZM', 'English - Zambia'), ('en-ZW', 'English - Zimbabwe'), ('eo', 'Esperanto'), ('eo-001', 'Esperanto - World'), ('et', 'Estonian'), ('et-EE', 'Estonian - Estonia'), ('ee', 'Ewe'), ('ee-GH', 'Ewe - Ghana'), ('ee-TG', 'Ewe - Togo'), ('ewo', 'Ewondo'), ('ewo-CM', 'Ewondo - Cameroon'), ('fo', 'Faroese'), ('fo-DK', 'Faroese - Denmark'), ('fo-FO', 'Faroese - Faroe Islands'), ('fil', 'Filipino'), ('fil-PH', 'Filipino - Philippines'), ('fi', 'Finnish'), ('fi-FI', 'Finnish - Finland'), ('fr', 'French'), ('fr-DZ', 'French - Algeria'), ('fr-BE', 'French - Belgium'), ('fr-BJ', 'French - Benin'), ('fr-BF', 'French - Burkina Faso'), ('fr-BI', 'French - Burundi'), ('fr-CM', 'French - Cameroon'), ('fr-CA', 'French - Canada'), ('fr-CF', 'French - Central African Republic'), ('fr-TD', 'French - Chad'), ('fr-KM', 'French - Comoros'), ('fr-CG', 'French - Congo'), ('fr-CD', 'French - Congo, DRC'), ('fr-CI', "French - Côte d'Ivoire"), ('fr-DJ', 'French - Djibouti'), ('fr-GQ', 'French - Equatorial Guinea'), ('fr-FR', 'French - France'), ('fr-GF', 'French - French Guiana'), ('fr-PF', 'French - French Polynesia'), ('fr-GA', 'French - Gabon'), ('fr-GP', 'French - Guadeloupe'), ('fr-GN', 'French - Guinea'), ('fr-HT', 'French - Haiti'), ('fr-LU', 'French - Luxembourg'), ('fr-MG', 'French - Madagascar'), ('fr-ML', 'French - Mali'), ('fr-MQ', 'French - Martinique'), ('fr-MR', 'French - Mauritania'), ('fr-MU', 'French - Mauritius'), ('fr-YT', 'French - Mayotte'), ('fr-MA', 'French - Morocco'), ('fr-NC', 'French - New Caledonia'), ('fr-NE', 'French - Niger'), ('fr-MC', 'French - Principality of Monaco'), ('fr-RE', 'French - Reunion'), ('fr-RW', 'French - Rwanda'), ('fr-BL', 'French - Saint Barthélemy'), ('fr-MF', 'French - Saint Martin'), ('fr-PM', 'French - Saint Pierre and Miquelon'), ('fr-SN', 'French - Senegal'), ('fr-SC', 'French - Seychelles'), ('fr-CH', 'French - Switzerland'), ('fr-SY', 'French - Syria'), ('fr-TG', 'French - Togo'), ('fr-TN', 'French - Tunisia'), ('fr-VU', 'French - Vanuatu'), ('fr-WF', 'French - Wallis and Futuna'), ('fy', 'Frisian'), ('fy-NL', 'Frisian - Netherlands'), ('fur', 'Friulian'), ('fur-IT', 'Friulian - Italy'), ('ff', 'Fulah'), ('ff-Latn', 'Fulah (Latin)'), ('ff-Latn-BF', 'Fulah (Latin) - Burkina Faso'), ('ff-CM', 'Fulah - Cameroon'), ('ff-Latn-CM', 'Fulah (Latin) - Cameroon'), ('ff-Latn-GM', 'Fulah (Latin) - Gambia'), ('ff-Latn-GH', 'Fulah (Latin) - Ghana'), ('ff-GN', 'Fulah - Guinea'), ('ff-Latn-GN', 'Fulah (Latin) - Guinea'), ('ff-Latn-GW', 'Fulah (Latin) - Guinea-Bissau'), ('ff-Latn-LR', 'Fulah (Latin) - Liberia'), ('ff-MR', 'Fulah - Mauritania'), ('ff-Latn-MR', 'Fulah (Latin) - Mauritania'), ('ff-Latn-NE', 'Fulah (Latin) - Niger'), ('ff-NG', 'Fulah - Nigeria'), ('ff-Latn-NG', 'Fulah (Latin) - Nigeria'), ('ff-Latn-SN', 'Fulah - Senegal'), ('ff-Latn-SL', 'Fulah (Latin) - Sierra Leone'), ('gl', 'Galician'), ('gl-ES', 'Galician - Spain'), ('lg', 'Ganda'), ('lg-UG', 'Ganda - Uganda'), ('ka', 'Georgian'), ('ka-GE', 'Georgian - Georgia'), ('de', 'German'), ('de-AT', 'German - Austria'), ('de-BE', 'German - Belgium'), ('de-DE', 'German - Germany'), ('de-IT', 'German - Italy'), ('de-LI', 'German - Liechtenstein'), ('de-LU', 'German - Luxembourg'), ('de-CH', 'German - Switzerland'), ('el', 'Greek'), ('el-CY', 'Greek - Cyprus'), ('el-GR', 'Greek - Greece'), ('kl', 'Greenlandic'), ('kl-GL', 'Greenlandic - Greenland'), ('gn', 'Guarani'), ('gn-PY', 'Guarani - Paraguay'), ('gu', 'Gujarati'), ('gu-IN', 'Gujarati - India'), ('guz', 'Gusii'), ('guz-KE', 'Gusii - Kenya'), ('ha', 'Hausa (Latin)'), ('ha-Latn', 'Hausa (Latin), Latn'), ('ha-Latn-GH', 'Hausa (Latin) - Ghana'), ('ha-Latn-NE', 'Hausa (Latin) - Niger'), ('ha-Latn-NG', 'Hausa (Latin) - Nigeria'), ('haw', 'Hawaiian'), ('haw-US', 'Hawaiian - United States'), ('he', 'Hebrew'), ('he-IL', 'Hebrew - Israel'), ('hi', 'Hindi'), ('hi-IN', 'Hindi - India'), ('hu', 'Hungarian'), ('hu-HU', 'Hungarian - Hungary'), ('is', 'Icelandic'), ('is-IS', 'Icelandic - Iceland'), ('ig', 'Igbo'), ('ig-NG', 'Igbo - Nigeria'), ('id', 'Indonesian'), ('id-ID', 'Indonesian - Indonesia'), ('ia', 'Interlingua'), ('ia-FR', 'Interlingua - France'), ('ia-001', 'Interlingua - World'), ('iu', 'Inuktitut (Latin)'), ('iu-Latn', 'Inuktitut (Latin), Latn'), ('iu-Latn-CA', 'Inuktitut (Latin) - Canada'), ('iu-Cans', 'Inuktitut (Syllabics)'), ('iu-Cans-CA', 'Inuktitut (Syllabics) - Canada'), ('ga', 'Irish'), ('ga-IE', 'Irish - Ireland'), ('it', 'Italian'), ('it-IT', 'Italian - Italy'), ('it-SM', 'Italian - San Marino'), ('it-CH', 'Italian - Switzerland'), ('it-VA', 'Italian - Vatican City'), ('ja', 'Japanese'), ('ja-JP', 'Japanese - Japan'), ('jv', 'Javanese'), ('jv-Latn', 'Javanese - Latin'), ('jv-Latn-ID', 'Javanese - Latin, Indonesia'), ('dyo', 'Jola-Fonyi'), ('dyo-SN', 'Jola-Fonyi - Senegal'), ('kea', 'Kabuverdianu'), ('kea-CV', 'Kabuverdianu - Cabo Verde'), ('kab', 'Kabyle'), ('kab-DZ', 'Kabyle - Algeria'), ('kkj', 'Kako'), ('kkj-CM', 'Kako - Cameroon'), ('kln', 'Kalenjin'), ('kln-KE', 'Kalenjin - Kenya'), ('kam', 'Kamba'), ('kam-KE', 'Kamba - Kenya'), ('kn', 'Kannada'), ('kn-IN', 'Kannada - India'), ('ks', 'Kashmiri'), ('ks-Arab', 'Kashmiri - Perso-Arabic'), ('ks-Arab-IN', 'Kashmiri - Perso-Arabic, IN'), ('kk', 'Kazakh'), ('kk-KZ', 'Kazakh - Kazakhstan'), ('km', 'Khmer'), ('km-KH', 'Khmer - Cambodia'), ('quc', "K'iche"), ('quc-Latn-GT', "K'iche - Guatemala"), ('ki', 'Kikuyu'), ('ki-KE', 'Kikuyu - Kenya'), ('rw', 'Kinyarwanda'), ('rw-RW', 'Kinyarwanda - Rwanda'), ('sw', 'Kiswahili'), ('sw-KE', 'Kiswahili - Kenya'), ('sw-TZ', 'Kiswahili - Tanzania'), ('sw-UG', 'Kiswahili - Uganda'), ('kok', 'Konkani'), ('kok-IN', 'Konkani - India'), ('ko', 'Korean'), ('ko-KR', 'Korean - Korea'), ('ko-KP', 'Korean - North Korea'), ('khq', 'Koyra Chiini'), ('khq-ML', 'Koyra Chiini - Mali'), ('ses', 'Koyraboro Senni'), ('ses-ML', 'Koyraboro Senni - Mali'), ('nmg', 'Kwasio'), ('nmg-CM', 'Kwasio - Cameroon'), ('ky', 'Kyrgyz'), ('ky-KG', 'Kyrgyz - Kyrgyzstan'), ('ku-Arab-IR', 'Kurdish - Perso-Arabic, Iran'), ('lkt', 'Lakota'), ('lkt-US', 'Lakota - United States'), ('lag', 'Langi'), ('lag-TZ', 'Langi - Tanzania'), ('lo', 'Lao'), ('lo-LA', 'Lao - Lao P.D.R.'), ('lv', 'Latvian'), ('lv-LV', 'Latvian - Latvia'), ('ln', 'Lingala'), ('ln-AO', 'Lingala - Angola'), ('ln-CF', 'Lingala - Central African Republic'), ('ln-CG', 'Lingala - Congo'), ('ln-CD', 'Lingala - Congo DRC'), ('lt', 'Lithuanian'), ('lt-LT', 'Lithuanian - Lithuania'), ('nds', 'Low German'), ('nds-DE', 'Low German - Germany'), ('nds-NL', 'Low German - Netherlands'), ('dsb', 'Lower Sorbian'), ('dsb-DE', 'Lower Sorbian - Germany'), ('lu', 'Luba-Katanga'), ('lu-CD', 'Luba-Katanga - Congo DRC'), ('luo', 'Luo'), ('luo-KE', 'Luo - Kenya'), ('lb', 'Luxembourgish'), ('lb-LU', 'Luxembourgish - Luxembourg'), ('luy', 'Luyia'), ('luy-KE', 'Luyia - Kenya'), ('mk', 'Macedonian'), ('mk-MK', 'Macedonian - North Macedonia'), ('jmc', 'Machame'), ('jmc-TZ', 'Machame - Tanzania'), ('mgh', 'Makhuwa-Meetto'), ('mgh-MZ', 'Makhuwa-Meetto - Mozambique'), ('kde', 'Makonde'), ('kde-TZ', 'Makonde - Tanzania'), ('mg', 'Malagasy'), ('mg-MG', 'Malagasy - Madagascar'), ('ms', 'Malay'), ('ms-BN', 'Malay - Brunei Darussalam'), ('ms-MY', 'Malay - Malaysia'), ('ml', 'Malayalam'), ('ml-IN', 'Malayalam - India'), ('mt', 'Maltese'), ('mt-MT', 'Maltese - Malta'), ('gv', 'Manx'), ('gv-IM', 'Manx - Isle of Man'), ('mi', 'Maori'), ('mi-NZ', 'Maori - New Zealand'), ('arn', 'Mapudungun'), ('arn-CL', 'Mapudungun - Chile'), ('mr', 'Marathi'), ('mr-IN', 'Marathi - India'), ('mas', 'Masai'), ('mas-KE', 'Masai - Kenya'), ('mas-TZ', 'Masai - Tanzania'), ('mzn-IR', 'Mazanderani - Iran'), ('mer', 'Meru'), ('mer-KE', 'Meru - Kenya'), ('mgo', "Meta'"), ('mgo-CM', "Meta' - Cameroon"), ('moh', 'Mohawk'), ('moh-CA', 'Mohawk - Canada'), ('mn', 'Mongolian (Cyrillic)'), ('mn-Cyrl', 'Mongolian (Cyrillic), Cyrl'), ('mn-MN', 'Mongolian (Cyrillic) - Mongolia'), ('mn-Mong', 'Mongolian (Traditional Mongolian)'), ('mn-Mong-CN', "Mongolian (Traditional Mongolian) - People's Republic of China"), ('mn-Mong-MN', 'Mongolian (Traditional Mongolian) - Mongolia'), ('mfe', 'Morisyen'), ('mfe-MU', 'Morisyen - Mauritius'), ('mua', 'Mundang'), ('mua-CM', 'Mundang - Cameroon'), ('nqo', "N'ko"), ('nqo-GN', "N'ko - Guinea"), ('naq', 'Nama'), ('naq-NA', 'Nama - Namibia'), ('ne', 'Nepali'), ('ne-IN', 'Nepali - India'), ('ne-NP', 'Nepali - Nepal'), ('nnh', 'Ngiemboon'), ('nnh-CM', 'Ngiemboon - Cameroon'), ('jgo', 'Ngomba'), ('jgo-CM', 'Ngomba - Cameroon'), ('lrc-IQ', 'Northern Luri - Iraq'), ('lrc-IR', 'Northern Luri - Iran'), ('nd', 'North Ndebele'), ('nd-ZW', 'North Ndebele - Zimbabwe'), ('no', 'Norwegian (Bokmal)'), ('nb', 'Norwegian (Bokmal), nb'), ('nb-NO', 'Norwegian (Bokmal) - Norway'), ('nn', 'Norwegian (Nynorsk)'), ('nn-NO', 'Norwegian (Nynorsk) - Norway'), ('nb-SJ', 'Norwegian Bokmål - Svalbard and Jan Mayen'), ('nus', 'Nuer'), ('nus-SD', 'Nuer - Sudan'), ('nus-SS', 'Nuer - South Sudan'), ('nyn', 'Nyankole'), ('nyn-UG', 'Nyankole - Uganda'), ('oc', 'Occitan'), ('oc-FR', 'Occitan - France'), ('or', 'Odia'), ('or-IN', 'Odia - India'), ('om', 'Oromo'), ('om-ET', 'Oromo - Ethiopia'), ('om-KE', 'Oromo - Kenya'), ('os', 'Ossetian'), ('os-GE', 'Ossetian - Cyrillic, Georgia'), ('os-RU', 'Ossetian - Cyrillic, Russia'), ('ps', 'Pashto'), ('ps-AF', 'Pashto - Afghanistan'), ('ps-PK', 'Pashto - Pakistan'), ('fa', 'Persian'), ('fa-AF', 'Persian - Afghanistan'), ('fa-IR', 'Persian - Iran'), ('pl', 'Polish'), ('pl-PL', 'Polish - Poland'), ('pt', 'Portuguese'), ('pt-AO', 'Portuguese - Angola'), ('pt-BR', 'Portuguese - Brazil'), ('pt-CV', 'Portuguese - Cabo Verde'), ('pt-GQ', 'Portuguese - Equatorial Guinea'), ('pt-GW', 'Portuguese - Guinea-Bissau'), ('pt-LU', 'Portuguese - Luxembourg'), ('pt-MO', 'Portuguese - Macao SAR'), ('pt-MZ', 'Portuguese - Mozambique'), ('pt-PT', 'Portuguese - Portugal'), ('pt-ST', 'Portuguese - São Tomé and Príncipe'), ('pt-CH', 'Portuguese - Switzerland'), ('pt-TL', 'Portuguese - Timor-Leste'), ('prg-001', 'Prussian'), ('qps-ploca', 'Pseudo Language - Pseudo locale for east Asian/complex script localization testing'), ('qps-ploc', 'Pseudo Language - Pseudo locale used for localization testing'), ('qps-plocm', 'Pseudo Language - Pseudo locale used for localization testing of mirroredlocales'), ('pa', 'Punjabi'), ('pa-Arab', 'Punjabi, Arab'), ('pa-IN', 'Punjabi - India'), ('pa-Arab-PK', 'Punjabi - Islamic Republic of Pakistan'), ('quz', 'Quechua'), ('quz-BO', 'Quechua - Bolivia'), ('quz-EC', 'Quechua - Ecuador'), ('quz-PE', 'Quechua - Peru'), ('ksh', 'Ripuarian'), ('ksh-DE', 'Ripuarian - Germany'), ('ro', 'Romanian'), ('ro-MD', 'Romanian - Moldova'), ('ro-RO', 'Romanian - Romania'), ('rm', 'Romansh'), ('rm-CH', 'Romansh - Switzerland'), ('rof', 'Rombo'), ('rof-TZ', 'Rombo - Tanzania'), ('rn', 'Rundi'), ('rn-BI', 'Rundi - Burundi'), ('ru', 'Russian'), ('ru-BY', 'Russian - Belarus'), ('ru-KZ', 'Russian - Kazakhstan'), ('ru-KG', 'Russian - Kyrgyzstan'), ('ru-MD', 'Russian - Moldova'), ('ru-RU', 'Russian - Russia'), ('ru-UA', 'Russian - Ukraine'), ('rwk', 'Rwa'), ('rwk-TZ', 'Rwa - Tanzania'), ('ssy', 'Saho'), ('ssy-ER', 'Saho - Eritrea'), ('sah', 'Sakha'), ('sah-RU', 'Sakha - Russia'), ('saq', 'Samburu'), ('saq-KE', 'Samburu - Kenya'), ('smn', 'Sami (Inari)'), ('smn-FI', 'Sami (Inari) - Finland'), ('smj', 'Sami (Lule)'), ('smj-NO', 'Sami (Lule) - Norway'), ('smj-SE', 'Sami (Lule) - Sweden'), ('se', 'Sami (Northern)'), ('se-FI', 'Sami (Northern) - Finland'), ('se-NO', 'Sami (Northern) - Norway'), ('se-SE', 'Sami (Northern) - Sweden'), ('sms', 'Sami (Skolt)'), ('sms-FI', 'Sami (Skolt) - Finland'), ('sma', 'Sami (Southern)'), ('sma-NO', 'Sami (Southern) - Norway'), ('sma-SE', 'Sami (Southern) - Sweden'), ('sg', 'Sango'), ('sg-CF', 'Sango - Central African Republic'), ('sbp', 'Sangu'), ('sbp-TZ', 'Sangu - Tanzania'), ('sa', 'Sanskrit'), ('sa-IN', 'Sanskrit - India'), ('gd', 'Scottish Gaelic'), ('gd-GB', 'Scottish Gaelic - United Kingdom'), ('seh', 'Sena'), ('seh-MZ', 'Sena - Mozambique'), ('sr-Cyrl', 'Serbian (Cyrillic)'), ('sr-Cyrl-BA', 'Serbian (Cyrillic) - Bosnia and Herzegovina'), ('sr-Cyrl-ME', 'Serbian (Cyrillic) - Montenegro'), ('sr-Cyrl-RS', 'Serbian (Cyrillic) - Serbia'), ('sr-Cyrl-CS', 'Serbian (Cyrillic) - Serbia and Montenegro (Former)'), ('sr', 'Serbian (Latin)'), ('sr-Latn', 'Serbian (Latin), Latn'), ('sr-Latn-BA', 'Serbian (Latin) - Bosnia and Herzegovina'), ('sr-Latn-ME', 'Serbian (Latin) - Montenegro'), ('sr-Latn-RS', 'Serbian (Latin) - Serbia'), ('sr-Latn-CS', 'Serbian (Latin) - Serbia and Montenegro (Former)'), ('nso', 'Sesotho sa Leboa'), ('nso-ZA', 'Sesotho sa Leboa - South Africa'), ('tn', 'Setswana'), ('tn-BW', 'Setswana - Botswana'), ('tn-ZA', 'Setswana - South Africa'), ('ksb', 'Shambala'), ('ksb-TZ', 'Shambala - Tanzania'), ('sn', 'Shona'), ('sn-Latn', 'Shona - Latin'), ('sn-Latn-ZW', 'Shona - Zimbabwe'), ('sd', 'Sindhi'), ('sd-Arab', 'Sindhi, Arab'), ('sd-Arab-PK', 'Sindhi - Islamic Republic of Pakistan'), ('si', 'Sinhala'), ('si-LK', 'Sinhala - Sri Lanka'), ('sk', 'Slovak'), ('sk-SK', 'Slovak - Slovakia'), ('sl', 'Slovenian'), ('sl-SI', 'Slovenian - Slovenia'), ('xog', 'Soga'), ('xog-UG', 'Soga - Uganda'), ('so', 'Somali'), ('so-DJ', 'Somali - Djibouti'), ('so-ET', 'Somali - Ethiopia'), ('so-KE', 'Somali - Kenya'), ('so-SO', 'Somali - Somalia'), ('st', 'Sotho'), ('st-ZA', 'Sotho - South Africa'), ('nr', 'South Ndebele'), ('nr-ZA', 'South Ndebele - South Africa'), ('st-LS', 'Southern Sotho - Lesotho'), ('es', 'Spanish'), ('es-AR', 'Spanish - Argentina'), ('es-BZ', 'Spanish - Belize'), ('es-VE', 'Spanish - Bolivarian Republic of Venezuela'), ('es-BO', 'Spanish - Bolivia'), ('es-BR', 'Spanish - Brazil'), ('es-CL', 'Spanish - Chile'), ('es-CO', 'Spanish - Colombia'), ('es-CR', 'Spanish - Costa Rica'), ('es-CU', 'Spanish - Cuba'), ('es-DO', 'Spanish - Dominican Republic'), ('es-EC', 'Spanish - Ecuador'), ('es-SV', 'Spanish - El Salvador'), ('es-GQ', 'Spanish - Equatorial Guinea'), ('es-GT', 'Spanish - Guatemala'), ('es-HN', 'Spanish - Honduras'), ('es-419', 'Spanish - Latin America'), ('es-MX', 'Spanish - Mexico'), ('es-NI', 'Spanish - Nicaragua'), ('es-PA', 'Spanish - Panama'), ('es-PY', 'Spanish - Paraguay'), ('es-PE', 'Spanish - Peru'), ('es-PH', 'Spanish - Philippines'), ('es-PR', 'Spanish - Puerto Rico'), ('es-ES', 'Spanish - Spain'), ('es-ES_tradnl', 'Spanish - Spain, ES_tradnl'), ('es-US', 'Spanish - United - States'), ('es-UY', 'Spanish - Uruguay'), ('zgh', 'Standard Moroccan Tamazight'), ('zgh-Tfng-MA', 'Standard Moroccan Tamazight - Morocco'), ('zgh-Tfng', 'Standard Moroccan Tamazight - Tifinagh'), ('ss', 'Swati'), ('ss-ZA', 'Swati - South Africa'), ('ss-SZ', 'Swati - Swaziland'), ('sv', 'Swedish'), ('sv-AX', 'Swedish - Åland Islands'), ('sv-FI', 'Swedish - Finland'), ('sv-SE', 'Swedish - Sweden'), ('syr', 'Syriac'), ('syr-SY', 'Syriac - Syria'), ('shi', 'Tachelhit'), ('shi-Tfng', 'Tachelhit - Tifinagh'), ('shi-Tfng-MA', 'Tachelhit - Tifinagh, Morocco'), ('shi-Latn', 'Tachelhit (Latin)'), ('shi-Latn-MA', 'Tachelhit (Latin) - Morocco'), ('dav', 'Taita'), ('dav-KE', 'Taita - Kenya'), ('tg', 'Tajik (Cyrillic)'), ('tg-Cyrl', 'Tajik (Cyrillic), Cyrl'), ('tg-Cyrl-TJ', 'Tajik (Cyrillic) - Tajikistan'), ('tzm', 'Tamazight (Latin)'), ('tzm-Latn', 'Tamazight (Latin), Latn'), ('tzm-Latn-DZ', 'Tamazight (Latin) - Algeria'), ('ta', 'Tamil'), ('ta-IN', 'Tamil - India'), ('ta-MY', 'Tamil - Malaysia'), ('ta-SG', 'Tamil - Singapore'), ('ta-LK', 'Tamil - Sri Lanka'), ('twq', 'Tasawaq'), ('twq-NE', 'Tasawaq - Niger'), ('tt', 'Tatar'), ('tt-RU', 'Tatar - Russia'), ('te', 'Telugu'), ('te-IN', 'Telugu - India'), ('teo', 'Teso'), ('teo-KE', 'Teso - Kenya'), ('teo-UG', 'Teso - Uganda'), ('th', 'Thai'), ('th-TH', 'Thai - Thailand'), ('bo', 'Tibetan'), ('bo-IN', 'Tibetan - India'), ('bo-CN', "Tibetan - People's Republic of China"), ('tig', 'Tigre'), ('tig-ER', 'Tigre - Eritrea'), ('ti', 'Tigrinya'), ('ti-ER', 'Tigrinya - Eritrea'), ('ti-ET', 'Tigrinya - Ethiopia'), ('to', 'Tongan'), ('to-TO', 'Tongan - Tonga'), ('ts', 'Tsonga'), ('ts-ZA', 'Tsonga - South Africa'), ('tr', 'Turkish'), ('tr-CY', 'Turkish - Cyprus'), ('tr-TR', 'Turkish - Turkey'), ('tk', 'Turkmen'), ('tk-TM', 'Turkmen - Turkmenistan'), ('uk', 'Ukrainian'), ('uk-UA', 'Ukrainian - Ukraine'), ('hsb', 'Upper Sorbian'), ('hsb-DE', 'Upper Sorbian - Germany'), ('ur', 'Urdu'), ('ur-IN', 'Urdu - India'), ('ur-PK', 'Urdu - Islamic Republic of Pakistan'), ('ug', 'Uyghur'), ('ug-CN', "Uyghur - People's Republic of China"), ('uz-Arab', 'Uzbek - Perso-Arabic'), ('uz-Arab-AF', 'Uzbek - Perso-Arabic, Afghanistan'), ('uz-Cyrl', 'Uzbek (Cyrillic)'), ('uz-Cyrl-UZ', 'Uzbek (Cyrillic) - Uzbekistan'), ('uz', 'Uzbek (Latin)'), ('uz-Latn', 'Uzbek (Latin), Latn'), ('uz-Latn-UZ', 'Uzbek (Latin) - Uzbekistan'), ('vai', 'Vai'), ('vai-Vaii', 'Vai, Vaii'), ('vai-Vaii-LR', 'Vai - Liberia'), ('vai-Latn-LR', 'Vai (Latin) - Liberia'), ('vai-Latn', 'Vai (Latin)'), ('ca-ES-valencia', 'Valencian - Spain'), ('ve', 'Venda'), ('ve-ZA', 'Venda - South Africa'), ('vi', 'Vietnamese'), ('vi-VN', 'Vietnamese - Vietnam'), ('vo', 'Volapük'), ('vo-001', 'Volapük - World'), ('vun', 'Vunjo'), ('vun-TZ', 'Vunjo - Tanzania'), ('wae', 'Walser'), ('wae-CH', 'Walser - Switzerland'), ('cy', 'Welsh'), ('cy-GB', 'Welsh - United Kingdom'), ('wal', 'Wolaytta'), ('wal-ET', 'Wolaytta - Ethiopia'), ('wo', 'Wolof'), ('wo-SN', 'Wolof - Senegal'), ('xh', 'Xhosa'), ('xh-ZA', 'Xhosa - South Africa'), ('yav', 'Yangben'), ('yav-CM', 'Yangben - Cameroon'), ('ii', 'Yi'), ('ii-CN', "Yi - People's Republic of China"), ('yo', 'Yoruba'), ('yo-BJ', 'Yoruba - Benin'), ('yo-NG', 'Yoruba - Nigeria'), ('dje', 'Zarma'), ('dje-NE', 'Zarma - Niger'), ('zu', 'Zulu'), ('zu-ZA', 'Zulu - South Africa')], default='en', help_text='Required if type is "Subtitle"', max_length=50, unique=True),
),
]
# Generated by Django 2.2.17 on 2021-01-28 23:40
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0003_auto_20210129_1006'),
]
operations = [
migrations.DeleteModel(
name='CustomTrack',
),
]
...@@ -16,7 +16,7 @@ INSTALLED_APPS = [ ...@@ -16,7 +16,7 @@ INSTALLED_APPS = [
'wagtail.snippets', 'wagtail.snippets',
'wagtail.images', 'wagtail.images',
'wagtail.documents', 'wagtail.documents',
# 'wagtail.contrib.modeladmin', 'wagtail.contrib.modeladmin',
'django.contrib.admin', 'django.contrib.admin',
'django.contrib.auth', 'django.contrib.auth',
......
# Generated by Django 2.2.17 on 2021-01-28 23:40 # Generated by Django 2.2.17 on 2021-01-29 03:21
from django.db import migrations, models from django.db import migrations, models
import django.db.models.deletion import django.db.models.deletion
...@@ -9,7 +9,7 @@ import wagtailvideos.models ...@@ -9,7 +9,7 @@ import wagtailvideos.models
class Migration(migrations.Migration): class Migration(migrations.Migration):
dependencies = [ dependencies = [
('app', '0004_tracks'), ('app', '0001_initial'),
('wagtailvideos', '0010_video_ordering'), ('wagtailvideos', '0010_video_ordering'),
] ]
...@@ -18,7 +18,7 @@ class Migration(migrations.Migration): ...@@ -18,7 +18,7 @@ class Migration(migrations.Migration):
name='TrackListing', name='TrackListing',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('video', models.OneToOneField(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tracks', to='app.CustomVideoModel')), ('video', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='track_listing', to='app.CustomVideoModel')),
], ],
options={ options={
'abstract': False, 'abstract': False,
...@@ -28,11 +28,16 @@ class Migration(migrations.Migration): ...@@ -28,11 +28,16 @@ class Migration(migrations.Migration):
name='VideoTrack', name='VideoTrack',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('sort_order', models.IntegerField(blank=True, editable=False, null=True)),
('file', models.FileField(upload_to=wagtailvideos.models.get_upload_to, verbose_name='file')), ('file', models.FileField(upload_to=wagtailvideos.models.get_upload_to, verbose_name='file')),
('kind', models.CharField(choices=[('subtitles', 'Subtitles'), ('captions', 'Captions'), ('descriptions', 'Descriptions'), ('chapters', 'Chapters'), ('metadata', 'Metadata')], default='subtitles', max_length=50)), ('kind', models.CharField(choices=[('subtitles', 'Subtitles'), ('captions', 'Captions'), ('descriptions', 'Descriptions'), ('chapters', 'Chapters'), ('metadata', 'Metadata')], default='subtitles', max_length=50)),
('label', models.CharField(blank=True, help_text='A user-readable title of the text track.', max_length=255)), ('label', models.CharField(blank=True, help_text='A user-readable title of the text track.', max_length=255)),
('language', models.CharField(blank=True, choices=[('aa', 'Afar'), ('aa-DJ', 'Afar - Djibouti'), ('aa-ER', 'Afar - Eritrea'), ('aa-ET', 'Afar - Ethiopia'), ('af', 'Afrikaans'), ('af-NA', 'Afrikaans - Namibia'), ('af-ZA', 'Afrikaans - South Africa'), ('agq', 'Aghem'), ('agq-CM', 'Aghem - Cameroon'), ('ak', 'Akan'), ('ak-GH', 'Akan - Ghana'), ('sq', 'Albanian'), ('sq-AL', 'Albanian - Albania'), ('sq-MK', 'Albanian - North Macedonia'), ('gsw', 'Alsatian'), ('gsw-FR', 'Alsatian - France'), ('gsw-LI', 'Alsatian - Liechtenstein'), ('gsw-CH', 'Alsatian - Switzerland'), ('am', 'Amharic'), ('am-ET', 'Amharic - Ethiopia'), ('ar', 'Arabic'), ('ar-DZ', 'Arabic - Algeria'), ('ar-BH', 'Arabic - Bahrain'), ('ar-TD', 'Arabic - Chad'), ('ar-KM', 'Arabic - Comoros'), ('ar-DJ', 'Arabic - Djibouti'), ('ar-EG', 'Arabic - Egypt'), ('ar-ER', 'Arabic - Eritrea'), ('ar-IQ', 'Arabic - Iraq'), ('ar-IL', 'Arabic - Israel'), ('ar-JO', 'Arabic - Jordan'), ('ar-KW', 'Arabic - Kuwait'), ('ar-LB', 'Arabic - Lebanon'), ('ar-LY', 'Arabic - Libya'), ('ar-MR', 'Arabic - Mauritania'), ('ar-MA', 'Arabic - Morocco'), ('ar-OM', 'Arabic - Oman'), ('ar-PS', 'Arabic - Palestinian Authority'), ('ar-QA', 'Arabic - Qatar'), ('ar-SA', 'Arabic - Saudi Arabia'), ('ar-SO', 'Arabic - Somalia'), ('ar-SS', 'Arabic - South Sudan'), ('ar-SD', 'Arabic - Sudan'), ('ar-SY', 'Arabic - Syria'), ('ar-TN', 'Arabic - Tunisia'), ('ar-AE', 'Arabic - U.A.E.'), ('ar-001', 'Arabic - World'), ('ar-YE', 'Arabic - Yemen'), ('hy', 'Armenian'), ('hy-AM', 'Armenian - Armenia'), ('as', 'Assamese'), ('as-IN', 'Assamese - India'), ('ast', 'Asturian'), ('ast-ES', 'Asturian - Spain'), ('asa', 'Asu'), ('asa-TZ', 'Asu - Tanzania'), ('az-Cyrl', 'Azerbaijani (Cyrillic)'), ('az-Cyrl-AZ', 'Azerbaijani (Cyrillic) - Azerbaijan'), ('az', 'Azerbaijani (Latin)'), ('az-Latn', 'Azerbaijani (Latin), Latn'), ('az-Latn-AZ', 'Azerbaijani (Latin) - Azerbaijan'), ('ksf', 'Bafia'), ('ksf-CM', 'Bafia - Cameroon'), ('bm', 'Bamanankan'), ('bm-Latn-ML', 'Bamanankan (Latin) - Mali'), ('bn', 'Bangla'), ('bn-BD', 'Bangla - Bangladesh'), ('bn-IN', 'Bangla - India'), ('bas', 'Basaa'), ('bas-CM', 'Basaa - Cameroon'), ('ba', 'Bashkir'), ('ba-RU', 'Bashkir - Russia'), ('eu', 'Basque'), ('eu-ES', 'Basque - Spain'), ('be', 'Belarusian'), ('be-BY', 'Belarusian - Belarus'), ('bem', 'Bemba'), ('bem-ZM', 'Bemba - Zambia'), ('bez', 'Bena'), ('bez-TZ', 'Bena - Tanzania'), ('byn', 'Blin'), ('byn-ER', 'Blin - Eritrea'), ('brx', 'Bodo'), ('brx-IN', 'Bodo - India'), ('bs-Cyrl', 'Bosnian (Cyrillic)'), ('bs-Cyrl-BA', 'Bosnian (Cyrillic) - Bosnia and Herzegovina'), ('bs', 'Bosnian (Latin)'), ('bs-Latn', 'Bosnian (Latin), Latn'), ('bs-Latn-BA', 'Bosnian (Latin) - Bosnia and Herzegovina'), ('br', 'Breton'), ('br-FR', 'Breton - France'), ('bg', 'Bulgarian'), ('bg-BG', 'Bulgarian - Bulgaria'), ('my', 'Burmese'), ('my-MM', 'Burmese - Myanmar'), ('ca', 'Catalan'), ('ca-AD', 'Catalan - Andorra'), ('ca-FR', 'Catalan - France'), ('ca-IT', 'Catalan - Italy'), ('ca-ES', 'Catalan - Spain'), ('ceb', 'Cebuano'), ('ceb-Latn', 'Cebuan (Latin)'), ('ceb-Latn-PH', 'Cebuan (Latin) - Philippines'), ('tzm-Latn-MA', 'Central Atlas Tamazight (Latin) - Morocco'), ('ku', 'Central Kurdish'), ('ku-Arab', 'Central Kurdish, Arab'), ('ku-Arab-IQ', 'Central Kurdish - Iraq'), ('ccp', 'Chakma'), ('ccp-Cakm', 'Chakma - Chakma'), ('ccp-Cakm-BD', 'Chakma - Bangladesh'), ('ccp-Cakm-IN', 'Chakma - India'), ('cd-RU', 'Chechen - Russia'), ('chr', 'Cherokee'), ('chr-Cher', 'Cherokee, Cher'), ('chr-Cher-US', 'Cherokee - United States'), ('cgg', 'Chiga'), ('cgg-UG', 'Chiga - Uganda'), ('zh', 'Chinese (Simplified)'), ('zh-Hans', 'Chinese (Simplified), Hans'), ('zh-CN', "Chinese (Simplified) - People's Republic of China"), ('zh-SG', 'Chinese (Simplified) - Singapore'), ('zh-Hant', 'Chinese (Traditional)'), ('zh-HK', 'Chinese (Traditional) - Hong Kong S.A.R.'), ('zh-MO', 'Chinese (Traditional) - Macao S.A.R.'), ('zh-TW', 'Chinese (Traditional) - Taiwan'), ('cu-RU', 'Church Slavic - Russia'), ('swc', 'Congo Swahili'), ('swc-CD', 'Congo Swahili - Congo DRC'), ('kw', 'Cornish'), ('kw-GB', 'Cornish - United Kingdom'), ('co', 'Corsican'), ('co-FR', 'Corsican - France'), ('hr,', 'Croatian'), ('hr-HR', 'Croatian - Croatia'), ('hr-BA', 'Croatian (Latin) - Bosnia and Herzegovina'), ('cs', 'Czech'), ('cs-CZ', 'Czech - Czech Republic'), ('da', 'Danish'), ('da-DK', 'Danish - Denmark'), ('da-GL', 'Danish - Greenland'), ('prs', 'Dari'), ('prs-AF', 'Dari - Afghanistan'), ('dv', 'Divehi'), ('dv-MV', 'Divehi - Maldives'), ('dua', 'Duala'), ('dua-CM', 'Duala - Cameroon'), ('nl', 'Dutch'), ('nl-AW', 'Dutch - Aruba'), ('nl-BE', 'Dutch - Belgium'), ('nl-BQ', 'Dutch - Bonaire, Sint Eustatius and Saba'), ('nl-CW', 'Dutch - Curaçao'), ('nl-NL', 'Dutch - Netherlands'), ('nl-SX', 'Dutch - Sint Maarten'), ('nl-SR', 'Dutch - Suriname'), ('dz', 'Dzongkha'), ('dz-BT', 'Dzongkha - Bhutan'), ('ebu', 'Embu'), ('ebu-KE', 'Embu - Kenya'), ('en', 'English'), ('en-AS', 'English - American Samoa'), ('en-AI', 'English - Anguilla'), ('en-AG', 'English - Antigua and Barbuda'), ('en-AU', 'English - Australia'), ('en-AT', 'English - Austria'), ('en-BS', 'English - Bahamas'), ('en-BB', 'English - Barbados'), ('en-BE', 'English - Belgium'), ('en-BZ', 'English - Belize'), ('en-BM', 'English - Bermuda'), ('en-BW', 'English - Botswana'), ('en-IO', 'English - British Indian Ocean Territory'), ('en-VG', 'English - British Virgin Islands'), ('en-BI', 'English - Burundi'), ('en-CM', 'English - Cameroon'), ('en-CA', 'English - Canada'), ('en-029', 'English - Caribbean'), ('en-KY', 'English - Cayman Islands'), ('en-CX', 'English - Christmas Island'), ('en-CC', 'English - Cocos [Keeling] Islands'), ('en-CK', 'English - Cook Islands'), ('en-CY', 'English - Cyprus'), ('en-DK', 'English - Denmark'), ('en-DM', 'English - Dominica'), ('en-ER', 'English - Eritrea'), ('en-150', 'English - Europe'), ('en-FK', 'English - Falkland Islands'), ('en-FI', 'English - Finland'), ('en-FJ', 'English - Fiji'), ('en-GM', 'English - Gambia'), ('en-DE', 'English - Germany'), ('en-GH', 'English - Ghana'), ('en-GI', 'English - Gibraltar'), ('en-GD', 'English - Grenada'), ('en-GU', 'English - Guam'), ('en-GG', 'English - Guernsey'), ('en-GY', 'English - Guyana'), ('en-HK', 'English - Hong Kong'), ('en-IN', 'English - India'), ('en-IE', 'English - Ireland'), ('en-IM', 'English - Isle of Man'), ('en-IL', 'English - Israel'), ('en-JM', 'English - Jamaica'), ('en-JE', 'English - Jersey'), ('en-KE', 'English - Kenya'), ('en-KI', 'English - Kiribati'), ('en-LS', 'English - Lesotho'), ('en-LR', 'English - Liberia'), ('en-MO', 'English - Macao SAR'), ('en-MG', 'English - Madagascar'), ('en-MW', 'English - Malawi'), ('en-MY', 'English - Malaysia'), ('en-MT', 'English - Malta'), ('en-MH', 'English - Marshall Islands'), ('en-MU', 'English - Mauritius'), ('en-FM', 'English - Micronesia'), ('en-MS', 'English - Montserrat'), ('en-NA', 'English - Namibia'), ('en-NR', 'English - Nauru'), ('en-NL', 'English - Netherlands'), ('en-NZ', 'English - New Zealand'), ('en-NG', 'English - Nigeria'), ('en-NU', 'English - Niue'), ('en-NF', 'English - Norfolk Island'), ('en-MP', 'English - Northern Mariana Islands'), ('en-PK', 'English - Pakistan'), ('en-PW', 'English - Palau'), ('en-PG', 'English - Papua New Guinea'), ('en-PN', 'English - Pitcairn Islands'), ('en-PR', 'English - Puerto Rico'), ('en-PH', 'English - Republic of the Philippines'), ('en-RW', 'English - Rwanda'), ('en-KN', 'English - Saint Kitts and Nevis'), ('en-LC', 'English - Saint Lucia'), ('en-VC', 'English - Saint Vincent and the Grenadines'), ('en-WS', 'English - Samoa'), ('en-SC', 'English - Seychelles'), ('en-SL', 'English - Sierra Leone'), ('en-SG', 'English - Singapore'), ('en-SX', 'English - Sint Maarten'), ('en-SI', 'English - Slovenia'), ('en-SB', 'English - Solomon Islands'), ('en-ZA', 'English - South Africa'), ('en-SS', 'English - South Sudan'), ('en-SH', 'English - St Helena, Ascension, Tristan da Cunha'), ('en-SD', 'English - Sudan'), ('en-SZ', 'English - Swaziland'), ('en-SE', 'English - Sweden'), ('en-CH', 'English - Switzerland'), ('en-TZ', 'English - Tanzania'), ('en-TK', 'English - Tokelau'), ('en-TO', 'English - Tonga'), ('en-TT', 'English - Trinidad and Tobago'), ('en-TC', 'English - Turks and Caicos Islands'), ('en-TV', 'English - Tuvalu'), ('en-UG', 'English - Uganda'), ('en-AE', 'English - United Arab Emirates'), ('en-GB', 'English - United Kingdom'), ('en-US', 'English - United States'), ('en-UM', 'English - US Minor Outlying Islands'), ('en-VI', 'English - US Virgin Islands'), ('en-VU', 'English - Vanuatu'), ('en-001', 'English - World'), ('en-ZM', 'English - Zambia'), ('en-ZW', 'English - Zimbabwe'), ('eo', 'Esperanto'), ('eo-001', 'Esperanto - World'), ('et', 'Estonian'), ('et-EE', 'Estonian - Estonia'), ('ee', 'Ewe'), ('ee-GH', 'Ewe - Ghana'), ('ee-TG', 'Ewe - Togo'), ('ewo', 'Ewondo'), ('ewo-CM', 'Ewondo - Cameroon'), ('fo', 'Faroese'), ('fo-DK', 'Faroese - Denmark'), ('fo-FO', 'Faroese - Faroe Islands'), ('fil', 'Filipino'), ('fil-PH', 'Filipino - Philippines'), ('fi', 'Finnish'), ('fi-FI', 'Finnish - Finland'), ('fr', 'French'), ('fr-DZ', 'French - Algeria'), ('fr-BE', 'French - Belgium'), ('fr-BJ', 'French - Benin'), ('fr-BF', 'French - Burkina Faso'), ('fr-BI', 'French - Burundi'), ('fr-CM', 'French - Cameroon'), ('fr-CA', 'French - Canada'), ('fr-CF', 'French - Central African Republic'), ('fr-TD', 'French - Chad'), ('fr-KM', 'French - Comoros'), ('fr-CG', 'French - Congo'), ('fr-CD', 'French - Congo, DRC'), ('fr-CI', "French - Côte d'Ivoire"), ('fr-DJ', 'French - Djibouti'), ('fr-GQ', 'French - Equatorial Guinea'), ('fr-FR', 'French - France'), ('fr-GF', 'French - French Guiana'), ('fr-PF', 'French - French Polynesia'), ('fr-GA', 'French - Gabon'), ('fr-GP', 'French - Guadeloupe'), ('fr-GN', 'French - Guinea'), ('fr-HT', 'French - Haiti'), ('fr-LU', 'French - Luxembourg'), ('fr-MG', 'French - Madagascar'), ('fr-ML', 'French - Mali'), ('fr-MQ', 'French - Martinique'), ('fr-MR', 'French - Mauritania'), ('fr-MU', 'French - Mauritius'), ('fr-YT', 'French - Mayotte'), ('fr-MA', 'French - Morocco'), ('fr-NC', 'French - New Caledonia'), ('fr-NE', 'French - Niger'), ('fr-MC', 'French - Principality of Monaco'), ('fr-RE', 'French - Reunion'), ('fr-RW', 'French - Rwanda'), ('fr-BL', 'French - Saint Barthélemy'), ('fr-MF', 'French - Saint Martin'), ('fr-PM', 'French - Saint Pierre and Miquelon'), ('fr-SN', 'French - Senegal'), ('fr-SC', 'French - Seychelles'), ('fr-CH', 'French - Switzerland'), ('fr-SY', 'French - Syria'), ('fr-TG', 'French - Togo'), ('fr-TN', 'French - Tunisia'), ('fr-VU', 'French - Vanuatu'), ('fr-WF', 'French - Wallis and Futuna'), ('fy', 'Frisian'), ('fy-NL', 'Frisian - Netherlands'), ('fur', 'Friulian'), ('fur-IT', 'Friulian - Italy'), ('ff', 'Fulah'), ('ff-Latn', 'Fulah (Latin)'), ('ff-Latn-BF', 'Fulah (Latin) - Burkina Faso'), ('ff-CM', 'Fulah - Cameroon'), ('ff-Latn-CM', 'Fulah (Latin) - Cameroon'), ('ff-Latn-GM', 'Fulah (Latin) - Gambia'), ('ff-Latn-GH', 'Fulah (Latin) - Ghana'), ('ff-GN', 'Fulah - Guinea'), ('ff-Latn-GN', 'Fulah (Latin) - Guinea'), ('ff-Latn-GW', 'Fulah (Latin) - Guinea-Bissau'), ('ff-Latn-LR', 'Fulah (Latin) - Liberia'), ('ff-MR', 'Fulah - Mauritania'), ('ff-Latn-MR', 'Fulah (Latin) - Mauritania'), ('ff-Latn-NE', 'Fulah (Latin) - Niger'), ('ff-NG', 'Fulah - Nigeria'), ('ff-Latn-NG', 'Fulah (Latin) - Nigeria'), ('ff-Latn-SN', 'Fulah - Senegal'), ('ff-Latn-SL', 'Fulah (Latin) - Sierra Leone'), ('gl', 'Galician'), ('gl-ES', 'Galician - Spain'), ('lg', 'Ganda'), ('lg-UG', 'Ganda - Uganda'), ('ka', 'Georgian'), ('ka-GE', 'Georgian - Georgia'), ('de', 'German'), ('de-AT', 'German - Austria'), ('de-BE', 'German - Belgium'), ('de-DE', 'German - Germany'), ('de-IT', 'German - Italy'), ('de-LI', 'German - Liechtenstein'), ('de-LU', 'German - Luxembourg'), ('de-CH', 'German - Switzerland'), ('el', 'Greek'), ('el-CY', 'Greek - Cyprus'), ('el-GR', 'Greek - Greece'), ('kl', 'Greenlandic'), ('kl-GL', 'Greenlandic - Greenland'), ('gn', 'Guarani'), ('gn-PY', 'Guarani - Paraguay'), ('gu', 'Gujarati'), ('gu-IN', 'Gujarati - India'), ('guz', 'Gusii'), ('guz-KE', 'Gusii - Kenya'), ('ha', 'Hausa (Latin)'), ('ha-Latn', 'Hausa (Latin), Latn'), ('ha-Latn-GH', 'Hausa (Latin) - Ghana'), ('ha-Latn-NE', 'Hausa (Latin) - Niger'), ('ha-Latn-NG', 'Hausa (Latin) - Nigeria'), ('haw', 'Hawaiian'), ('haw-US', 'Hawaiian - United States'), ('he', 'Hebrew'), ('he-IL', 'Hebrew - Israel'), ('hi', 'Hindi'), ('hi-IN', 'Hindi - India'), ('hu', 'Hungarian'), ('hu-HU', 'Hungarian - Hungary'), ('is', 'Icelandic'), ('is-IS', 'Icelandic - Iceland'), ('ig', 'Igbo'), ('ig-NG', 'Igbo - Nigeria'), ('id', 'Indonesian'), ('id-ID', 'Indonesian - Indonesia'), ('ia', 'Interlingua'), ('ia-FR', 'Interlingua - France'), ('ia-001', 'Interlingua - World'), ('iu', 'Inuktitut (Latin)'), ('iu-Latn', 'Inuktitut (Latin), Latn'), ('iu-Latn-CA', 'Inuktitut (Latin) - Canada'), ('iu-Cans', 'Inuktitut (Syllabics)'), ('iu-Cans-CA', 'Inuktitut (Syllabics) - Canada'), ('ga', 'Irish'), ('ga-IE', 'Irish - Ireland'), ('it', 'Italian'), ('it-IT', 'Italian - Italy'), ('it-SM', 'Italian - San Marino'), ('it-CH', 'Italian - Switzerland'), ('it-VA', 'Italian - Vatican City'), ('ja', 'Japanese'), ('ja-JP', 'Japanese - Japan'), ('jv', 'Javanese'), ('jv-Latn', 'Javanese - Latin'), ('jv-Latn-ID', 'Javanese - Latin, Indonesia'), ('dyo', 'Jola-Fonyi'), ('dyo-SN', 'Jola-Fonyi - Senegal'), ('kea', 'Kabuverdianu'), ('kea-CV', 'Kabuverdianu - Cabo Verde'), ('kab', 'Kabyle'), ('kab-DZ', 'Kabyle - Algeria'), ('kkj', 'Kako'), ('kkj-CM', 'Kako - Cameroon'), ('kln', 'Kalenjin'), ('kln-KE', 'Kalenjin - Kenya'), ('kam', 'Kamba'), ('kam-KE', 'Kamba - Kenya'), ('kn', 'Kannada'), ('kn-IN', 'Kannada - India'), ('ks', 'Kashmiri'), ('ks-Arab', 'Kashmiri - Perso-Arabic'), ('ks-Arab-IN', 'Kashmiri - Perso-Arabic, IN'), ('kk', 'Kazakh'), ('kk-KZ', 'Kazakh - Kazakhstan'), ('km', 'Khmer'), ('km-KH', 'Khmer - Cambodia'), ('quc', "K'iche"), ('quc-Latn-GT', "K'iche - Guatemala"), ('ki', 'Kikuyu'), ('ki-KE', 'Kikuyu - Kenya'), ('rw', 'Kinyarwanda'), ('rw-RW', 'Kinyarwanda - Rwanda'), ('sw', 'Kiswahili'), ('sw-KE', 'Kiswahili - Kenya'), ('sw-TZ', 'Kiswahili - Tanzania'), ('sw-UG', 'Kiswahili - Uganda'), ('kok', 'Konkani'), ('kok-IN', 'Konkani - India'), ('ko', 'Korean'), ('ko-KR', 'Korean - Korea'), ('ko-KP', 'Korean - North Korea'), ('khq', 'Koyra Chiini'), ('khq-ML', 'Koyra Chiini - Mali'), ('ses', 'Koyraboro Senni'), ('ses-ML', 'Koyraboro Senni - Mali'), ('nmg', 'Kwasio'), ('nmg-CM', 'Kwasio - Cameroon'), ('ky', 'Kyrgyz'), ('ky-KG', 'Kyrgyz - Kyrgyzstan'), ('ku-Arab-IR', 'Kurdish - Perso-Arabic, Iran'), ('lkt', 'Lakota'), ('lkt-US', 'Lakota - United States'), ('lag', 'Langi'), ('lag-TZ', 'Langi - Tanzania'), ('lo', 'Lao'), ('lo-LA', 'Lao - Lao P.D.R.'), ('lv', 'Latvian'), ('lv-LV', 'Latvian - Latvia'), ('ln', 'Lingala'), ('ln-AO', 'Lingala - Angola'), ('ln-CF', 'Lingala - Central African Republic'), ('ln-CG', 'Lingala - Congo'), ('ln-CD', 'Lingala - Congo DRC'), ('lt', 'Lithuanian'), ('lt-LT', 'Lithuanian - Lithuania'), ('nds', 'Low German'), ('nds-DE', 'Low German - Germany'), ('nds-NL', 'Low German - Netherlands'), ('dsb', 'Lower Sorbian'), ('dsb-DE', 'Lower Sorbian - Germany'), ('lu', 'Luba-Katanga'), ('lu-CD', 'Luba-Katanga - Congo DRC'), ('luo', 'Luo'), ('luo-KE', 'Luo - Kenya'), ('lb', 'Luxembourgish'), ('lb-LU', 'Luxembourgish - Luxembourg'), ('luy', 'Luyia'), ('luy-KE', 'Luyia - Kenya'), ('mk', 'Macedonian'), ('mk-MK', 'Macedonian - North Macedonia'), ('jmc', 'Machame'), ('jmc-TZ', 'Machame - Tanzania'), ('mgh', 'Makhuwa-Meetto'), ('mgh-MZ', 'Makhuwa-Meetto - Mozambique'), ('kde', 'Makonde'), ('kde-TZ', 'Makonde - Tanzania'), ('mg', 'Malagasy'), ('mg-MG', 'Malagasy - Madagascar'), ('ms', 'Malay'), ('ms-BN', 'Malay - Brunei Darussalam'), ('ms-MY', 'Malay - Malaysia'), ('ml', 'Malayalam'), ('ml-IN', 'Malayalam - India'), ('mt', 'Maltese'), ('mt-MT', 'Maltese - Malta'), ('gv', 'Manx'), ('gv-IM', 'Manx - Isle of Man'), ('mi', 'Maori'), ('mi-NZ', 'Maori - New Zealand'), ('arn', 'Mapudungun'), ('arn-CL', 'Mapudungun - Chile'), ('mr', 'Marathi'), ('mr-IN', 'Marathi - India'), ('mas', 'Masai'), ('mas-KE', 'Masai - Kenya'), ('mas-TZ', 'Masai - Tanzania'), ('mzn-IR', 'Mazanderani - Iran'), ('mer', 'Meru'), ('mer-KE', 'Meru - Kenya'), ('mgo', "Meta'"), ('mgo-CM', "Meta' - Cameroon"), ('moh', 'Mohawk'), ('moh-CA', 'Mohawk - Canada'), ('mn', 'Mongolian (Cyrillic)'), ('mn-Cyrl', 'Mongolian (Cyrillic), Cyrl'), ('mn-MN', 'Mongolian (Cyrillic) - Mongolia'), ('mn-Mong', 'Mongolian (Traditional Mongolian)'), ('mn-Mong-CN', "Mongolian (Traditional Mongolian) - People's Republic of China"), ('mn-Mong-MN', 'Mongolian (Traditional Mongolian) - Mongolia'), ('mfe', 'Morisyen'), ('mfe-MU', 'Morisyen - Mauritius'), ('mua', 'Mundang'), ('mua-CM', 'Mundang - Cameroon'), ('nqo', "N'ko"), ('nqo-GN', "N'ko - Guinea"), ('naq', 'Nama'), ('naq-NA', 'Nama - Namibia'), ('ne', 'Nepali'), ('ne-IN', 'Nepali - India'), ('ne-NP', 'Nepali - Nepal'), ('nnh', 'Ngiemboon'), ('nnh-CM', 'Ngiemboon - Cameroon'), ('jgo', 'Ngomba'), ('jgo-CM', 'Ngomba - Cameroon'), ('lrc-IQ', 'Northern Luri - Iraq'), ('lrc-IR', 'Northern Luri - Iran'), ('nd', 'North Ndebele'), ('nd-ZW', 'North Ndebele - Zimbabwe'), ('no', 'Norwegian (Bokmal)'), ('nb', 'Norwegian (Bokmal), nb'), ('nb-NO', 'Norwegian (Bokmal) - Norway'), ('nn', 'Norwegian (Nynorsk)'), ('nn-NO', 'Norwegian (Nynorsk) - Norway'), ('nb-SJ', 'Norwegian Bokmål - Svalbard and Jan Mayen'), ('nus', 'Nuer'), ('nus-SD', 'Nuer - Sudan'), ('nus-SS', 'Nuer - South Sudan'), ('nyn', 'Nyankole'), ('nyn-UG', 'Nyankole - Uganda'), ('oc', 'Occitan'), ('oc-FR', 'Occitan - France'), ('or', 'Odia'), ('or-IN', 'Odia - India'), ('om', 'Oromo'), ('om-ET', 'Oromo - Ethiopia'), ('om-KE', 'Oromo - Kenya'), ('os', 'Ossetian'), ('os-GE', 'Ossetian - Cyrillic, Georgia'), ('os-RU', 'Ossetian - Cyrillic, Russia'), ('ps', 'Pashto'), ('ps-AF', 'Pashto - Afghanistan'), ('ps-PK', 'Pashto - Pakistan'), ('fa', 'Persian'), ('fa-AF', 'Persian - Afghanistan'), ('fa-IR', 'Persian - Iran'), ('pl', 'Polish'), ('pl-PL', 'Polish - Poland'), ('pt', 'Portuguese'), ('pt-AO', 'Portuguese - Angola'), ('pt-BR', 'Portuguese - Brazil'), ('pt-CV', 'Portuguese - Cabo Verde'), ('pt-GQ', 'Portuguese - Equatorial Guinea'), ('pt-GW', 'Portuguese - Guinea-Bissau'), ('pt-LU', 'Portuguese - Luxembourg'), ('pt-MO', 'Portuguese - Macao SAR'), ('pt-MZ', 'Portuguese - Mozambique'), ('pt-PT', 'Portuguese - Portugal'), ('pt-ST', 'Portuguese - São Tomé and Príncipe'), ('pt-CH', 'Portuguese - Switzerland'), ('pt-TL', 'Portuguese - Timor-Leste'), ('prg-001', 'Prussian'), ('qps-ploca', 'Pseudo Language - Pseudo locale for east Asian/complex script localization testing'), ('qps-ploc', 'Pseudo Language - Pseudo locale used for localization testing'), ('qps-plocm', 'Pseudo Language - Pseudo locale used for localization testing of mirroredlocales'), ('pa', 'Punjabi'), ('pa-Arab', 'Punjabi, Arab'), ('pa-IN', 'Punjabi - India'), ('pa-Arab-PK', 'Punjabi - Islamic Republic of Pakistan'), ('quz', 'Quechua'), ('quz-BO', 'Quechua - Bolivia'), ('quz-EC', 'Quechua - Ecuador'), ('quz-PE', 'Quechua - Peru'), ('ksh', 'Ripuarian'), ('ksh-DE', 'Ripuarian - Germany'), ('ro', 'Romanian'), ('ro-MD', 'Romanian - Moldova'), ('ro-RO', 'Romanian - Romania'), ('rm', 'Romansh'), ('rm-CH', 'Romansh - Switzerland'), ('rof', 'Rombo'), ('rof-TZ', 'Rombo - Tanzania'), ('rn', 'Rundi'), ('rn-BI', 'Rundi - Burundi'), ('ru', 'Russian'), ('ru-BY', 'Russian - Belarus'), ('ru-KZ', 'Russian - Kazakhstan'), ('ru-KG', 'Russian - Kyrgyzstan'), ('ru-MD', 'Russian - Moldova'), ('ru-RU', 'Russian - Russia'), ('ru-UA', 'Russian - Ukraine'), ('rwk', 'Rwa'), ('rwk-TZ', 'Rwa - Tanzania'), ('ssy', 'Saho'), ('ssy-ER', 'Saho - Eritrea'), ('sah', 'Sakha'), ('sah-RU', 'Sakha - Russia'), ('saq', 'Samburu'), ('saq-KE', 'Samburu - Kenya'), ('smn', 'Sami (Inari)'), ('smn-FI', 'Sami (Inari) - Finland'), ('smj', 'Sami (Lule)'), ('smj-NO', 'Sami (Lule) - Norway'), ('smj-SE', 'Sami (Lule) - Sweden'), ('se', 'Sami (Northern)'), ('se-FI', 'Sami (Northern) - Finland'), ('se-NO', 'Sami (Northern) - Norway'), ('se-SE', 'Sami (Northern) - Sweden'), ('sms', 'Sami (Skolt)'), ('sms-FI', 'Sami (Skolt) - Finland'), ('sma', 'Sami (Southern)'), ('sma-NO', 'Sami (Southern) - Norway'), ('sma-SE', 'Sami (Southern) - Sweden'), ('sg', 'Sango'), ('sg-CF', 'Sango - Central African Republic'), ('sbp', 'Sangu'), ('sbp-TZ', 'Sangu - Tanzania'), ('sa', 'Sanskrit'), ('sa-IN', 'Sanskrit - India'), ('gd', 'Scottish Gaelic'), ('gd-GB', 'Scottish Gaelic - United Kingdom'), ('seh', 'Sena'), ('seh-MZ', 'Sena - Mozambique'), ('sr-Cyrl', 'Serbian (Cyrillic)'), ('sr-Cyrl-BA', 'Serbian (Cyrillic) - Bosnia and Herzegovina'), ('sr-Cyrl-ME', 'Serbian (Cyrillic) - Montenegro'), ('sr-Cyrl-RS', 'Serbian (Cyrillic) - Serbia'), ('sr-Cyrl-CS', 'Serbian (Cyrillic) - Serbia and Montenegro (Former)'), ('sr', 'Serbian (Latin)'), ('sr-Latn', 'Serbian (Latin), Latn'), ('sr-Latn-BA', 'Serbian (Latin) - Bosnia and Herzegovina'), ('sr-Latn-ME', 'Serbian (Latin) - Montenegro'), ('sr-Latn-RS', 'Serbian (Latin) - Serbia'), ('sr-Latn-CS', 'Serbian (Latin) - Serbia and Montenegro (Former)'), ('nso', 'Sesotho sa Leboa'), ('nso-ZA', 'Sesotho sa Leboa - South Africa'), ('tn', 'Setswana'), ('tn-BW', 'Setswana - Botswana'), ('tn-ZA', 'Setswana - South Africa'), ('ksb', 'Shambala'), ('ksb-TZ', 'Shambala - Tanzania'), ('sn', 'Shona'), ('sn-Latn', 'Shona - Latin'), ('sn-Latn-ZW', 'Shona - Zimbabwe'), ('sd', 'Sindhi'), ('sd-Arab', 'Sindhi, Arab'), ('sd-Arab-PK', 'Sindhi - Islamic Republic of Pakistan'), ('si', 'Sinhala'), ('si-LK', 'Sinhala - Sri Lanka'), ('sk', 'Slovak'), ('sk-SK', 'Slovak - Slovakia'), ('sl', 'Slovenian'), ('sl-SI', 'Slovenian - Slovenia'), ('xog', 'Soga'), ('xog-UG', 'Soga - Uganda'), ('so', 'Somali'), ('so-DJ', 'Somali - Djibouti'), ('so-ET', 'Somali - Ethiopia'), ('so-KE', 'Somali - Kenya'), ('so-SO', 'Somali - Somalia'), ('st', 'Sotho'), ('st-ZA', 'Sotho - South Africa'), ('nr', 'South Ndebele'), ('nr-ZA', 'South Ndebele - South Africa'), ('st-LS', 'Southern Sotho - Lesotho'), ('es', 'Spanish'), ('es-AR', 'Spanish - Argentina'), ('es-BZ', 'Spanish - Belize'), ('es-VE', 'Spanish - Bolivarian Republic of Venezuela'), ('es-BO', 'Spanish - Bolivia'), ('es-BR', 'Spanish - Brazil'), ('es-CL', 'Spanish - Chile'), ('es-CO', 'Spanish - Colombia'), ('es-CR', 'Spanish - Costa Rica'), ('es-CU', 'Spanish - Cuba'), ('es-DO', 'Spanish - Dominican Republic'), ('es-EC', 'Spanish - Ecuador'), ('es-SV', 'Spanish - El Salvador'), ('es-GQ', 'Spanish - Equatorial Guinea'), ('es-GT', 'Spanish - Guatemala'), ('es-HN', 'Spanish - Honduras'), ('es-419', 'Spanish - Latin America'), ('es-MX', 'Spanish - Mexico'), ('es-NI', 'Spanish - Nicaragua'), ('es-PA', 'Spanish - Panama'), ('es-PY', 'Spanish - Paraguay'), ('es-PE', 'Spanish - Peru'), ('es-PH', 'Spanish - Philippines'), ('es-PR', 'Spanish - Puerto Rico'), ('es-ES', 'Spanish - Spain'), ('es-ES_tradnl', 'Spanish - Spain, ES_tradnl'), ('es-US', 'Spanish - United - States'), ('es-UY', 'Spanish - Uruguay'), ('zgh', 'Standard Moroccan Tamazight'), ('zgh-Tfng-MA', 'Standard Moroccan Tamazight - Morocco'), ('zgh-Tfng', 'Standard Moroccan Tamazight - Tifinagh'), ('ss', 'Swati'), ('ss-ZA', 'Swati - South Africa'), ('ss-SZ', 'Swati - Swaziland'), ('sv', 'Swedish'), ('sv-AX', 'Swedish - Åland Islands'), ('sv-FI', 'Swedish - Finland'), ('sv-SE', 'Swedish - Sweden'), ('syr', 'Syriac'), ('syr-SY', 'Syriac - Syria'), ('shi', 'Tachelhit'), ('shi-Tfng', 'Tachelhit - Tifinagh'), ('shi-Tfng-MA', 'Tachelhit - Tifinagh, Morocco'), ('shi-Latn', 'Tachelhit (Latin)'), ('shi-Latn-MA', 'Tachelhit (Latin) - Morocco'), ('dav', 'Taita'), ('dav-KE', 'Taita - Kenya'), ('tg', 'Tajik (Cyrillic)'), ('tg-Cyrl', 'Tajik (Cyrillic), Cyrl'), ('tg-Cyrl-TJ', 'Tajik (Cyrillic) - Tajikistan'), ('tzm', 'Tamazight (Latin)'), ('tzm-Latn', 'Tamazight (Latin), Latn'), ('tzm-Latn-DZ', 'Tamazight (Latin) - Algeria'), ('ta', 'Tamil'), ('ta-IN', 'Tamil - India'), ('ta-MY', 'Tamil - Malaysia'), ('ta-SG', 'Tamil - Singapore'), ('ta-LK', 'Tamil - Sri Lanka'), ('twq', 'Tasawaq'), ('twq-NE', 'Tasawaq - Niger'), ('tt', 'Tatar'), ('tt-RU', 'Tatar - Russia'), ('te', 'Telugu'), ('te-IN', 'Telugu - India'), ('teo', 'Teso'), ('teo-KE', 'Teso - Kenya'), ('teo-UG', 'Teso - Uganda'), ('th', 'Thai'), ('th-TH', 'Thai - Thailand'), ('bo', 'Tibetan'), ('bo-IN', 'Tibetan - India'), ('bo-CN', "Tibetan - People's Republic of China"), ('tig', 'Tigre'), ('tig-ER', 'Tigre - Eritrea'), ('ti', 'Tigrinya'), ('ti-ER', 'Tigrinya - Eritrea'), ('ti-ET', 'Tigrinya - Ethiopia'), ('to', 'Tongan'), ('to-TO', 'Tongan - Tonga'), ('ts', 'Tsonga'), ('ts-ZA', 'Tsonga - South Africa'), ('tr', 'Turkish'), ('tr-CY', 'Turkish - Cyprus'), ('tr-TR', 'Turkish - Turkey'), ('tk', 'Turkmen'), ('tk-TM', 'Turkmen - Turkmenistan'), ('uk', 'Ukrainian'), ('uk-UA', 'Ukrainian - Ukraine'), ('hsb', 'Upper Sorbian'), ('hsb-DE', 'Upper Sorbian - Germany'), ('ur', 'Urdu'), ('ur-IN', 'Urdu - India'), ('ur-PK', 'Urdu - Islamic Republic of Pakistan'), ('ug', 'Uyghur'), ('ug-CN', "Uyghur - People's Republic of China"), ('uz-Arab', 'Uzbek - Perso-Arabic'), ('uz-Arab-AF', 'Uzbek - Perso-Arabic, Afghanistan'), ('uz-Cyrl', 'Uzbek (Cyrillic)'), ('uz-Cyrl-UZ', 'Uzbek (Cyrillic) - Uzbekistan'), ('uz', 'Uzbek (Latin)'), ('uz-Latn', 'Uzbek (Latin), Latn'), ('uz-Latn-UZ', 'Uzbek (Latin) - Uzbekistan'), ('vai', 'Vai'), ('vai-Vaii', 'Vai, Vaii'), ('vai-Vaii-LR', 'Vai - Liberia'), ('vai-Latn-LR', 'Vai (Latin) - Liberia'), ('vai-Latn', 'Vai (Latin)'), ('ca-ES-valencia', 'Valencian - Spain'), ('ve', 'Venda'), ('ve-ZA', 'Venda - South Africa'), ('vi', 'Vietnamese'), ('vi-VN', 'Vietnamese - Vietnam'), ('vo', 'Volapük'), ('vo-001', 'Volapük - World'), ('vun', 'Vunjo'), ('vun-TZ', 'Vunjo - Tanzania'), ('wae', 'Walser'), ('wae-CH', 'Walser - Switzerland'), ('cy', 'Welsh'), ('cy-GB', 'Welsh - United Kingdom'), ('wal', 'Wolaytta'), ('wal-ET', 'Wolaytta - Ethiopia'), ('wo', 'Wolof'), ('wo-SN', 'Wolof - Senegal'), ('xh', 'Xhosa'), ('xh-ZA', 'Xhosa - South Africa'), ('yav', 'Yangben'), ('yav-CM', 'Yangben - Cameroon'), ('ii', 'Yi'), ('ii-CN', "Yi - People's Republic of China"), ('yo', 'Yoruba'), ('yo-BJ', 'Yoruba - Benin'), ('yo-NG', 'Yoruba - Nigeria'), ('dje', 'Zarma'), ('dje-NE', 'Zarma - Niger'), ('zu', 'Zulu'), ('zu-ZA', 'Zulu - South Africa')], default='en', help_text='Required if type is "Subtitle"', max_length=50, unique=True)), ('language', models.CharField(blank=True, choices=[('aa', 'Afar'), ('aa-DJ', 'Afar - Djibouti'), ('aa-ER', 'Afar - Eritrea'), ('aa-ET', 'Afar - Ethiopia'), ('af', 'Afrikaans'), ('af-NA', 'Afrikaans - Namibia'), ('af-ZA', 'Afrikaans - South Africa'), ('agq', 'Aghem'), ('agq-CM', 'Aghem - Cameroon'), ('ak', 'Akan'), ('ak-GH', 'Akan - Ghana'), ('sq', 'Albanian'), ('sq-AL', 'Albanian - Albania'), ('sq-MK', 'Albanian - North Macedonia'), ('gsw', 'Alsatian'), ('gsw-FR', 'Alsatian - France'), ('gsw-LI', 'Alsatian - Liechtenstein'), ('gsw-CH', 'Alsatian - Switzerland'), ('am', 'Amharic'), ('am-ET', 'Amharic - Ethiopia'), ('ar', 'Arabic'), ('ar-DZ', 'Arabic - Algeria'), ('ar-BH', 'Arabic - Bahrain'), ('ar-TD', 'Arabic - Chad'), ('ar-KM', 'Arabic - Comoros'), ('ar-DJ', 'Arabic - Djibouti'), ('ar-EG', 'Arabic - Egypt'), ('ar-ER', 'Arabic - Eritrea'), ('ar-IQ', 'Arabic - Iraq'), ('ar-IL', 'Arabic - Israel'), ('ar-JO', 'Arabic - Jordan'), ('ar-KW', 'Arabic - Kuwait'), ('ar-LB', 'Arabic - Lebanon'), ('ar-LY', 'Arabic - Libya'), ('ar-MR', 'Arabic - Mauritania'), ('ar-MA', 'Arabic - Morocco'), ('ar-OM', 'Arabic - Oman'), ('ar-PS', 'Arabic - Palestinian Authority'), ('ar-QA', 'Arabic - Qatar'), ('ar-SA', 'Arabic - Saudi Arabia'), ('ar-SO', 'Arabic - Somalia'), ('ar-SS', 'Arabic - South Sudan'), ('ar-SD', 'Arabic - Sudan'), ('ar-SY', 'Arabic - Syria'), ('ar-TN', 'Arabic - Tunisia'), ('ar-AE', 'Arabic - U.A.E.'), ('ar-001', 'Arabic - World'), ('ar-YE', 'Arabic - Yemen'), ('hy', 'Armenian'), ('hy-AM', 'Armenian - Armenia'), ('as', 'Assamese'), ('as-IN', 'Assamese - India'), ('ast', 'Asturian'), ('ast-ES', 'Asturian - Spain'), ('asa', 'Asu'), ('asa-TZ', 'Asu - Tanzania'), ('az-Cyrl', 'Azerbaijani (Cyrillic)'), ('az-Cyrl-AZ', 'Azerbaijani (Cyrillic) - Azerbaijan'), ('az', 'Azerbaijani (Latin)'), ('az-Latn', 'Azerbaijani (Latin), Latn'), ('az-Latn-AZ', 'Azerbaijani (Latin) - Azerbaijan'), ('ksf', 'Bafia'), ('ksf-CM', 'Bafia - Cameroon'), ('bm', 'Bamanankan'), ('bm-Latn-ML', 'Bamanankan (Latin) - Mali'), ('bn', 'Bangla'), ('bn-BD', 'Bangla - Bangladesh'), ('bn-IN', 'Bangla - India'), ('bas', 'Basaa'), ('bas-CM', 'Basaa - Cameroon'), ('ba', 'Bashkir'), ('ba-RU', 'Bashkir - Russia'), ('eu', 'Basque'), ('eu-ES', 'Basque - Spain'), ('be', 'Belarusian'), ('be-BY', 'Belarusian - Belarus'), ('bem', 'Bemba'), ('bem-ZM', 'Bemba - Zambia'), ('bez', 'Bena'), ('bez-TZ', 'Bena - Tanzania'), ('byn', 'Blin'), ('byn-ER', 'Blin - Eritrea'), ('brx', 'Bodo'), ('brx-IN', 'Bodo - India'), ('bs-Cyrl', 'Bosnian (Cyrillic)'), ('bs-Cyrl-BA', 'Bosnian (Cyrillic) - Bosnia and Herzegovina'), ('bs', 'Bosnian (Latin)'), ('bs-Latn', 'Bosnian (Latin), Latn'), ('bs-Latn-BA', 'Bosnian (Latin) - Bosnia and Herzegovina'), ('br', 'Breton'), ('br-FR', 'Breton - France'), ('bg', 'Bulgarian'), ('bg-BG', 'Bulgarian - Bulgaria'), ('my', 'Burmese'), ('my-MM', 'Burmese - Myanmar'), ('ca', 'Catalan'), ('ca-AD', 'Catalan - Andorra'), ('ca-FR', 'Catalan - France'), ('ca-IT', 'Catalan - Italy'), ('ca-ES', 'Catalan - Spain'), ('ceb', 'Cebuano'), ('ceb-Latn', 'Cebuan (Latin)'), ('ceb-Latn-PH', 'Cebuan (Latin) - Philippines'), ('tzm-Latn-MA', 'Central Atlas Tamazight (Latin) - Morocco'), ('ku', 'Central Kurdish'), ('ku-Arab', 'Central Kurdish, Arab'), ('ku-Arab-IQ', 'Central Kurdish - Iraq'), ('ccp', 'Chakma'), ('ccp-Cakm', 'Chakma - Chakma'), ('ccp-Cakm-BD', 'Chakma - Bangladesh'), ('ccp-Cakm-IN', 'Chakma - India'), ('cd-RU', 'Chechen - Russia'), ('chr', 'Cherokee'), ('chr-Cher', 'Cherokee, Cher'), ('chr-Cher-US', 'Cherokee - United States'), ('cgg', 'Chiga'), ('cgg-UG', 'Chiga - Uganda'), ('zh', 'Chinese (Simplified)'), ('zh-Hans', 'Chinese (Simplified), Hans'), ('zh-CN', "Chinese (Simplified) - People's Republic of China"), ('zh-SG', 'Chinese (Simplified) - Singapore'), ('zh-Hant', 'Chinese (Traditional)'), ('zh-HK', 'Chinese (Traditional) - Hong Kong S.A.R.'), ('zh-MO', 'Chinese (Traditional) - Macao S.A.R.'), ('zh-TW', 'Chinese (Traditional) - Taiwan'), ('cu-RU', 'Church Slavic - Russia'), ('swc', 'Congo Swahili'), ('swc-CD', 'Congo Swahili - Congo DRC'), ('kw', 'Cornish'), ('kw-GB', 'Cornish - United Kingdom'), ('co', 'Corsican'), ('co-FR', 'Corsican - France'), ('hr,', 'Croatian'), ('hr-HR', 'Croatian - Croatia'), ('hr-BA', 'Croatian (Latin) - Bosnia and Herzegovina'), ('cs', 'Czech'), ('cs-CZ', 'Czech - Czech Republic'), ('da', 'Danish'), ('da-DK', 'Danish - Denmark'), ('da-GL', 'Danish - Greenland'), ('prs', 'Dari'), ('prs-AF', 'Dari - Afghanistan'), ('dv', 'Divehi'), ('dv-MV', 'Divehi - Maldives'), ('dua', 'Duala'), ('dua-CM', 'Duala - Cameroon'), ('nl', 'Dutch'), ('nl-AW', 'Dutch - Aruba'), ('nl-BE', 'Dutch - Belgium'), ('nl-BQ', 'Dutch - Bonaire, Sint Eustatius and Saba'), ('nl-CW', 'Dutch - Curaçao'), ('nl-NL', 'Dutch - Netherlands'), ('nl-SX', 'Dutch - Sint Maarten'), ('nl-SR', 'Dutch - Suriname'), ('dz', 'Dzongkha'), ('dz-BT', 'Dzongkha - Bhutan'), ('ebu', 'Embu'), ('ebu-KE', 'Embu - Kenya'), ('en', 'English'), ('en-AS', 'English - American Samoa'), ('en-AI', 'English - Anguilla'), ('en-AG', 'English - Antigua and Barbuda'), ('en-AU', 'English - Australia'), ('en-AT', 'English - Austria'), ('en-BS', 'English - Bahamas'), ('en-BB', 'English - Barbados'), ('en-BE', 'English - Belgium'), ('en-BZ', 'English - Belize'), ('en-BM', 'English - Bermuda'), ('en-BW', 'English - Botswana'), ('en-IO', 'English - British Indian Ocean Territory'), ('en-VG', 'English - British Virgin Islands'), ('en-BI', 'English - Burundi'), ('en-CM', 'English - Cameroon'), ('en-CA', 'English - Canada'), ('en-029', 'English - Caribbean'), ('en-KY', 'English - Cayman Islands'), ('en-CX', 'English - Christmas Island'), ('en-CC', 'English - Cocos [Keeling] Islands'), ('en-CK', 'English - Cook Islands'), ('en-CY', 'English - Cyprus'), ('en-DK', 'English - Denmark'), ('en-DM', 'English - Dominica'), ('en-ER', 'English - Eritrea'), ('en-150', 'English - Europe'), ('en-FK', 'English - Falkland Islands'), ('en-FI', 'English - Finland'), ('en-FJ', 'English - Fiji'), ('en-GM', 'English - Gambia'), ('en-DE', 'English - Germany'), ('en-GH', 'English - Ghana'), ('en-GI', 'English - Gibraltar'), ('en-GD', 'English - Grenada'), ('en-GU', 'English - Guam'), ('en-GG', 'English - Guernsey'), ('en-GY', 'English - Guyana'), ('en-HK', 'English - Hong Kong'), ('en-IN', 'English - India'), ('en-IE', 'English - Ireland'), ('en-IM', 'English - Isle of Man'), ('en-IL', 'English - Israel'), ('en-JM', 'English - Jamaica'), ('en-JE', 'English - Jersey'), ('en-KE', 'English - Kenya'), ('en-KI', 'English - Kiribati'), ('en-LS', 'English - Lesotho'), ('en-LR', 'English - Liberia'), ('en-MO', 'English - Macao SAR'), ('en-MG', 'English - Madagascar'), ('en-MW', 'English - Malawi'), ('en-MY', 'English - Malaysia'), ('en-MT', 'English - Malta'), ('en-MH', 'English - Marshall Islands'), ('en-MU', 'English - Mauritius'), ('en-FM', 'English - Micronesia'), ('en-MS', 'English - Montserrat'), ('en-NA', 'English - Namibia'), ('en-NR', 'English - Nauru'), ('en-NL', 'English - Netherlands'), ('en-NZ', 'English - New Zealand'), ('en-NG', 'English - Nigeria'), ('en-NU', 'English - Niue'), ('en-NF', 'English - Norfolk Island'), ('en-MP', 'English - Northern Mariana Islands'), ('en-PK', 'English - Pakistan'), ('en-PW', 'English - Palau'), ('en-PG', 'English - Papua New Guinea'), ('en-PN', 'English - Pitcairn Islands'), ('en-PR', 'English - Puerto Rico'), ('en-PH', 'English - Republic of the Philippines'), ('en-RW', 'English - Rwanda'), ('en-KN', 'English - Saint Kitts and Nevis'), ('en-LC', 'English - Saint Lucia'), ('en-VC', 'English - Saint Vincent and the Grenadines'), ('en-WS', 'English - Samoa'), ('en-SC', 'English - Seychelles'), ('en-SL', 'English - Sierra Leone'), ('en-SG', 'English - Singapore'), ('en-SX', 'English - Sint Maarten'), ('en-SI', 'English - Slovenia'), ('en-SB', 'English - Solomon Islands'), ('en-ZA', 'English - South Africa'), ('en-SS', 'English - South Sudan'), ('en-SH', 'English - St Helena, Ascension, Tristan da Cunha'), ('en-SD', 'English - Sudan'), ('en-SZ', 'English - Swaziland'), ('en-SE', 'English - Sweden'), ('en-CH', 'English - Switzerland'), ('en-TZ', 'English - Tanzania'), ('en-TK', 'English - Tokelau'), ('en-TO', 'English - Tonga'), ('en-TT', 'English - Trinidad and Tobago'), ('en-TC', 'English - Turks and Caicos Islands'), ('en-TV', 'English - Tuvalu'), ('en-UG', 'English - Uganda'), ('en-AE', 'English - United Arab Emirates'), ('en-GB', 'English - United Kingdom'), ('en-US', 'English - United States'), ('en-UM', 'English - US Minor Outlying Islands'), ('en-VI', 'English - US Virgin Islands'), ('en-VU', 'English - Vanuatu'), ('en-001', 'English - World'), ('en-ZM', 'English - Zambia'), ('en-ZW', 'English - Zimbabwe'), ('eo', 'Esperanto'), ('eo-001', 'Esperanto - World'), ('et', 'Estonian'), ('et-EE', 'Estonian - Estonia'), ('ee', 'Ewe'), ('ee-GH', 'Ewe - Ghana'), ('ee-TG', 'Ewe - Togo'), ('ewo', 'Ewondo'), ('ewo-CM', 'Ewondo - Cameroon'), ('fo', 'Faroese'), ('fo-DK', 'Faroese - Denmark'), ('fo-FO', 'Faroese - Faroe Islands'), ('fil', 'Filipino'), ('fil-PH', 'Filipino - Philippines'), ('fi', 'Finnish'), ('fi-FI', 'Finnish - Finland'), ('fr', 'French'), ('fr-DZ', 'French - Algeria'), ('fr-BE', 'French - Belgium'), ('fr-BJ', 'French - Benin'), ('fr-BF', 'French - Burkina Faso'), ('fr-BI', 'French - Burundi'), ('fr-CM', 'French - Cameroon'), ('fr-CA', 'French - Canada'), ('fr-CF', 'French - Central African Republic'), ('fr-TD', 'French - Chad'), ('fr-KM', 'French - Comoros'), ('fr-CG', 'French - Congo'), ('fr-CD', 'French - Congo, DRC'), ('fr-CI', "French - Côte d'Ivoire"), ('fr-DJ', 'French - Djibouti'), ('fr-GQ', 'French - Equatorial Guinea'), ('fr-FR', 'French - France'), ('fr-GF', 'French - French Guiana'), ('fr-PF', 'French - French Polynesia'), ('fr-GA', 'French - Gabon'), ('fr-GP', 'French - Guadeloupe'), ('fr-GN', 'French - Guinea'), ('fr-HT', 'French - Haiti'), ('fr-LU', 'French - Luxembourg'), ('fr-MG', 'French - Madagascar'), ('fr-ML', 'French - Mali'), ('fr-MQ', 'French - Martinique'), ('fr-MR', 'French - Mauritania'), ('fr-MU', 'French - Mauritius'), ('fr-YT', 'French - Mayotte'), ('fr-MA', 'French - Morocco'), ('fr-NC', 'French - New Caledonia'), ('fr-NE', 'French - Niger'), ('fr-MC', 'French - Principality of Monaco'), ('fr-RE', 'French - Reunion'), ('fr-RW', 'French - Rwanda'), ('fr-BL', 'French - Saint Barthélemy'), ('fr-MF', 'French - Saint Martin'), ('fr-PM', 'French - Saint Pierre and Miquelon'), ('fr-SN', 'French - Senegal'), ('fr-SC', 'French - Seychelles'), ('fr-CH', 'French - Switzerland'), ('fr-SY', 'French - Syria'), ('fr-TG', 'French - Togo'), ('fr-TN', 'French - Tunisia'), ('fr-VU', 'French - Vanuatu'), ('fr-WF', 'French - Wallis and Futuna'), ('fy', 'Frisian'), ('fy-NL', 'Frisian - Netherlands'), ('fur', 'Friulian'), ('fur-IT', 'Friulian - Italy'), ('ff', 'Fulah'), ('ff-Latn', 'Fulah (Latin)'), ('ff-Latn-BF', 'Fulah (Latin) - Burkina Faso'), ('ff-CM', 'Fulah - Cameroon'), ('ff-Latn-CM', 'Fulah (Latin) - Cameroon'), ('ff-Latn-GM', 'Fulah (Latin) - Gambia'), ('ff-Latn-GH', 'Fulah (Latin) - Ghana'), ('ff-GN', 'Fulah - Guinea'), ('ff-Latn-GN', 'Fulah (Latin) - Guinea'), ('ff-Latn-GW', 'Fulah (Latin) - Guinea-Bissau'), ('ff-Latn-LR', 'Fulah (Latin) - Liberia'), ('ff-MR', 'Fulah - Mauritania'), ('ff-Latn-MR', 'Fulah (Latin) - Mauritania'), ('ff-Latn-NE', 'Fulah (Latin) - Niger'), ('ff-NG', 'Fulah - Nigeria'), ('ff-Latn-NG', 'Fulah (Latin) - Nigeria'), ('ff-Latn-SN', 'Fulah - Senegal'), ('ff-Latn-SL', 'Fulah (Latin) - Sierra Leone'), ('gl', 'Galician'), ('gl-ES', 'Galician - Spain'), ('lg', 'Ganda'), ('lg-UG', 'Ganda - Uganda'), ('ka', 'Georgian'), ('ka-GE', 'Georgian - Georgia'), ('de', 'German'), ('de-AT', 'German - Austria'), ('de-BE', 'German - Belgium'), ('de-DE', 'German - Germany'), ('de-IT', 'German - Italy'), ('de-LI', 'German - Liechtenstein'), ('de-LU', 'German - Luxembourg'), ('de-CH', 'German - Switzerland'), ('el', 'Greek'), ('el-CY', 'Greek - Cyprus'), ('el-GR', 'Greek - Greece'), ('kl', 'Greenlandic'), ('kl-GL', 'Greenlandic - Greenland'), ('gn', 'Guarani'), ('gn-PY', 'Guarani - Paraguay'), ('gu', 'Gujarati'), ('gu-IN', 'Gujarati - India'), ('guz', 'Gusii'), ('guz-KE', 'Gusii - Kenya'), ('ha', 'Hausa (Latin)'), ('ha-Latn', 'Hausa (Latin), Latn'), ('ha-Latn-GH', 'Hausa (Latin) - Ghana'), ('ha-Latn-NE', 'Hausa (Latin) - Niger'), ('ha-Latn-NG', 'Hausa (Latin) - Nigeria'), ('haw', 'Hawaiian'), ('haw-US', 'Hawaiian - United States'), ('he', 'Hebrew'), ('he-IL', 'Hebrew - Israel'), ('hi', 'Hindi'), ('hi-IN', 'Hindi - India'), ('hu', 'Hungarian'), ('hu-HU', 'Hungarian - Hungary'), ('is', 'Icelandic'), ('is-IS', 'Icelandic - Iceland'), ('ig', 'Igbo'), ('ig-NG', 'Igbo - Nigeria'), ('id', 'Indonesian'), ('id-ID', 'Indonesian - Indonesia'), ('ia', 'Interlingua'), ('ia-FR', 'Interlingua - France'), ('ia-001', 'Interlingua - World'), ('iu', 'Inuktitut (Latin)'), ('iu-Latn', 'Inuktitut (Latin), Latn'), ('iu-Latn-CA', 'Inuktitut (Latin) - Canada'), ('iu-Cans', 'Inuktitut (Syllabics)'), ('iu-Cans-CA', 'Inuktitut (Syllabics) - Canada'), ('ga', 'Irish'), ('ga-IE', 'Irish - Ireland'), ('it', 'Italian'), ('it-IT', 'Italian - Italy'), ('it-SM', 'Italian - San Marino'), ('it-CH', 'Italian - Switzerland'), ('it-VA', 'Italian - Vatican City'), ('ja', 'Japanese'), ('ja-JP', 'Japanese - Japan'), ('jv', 'Javanese'), ('jv-Latn', 'Javanese - Latin'), ('jv-Latn-ID', 'Javanese - Latin, Indonesia'), ('dyo', 'Jola-Fonyi'), ('dyo-SN', 'Jola-Fonyi - Senegal'), ('kea', 'Kabuverdianu'), ('kea-CV', 'Kabuverdianu - Cabo Verde'), ('kab', 'Kabyle'), ('kab-DZ', 'Kabyle - Algeria'), ('kkj', 'Kako'), ('kkj-CM', 'Kako - Cameroon'), ('kln', 'Kalenjin'), ('kln-KE', 'Kalenjin - Kenya'), ('kam', 'Kamba'), ('kam-KE', 'Kamba - Kenya'), ('kn', 'Kannada'), ('kn-IN', 'Kannada - India'), ('ks', 'Kashmiri'), ('ks-Arab', 'Kashmiri - Perso-Arabic'), ('ks-Arab-IN', 'Kashmiri - Perso-Arabic, IN'), ('kk', 'Kazakh'), ('kk-KZ', 'Kazakh - Kazakhstan'), ('km', 'Khmer'), ('km-KH', 'Khmer - Cambodia'), ('quc', "K'iche"), ('quc-Latn-GT', "K'iche - Guatemala"), ('ki', 'Kikuyu'), ('ki-KE', 'Kikuyu - Kenya'), ('rw', 'Kinyarwanda'), ('rw-RW', 'Kinyarwanda - Rwanda'), ('sw', 'Kiswahili'), ('sw-KE', 'Kiswahili - Kenya'), ('sw-TZ', 'Kiswahili - Tanzania'), ('sw-UG', 'Kiswahili - Uganda'), ('kok', 'Konkani'), ('kok-IN', 'Konkani - India'), ('ko', 'Korean'), ('ko-KR', 'Korean - Korea'), ('ko-KP', 'Korean - North Korea'), ('khq', 'Koyra Chiini'), ('khq-ML', 'Koyra Chiini - Mali'), ('ses', 'Koyraboro Senni'), ('ses-ML', 'Koyraboro Senni - Mali'), ('nmg', 'Kwasio'), ('nmg-CM', 'Kwasio - Cameroon'), ('ky', 'Kyrgyz'), ('ky-KG', 'Kyrgyz - Kyrgyzstan'), ('ku-Arab-IR', 'Kurdish - Perso-Arabic, Iran'), ('lkt', 'Lakota'), ('lkt-US', 'Lakota - United States'), ('lag', 'Langi'), ('lag-TZ', 'Langi - Tanzania'), ('lo', 'Lao'), ('lo-LA', 'Lao - Lao P.D.R.'), ('lv', 'Latvian'), ('lv-LV', 'Latvian - Latvia'), ('ln', 'Lingala'), ('ln-AO', 'Lingala - Angola'), ('ln-CF', 'Lingala - Central African Republic'), ('ln-CG', 'Lingala - Congo'), ('ln-CD', 'Lingala - Congo DRC'), ('lt', 'Lithuanian'), ('lt-LT', 'Lithuanian - Lithuania'), ('nds', 'Low German'), ('nds-DE', 'Low German - Germany'), ('nds-NL', 'Low German - Netherlands'), ('dsb', 'Lower Sorbian'), ('dsb-DE', 'Lower Sorbian - Germany'), ('lu', 'Luba-Katanga'), ('lu-CD', 'Luba-Katanga - Congo DRC'), ('luo', 'Luo'), ('luo-KE', 'Luo - Kenya'), ('lb', 'Luxembourgish'), ('lb-LU', 'Luxembourgish - Luxembourg'), ('luy', 'Luyia'), ('luy-KE', 'Luyia - Kenya'), ('mk', 'Macedonian'), ('mk-MK', 'Macedonian - North Macedonia'), ('jmc', 'Machame'), ('jmc-TZ', 'Machame - Tanzania'), ('mgh', 'Makhuwa-Meetto'), ('mgh-MZ', 'Makhuwa-Meetto - Mozambique'), ('kde', 'Makonde'), ('kde-TZ', 'Makonde - Tanzania'), ('mg', 'Malagasy'), ('mg-MG', 'Malagasy - Madagascar'), ('ms', 'Malay'), ('ms-BN', 'Malay - Brunei Darussalam'), ('ms-MY', 'Malay - Malaysia'), ('ml', 'Malayalam'), ('ml-IN', 'Malayalam - India'), ('mt', 'Maltese'), ('mt-MT', 'Maltese - Malta'), ('gv', 'Manx'), ('gv-IM', 'Manx - Isle of Man'), ('mi', 'Maori'), ('mi-NZ', 'Maori - New Zealand'), ('arn', 'Mapudungun'), ('arn-CL', 'Mapudungun - Chile'), ('mr', 'Marathi'), ('mr-IN', 'Marathi - India'), ('mas', 'Masai'), ('mas-KE', 'Masai - Kenya'), ('mas-TZ', 'Masai - Tanzania'), ('mzn-IR', 'Mazanderani - Iran'), ('mer', 'Meru'), ('mer-KE', 'Meru - Kenya'), ('mgo', "Meta'"), ('mgo-CM', "Meta' - Cameroon"), ('moh', 'Mohawk'), ('moh-CA', 'Mohawk - Canada'), ('mn', 'Mongolian (Cyrillic)'), ('mn-Cyrl', 'Mongolian (Cyrillic), Cyrl'), ('mn-MN', 'Mongolian (Cyrillic) - Mongolia'), ('mn-Mong', 'Mongolian (Traditional Mongolian)'), ('mn-Mong-CN', "Mongolian (Traditional Mongolian) - People's Republic of China"), ('mn-Mong-MN', 'Mongolian (Traditional Mongolian) - Mongolia'), ('mfe', 'Morisyen'), ('mfe-MU', 'Morisyen - Mauritius'), ('mua', 'Mundang'), ('mua-CM', 'Mundang - Cameroon'), ('nqo', "N'ko"), ('nqo-GN', "N'ko - Guinea"), ('naq', 'Nama'), ('naq-NA', 'Nama - Namibia'), ('ne', 'Nepali'), ('ne-IN', 'Nepali - India'), ('ne-NP', 'Nepali - Nepal'), ('nnh', 'Ngiemboon'), ('nnh-CM', 'Ngiemboon - Cameroon'), ('jgo', 'Ngomba'), ('jgo-CM', 'Ngomba - Cameroon'), ('lrc-IQ', 'Northern Luri - Iraq'), ('lrc-IR', 'Northern Luri - Iran'), ('nd', 'North Ndebele'), ('nd-ZW', 'North Ndebele - Zimbabwe'), ('no', 'Norwegian (Bokmal)'), ('nb', 'Norwegian (Bokmal), nb'), ('nb-NO', 'Norwegian (Bokmal) - Norway'), ('nn', 'Norwegian (Nynorsk)'), ('nn-NO', 'Norwegian (Nynorsk) - Norway'), ('nb-SJ', 'Norwegian Bokmål - Svalbard and Jan Mayen'), ('nus', 'Nuer'), ('nus-SD', 'Nuer - Sudan'), ('nus-SS', 'Nuer - South Sudan'), ('nyn', 'Nyankole'), ('nyn-UG', 'Nyankole - Uganda'), ('oc', 'Occitan'), ('oc-FR', 'Occitan - France'), ('or', 'Odia'), ('or-IN', 'Odia - India'), ('om', 'Oromo'), ('om-ET', 'Oromo - Ethiopia'), ('om-KE', 'Oromo - Kenya'), ('os', 'Ossetian'), ('os-GE', 'Ossetian - Cyrillic, Georgia'), ('os-RU', 'Ossetian - Cyrillic, Russia'), ('ps', 'Pashto'), ('ps-AF', 'Pashto - Afghanistan'), ('ps-PK', 'Pashto - Pakistan'), ('fa', 'Persian'), ('fa-AF', 'Persian - Afghanistan'), ('fa-IR', 'Persian - Iran'), ('pl', 'Polish'), ('pl-PL', 'Polish - Poland'), ('pt', 'Portuguese'), ('pt-AO', 'Portuguese - Angola'), ('pt-BR', 'Portuguese - Brazil'), ('pt-CV', 'Portuguese - Cabo Verde'), ('pt-GQ', 'Portuguese - Equatorial Guinea'), ('pt-GW', 'Portuguese - Guinea-Bissau'), ('pt-LU', 'Portuguese - Luxembourg'), ('pt-MO', 'Portuguese - Macao SAR'), ('pt-MZ', 'Portuguese - Mozambique'), ('pt-PT', 'Portuguese - Portugal'), ('pt-ST', 'Portuguese - São Tomé and Príncipe'), ('pt-CH', 'Portuguese - Switzerland'), ('pt-TL', 'Portuguese - Timor-Leste'), ('prg-001', 'Prussian'), ('qps-ploca', 'Pseudo Language - Pseudo locale for east Asian/complex script localization testing'), ('qps-ploc', 'Pseudo Language - Pseudo locale used for localization testing'), ('qps-plocm', 'Pseudo Language - Pseudo locale used for localization testing of mirroredlocales'), ('pa', 'Punjabi'), ('pa-Arab', 'Punjabi, Arab'), ('pa-IN', 'Punjabi - India'), ('pa-Arab-PK', 'Punjabi - Islamic Republic of Pakistan'), ('quz', 'Quechua'), ('quz-BO', 'Quechua - Bolivia'), ('quz-EC', 'Quechua - Ecuador'), ('quz-PE', 'Quechua - Peru'), ('ksh', 'Ripuarian'), ('ksh-DE', 'Ripuarian - Germany'), ('ro', 'Romanian'), ('ro-MD', 'Romanian - Moldova'), ('ro-RO', 'Romanian - Romania'), ('rm', 'Romansh'), ('rm-CH', 'Romansh - Switzerland'), ('rof', 'Rombo'), ('rof-TZ', 'Rombo - Tanzania'), ('rn', 'Rundi'), ('rn-BI', 'Rundi - Burundi'), ('ru', 'Russian'), ('ru-BY', 'Russian - Belarus'), ('ru-KZ', 'Russian - Kazakhstan'), ('ru-KG', 'Russian - Kyrgyzstan'), ('ru-MD', 'Russian - Moldova'), ('ru-RU', 'Russian - Russia'), ('ru-UA', 'Russian - Ukraine'), ('rwk', 'Rwa'), ('rwk-TZ', 'Rwa - Tanzania'), ('ssy', 'Saho'), ('ssy-ER', 'Saho - Eritrea'), ('sah', 'Sakha'), ('sah-RU', 'Sakha - Russia'), ('saq', 'Samburu'), ('saq-KE', 'Samburu - Kenya'), ('smn', 'Sami (Inari)'), ('smn-FI', 'Sami (Inari) - Finland'), ('smj', 'Sami (Lule)'), ('smj-NO', 'Sami (Lule) - Norway'), ('smj-SE', 'Sami (Lule) - Sweden'), ('se', 'Sami (Northern)'), ('se-FI', 'Sami (Northern) - Finland'), ('se-NO', 'Sami (Northern) - Norway'), ('se-SE', 'Sami (Northern) - Sweden'), ('sms', 'Sami (Skolt)'), ('sms-FI', 'Sami (Skolt) - Finland'), ('sma', 'Sami (Southern)'), ('sma-NO', 'Sami (Southern) - Norway'), ('sma-SE', 'Sami (Southern) - Sweden'), ('sg', 'Sango'), ('sg-CF', 'Sango - Central African Republic'), ('sbp', 'Sangu'), ('sbp-TZ', 'Sangu - Tanzania'), ('sa', 'Sanskrit'), ('sa-IN', 'Sanskrit - India'), ('gd', 'Scottish Gaelic'), ('gd-GB', 'Scottish Gaelic - United Kingdom'), ('seh', 'Sena'), ('seh-MZ', 'Sena - Mozambique'), ('sr-Cyrl', 'Serbian (Cyrillic)'), ('sr-Cyrl-BA', 'Serbian (Cyrillic) - Bosnia and Herzegovina'), ('sr-Cyrl-ME', 'Serbian (Cyrillic) - Montenegro'), ('sr-Cyrl-RS', 'Serbian (Cyrillic) - Serbia'), ('sr-Cyrl-CS', 'Serbian (Cyrillic) - Serbia and Montenegro (Former)'), ('sr', 'Serbian (Latin)'), ('sr-Latn', 'Serbian (Latin), Latn'), ('sr-Latn-BA', 'Serbian (Latin) - Bosnia and Herzegovina'), ('sr-Latn-ME', 'Serbian (Latin) - Montenegro'), ('sr-Latn-RS', 'Serbian (Latin) - Serbia'), ('sr-Latn-CS', 'Serbian (Latin) - Serbia and Montenegro (Former)'), ('nso', 'Sesotho sa Leboa'), ('nso-ZA', 'Sesotho sa Leboa - South Africa'), ('tn', 'Setswana'), ('tn-BW', 'Setswana - Botswana'), ('tn-ZA', 'Setswana - South Africa'), ('ksb', 'Shambala'), ('ksb-TZ', 'Shambala - Tanzania'), ('sn', 'Shona'), ('sn-Latn', 'Shona - Latin'), ('sn-Latn-ZW', 'Shona - Zimbabwe'), ('sd', 'Sindhi'), ('sd-Arab', 'Sindhi, Arab'), ('sd-Arab-PK', 'Sindhi - Islamic Republic of Pakistan'), ('si', 'Sinhala'), ('si-LK', 'Sinhala - Sri Lanka'), ('sk', 'Slovak'), ('sk-SK', 'Slovak - Slovakia'), ('sl', 'Slovenian'), ('sl-SI', 'Slovenian - Slovenia'), ('xog', 'Soga'), ('xog-UG', 'Soga - Uganda'), ('so', 'Somali'), ('so-DJ', 'Somali - Djibouti'), ('so-ET', 'Somali - Ethiopia'), ('so-KE', 'Somali - Kenya'), ('so-SO', 'Somali - Somalia'), ('st', 'Sotho'), ('st-ZA', 'Sotho - South Africa'), ('nr', 'South Ndebele'), ('nr-ZA', 'South Ndebele - South Africa'), ('st-LS', 'Southern Sotho - Lesotho'), ('es', 'Spanish'), ('es-AR', 'Spanish - Argentina'), ('es-BZ', 'Spanish - Belize'), ('es-VE', 'Spanish - Bolivarian Republic of Venezuela'), ('es-BO', 'Spanish - Bolivia'), ('es-BR', 'Spanish - Brazil'), ('es-CL', 'Spanish - Chile'), ('es-CO', 'Spanish - Colombia'), ('es-CR', 'Spanish - Costa Rica'), ('es-CU', 'Spanish - Cuba'), ('es-DO', 'Spanish - Dominican Republic'), ('es-EC', 'Spanish - Ecuador'), ('es-SV', 'Spanish - El Salvador'), ('es-GQ', 'Spanish - Equatorial Guinea'), ('es-GT', 'Spanish - Guatemala'), ('es-HN', 'Spanish - Honduras'), ('es-419', 'Spanish - Latin America'), ('es-MX', 'Spanish - Mexico'), ('es-NI', 'Spanish - Nicaragua'), ('es-PA', 'Spanish - Panama'), ('es-PY', 'Spanish - Paraguay'), ('es-PE', 'Spanish - Peru'), ('es-PH', 'Spanish - Philippines'), ('es-PR', 'Spanish - Puerto Rico'), ('es-ES', 'Spanish - Spain'), ('es-ES_tradnl', 'Spanish - Spain, ES_tradnl'), ('es-US', 'Spanish - United - States'), ('es-UY', 'Spanish - Uruguay'), ('zgh', 'Standard Moroccan Tamazight'), ('zgh-Tfng-MA', 'Standard Moroccan Tamazight - Morocco'), ('zgh-Tfng', 'Standard Moroccan Tamazight - Tifinagh'), ('ss', 'Swati'), ('ss-ZA', 'Swati - South Africa'), ('ss-SZ', 'Swati - Swaziland'), ('sv', 'Swedish'), ('sv-AX', 'Swedish - Åland Islands'), ('sv-FI', 'Swedish - Finland'), ('sv-SE', 'Swedish - Sweden'), ('syr', 'Syriac'), ('syr-SY', 'Syriac - Syria'), ('shi', 'Tachelhit'), ('shi-Tfng', 'Tachelhit - Tifinagh'), ('shi-Tfng-MA', 'Tachelhit - Tifinagh, Morocco'), ('shi-Latn', 'Tachelhit (Latin)'), ('shi-Latn-MA', 'Tachelhit (Latin) - Morocco'), ('dav', 'Taita'), ('dav-KE', 'Taita - Kenya'), ('tg', 'Tajik (Cyrillic)'), ('tg-Cyrl', 'Tajik (Cyrillic), Cyrl'), ('tg-Cyrl-TJ', 'Tajik (Cyrillic) - Tajikistan'), ('tzm', 'Tamazight (Latin)'), ('tzm-Latn', 'Tamazight (Latin), Latn'), ('tzm-Latn-DZ', 'Tamazight (Latin) - Algeria'), ('ta', 'Tamil'), ('ta-IN', 'Tamil - India'), ('ta-MY', 'Tamil - Malaysia'), ('ta-SG', 'Tamil - Singapore'), ('ta-LK', 'Tamil - Sri Lanka'), ('twq', 'Tasawaq'), ('twq-NE', 'Tasawaq - Niger'), ('tt', 'Tatar'), ('tt-RU', 'Tatar - Russia'), ('te', 'Telugu'), ('te-IN', 'Telugu - India'), ('teo', 'Teso'), ('teo-KE', 'Teso - Kenya'), ('teo-UG', 'Teso - Uganda'), ('th', 'Thai'), ('th-TH', 'Thai - Thailand'), ('bo', 'Tibetan'), ('bo-IN', 'Tibetan - India'), ('bo-CN', "Tibetan - People's Republic of China"), ('tig', 'Tigre'), ('tig-ER', 'Tigre - Eritrea'), ('ti', 'Tigrinya'), ('ti-ER', 'Tigrinya - Eritrea'), ('ti-ET', 'Tigrinya - Ethiopia'), ('to', 'Tongan'), ('to-TO', 'Tongan - Tonga'), ('ts', 'Tsonga'), ('ts-ZA', 'Tsonga - South Africa'), ('tr', 'Turkish'), ('tr-CY', 'Turkish - Cyprus'), ('tr-TR', 'Turkish - Turkey'), ('tk', 'Turkmen'), ('tk-TM', 'Turkmen - Turkmenistan'), ('uk', 'Ukrainian'), ('uk-UA', 'Ukrainian - Ukraine'), ('hsb', 'Upper Sorbian'), ('hsb-DE', 'Upper Sorbian - Germany'), ('ur', 'Urdu'), ('ur-IN', 'Urdu - India'), ('ur-PK', 'Urdu - Islamic Republic of Pakistan'), ('ug', 'Uyghur'), ('ug-CN', "Uyghur - People's Republic of China"), ('uz-Arab', 'Uzbek - Perso-Arabic'), ('uz-Arab-AF', 'Uzbek - Perso-Arabic, Afghanistan'), ('uz-Cyrl', 'Uzbek (Cyrillic)'), ('uz-Cyrl-UZ', 'Uzbek (Cyrillic) - Uzbekistan'), ('uz', 'Uzbek (Latin)'), ('uz-Latn', 'Uzbek (Latin), Latn'), ('uz-Latn-UZ', 'Uzbek (Latin) - Uzbekistan'), ('vai', 'Vai'), ('vai-Vaii', 'Vai, Vaii'), ('vai-Vaii-LR', 'Vai - Liberia'), ('vai-Latn-LR', 'Vai (Latin) - Liberia'), ('vai-Latn', 'Vai (Latin)'), ('ca-ES-valencia', 'Valencian - Spain'), ('ve', 'Venda'), ('ve-ZA', 'Venda - South Africa'), ('vi', 'Vietnamese'), ('vi-VN', 'Vietnamese - Vietnam'), ('vo', 'Volapük'), ('vo-001', 'Volapük - World'), ('vun', 'Vunjo'), ('vun-TZ', 'Vunjo - Tanzania'), ('wae', 'Walser'), ('wae-CH', 'Walser - Switzerland'), ('cy', 'Welsh'), ('cy-GB', 'Welsh - United Kingdom'), ('wal', 'Wolaytta'), ('wal-ET', 'Wolaytta - Ethiopia'), ('wo', 'Wolof'), ('wo-SN', 'Wolof - Senegal'), ('xh', 'Xhosa'), ('xh-ZA', 'Xhosa - South Africa'), ('yav', 'Yangben'), ('yav-CM', 'Yangben - Cameroon'), ('ii', 'Yi'), ('ii-CN', "Yi - People's Republic of China"), ('yo', 'Yoruba'), ('yo-BJ', 'Yoruba - Benin'), ('yo-NG', 'Yoruba - Nigeria'), ('dje', 'Zarma'), ('dje-NE', 'Zarma - Niger'), ('zu', 'Zulu'), ('zu-ZA', 'Zulu - South Africa')], default='en', help_text='Required if type is "Subtitle"', max_length=50, unique=True)),
('listing', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='tracks', to='wagtailvideos.TrackListing')), ('listing', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='tracks', to='wagtailvideos.TrackListing')),
], ],
options={
'ordering': ['sort_order'],
'abstract': False,
},
), ),
] ]
from wagtailvideos import get_video_model_string
from modelcluster.models import ClusterableModel
from modelcluster.fields import ParentalKey
import logging import logging
import mimetypes import mimetypes
import os import os
...@@ -22,11 +19,15 @@ from django.urls import reverse ...@@ -22,11 +19,15 @@ from django.urls import reverse
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from enumchoicefield import ChoiceEnum, EnumChoiceField from enumchoicefield import ChoiceEnum, EnumChoiceField
from modelcluster.fields import ParentalKey
from modelcluster.models import ClusterableModel
from taggit.managers import TaggableManager from taggit.managers import TaggableManager
from wagtail.core.models import CollectionMember from wagtail.core.models import CollectionMember, Orderable
from wagtail.search import index from wagtail.search import index
from wagtail.search.queryset import SearchableQuerySetMixin from wagtail.search.queryset import SearchableQuerySetMixin
from wagtailvideos import get_video_model_string
if LooseVersion(wagtail.__version__) >= LooseVersion('2.7'): if LooseVersion(wagtail.__version__) >= LooseVersion('2.7'):
from wagtail.admin.models import get_object_usage from wagtail.admin.models import get_object_usage
else: else:
...@@ -178,10 +179,6 @@ class AbstractVideo(CollectionMember, index.Indexed, ClusterableModel): ...@@ -178,10 +179,6 @@ class AbstractVideo(CollectionMember, index.Indexed, ClusterableModel):
def get_transcode_model(cls): def get_transcode_model(cls):
return cls.transcodes.rel.related_model return cls.transcodes.rel.related_model
@classmethod
def get_track_model(cls):
return cls.tracks.related.related_model
def video_tag(self, attrs=None): def video_tag(self, attrs=None):
if attrs is None: if attrs is None:
attrs = {} attrs = {}
...@@ -200,8 +197,13 @@ class AbstractVideo(CollectionMember, index.Indexed, ClusterableModel): ...@@ -200,8 +197,13 @@ class AbstractVideo(CollectionMember, index.Indexed, ClusterableModel):
.format(self.url, mime.guess_type(self.url)[0])) .format(self.url, mime.guess_type(self.url)[0]))
sources.append("<p>Sorry, your browser doesn't support playback for this video</p>") sources.append("<p>Sorry, your browser doesn't support playback for this video</p>")
tracks = []
if hasattr(self, 'track_listing'):
tracks = [t.track_tag() for t in self.track_listing.tracks.all()]
return mark_safe( return mark_safe(
"<video {0}>\n{1}\n</video>".format(flatatt(attrs), "\n".join(sources))) "<video {0}>\n{1}\n{2}\n</video>".format(flatatt(attrs), "\n".join(sources), "\n".join(tracks)))
def do_transcode(self, media_format, quality): def do_transcode(self, media_format, quality):
transcode, created = self.transcodes.get_or_create( transcode, created = self.transcodes.get_or_create(
...@@ -295,7 +297,7 @@ class AbstractVideoTranscode(models.Model): ...@@ -295,7 +297,7 @@ class AbstractVideoTranscode(models.Model):
upload_to=get_upload_to) upload_to=get_upload_to)
error_message = models.TextField(blank=True) error_message = models.TextField(blank=True)
@ property @property
def url(self): def url(self):
return self.file.url return self.file.url
...@@ -320,13 +322,13 @@ class VideoTranscode(AbstractVideoTranscode): ...@@ -320,13 +322,13 @@ class VideoTranscode(AbstractVideoTranscode):
class TrackListing(ClusterableModel): class TrackListing(ClusterableModel):
video = models.OneToOneField( video = models.OneToOneField(
get_video_model_string(), on_delete=models.CASCADE, get_video_model_string(), on_delete=models.CASCADE,
related_name='tracks') related_name='track_listing')
def __str__(self): def __str__(self):
return self.video.title return self.video.title
class VideoTrack(models.Model): class VideoTrack(Orderable):
listing = ParentalKey(TrackListing, related_name='tracks', on_delete=models.CASCADE) listing = ParentalKey(TrackListing, related_name='tracks', on_delete=models.CASCADE)
# TODO move to TextChoices once django < 3 is dropped # TODO move to TextChoices once django < 3 is dropped
track_kinds = [ track_kinds = [
...@@ -350,6 +352,18 @@ class VideoTrack(models.Model): ...@@ -350,6 +352,18 @@ class VideoTrack(models.Model):
choices=[(v, k) for k, v in bcp47.languages.items()], choices=[(v, k) for k, v in bcp47.languages.items()],
default='en', blank=True, help_text='Required if type is "Subtitle"', unique=True) default='en', blank=True, help_text='Required if type is "Subtitle"', unique=True)
def track_tag(self):
attrs = {
'kind': self.kind,
'src': self.url,
}
if self.label:
attrs['label'] = self.label
if self.language:
attrs['srclang'] = self.language
return "<track {0}{1}>".format(flatatt(attrs), ' default' if self.sort_order == 0 else '')
def __str__(self): def __str__(self):
return "{0} - {1}".format(self.label or self.get_kind_display(), self.get_language_display()) return "{0} - {1}".format(self.label or self.get_kind_display(), self.get_language_display())
......
...@@ -110,10 +110,10 @@ ...@@ -110,10 +110,10 @@
{% endif %} {% endif %}
{% if tracks_action_url %} {% if tracks_action_url %}
<h2 class="u-text-transform-uppercase">Tracks</h2> <h2 class="u-text-transform-uppercase">Tracks</h2>
<p>You can add/edit subtitles or accessibility captions for you video. For information about the filetype that should be used see the mozilla docs on <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API">WebVTT</a></p> <p>You can add/edit subtitles or accessibility captions for this video. For information about the filetype that should be used see the mozilla docs on <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API">WebVTT</a></p>
{% if video.tracks %} {% if video.track_listing %}
<ul> <ul>
{% for track in video.tracks.tracks.all %} {% for track in video.track_listing.tracks.all %}
<li>{{ track }}</li> <li>{{ track }}</li>
{% endfor %} {% endfor %}
</ul> </ul>
......
...@@ -16,6 +16,7 @@ from wagtail.search.backends import get_search_backends ...@@ -16,6 +16,7 @@ from wagtail.search.backends import get_search_backends
from wagtailvideos import ffmpeg, get_video_model, is_modeladmin_installed from wagtailvideos import ffmpeg, get_video_model, is_modeladmin_installed
from wagtailvideos.forms import VideoTranscodeAdminForm, get_video_form from wagtailvideos.forms import VideoTranscodeAdminForm, get_video_form
from wagtailvideos.permissions import permission_policy from wagtailvideos.permissions import permission_policy
from wagtailvideos.models import TrackListing
if LooseVersion(wagtail.__version__) >= LooseVersion('2.7'): if LooseVersion(wagtail.__version__) >= LooseVersion('2.7'):
from wagtail.admin.auth import PermissionPolicyChecker from wagtail.admin.auth import PermissionPolicyChecker
...@@ -119,10 +120,9 @@ def edit(request, video_id): ...@@ -119,10 +120,9 @@ def edit(request, video_id):
messages.button(reverse('wagtailvideos:delete', args=(video.id,)), _('Delete')) messages.button(reverse('wagtailvideos:delete', args=(video.id,)), _('Delete'))
]) ])
if is_modeladmin_installed(): if is_modeladmin_installed():
tracks_listing = video.tracks url_helper = AdminURLHelper(TrackListing)
url_helper = AdminURLHelper(Video.get_track_model()) if hasattr(video, 'track_listing'):
if tracks_listing: action_url = url_helper.get_action_url('edit', instance_pk=video.track_listing.pk)
action_url = url_helper.get_action_url('edit', instance_pk=tracks_listing.pk)
else: else:
action_url = url_helper.create_url action_url = url_helper.create_url
else: else:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment