class Migration(migrations.Migration):

    dependencies = [
        ("resources", "0075_auto_20210603_1500"),
    ]

    operations = [
        migrations.AddField(
            model_name="stream",
            name="description_io",
            field=models.TextField(
                blank=True,
                help_text="Optional description of this stream's resources.",
                null=True,
            ),
        ),
        migrations.AlterField(
            model_name="language",
            name="language",
            field=models.CharField(
                choices=[
                    ("ar", "العربية"),
                    ("as", "অসমীয়া"),
                    ("bcl", "Bikol Central"),
                    ("br", "brezhoneg"),
                    ("da", "dansk"),
                    ("dag", "dagbanli"),
                    ("de", "Deutsch"),
                    ("diq", "Zazaki"),
                    ("en", "English"),
                    ("en-gb", "British English"),
                    ("eo", "Esperanto"),
                    ("es", "español"),
                    ("fa", "فارسی"),
                    ("fi", "suomi"),
                    ("fr", "français"),
                    ("gu", "ગુજરાતી"),
                    ("he", "עברית"),
                    ("hi", "हिन्दी"),
                    ("hy", "հայերեն"),
                    ("id", "Bahasa Indonesia"),
                    ("io", "Ido"),
                    ("it", "italiano"),
                    ("ja", "日本語"),
                    ("ko", "한국어"),
                    ("lv", "latviešu"),
                    ("mk", "македонски"),
                    ("mnw", "ဘာသာ မန်"),
                    ("mr", "मराठी"),
                    ("ms", "Bahasa Melayu"),
                    ("my", "မြန်မာဘာသာ"),
                    ("pl", "polski"),
                    ("pt", "português"),
                    ("pt-br", "português do Brasil"),
                    ("ro", "română"),
                    ("ru", "русский"),
                    ("scn", "sicilianu"),
                    ("sr-ec", "sr-cyrl"),
                    ("sv", "svenska"),
                    ("ta", "தமிழ்"),
                    ("tr", "Türkçe"),
                    ("uk", "українська"),
                    ("vi", "Tiếng Việt"),
                    ("zh-hans", "中文(简体)"),
                    ("zh-hant", "中文(繁體)"),
                ],
                max_length=8,
                unique=True,
                validators=[TWLight.resources.models.validate_language_code],
            ),
        ),
    ]
Exemple #2
0
class Migration(migrations.Migration):

    dependencies = [
        ("contenttypes", "0002_remove_content_type_name"),
        ("resources", "0001_initial_squashed_0062_auto_20190220_1639"),
        ("users", "0038_squashed_0067_remove_editor_editcounts"),
    ]

    operations = [
        migrations.AddField(
            model_name="accesscode",
            name="authorization",
            field=models.OneToOneField(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name="accesscodes",
                to="users.Authorization",
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="user_instructions",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional instructions for editors to use access codes or free signup URLs for this partner. Sent via email upon application approval (for links) or access code assignment. If this partner has collections, fill out user instructions on each collection instead.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="stream",
            name="authorization_method",
            field=models.IntegerField(
                choices=[
                    (0, "Email"),
                    (1, "Access codes"),
                    (2, "Proxy"),
                    (3, "Library Bundle"),
                    (4, "Link"),
                ],
                default=0,
                help_text=
                "Which authorization method does this collection use? 'Email' means the accounts are set up via email, and is the default. Select 'Access Codes' if we send individual, or group, login details or access codes. 'Proxy' means access delivered directly via EZProxy, and Library Bundle is automated proxy-based access. 'Link' is if we send users a URL to use to create an account.",
            ),
        ),
        migrations.AddField(
            model_name="stream",
            name="user_instructions",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional instructions for editors to use access codes or free signup URLs for this collection. Sent via email upon application approval (for links) or access code assignment.",
                null=True,
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="authorization_method",
            field=models.IntegerField(
                choices=[
                    (0, "Email"),
                    (1, "Access codes"),
                    (2, "Proxy"),
                    (3, "Library Bundle"),
                    (4, "Link"),
                ],
                default=0,
                help_text=
                "Which authorization method does this partner use? 'Email' means the accounts are set up via email, and is the default. Select 'Access Codes' if we send individual, or group, login details or access codes. 'Proxy' means access delivered directly via EZProxy, and Library Bundle is automated proxy-based access. 'Link' is if we send users a URL to use to create an account.",
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="send_instructions_eo",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional instructions for sending application data to this partner.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="short_description_eo",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional short description of this partner's resources.",
                max_length=1000,
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="stream",
            name="description_eo",
            field=models.TextField(
                blank=True,
                help_text="Optional description of this stream's resources.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="textfieldtag",
            name="name_eo",
            field=models.TextField(max_length=100,
                                   null=True,
                                   verbose_name="Name"),
        ),
        migrations.AddField(
            model_name="partner",
            name="send_instructions_vi",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional instructions for sending application data to this partner.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="short_description_vi",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional short description of this partner's resources.",
                max_length=1000,
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="stream",
            name="description_vi",
            field=models.TextField(
                blank=True,
                help_text="Optional description of this stream's resources.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="textfieldtag",
            name="name_vi",
            field=models.TextField(max_length=100,
                                   null=True,
                                   verbose_name="Name"),
        ),
        migrations.AddField(
            model_name="partner",
            name="send_instructions_uk",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional instructions for sending application data to this partner.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="short_description_uk",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional short description of this partner's resources.",
                max_length=1000,
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="stream",
            name="description_uk",
            field=models.TextField(
                blank=True,
                help_text="Optional description of this stream's resources.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="textfieldtag",
            name="name_uk",
            field=models.TextField(max_length=100,
                                   null=True,
                                   verbose_name="Name"),
        ),
        migrations.AddField(
            model_name="partner",
            name="account_length",
            field=models.DurationField(
                blank=True,
                help_text=
                "The standard length of an access grant from this Partner. Entered as &ltdays hours:minutes:seconds&gt.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="send_instructions_en_gb",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional instructions for sending application data to this partner.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="short_description_en_gb",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional short description of this partner's resources.",
                max_length=1000,
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="stream",
            name="description_en_gb",
            field=models.TextField(
                blank=True,
                help_text="Optional description of this stream's resources.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="textfieldtag",
            name="name_en_gb",
            field=models.TextField(max_length=100,
                                   null=True,
                                   verbose_name="Name"),
        ),
        migrations.AddField(
            model_name="partner",
            name="send_instructions_ja",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional instructions for sending application data to this partner.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="short_description_ja",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional short description of this partner's resources.",
                max_length=1000,
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="stream",
            name="description_ja",
            field=models.TextField(
                blank=True,
                help_text="Optional description of this stream's resources.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="textfieldtag",
            name="name_ja",
            field=models.TextField(max_length=100,
                                   null=True,
                                   verbose_name="Name"),
        ),
        migrations.AlterField(
            model_name="partner",
            name="accounts_available",
            field=models.PositiveSmallIntegerField(
                blank=True,
                help_text=
                "Add the number of new accounts to the existing value, not by resetting it to zero. If 'specific stream' is true, change accounts availability at the collection level.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="send_instructions_es",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional instructions for sending application data to this partner.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="short_description_es",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional short description of this partner's resources.",
                max_length=1000,
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="stream",
            name="description_es",
            field=models.TextField(
                blank=True,
                help_text="Optional description of this stream's resources.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="textfieldtag",
            name="name_es",
            field=models.TextField(max_length=100,
                                   null=True,
                                   verbose_name="Name"),
        ),
        migrations.AddField(
            model_name="partner",
            name="target_url",
            field=models.URLField(
                blank=True,
                help_text=
                "Link to partner resources. Required for proxied resources; optional otherwise.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="stream",
            name="target_url",
            field=models.URLField(
                blank=True,
                help_text=
                "Link to collection. Required for proxied collections; optional otherwise.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="requested_access_duration",
            field=models.BooleanField(
                default=False,
                help_text=
                "Must be checked if the authorization method of this partner is proxy; optional otherwise.",
            ),
        ),
        migrations.AlterField(
            model_name="contact",
            name="short_name",
            field=models.CharField(
                help_text=
                "The form of the contact person's name to use in email greetings (as in 'Hi Jake')",
                max_length=15,
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_ar",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_br",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_da",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_de",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_en",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="description_en_gb",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="description_eo",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="description_es",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_fa",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_fi",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_fr",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_hi",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="description_ja",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_ko",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_mk",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_mr",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_my",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_pt",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_pt_br",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_ru",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_sv",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_ta",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_tr",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="description_uk",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="description_vi",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_zh_hans",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="description_zh_hant",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="mutually_exclusive",
            field=models.NullBooleanField(
                default=None,
                help_text=
                "If True, users can only apply for one Stream at a time from this Partner. If False, users can apply for multiple Streams at a time. This field must be filled in when Partners have multiple Streams, but may be left blank otherwise.",
            ),
        ),
        migrations.AlterField(
            model_name="partnerlogo",
            name="logo",
            field=models.ImageField(
                blank=True,
                help_text=
                "Optional image file that can be used to represent this partner.",
                null=True,
                upload_to="",
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="company_name",
            field=models.CharField(
                help_text=
                "Partner's name (e.g. McFarland). Note: this will be user-visible and *not translated*.",
                max_length=255,
            ),
        ),
        migrations.AddField(
            model_name="textfieldtag",
            name="meta_url",
            field=models.URLField(
                blank=True,
                help_text=
                "Link to Meta-Wiki (eg.: https://meta.wikimedia.org/wiki/The_Wikipedia_Library/Collections/Agroforestry) for additional information for this tag.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="description_ro",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="send_instructions_ro",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional instructions for sending application data to this partner.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="short_description_ro",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional short description of this partner's resources.",
                max_length=1000,
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="stream",
            name="description_ro",
            field=models.TextField(
                blank=True,
                help_text="Optional description of this stream's resources.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="textfieldtag",
            name="name_ro",
            field=models.TextField(max_length=100,
                                   null=True,
                                   verbose_name="Name"),
        ),
        migrations.AddField(
            model_name="partner",
            name="description_pl",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="send_instructions_pl",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional instructions for sending application data to this partner.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="short_description_pl",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional short description of this partner's resources.",
                max_length=1000,
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="stream",
            name="description_pl",
            field=models.TextField(
                blank=True,
                help_text="Optional description of this stream's resources.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="textfieldtag",
            name="name_pl",
            field=models.TextField(max_length=100,
                                   null=True,
                                   verbose_name="Name"),
        ),
        migrations.AddField(
            model_name="accesscode",
            name="partner",
            field=models.ForeignKey(
                limit_choices_to=models.Q(authorization_method=1),
                on_delete=django.db.models.deletion.CASCADE,
                related_name="accesscodes",
                to="resources.Partner",
            ),
        ),
        migrations.AlterField(
            model_name="language",
            name="language",
            field=models.CharField(
                choices=[
                    ("af", "Afrikaans"),
                    ("ar", "العربية"),
                    ("ast", "asturianu"),
                    ("az", "az-latn"),
                    ("be", "беларуская"),
                    ("bg", "български"),
                    ("bn", "বাংলা"),
                    ("br", "brezhoneg"),
                    ("bs", "bosanski"),
                    ("ca", "català"),
                    ("cs", "čeština"),
                    ("cy", "Cymraeg"),
                    ("da", "dansk"),
                    ("de", "Deutsch"),
                    ("dsb", "dolnoserbski"),
                    ("el", "Ελληνικά"),
                    ("en", "English"),
                    ("en-gb", "British English"),
                    ("eo", "Esperanto"),
                    ("es", "español"),
                    ("es-ni", "español nicaragüense"),
                    ("et", "eesti"),
                    ("eu", "euskara"),
                    ("fa", "فارسی"),
                    ("fi", "suomi"),
                    ("fr", "français"),
                    ("fy", "Frysk"),
                    ("ga", "Gaeilge"),
                    ("gd", "Gàidhlig"),
                    ("gl", "galego"),
                    ("he", "עברית"),
                    ("hi", "हिन्दी"),
                    ("hr", "hrvatski"),
                    ("hsb", "hornjoserbsce"),
                    ("hu", "magyar"),
                    ("hy", "Հայերեն"),
                    ("ia", "interlingua"),
                    ("id", "Bahasa Indonesia"),
                    ("io", "Ido"),
                    ("is", "íslenska"),
                    ("it", "italiano"),
                    ("ja", "日本語"),
                    ("ka", "ქართული"),
                    ("kab", "Taqbaylit"),
                    ("kk", "kk-cyrl"),
                    ("km", "ភាសាខ្មែរ"),
                    ("kn", "ಕನ್ನಡ"),
                    ("ko", "한국어"),
                    ("lb", "Lëtzebuergesch"),
                    ("lt", "lietuvių"),
                    ("lv", "latviešu"),
                    ("mk", "македонски"),
                    ("ml", "മലയാളം"),
                    ("mn", "монгол"),
                    ("mr", "मराठी"),
                    ("my", "မြန်မာဘာသာ"),
                    ("nb", "norsk (bokmål)"),
                    ("ne", "नेपाली"),
                    ("nl", "Nederlands"),
                    ("nn", "norsk (nynorsk)"),
                    ("os", "Ирон"),
                    ("pa", "pa-guru"),
                    ("pl", "polski"),
                    ("pt", "português"),
                    ("pt-br", "português do Brasil"),
                    ("ro", "română"),
                    ("ru", "русский"),
                    ("sk", "slovenčina"),
                    ("sl", "slovenščina"),
                    ("sq", "shqip"),
                    ("sr", "sr-cyrl"),
                    ("sr-latn", "srpski"),
                    ("sv", "svenska"),
                    ("sw", "Kiswahili"),
                    ("ta", "தமிழ்"),
                    ("te", "తెలుగు"),
                    ("th", "ไทย"),
                    ("tr", "Türkçe"),
                    ("tt", "татарча"),
                    ("udm", "удмурт"),
                    ("uk", "українська"),
                    ("ur", "اردو"),
                    ("uz", "oʻzbekcha"),
                    ("vi", "Tiếng Việt"),
                    ("zh-hans", "中文(简体)"),
                    ("zh-hant", "中文(繁體)"),
                ],
                max_length=8,
                unique=True,
                validators=[TWLight.resources.models.validate_language_code],
            ),
        ),
        migrations.AlterField(
            model_name="taggedtextfield",
            name="content_type",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name="resources_taggedtextfield_tagged_items",
                to="contenttypes.ContentType",
                verbose_name="content type",
            ),
        ),
        migrations.AlterField(
            model_name="taggedtextfield",
            name="object_id",
            field=models.IntegerField(db_index=True, verbose_name="object ID"),
        ),
        migrations.AddField(
            model_name="partner",
            name="description_ind",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional detailed description in addition to the short description such as collections, instructions, notes, special requirements, alternate access options, unique features, citations notes.",
                null=True,
                verbose_name="long description",
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="send_instructions_ind",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional instructions for sending application data to this partner.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="partner",
            name="short_description_ind",
            field=models.TextField(
                blank=True,
                help_text=
                "Optional short description of this partner's resources.",
                max_length=1000,
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="stream",
            name="description_ind",
            field=models.TextField(
                blank=True,
                help_text="Optional description of this stream's resources.",
                null=True,
            ),
        ),
        migrations.AddField(
            model_name="textfieldtag",
            name="name_ind",
            field=models.TextField(max_length=100,
                                   null=True,
                                   verbose_name="Name"),
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('resources', '0041_auto_20180417_1055'),
    ]

    operations = [
        migrations.AlterModelManagers(
            name='partner',
            managers=[
                ('even_not_available', django.db.models.manager.Manager()),
            ],
        ),
        migrations.AlterField(
            model_name='language',
            name='language',
            field=models.CharField(
                choices=[('af', 'Afrikaans'), ('ar', 'Arabic'),
                         ('ast', 'Asturian'), ('az', 'Azerbaijani'),
                         ('bg', 'Bulgarian'), ('be', 'Belarusian'),
                         ('bn', 'Bengali'), ('br', 'Breton'),
                         ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'),
                         ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'),
                         ('dsb', 'Lower Sorbian'), ('el', 'Greek'),
                         ('en', 'English'), ('en-au', 'Australian English'),
                         ('en-gb', 'British English'), ('eo', 'Esperanto'),
                         ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'),
                         ('es-co', 'Colombian Spanish'),
                         ('es-mx', 'Mexican Spanish'),
                         ('es-ni', 'Nicaraguan Spanish'),
                         ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'),
                         ('eu', 'Basque'), ('fa', 'Persian'), ('fi',
                                                               'Finnish'),
                         ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'),
                         ('gd', 'Scottish Gaelic'), ('gl', 'Galician'),
                         ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'),
                         ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'),
                         ('ia', 'Interlingua'), ('id', 'Indonesian'),
                         ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'),
                         ('ja', 'Japanese'), ('ka', 'Georgian'),
                         ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'),
                         ('ko', 'Korean'), ('lb', 'Luxembourgish'),
                         ('lt', 'Lithuanian'), ('lv', 'Latvian'),
                         ('mk', 'Macedonian'), ('ml', 'Malayalam'),
                         ('mn', 'Mongolian'), ('mr', 'Marathi'),
                         ('my', 'Burmese'), ('nb', 'Norwegian Bokm\xe5l'),
                         ('ne', 'Nepali'), ('nl', 'Dutch'),
                         ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'),
                         ('pa', 'Punjabi'), ('pl', 'Polish'),
                         ('pt', 'Portuguese'),
                         ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'),
                         ('ru', 'Russian'), ('sk', 'Slovak'),
                         ('sl', 'Slovenian'), ('sq', 'Albanian'),
                         ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'),
                         ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'),
                         ('te', 'Telugu'), ('th', 'Thai'), ('tr', 'Turkish'),
                         ('tt', 'Tatar'), ('udm', 'Udmurt'),
                         ('uk', 'Ukrainian'), ('ur', 'Urdu'),
                         ('vi', 'Vietnamese'),
                         ('zh-hans', 'Simplified Chinese'),
                         ('zh-hant', 'Traditional Chinese')],
                max_length=8,
                unique=True,
                validators=[TWLight.resources.models.validate_language_code]),
        ),
    ]
Exemple #4
0
class Migration(migrations.Migration):

    dependencies = [("resources", "0045_migrate_tags")]

    operations = [
        migrations.AlterField(
            model_name="language",
            name="language",
            field=models.CharField(
                choices=[
                    ("af", "Afrikaans"),
                    ("ar", "\u0627\u0644\u0639\u0631\u0628\u064a\u0629"),
                    ("ast", "asturianu"),
                    ("az", "az-latn"),
                    (
                        "be",
                        "\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f",
                    ),
                    ("bg",
                     "\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438"),
                    ("bn", "\u09ac\u09be\u0982\u09b2\u09be"),
                    ("br", "brezhoneg"),
                    ("bs", "bosanski"),
                    ("ca", "catal\xe0"),
                    ("cs", "\u010de\u0161tina"),
                    ("cy", "Cymraeg"),
                    ("da", "dansk"),
                    ("de", "Deutsch"),
                    ("dsb", "dolnoserbski"),
                    ("el", "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac"),
                    ("en", "English"),
                    ("en-gb", "British English"),
                    ("eo", "Esperanto"),
                    ("es", "espa\xf1ol"),
                    ("es-ni", "espa\xf1ol nicarag\xfcense"),
                    ("et", "eesti"),
                    ("eu", "euskara"),
                    ("fa", "\u0641\u0627\u0631\u0633\u06cc"),
                    ("fi", "suomi"),
                    ("fr", "fran\xe7ais"),
                    ("fy", "Frysk"),
                    ("ga", "Gaeilge"),
                    ("gd", "G\xe0idhlig"),
                    ("gl", "galego"),
                    ("he", "\u05e2\u05d1\u05e8\u05d9\u05ea"),
                    ("hi", "\u0939\u093f\u0928\u094d\u0926\u0940"),
                    ("hr", "hrvatski"),
                    ("hsb", "hornjoserbsce"),
                    ("hu", "magyar"),
                    ("ia", "interlingua"),
                    ("id", "Bahasa Indonesia"),
                    ("io", "Ido"),
                    ("is", "\xedslenska"),
                    ("it", "italiano"),
                    ("ja", "\u65e5\u672c\u8a9e"),
                    ("ka", "\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8"),
                    ("kk", "kk-cyrl"),
                    ("km",
                     "\u1797\u17b6\u179f\u17b6\u1781\u17d2\u1798\u17c2\u179a"),
                    ("kn", "\u0c95\u0ca8\u0ccd\u0ca8\u0ca1"),
                    ("ko", "\ud55c\uad6d\uc5b4"),
                    ("lb", "L\xebtzebuergesch"),
                    ("lt", "lietuvi\u0173"),
                    ("lv", "latvie\u0161u"),
                    (
                        "mk",
                        "\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438",
                    ),
                    ("ml", "\u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02"),
                    ("mn", "\u043c\u043e\u043d\u0433\u043e\u043b"),
                    ("mr", "\u092e\u0930\u093e\u0920\u0940"),
                    (
                        "my",
                        "\u1019\u103c\u1014\u103a\u1019\u102c\u1018\u102c\u101e\u102c",
                    ),
                    ("nb", "norsk (bokm\xe5l)"),
                    ("ne", "\u0928\u0947\u092a\u093e\u0932\u0940"),
                    ("nl", "Nederlands"),
                    ("nn", "norsk (nynorsk)"),
                    ("os", "\u0418\u0440\u043e\u043d"),
                    ("pa", "pa-guru"),
                    ("pl", "polski"),
                    ("pt", "portugu\xeas"),
                    ("pt-br", "portugu\xeas do Brasil"),
                    ("ro", "rom\xe2n\u0103"),
                    ("ru", "\u0440\u0443\u0441\u0441\u043a\u0438\u0439"),
                    ("sk", "sloven\u010dina"),
                    ("sl", "sloven\u0161\u010dina"),
                    ("sq", "shqip"),
                    ("sr", "sr-cyrl"),
                    ("sr-latn", "srpski"),
                    ("sv", "svenska"),
                    ("sw", "Kiswahili"),
                    ("ta", "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd"),
                    ("te", "\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41"),
                    ("th", "\u0e44\u0e17\u0e22"),
                    ("tr", "T\xfcrk\xe7e"),
                    ("tt", "\u0442\u0430\u0442\u0430\u0440\u0447\u0430"),
                    ("udm", "\u0443\u0434\u043c\u0443\u0440\u0442"),
                    (
                        "uk",
                        "\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",
                    ),
                    ("ur", "\u0627\u0631\u062f\u0648"),
                    ("vi", "Ti\u1ebfng Vi\u1ec7t"),
                    ("zh-hans", "\u4e2d\u6587\uff08\u7b80\u4f53\uff09"),
                    ("zh-hant", "\u4e2d\u6587\uff08\u7e41\u9ad4\uff09"),
                ],
                max_length=8,
                unique=True,
                validators=[TWLight.resources.models.validate_language_code],
            ),
        )
    ]
class Migration(migrations.Migration):

    dependencies = [
        ("contenttypes", "0002_remove_content_type_name"),
        ("resources", "0082_auto_20200706_1659"),
    ]

    operations = [
        migrations.AlterField(
            model_name="accesscode",
            name="partner",
            field=models.ForeignKey(
                limit_choices_to=models.Q(authorization_method=1),
                on_delete=django.db.models.deletion.CASCADE,
                related_name="accesscodes",
                to="resources.Partner",
            ),
        ),
        migrations.AlterField(
            model_name="language",
            name="language",
            field=models.CharField(
                choices=[
                    ("af", "Afrikaans"),
                    ("ar", "العربية"),
                    ("ast", "asturianu"),
                    ("az", "az-latn"),
                    ("be", "беларуская"),
                    ("bg", "български"),
                    ("bn", "বাংলা"),
                    ("br", "brezhoneg"),
                    ("bs", "bosanski"),
                    ("ca", "català"),
                    ("cs", "čeština"),
                    ("cy", "Cymraeg"),
                    ("da", "dansk"),
                    ("de", "Deutsch"),
                    ("dsb", "dolnoserbski"),
                    ("el", "Ελληνικά"),
                    ("en", "English"),
                    ("en-gb", "British English"),
                    ("eo", "Esperanto"),
                    ("es", "español"),
                    ("es-ni", "español nicaragüense"),
                    ("et", "eesti"),
                    ("eu", "euskara"),
                    ("fa", "فارسی"),
                    ("fi", "suomi"),
                    ("fr", "français"),
                    ("fy", "Frysk"),
                    ("ga", "Gaeilge"),
                    ("gd", "Gàidhlig"),
                    ("gl", "galego"),
                    ("he", "עברית"),
                    ("hi", "हिन्दी"),
                    ("hr", "hrvatski"),
                    ("hsb", "hornjoserbsce"),
                    ("hu", "magyar"),
                    ("hy", "Հայերեն"),
                    ("ia", "interlingua"),
                    ("id", "Bahasa Indonesia"),
                    ("io", "Ido"),
                    ("is", "íslenska"),
                    ("it", "italiano"),
                    ("ja", "日本語"),
                    ("ka", "ქართული"),
                    ("kab", "Taqbaylit"),
                    ("kk", "kk-cyrl"),
                    ("km", "ភាសាខ្មែរ"),
                    ("kn", "ಕನ್ನಡ"),
                    ("ko", "한국어"),
                    ("lb", "Lëtzebuergesch"),
                    ("lt", "lietuvių"),
                    ("lv", "latviešu"),
                    ("mk", "македонски"),
                    ("ml", "മലയാളം"),
                    ("mn", "монгол"),
                    ("mr", "मराठी"),
                    ("my", "မြန်မာဘာသာ"),
                    ("nb", "norsk (bokmål)"),
                    ("ne", "नेपाली"),
                    ("nl", "Nederlands"),
                    ("nn", "norsk (nynorsk)"),
                    ("os", "Ирон"),
                    ("pa", "pa-guru"),
                    ("pl", "polski"),
                    ("pt", "português"),
                    ("pt-br", "português do Brasil"),
                    ("ro", "română"),
                    ("ru", "русский"),
                    ("sk", "slovenčina"),
                    ("sl", "slovenščina"),
                    ("sq", "shqip"),
                    ("sr", "sr-cyrl"),
                    ("sr-latn", "srpski"),
                    ("sv", "svenska"),
                    ("sw", "Kiswahili"),
                    ("ta", "தமிழ்"),
                    ("te", "తెలుగు"),
                    ("th", "ไทย"),
                    ("tr", "Türkçe"),
                    ("tt", "татарча"),
                    ("udm", "удмурт"),
                    ("uk", "українська"),
                    ("ur", "اردو"),
                    ("uz", "oʻzbekcha"),
                    ("vi", "Tiếng Việt"),
                    ("zh-hans", "中文(简体)"),
                    ("zh-hant", "中文(繁體)"),
                ],
                max_length=8,
                unique=True,
                validators=[TWLight.resources.models.validate_language_code],
            ),
        ),
        migrations.AlterField(
            model_name="taggedtextfield",
            name="content_type",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name="resources_taggedtextfield_tagged_items",
                to="contenttypes.ContentType",
                verbose_name="content type",
            ),
        ),
        migrations.AlterField(
            model_name="taggedtextfield",
            name="object_id",
            field=models.IntegerField(db_index=True, verbose_name="object ID"),
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('resources', '0045_migrate_tags'),
    ]

    operations = [
        migrations.AlterField(
            model_name='language',
            name='language',
            field=models.CharField(choices=[
                ('af', 'Afrikaans'),
                ('ar', '\u0627\u0644\u0639\u0631\u0628\u064a\u0629'),
                ('ast', 'asturianu'), ('az', 'az-latn'),
                ('be',
                 '\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f'
                 ),
                ('bg',
                 '\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438'),
                ('bn', '\u09ac\u09be\u0982\u09b2\u09be'), ('br', 'brezhoneg'),
                ('bs', 'bosanski'), ('ca', 'catal\xe0'),
                ('cs', '\u010de\u0161tina'), ('cy', 'Cymraeg'),
                ('da', 'dansk'), ('de', 'Deutsch'), ('dsb', 'dolnoserbski'),
                ('el', '\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac'),
                ('en', 'English'), ('en-gb', 'British English'),
                ('eo', 'Esperanto'), ('es', 'espa\xf1ol'),
                ('es-ni', 'espa\xf1ol nicarag\xfcense'), ('et', 'eesti'),
                ('eu', 'euskara'), ('fa', '\u0641\u0627\u0631\u0633\u06cc'),
                ('fi', 'suomi'), ('fr', 'fran\xe7ais'), ('fy', 'Frysk'),
                ('ga', 'Gaeilge'), ('gd', 'G\xe0idhlig'), ('gl', 'galego'),
                ('he', '\u05e2\u05d1\u05e8\u05d9\u05ea'),
                ('hi', '\u0939\u093f\u0928\u094d\u0926\u0940'),
                ('hr', 'hrvatski'), ('hsb', 'hornjoserbsce'), ('hu', 'magyar'),
                ('ia', 'interlingua'), ('id', 'Bahasa Indonesia'),
                ('io', 'Ido'), ('is', '\xedslenska'), ('it', 'italiano'),
                ('ja', '\u65e5\u672c\u8a9e'),
                ('ka', '\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8'),
                ('kk', 'kk-cyrl'),
                ('km',
                 '\u1797\u17b6\u179f\u17b6\u1781\u17d2\u1798\u17c2\u179a'),
                ('kn', '\u0c95\u0ca8\u0ccd\u0ca8\u0ca1'),
                ('ko', '\ud55c\uad6d\uc5b4'), ('lb', 'L\xebtzebuergesch'),
                ('lt', 'lietuvi\u0173'), ('lv', 'latvie\u0161u'),
                ('mk',
                 '\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438'
                 ), ('ml', '\u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02'),
                ('mn', '\u043c\u043e\u043d\u0433\u043e\u043b'),
                ('mr', '\u092e\u0930\u093e\u0920\u0940'),
                ('my',
                 '\u1019\u103c\u1014\u103a\u1019\u102c\u1018\u102c\u101e\u102c'
                 ), ('nb', 'norsk (bokm\xe5l)'),
                ('ne', '\u0928\u0947\u092a\u093e\u0932\u0940'),
                ('nl', 'Nederlands'), ('nn', 'norsk (nynorsk)'),
                ('os', '\u0418\u0440\u043e\u043d'), ('pa', 'pa-guru'),
                ('pl', 'polski'), ('pt', 'portugu\xeas'),
                ('pt-br', 'portugu\xeas do Brasil'), ('ro', 'rom\xe2n\u0103'),
                ('ru', '\u0440\u0443\u0441\u0441\u043a\u0438\u0439'),
                ('sk', 'sloven\u010dina'), ('sl', 'sloven\u0161\u010dina'),
                ('sq', 'shqip'), ('sr', 'sr-cyrl'), ('sr-latn', 'srpski'),
                ('sv', 'svenska'), ('sw', 'Kiswahili'),
                ('ta', '\u0ba4\u0bae\u0bbf\u0bb4\u0bcd'),
                ('te', '\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41'),
                ('th', '\u0e44\u0e17\u0e22'), ('tr', 'T\xfcrk\xe7e'),
                ('tt', '\u0442\u0430\u0442\u0430\u0440\u0447\u0430'),
                ('udm', '\u0443\u0434\u043c\u0443\u0440\u0442'),
                ('uk',
                 '\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430'
                 ), ('ur', '\u0627\u0631\u062f\u0648'),
                ('vi', 'Ti\u1ebfng Vi\u1ec7t'),
                ('zh-hans', '\u4e2d\u6587\uff08\u7b80\u4f53\uff09'),
                ('zh-hant', '\u4e2d\u6587\uff08\u7e41\u9ad4\uff09')
            ],
                                   max_length=8,
                                   unique=True,
                                   validators=[
                                       TWLight.resources.models.
                                       validate_language_code
                                   ]),
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ("resources", "0065_auto_20210215_1404"),
    ]

    operations = [
        migrations.AlterField(
            model_name="language",
            name="language",
            field=models.CharField(
                choices=[
                    ("af", "Afrikaans"),
                    ("ar", "العربية"),
                    ("ast", "asturianu"),
                    ("az", "az-latn"),
                    ("be", "беларуская"),
                    ("bg", "български"),
                    ("bn", "বাংলা"),
                    ("br", "brezhoneg"),
                    ("bs", "bosanski"),
                    ("ca", "català"),
                    ("cs", "čeština"),
                    ("cy", "Cymraeg"),
                    ("da", "dansk"),
                    ("de", "Deutsch"),
                    ("dsb", "dolnoserbski"),
                    ("el", "Ελληνικά"),
                    ("en", "English"),
                    ("en-gb", "British English"),
                    ("eo", "Esperanto"),
                    ("es", "español"),
                    ("es-ni", "español nicaragüense"),
                    ("et", "eesti"),
                    ("eu", "euskara"),
                    ("fa", "فارسی"),
                    ("fi", "suomi"),
                    ("fr", "français"),
                    ("fy", "Frysk"),
                    ("ga", "Gaeilge"),
                    ("gd", "Gàidhlig"),
                    ("gl", "galego"),
                    ("he", "עברית"),
                    ("hi", "हिन्दी"),
                    ("hr", "hrvatski"),
                    ("hsb", "hornjoserbsce"),
                    ("hu", "magyar"),
                    ("hy", "Հայերեն"),
                    ("ia", "interlingua"),
                    ("id", "Bahasa Indonesia"),
                    ("ig", "Igbo"),
                    ("io", "Ido"),
                    ("is", "íslenska"),
                    ("it", "italiano"),
                    ("ja", "日本語"),
                    ("ka", "ქართული"),
                    ("kab", "Taqbaylit"),
                    ("kk", "kk-cyrl"),
                    ("km", "ភាសាខ្មែរ"),
                    ("kn", "ಕನ್ನಡ"),
                    ("ko", "한국어"),
                    ("ky", "Кыргызча"),
                    ("lb", "Lëtzebuergesch"),
                    ("lt", "lietuvių"),
                    ("lv", "latviešu"),
                    ("mk", "македонски"),
                    ("ml", "മലയാളം"),
                    ("mn", "монгол"),
                    ("mr", "मराठी"),
                    ("my", "မြန်မာဘာသာ"),
                    ("nb", "norsk (bokmål)"),
                    ("ne", "नेपाली"),
                    ("nl", "Nederlands"),
                    ("nn", "norsk (nynorsk)"),
                    ("os", "Ирон"),
                    ("pa", "pa-guru"),
                    ("pl", "polski"),
                    ("pt", "português"),
                    ("pt-br", "português do Brasil"),
                    ("ro", "română"),
                    ("ru", "русский"),
                    ("sk", "slovenčina"),
                    ("sl", "slovenščina"),
                    ("sq", "shqip"),
                    ("sr", "sr-cyrl"),
                    ("sr-latn", "srpski"),
                    ("sv", "svenska"),
                    ("sw", "Kiswahili"),
                    ("ta", "தமிழ்"),
                    ("te", "తెలుగు"),
                    ("tg", "tg-cyrl"),
                    ("th", "ไทย"),
                    ("tk", "Türkmençe"),
                    ("tr", "Türkçe"),
                    ("tt", "татарча"),
                    ("udm", "удмурт"),
                    ("uk", "українська"),
                    ("ur", "اردو"),
                    ("uz", "oʻzbekcha"),
                    ("vi", "Tiếng Việt"),
                    ("zh-hans", "中文(简体)"),
                    ("zh-hant", "中文(繁體)"),
                ],
                max_length=8,
                unique=True,
                validators=[TWLight.resources.models.validate_language_code],
            ),
        ),
        migrations.AlterField(
            model_name="partner",
            name="mutually_exclusive",
            field=models.BooleanField(
                blank=True,
                default=None,
                help_text=
                "If True, users can only apply for one Stream at a time from this Partner. If False, users can apply for multiple Streams at a time. This field must be filled in when Partners have multiple Streams, but may be left blank otherwise.",
                null=True,
            ),
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ("resources", "0076_auto_20210607_1312"),
    ]

    operations = [
        migrations.AlterField(
            model_name="language",
            name="language",
            field=models.CharField(
                choices=[
                    ("aa", "Qafár af"),
                    ("ab", "Аҧсшәа"),
                    ("abe", "Wôbanakiôdwawôgan"),
                    ("abs", "Bahasa Ambon"),
                    ("ace", "Acèh"),
                    ("acf", "kwéyòl"),
                    ("ady", "Адыгабзэ"),
                    ("ady-cyrl", "ady"),
                    ("ady-latn", "Adygabze"),
                    ("aeb", "aeb-arab"),
                    ("aeb-arab", "تونسي"),
                    ("aeb-latn", "Tûnsî"),
                    ("af", "Afrikaans"),
                    ("ahr", "अहिराणी"),
                    ("ak", "Akan"),
                    ("akz", "Albaamo innaaɬiilka"),
                    ("aln", "Gegë"),
                    ("alt", "алтай тил"),
                    ("am", "አማርኛ"),
                    ("ami", "Pangcah"),
                    ("an", "aragonés"),
                    ("ang", "Ænglisc"),
                    ("ann", "Obolo"),
                    ("anp", "अङ्गिका"),
                    ("ar", "العربية"),
                    ("arc", "ܐܪܡܝܐ"),
                    ("arn", "mapudungun"),
                    ("aro", "Araona"),
                    ("arq", "جازايرية"),
                    ("ary", "الدارجة"),
                    ("ary-arab", "ary"),
                    ("ary-latn", "ed-dārija"),
                    ("arz", "مصرى"),
                    ("as", "অসমীয়া"),
                    ("ase", "American sign language"),
                    ("ast", "asturianu"),
                    ("atj", "atikamekw"),
                    ("atv", "тÿндÿк алтай тил"),
                    ("av", "авар"),
                    ("avk", "Kotava"),
                    ("awa", "अवधी"),
                    ("ay", "Aymar aru"),
                    ("az", "az-latn"),
                    ("az-arab", "تۆرکجه"),
                    ("az-latn", "azərbaycanca"),
                    ("az-cyrl", "азәрбајҹанҹа"),
                    ("azb", "az-arab"),
                    ("azj", "az-latn"),
                    ("ba", "башҡортса"),
                    ("ban", "Bali"),
                    ("ban-bali", "ᬩᬮᬶ"),
                    ("bar", "Boarisch"),
                    ("bas", "ɓasaá"),
                    ("bat-smg", "sgs"),
                    ("bbc-latn", "Batak Toba"),
                    ("bbc-batk", "ᯅᯖᯂ᯲ ᯖᯬᯅ"),
                    ("bbc", "bbc-latn"),
                    ("bcc", "جهلسری بلوچی"),
                    ("bci", "wawle"),
                    ("bcl", "Bikol Central"),
                    ("bdr", "Bajau Sama"),
                    ("be-tarask", "беларуская (тарашкевіца)"),
                    ("be-x-old", "be-tarask"),
                    ("be", "беларуская"),
                    ("bew", "Bahasa Betawi"),
                    ("bfa", "Bari"),
                    ("bft", "بلتی"),
                    ("bfq", "படகா"),
                    ("bg", "български"),
                    ("bgn", "روچ کپتین بلوچی"),
                    ("bh", "bho"),
                    ("bho", "भोजपुरी"),
                    ("bi", "Bislama"),
                    ("bjn", "Banjar"),
                    ("bkm", "Itaŋikom"),
                    ("blc", "ItNuxalkmc"),
                    ("bm", "bamanankan"),
                    ("bn", "বাংলা"),
                    ("bnn", "Bunun"),
                    ("bo", "བོད་ཡིག"),
                    ("bpy", "বিষ্ণুপ্রিয়া মণিপুরী"),
                    ("bqi", "بختیاری"),
                    ("br", "brezhoneg"),
                    ("brh", "Bráhuí"),
                    ("brx", "बर'"),
                    ("bs", "bosanski"),
                    ("btm", "Mandailing"),
                    ("bto", "Iriga Bicolano"),
                    ("bug", "ᨅᨔ ᨕᨘᨁᨗ"),
                    ("bxr", "буряад"),
                    ("byn", "ብሊን"),
                    ("bzj", "Bileez Kriol"),
                    ("ca", "català"),
                    ("cak", "Kaqchikel"),
                    ("cbk", "Chavacano de Zamboanga"),
                    ("cbk-zam", "cbk"),
                    ("ccp", "𑄌𑄋𑄴𑄟𑄳𑄦"),
                    ("cdo", "Mìng-dĕ̤ng-ngṳ̄"),
                    ("cdo-latn", "Mìng-dĕ̤ng-ngṳ̄ Bàng-uâ-cê"),
                    ("cdo-hani", "閩東語(漢字)"),
                    ("ce", "нохчийн"),
                    ("ceb", "Cebuano"),
                    ("ch", "Chamoru"),
                    ("chm", "mhr"),
                    ("chn", "chinuk wawa"),
                    ("cho", "Choctaw"),
                    ("chr", "ᏣᎳᎩ"),
                    ("chy", "Tsetsêhestâhese"),
                    ("ciw", "Anishinaabemowin"),
                    ("cjy", "cjy-hant"),
                    ("cjy-hans", "晋语(简化字)"),
                    ("cjy-hant", "晉語"),
                    ("ckb", "کوردی"),
                    ("ckt", "ԓыгъоравэтԓьэн"),
                    ("cnh", "Lai holh"),
                    ("cnr", "cnr-latn"),
                    ("cnr-cyrl", "црногорски"),
                    ("cnr-latn", "crnogorski"),
                    ("co", "corsu"),
                    ("cop", "ϯⲙⲉⲧⲣⲉⲙⲛ̀ⲭⲏⲙⲓ"),
                    ("cps", "Capiceño"),
                    ("cr", "ᓀᐦᐃᔭᐍᐏᐣ"),
                    ("cr-cans", "cr"),
                    ("cr-latn", "Nēhiyawēwin"),
                    ("crh", "qırımtatarca"),
                    ("crh-cyrl", "къырымтатарджа"),
                    ("crh-latn", "crh"),
                    ("cs", "čeština"),
                    ("csb", "kaszëbsczi"),
                    ("cu", "словѣньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ"),
                    ("cv", "Чӑвашла"),
                    ("cy", "Cymraeg"),
                    ("da", "dansk"),
                    ("dag", "dagbanli"),
                    ("dar", "дарган"),
                    ("de-at", "Österreichisches Deutsch"),
                    ("de-ch", "Schweizer Hochdeutsch"),
                    ("de-formal", "Deutsch (Sie-Form)"),
                    ("de", "Deutsch"),
                    ("din", "Thuɔŋjäŋ"),
                    ("diq", "Zazaki"),
                    ("doi", "डोगरी"),
                    ("dsb", "dolnoserbski"),
                    ("dtp", "Dusun Bundu-liwan"),
                    ("dty", "डोटेली"),
                    ("dv", "ދިވެހިބަސް"),
                    ("dz", "ཇོང་ཁ"),
                    ("ee", "eʋegbe"),
                    ("egl", "Emiliàn"),
                    ("el", "Ελληνικά"),
                    ("elm", "Eleme"),
                    ("eml", "emiliàn e rumagnòl"),
                    ("en-ca", "Canadian English"),
                    ("en-gb", "British English"),
                    ("en-simple", "Simple English"),
                    ("en", "English"),
                    ("eo", "Esperanto"),
                    ("es-419", "español de América Latina"),
                    ("es-formal", "español (formal)"),
                    ("es", "español"),
                    ("es-ni", "español nicaragüense"),
                    ("esu", "Yup'ik"),
                    ("et", "eesti"),
                    ("eu", "euskara"),
                    ("ext", "estremeñu"),
                    ("eya", "I·ya·q"),
                    ("fa", "فارسی"),
                    ("fan", "Faŋ"),
                    ("fax", "Fala"),
                    ("ff", "Fulfulde"),
                    ("fi", "suomi"),
                    ("fil", "tl"),
                    ("fit", "meänkieli"),
                    ("fiu-vro", "vro"),
                    ("fj", "Na Vosa Vakaviti"),
                    ("fkv", "kvääni"),
                    ("fo", "føroyskt"),
                    ("fon", "fɔ̀ngbè"),
                    ("fr", "français"),
                    ("frc", "français cadien"),
                    ("frp", "arpetan"),
                    ("frr", "Nordfriisk"),
                    ("fuf", "Fuuta Jalon"),
                    ("fur", "furlan"),
                    ("fy", "Frysk"),
                    ("ga", "Gaeilge"),
                    ("gaa", "Ga"),
                    ("gag", "Gagauz"),
                    ("gah", "Alekano"),
                    ("gan-hans", "赣语(简体)"),
                    ("gan-hant", "gan"),
                    ("gan", "贛語"),
                    ("gbm", "गढ़वळि"),
                    ("gbz", "Dari-e Mazdeyasnā"),
                    ("gcf", "Guadeloupean Creole French"),
                    ("gcr", "kriyòl gwiyannen"),
                    ("gd", "Gàidhlig"),
                    ("gez", "ግዕዝ"),
                    ("gl", "galego"),
                    ("gld", "на̄ни"),
                    ("glk", "گیلکی"),
                    ("gn", "Avañe'ẽ"),
                    ("gom", "gom-deva"),
                    ("gom-deva", "गोंयची कोंकणी"),
                    ("gom-latn", "Gõychi Konknni"),
                    ("gor", "Bahasa Hulontalo"),
                    ("got", "𐌲𐌿𐍄𐌹𐍃𐌺"),
                    ("grc", "Ἀρχαία ἑλληνικὴ"),
                    ("gsw", "Alemannisch"),
                    ("gu", "ગુજરાતી"),
                    ("guc", "wayuunaiki"),
                    ("gum", "Namtrik"),
                    ("gur", "Gurenɛ"),
                    ("guw", "gungbe"),
                    ("gv", "Gaelg"),
                    ("ha", "Hausa"),
                    ("ha-arab", "هَوُسَ"),
                    ("ha-latn", "ha"),
                    ("hai", "X̱aat Kíl"),
                    ("hak", "Hak-kâ-fa"),
                    ("haw", "Hawai`i"),
                    ("he", "עברית"),
                    ("hak-hans", "客家语(简体)"),
                    ("hak-hant", "客家語(繁體)"),
                    ("hi", "हिन्दी"),
                    ("hif", "Fiji Hindi"),
                    ("hif-deva", "फ़ीजी हिन्दी"),
                    ("hif-latn", "hif"),
                    ("hil", "Ilonggo"),
                    ("hne", "छत्तीसगढ़ी"),
                    ("ho", "Hiri Motu"),
                    ("hoc", "𑢹𑣉𑣉"),
                    ("hr", "hrvatski"),
                    ("hrx", "Hunsrik"),
                    ("hsb", "hornjoserbsce"),
                    ("hsn", "湘语"),
                    ("ht", "Kreyòl ayisyen"),
                    ("hu-formal", "Magyar (magázó)"),
                    ("hu", "magyar"),
                    ("hy", "հայերեն"),
                    ("hyw", "Արեւմտահայերէն"),
                    ("hz", "Otsiherero"),
                    ("ia", "interlingua"),
                    ("id", "Bahasa Indonesia"),
                    ("ie", "Interlingue"),
                    ("ig", "Igbo"),
                    ("ii", "ꆇꉙ"),
                    ("ik", "Iñupiak"),
                    ("ike-cans", "ᐃᓄᒃᑎᑐᑦ"),
                    ("ike-latn", "inuktitut"),
                    ("ilo", "Ilokano"),
                    ("inh", "ГӀалгӀай"),
                    ("io", "Ido"),
                    ("is", "íslenska"),
                    ("it", "italiano"),
                    ("iu", "ike-cans"),
                    ("izh", "ižoran keel"),
                    ("ja", "日本語"),
                    ("jam", "Patois"),
                    ("jbo", "lojban"),
                    ("jdt", "jdt-cyrl"),
                    ("jdt-cyrl", "жугьури"),
                    ("jje", "제주말"),
                    ("jut", "jysk"),
                    ("jv", "Jawa"),
                    ("jv-java", "ꦗꦮ"),
                    ("ka", "ქართული"),
                    ("kaa", "Qaraqalpaqsha"),
                    ("kab", "Taqbaylit"),
                    ("kac", "Jinghpaw"),
                    ("kbd-cyrl", "kbd"),
                    ("kbd-latn", "Qabardjajəbza"),
                    ("kbd", "Адыгэбзэ"),
                    ("kbp", "Kabɩyɛ"),
                    ("kcg", "Tyap"),
                    ("kea", "Kabuverdianu"),
                    ("kg", "Kongo"),
                    ("kgp", "Kaingáng"),
                    ("khw", "کھوار"),
                    ("ki", "Gĩkũyũ"),
                    ("kiu", "Kırmancki"),
                    ("kj", "Kwanyama"),
                    ("kjh", "хакас"),
                    ("kjp", "ဖၠုံလိက်"),
                    ("kk", "kk-cyrl"),
                    ("kk-arab", "قازاقشا (تٶتە)"),
                    ("kk-cn", "kk-arab"),
                    ("kk-cyrl", "қазақша"),
                    ("kk-kz", "kk-cyrl"),
                    ("kk-latn", "qazaqşa"),
                    ("kk-tr", "kk-latn"),
                    ("kl", "kalaallisut"),
                    ("km", "ភាសាខ្មែរ"),
                    ("kn", "ಕನ್ನಡ"),
                    ("knn", "महाराष्ट्रीय कोंकणी"),
                    ("ko-kp", "조선말"),
                    ("ko", "한국어"),
                    ("koi", "перем коми"),
                    ("koy", "Denaakkenaageʼ"),
                    ("kr", "Kanuri"),
                    ("krc", "къарачай-малкъар"),
                    ("kri", "Krio"),
                    ("krj", "Kinaray-a"),
                    ("krl", "Karjala"),
                    ("ks-arab", "کٲشُر"),
                    ("ks-deva", "कॉशुर"),
                    ("ks", "ks-arab"),
                    ("ksf", "Bafia"),
                    ("ksh", "Ripoarisch"),
                    ("ksw", "စှီၤ ကညီကျိာ်"),
                    ("ku", "ku-latn"),
                    ("ku-arab", "كوردي"),
                    ("ku-latn", "kurdî"),
                    ("kum", "къумукъ"),
                    ("kv", "коми"),
                    ("kw", "kernowek"),
                    ("ky", "Кыргызча"),
                    ("la", "Latina"),
                    ("lad", "lad-latn"),
                    ("lad-latn", "Ladino"),
                    ("lad-hebr", "לאדינו"),
                    ("lag", "Kilaangi"),
                    ("lb", "Lëtzebuergesch"),
                    ("lbe", "лакку"),
                    ("lez", "лезги"),
                    ("lfn", "Lingua Franca Nova"),
                    ("lg", "Luganda"),
                    ("li", "Limburgs"),
                    ("lij", "Ligure"),
                    ("liv", "Līvõ kēļ"),
                    ("lki", "لەکی"),
                    ("lkt", "Lakȟótiyapi"),
                    ("lld", "Ladin"),
                    ("lmo", "lombard"),
                    ("ln", "lingála"),
                    ("lo", "ລາວ"),
                    ("loz", "Silozi"),
                    ("lt", "lietuvių"),
                    ("lrc", "لۊری شومالی"),
                    ("ltg", "latgaļu"),
                    ("lud", "lüüdi"),
                    ("lus", "Mizo ţawng"),
                    ("lut", "dxʷləšucid"),
                    ("luz", "لئری دوٙمینی"),
                    ("lv", "latviešu"),
                    ("lzh", "文言"),
                    ("lzz", "Lazuri"),
                    ("mad", "Madhurâ"),
                    ("mai", "मैथिली"),
                    ("map-bms", "Basa Banyumasan"),
                    ("mdf", "мокшень"),
                    ("mfe", "Morisyen"),
                    ("mg", "Malagasy"),
                    ("mh", "Ebon"),
                    ("mhr", "олык марий"),
                    ("mi", "Māori"),
                    ("mic", "Mi'kmaq"),
                    ("min", "Minangkabau"),
                    ("miq", "Mískitu"),
                    ("mk", "македонски"),
                    ("ml", "മലയാളം"),
                    ("mn", "монгол"),
                    ("mn-cyrl", "mn"),
                    ("mn-mong", "mvf"),
                    ("mnc", "ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ"),
                    ("mni", "ꯃꯤꯇꯩ ꯂꯣꯟ"),
                    ("mni-beng", "মেইতেই লোন্"),
                    ("mnw", "ဘာသာ မန်"),
                    ("mo", "молдовеняскэ"),
                    ("moe", "innu-aimun"),
                    ("mr", "मराठी"),
                    ("mrh", "Mara"),
                    ("mrj", "кырык мары"),
                    ("mrv", "Magareva"),
                    ("ms", "Bahasa Melayu"),
                    ("ms-arab", "بهاس ملايو"),
                    ("mt", "Malti"),
                    ("mui", "Musi"),
                    ("mus", "Mvskoke"),
                    ("mvf", "ᠮᠣᠩᠭᠣᠯ"),
                    ("mwl", "Mirandés"),
                    ("mwv", "Behase Mentawei"),
                    ("mww", "mww-latn"),
                    ("mww-latn", "Hmoob Dawb"),
                    ("my", "မြန်မာဘာသာ"),
                    ("myv", "эрзянь"),
                    ("mzn", "مازِرونی"),
                    ("na", "Dorerin Naoero"),
                    ("nah", "Nāhuatl"),
                    ("nan", "Bân-lâm-gú"),
                    ("nan-hani", "閩南語(漢字)"),
                    ("nap", "Napulitano"),
                    ("nb", "norsk (bokmål)"),
                    ("nd", "siNdebele saseNyakatho"),
                    ("nds-nl", "Nedersaksisch"),
                    ("nds", "Plattdüütsch"),
                    ("ne", "नेपाली"),
                    ("new", "नेपाल भाषा"),
                    ("ng", "Oshiwambo"),
                    ("nia", "Li Niha"),
                    ("niu", "ko e vagahau Niuē"),
                    ("njo", "Ao"),
                    ("nl-informal", "Nederlands (informeel)"),
                    ("nl", "Nederlands"),
                    ("nn", "norsk (nynorsk)"),
                    ("no", "norsk"),
                    ("nod", "คำเมือง"),
                    ("nog", "ногайша"),
                    ("nov", "Novial"),
                    ("nqo", "ߒߞߏ"),
                    ("nr", "isiNdebele seSewula"),
                    ("nrm", "Nouormand"),
                    ("nso", "Sesotho sa Leboa"),
                    ("nus", "Thok Naath"),
                    ("nv", "Diné bizaad"),
                    ("ny", "Chi-Chewa"),
                    ("nys", "Nyungar"),
                    ("oc", "occitan"),
                    ("ojb", "Ojibwemowin"),
                    ("oka", "n̓səl̓xcin̓"),
                    ("olo", "livvinkarjala"),
                    ("om", "Oromoo"),
                    ("ood", "ʼOʼodham ha-ñeʼokĭ"),
                    ("or", "ଓଡ଼ିଆ"),
                    ("os", "Ирон"),
                    ("osi", "Using"),
                    ("ota", "لسان عثمانى"),
                    ("ovd", "övdalsk"),
                    ("pa", "pa-guru"),
                    ("pa-guru", "ਪੰਜਾਬੀ"),
                    ("pag", "Pangasinan"),
                    ("pam", "Kapampangan"),
                    ("pap", "Papiamentu"),
                    ("pap-aw", "Papiamento"),
                    ("pbb", "Nasa Yuwe"),
                    ("pcd", "Picard"),
                    ("pdc", "Deitsch"),
                    ("pdt", "Plautdietsch"),
                    ("pfl", "Pälzisch"),
                    ("pi", "पालि"),
                    ("pih", "Norfuk / Pitkern"),
                    ("pis", "Pijin"),
                    ("pjt", "Pitjantjatjara"),
                    ("pko", "Pökoot"),
                    ("pl", "polski"),
                    ("pms", "Piemontèis"),
                    ("pnb", "پنجابی"),
                    ("pnt", "Ποντιακά"),
                    ("pov", "guinensi"),
                    ("ppl", "Nawat"),
                    ("prg", "Prūsiskan"),
                    ("prs", "دری"),
                    ("ps", "پښتو"),
                    ("pt-br", "português do Brasil"),
                    ("pt", "português"),
                    ("pwn", "pinayuanan"),
                    ("qu", "Runa Simi"),
                    ("quc", "K'iche'"),
                    ("qug", "Runa shimi"),
                    ("qwh", "anqash qichwa"),
                    ("rap", "arero rapa nui"),
                    ("rcf", "Kreol Réyoné"),
                    ("rej", "Jang"),
                    ("rgn", "Rumagnôl"),
                    ("rhg", "𐴌𐴟𐴇𐴥𐴝𐴚𐴒𐴙𐴝"),
                    ("rif", "Tarifit"),
                    ("rki", "ရခိုင်"),
                    ("rm", "rumantsch"),
                    ("rmc", "romaňi čhib"),
                    ("rmf", "kaalengo tšimb"),
                    ("rmy", "Romani"),
                    ("rn", "Kirundi"),
                    ("ro", "română"),
                    ("roa-rup", "rup"),
                    ("roa-tara", "tarandíne"),
                    ("rtm", "Faeag Rotuma"),
                    ("ru", "русский"),
                    ("rue", "русиньскый"),
                    ("rup", "armãneashti"),
                    ("ruq", "Влахесте"),
                    ("ruq-cyrl", "ruq"),
                    ("ruq-grek", "Megleno-Romanian (Greek script)"),
                    ("ruq-latn", "Vlăheşte"),
                    ("rut", "мыхаӀбишды"),
                    ("rw", "Kinyarwanda"),
                    ("rwr", "मारवाड़ी"),
                    ("ryu", "ʔucināguci"),
                    ("sa", "संस्कृतम्"),
                    ("sah", "саха тыла"),
                    ("sat", "ᱥᱟᱱᱛᱟᱲᱤ"),
                    ("saz", "ꢱꣃꢬꢵꢯ꣄ꢡ꣄ꢬꢵ"),
                    ("sc", "sardu"),
                    ("scn", "sicilianu"),
                    ("sco", "Scots"),
                    ("sd", "سنڌي"),
                    ("sdc", "Sassaresu"),
                    ("sdh", "کوردی خوارگ"),
                    ("se", "davvisámegiella"),
                    ("ses", "Koyraboro Senni"),
                    ("sei", "Cmique Itom"),
                    ("sg", "Sängö"),
                    ("sgs", "žemaitėška"),
                    ("sh", "srpskohrvatski"),
                    ("shi-latn", "Taclḥit"),
                    ("shi-tfng", "ⵜⴰⵛⵍⵃⵉⵜ"),
                    ("shi", "shi-latn"),
                    ("shn", "လိၵ်ႈတႆး"),
                    ("shy-latn", "tacawit"),
                    ("si", "සිංහල"),
                    ("simple", "en-simple"),
                    ("sjd", "кӣллт са̄мь кӣлл"),
                    ("sje", "bidumsámegiella"),
                    ("sjo", "ᠰᡞᠪᡝ ᡤᡞᠰᡠᠨ"),
                    ("sju", "ubmejesámiengiälla"),
                    ("sk", "slovenčina"),
                    ("sl", "slovenščina"),
                    ("sli", "Schläsch"),
                    ("slr", "Salırça"),
                    ("sly", "Bahasa Selayar"),
                    ("skr-arab", "سرائیکی"),
                    ("skr", "skr-arab"),
                    ("syc", "ܣܘܪܝܝܐ"),
                    ("syl", "ꠍꠤꠟꠐꠤ"),
                    ("syl-beng", "সিলেটি"),
                    ("syl-sylo", "syl"),
                    ("sm", "Gagana Samoa"),
                    ("sma", "åarjelsaemien"),
                    ("smj", "julevsámegiella"),
                    ("smn", "anarâškielâ"),
                    ("sms", "nuõrttsääʹmǩiõll"),
                    ("sn", "chiShona"),
                    ("so", "Soomaaliga"),
                    ("son", "soŋay"),
                    ("sq", "shqip"),
                    ("sr", "sr-cyrl"),
                    ("sr-ec", "sr-cyrl"),
                    ("sr-cyrl", "српски"),
                    ("sr-el", "sr-latn"),
                    ("sr-latn", "srpski"),
                    ("srn", "Sranantongo"),
                    ("ss", "SiSwati"),
                    ("st", "Sesotho"),
                    ("stq", "Seeltersk"),
                    ("sty", "себертатар"),
                    ("su", "Sunda"),
                    ("sv", "svenska"),
                    ("sw", "Kiswahili"),
                    ("swb", "Shikomoro"),
                    ("sxu", "Säggssch"),
                    ("szl", "ślůnski"),
                    ("szy", "Sakizaya"),
                    ("ta", "தமிழ்"),
                    ("tay", "Tayal"),
                    ("tcy", "ತುಳು"),
                    ("te", "తెలుగు"),
                    ("tet", "tetun"),
                    ("tg-cyrl", "тоҷикӣ"),
                    ("tg-latn", "tojikī"),
                    ("tg", "tg-cyrl"),
                    ("th", "ไทย"),
                    ("ti", "ትግርኛ"),
                    ("tig", "ትግረ"),
                    ("tk", "Türkmençe"),
                    ("tkr", "ЦӀаӀхна миз"),
                    ("tl", "Tagalog"),
                    ("tly", "tolışi"),
                    ("tly-cyrl", "толыши"),
                    ("tmr", "ארמית בבלית"),
                    ("tn", "Setswana"),
                    ("to", "lea faka-Tonga"),
                    ("tokipona", "Toki Pona"),
                    ("tpi", "Tok Pisin"),
                    ("tr", "Türkçe"),
                    ("trp", "Kokborok (Tripuri)"),
                    ("tru", "Ṫuroyo"),
                    ("trv", "Sediq Taroko"),
                    ("ts", "Xitsonga"),
                    ("tsd", "Τσακωνικά"),
                    ("tt", "татарча"),
                    ("tt-cyrl", "tt"),
                    ("tt-latn", "tatarça"),
                    ("ttt", "Tati"),
                    ("tum", "chiTumbuka"),
                    ("tw", "Twi"),
                    ("twd", "Tweants"),
                    ("ty", "reo tahiti"),
                    ("tyv", "тыва дыл"),
                    ("tzl", "Talossan"),
                    ("tzm", "ⵜⴰⵎⴰⵣⵉⵖⵜ"),
                    ("udm", "удмурт"),
                    ("ug", "ug-arab"),
                    ("ug-arab", "ئۇيغۇرچە"),
                    ("ug-latn", "uyghurche"),
                    ("ug-cyrl", "уйғурчә"),
                    ("uk", "українська"),
                    ("umu", "Huluníixsuwaakan"),
                    ("ur", "اردو"),
                    ("uz", "oʻzbekcha"),
                    ("ve", "Tshivenda"),
                    ("vai", "ꕙꔤ"),
                    ("vec", "vèneto"),
                    ("vep", "vepsän kel’"),
                    ("vi", "Tiếng Việt"),
                    ("vls", "West-Vlams"),
                    ("vmf", "Mainfränkisch"),
                    ("vo", "Volapük"),
                    ("vot", "Vaďďa"),
                    ("vro", "võro"),
                    ("wa", "walon"),
                    ("war", "Winaray"),
                    ("wls", "Faka'uvea"),
                    ("wo", "Wolof"),
                    ("wuu", "吴语"),
                    ("xal", "хальмг"),
                    ("xh", "isiXhosa"),
                    ("xmf", "მარგალური"),
                    ("xsy", "SaiSiyat"),
                    ("ydd", "Eastern Yiddish"),
                    ("yi", "ייִדיש"),
                    ("yo", "Yorùbá"),
                    ("yrk", "Ненэцяʼ вада"),
                    ("yrl", "ñe'engatú"),
                    ("yua", "Maaya T'aan"),
                    ("yue", "粵語"),
                    ("za", "Vahcuengh"),
                    ("zea", "Zeêuws"),
                    ("zgh", "ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ"),
                    ("zh", "中文"),
                    ("zh-classical", "lzh"),
                    ("zh-cn", "中文(中国大陆)"),
                    ("zh-hans", "中文(简体)"),
                    ("zh-hant", "中文(繁體)"),
                    ("zh-hk", "中文(香港)"),
                    ("zh-min-nan", "nan"),
                    ("zh-mo", "中文(澳門)"),
                    ("zh-my", "中文(马来西亚)"),
                    ("zh-sg", "中文(新加坡)"),
                    ("zh-tw", "中文(台灣)"),
                    ("zh-yue", "yue"),
                    ("zh-cdo", "cdo"),
                    ("zu", "isiZulu"),
                    ("zun", "Shiwi'ma"),
                ],
                max_length=12,
                unique=True,
                validators=[TWLight.resources.models.validate_language_code],
            ),
        ),
    ]