Coverage for app/venv/lib/python3.14/site-packages/weblate/lang/migrations/0001_squashed_weblate_5.py: 100%
9 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
1# Copyright © Michal Čihař <michal@weblate.org>
2#
3# SPDX-License-Identifier: GPL-3.0-or-later
5# Generated by Django 4.2.5 on 2023-09-18 08:18
7import django.db.models.deletion
8from django.db import migrations, models
10import weblate.lang.models
11import weblate.utils.validators
14class Migration(migrations.Migration):
15 replaces = [
16 ("lang", "0001_squashed_0008_auto_20200408_0436"),
17 ("lang", "0009_auto_20200521_0753"),
18 ("lang", "0010_auto_20200627_0508"),
19 ("lang", "0011_alter_plural_source"),
20 ("lang", "0012_alter_plural_type"),
21 ("lang", "0013_alter_plural_formula"),
22 ("lang", "0014_language_population"),
23 ("lang", "0015_population"),
24 ("lang", "0016_alter_plural_source"),
25 ("lang", "0017_alter_plural_type"),
26 ("lang", "0018_alter_plural_type"),
27 ("lang", "0019_alter_plural_type"),
28 ("lang", "0020_alter_plural_source"),
29 ]
31 initial = True
33 dependencies = []
35 operations = [
36 migrations.CreateModel(
37 name="Language",
38 fields=[
39 (
40 "id",
41 models.AutoField(
42 auto_created=True,
43 primary_key=True,
44 serialize=False,
45 verbose_name="ID",
46 ),
47 ),
48 ("code", models.SlugField(unique=True, verbose_name="Language code")),
49 (
50 "name",
51 models.CharField(max_length=100, verbose_name="Language name"),
52 ),
53 (
54 "direction",
55 models.CharField(
56 choices=[
57 ("", ""),
58 ("ltr", "Left to right"),
59 ("rtl", "Right to left"),
60 ],
61 default="",
62 max_length=3,
63 verbose_name="Text direction",
64 ),
65 ),
66 (
67 "population",
68 models.BigIntegerField(
69 default=0,
70 help_text="Number of people speaking this language.",
71 verbose_name="Number of speakers",
72 ),
73 ),
74 ],
75 options={
76 "verbose_name": "Language",
77 "verbose_name_plural": "Languages",
78 "base_manager_name": "objects",
79 },
80 managers=[
81 ("objects", weblate.lang.models.LanguageManager()),
82 ],
83 ),
84 migrations.CreateModel(
85 name="Plural",
86 fields=[
87 (
88 "id",
89 models.AutoField(
90 auto_created=True,
91 primary_key=True,
92 serialize=False,
93 verbose_name="ID",
94 ),
95 ),
96 (
97 "source",
98 models.SmallIntegerField(
99 choices=[
100 (0, "Default plural"),
101 (1, "gettext plural formula"),
102 (3, "CLDR plural with zero"),
103 (4, "CLDR v38+ plural"),
104 (5, "Android plural"),
105 (2, "Manually entered formula"),
106 ],
107 default=0,
108 verbose_name="Plural definition source",
109 ),
110 ),
111 (
112 "number",
113 models.SmallIntegerField(
114 default=2, verbose_name="Number of plurals"
115 ),
116 ),
117 (
118 "formula",
119 models.TextField(
120 default="n != 1",
121 validators=[weblate.utils.validators.validate_plural_formula],
122 verbose_name="Plural formula",
123 ),
124 ),
125 (
126 "type",
127 models.IntegerField(
128 choices=[
129 (0, "None"),
130 (1, "One/other"),
131 (2, "One/few/other"),
132 (3, "Arabic languages"),
133 (11, "Zero/one/other"),
134 (4, "One/two/other"),
135 (14, "One/other/two"),
136 (6, "One/two/few/other"),
137 (13, "Other/one/two/few"),
138 (5, "One/two/three/other"),
139 (7, "One/other/zero"),
140 (8, "One/few/many/other"),
141 (9, "Two/other"),
142 (10, "One/two/few/many/other"),
143 (12, "Zero/one/two/few/many/other"),
144 (15, "Zero/other"),
145 (16, "Zero/one/few/other"),
146 (17, "Zero/one/two/few/other"),
147 (18, "Zero/one/two/other"),
148 (19, "Zero/one/few/many/other"),
149 (20, "One/many/other"),
150 (21, "Zero/one/many/other"),
151 (22, "One/few/many"),
152 (666, "Unknown"),
153 ],
154 default=666,
155 editable=False,
156 verbose_name="Plural type",
157 ),
158 ),
159 (
160 "language",
161 models.ForeignKey(
162 on_delete=django.db.models.deletion.CASCADE, to="lang.language"
163 ),
164 ),
165 ],
166 options={
167 "verbose_name": "Plural form",
168 "verbose_name_plural": "Plural forms",
169 },
170 ),
171 ]