polytypo 1.15.0 → 1.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/polytypo/data/VERSION +1 -1
- data/lib/polytypo/data/fixtures/bg.json +1 -1
- data/lib/polytypo/data/fixtures/cs.json +1 -1
- data/lib/polytypo/data/fixtures/de-CH.json +1 -1
- data/lib/polytypo/data/fixtures/de-DE.json +1 -1
- data/lib/polytypo/data/fixtures/el.json +1 -1
- data/lib/polytypo/data/fixtures/en-GB.json +1 -1
- data/lib/polytypo/data/fixtures/en-US.json +1 -1
- data/lib/polytypo/data/fixtures/es.json +20 -4
- data/lib/polytypo/data/fixtures/fi.json +1 -1
- data/lib/polytypo/data/fixtures/fr-CA.json +1 -1
- data/lib/polytypo/data/fixtures/fr.json +1 -1
- data/lib/polytypo/data/fixtures/hr.json +1 -1
- data/lib/polytypo/data/fixtures/hu.json +1 -1
- data/lib/polytypo/data/fixtures/it.json +1 -1
- data/lib/polytypo/data/fixtures/locale-resolution.json +1 -1
- data/lib/polytypo/data/fixtures/lt.json +314 -0
- data/lib/polytypo/data/fixtures/nl.json +1 -1
- data/lib/polytypo/data/fixtures/pl.json +1 -1
- data/lib/polytypo/data/fixtures/pt-BR.json +1 -1
- data/lib/polytypo/data/fixtures/pt-PT.json +1 -1
- data/lib/polytypo/data/fixtures/ro.json +1 -1
- data/lib/polytypo/data/fixtures/ru.json +1 -1
- data/lib/polytypo/data/fixtures/sk.json +1 -1
- data/lib/polytypo/data/fixtures/sl.json +1 -1
- data/lib/polytypo/data/fixtures/sr.json +1 -1
- data/lib/polytypo/data/fixtures/sv.json +1 -1
- data/lib/polytypo/data/fixtures/tr.json +1 -1
- data/lib/polytypo/data/fixtures/uk.json +1 -1
- data/lib/polytypo/data/locales/es.json +2 -2
- data/lib/polytypo/data/locales/lt.json +104 -0
- data/lib/polytypo/data/locales/registry.json +3 -2
- data/lib/polytypo/data/rules/dashes.md +3 -2
- data/lib/polytypo/data/rules/order.json +1 -1
- data/lib/polytypo/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 425cf39df821d3cebeaf6a7decfd7d5c3620f4b068a4c39aae67fe0557f71cec
|
|
4
|
+
data.tar.gz: 10cc3f7f0b1d42d4ef122eb26b56e002ab155397fd8ade250b200ef39e25e8db
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 87b57ce75053bc07efe2fdd934b7746319328b9030f3685dc29c7b21cf910e57fb6950216774c5d8d5ebc62ddd4d1bcd4b41a64f587c8986cce992eee1b1094b
|
|
7
|
+
data.tar.gz: f6a62f02aaf26c6976d4fb41690785de8591f15148924502873cdbb96966902314d48a7f759c4cf93c3ec429873881f21dc0ef8b99c9eb9e25ba0dcb06530ba2
|
data/lib/polytypo/data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.17.1
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"spec": "1.
|
|
2
|
+
"spec": "1.17.1",
|
|
3
3
|
"locale": "es",
|
|
4
4
|
"cases": [
|
|
5
5
|
{
|
|
@@ -43,12 +43,28 @@
|
|
|
43
43
|
"note": "abbreviatedAfterTerminal = false: la forma de dos puntos tras «?» que usa el ruso no existe en español, así que los dos puntos se completan a U+2026 en vez de conservarse."
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
|
-
"id": "es-dashes-parenthetical-
|
|
46
|
+
"id": "es-dashes-parenthetical-em-spaced-known-deviation",
|
|
47
47
|
"rule": "dashes",
|
|
48
48
|
"mode": "text",
|
|
49
49
|
"in": "El plan - si existe - fracasa.",
|
|
50
|
-
"out": "El plan
|
|
51
|
-
"note": "dash.parenthetical = \"
|
|
50
|
+
"out": "El plan — si existe — fracasa.",
|
|
51
|
+
"note": "dash.parenthetical = \"em-spaced\", una aproximación fijada por decisión del operador (spec 1.17.1). El DPD prescribe raya con espacios FUERA del par y ninguno dentro («El plan —si existe— fracasa.»); el enum no expresa esa asimetría, así que la salida lleva dos espacios interiores que la norma no admite. Se prefiere a dejar el guion U+002D del autor. Véase la voz dashes de es.json."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "es-dashes-double-hyphen-em-spaced-known-deviation",
|
|
55
|
+
"rule": "dashes",
|
|
56
|
+
"mode": "text",
|
|
57
|
+
"in": "Caminamos -- casi 3 km -- y estaba cerrada.",
|
|
58
|
+
"out": "Caminamos — casi 3 km — y estaba cerrada.",
|
|
59
|
+
"note": "Misma aproximación que es-dashes-parenthetical-em-spaced-known-deviation, con la forma «--» que se teclea a menudo; los espacios interiores no son los del DPD."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "es-dashes-compound-hyphen",
|
|
63
|
+
"rule": "dashes",
|
|
64
|
+
"mode": "text",
|
|
65
|
+
"in": "un texto hispano-árabe",
|
|
66
|
+
"out": "un texto hispano-árabe",
|
|
67
|
+
"note": "Guardia P1 de dashes.md §3.2: un guion desnudo y sin espacios es una palabra compuesta y no se toca."
|
|
52
68
|
},
|
|
53
69
|
{
|
|
54
70
|
"id": "es-ranges-guion-none",
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
{
|
|
2
|
+
"spec": "1.17.1",
|
|
3
|
+
"locale": "lt",
|
|
4
|
+
"cases": [
|
|
5
|
+
{
|
|
6
|
+
"id": "lt-quotes-primary",
|
|
7
|
+
"rule": "quotes",
|
|
8
|
+
"mode": "text",
|
|
9
|
+
"in": "Jis pasakė: \"taip\" ir išėjo.",
|
|
10
|
+
"out": "Jis pasakė: „taip“ ir išėjo.",
|
|
11
|
+
"note": "Drukteinis, Lietuvių kalbos skyryba (2020), table «Kabutės „ “»: primary U+201E open, U+201C close (not U+201D), no inner space."
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": "lt-quotes-nested-same-pair",
|
|
15
|
+
"rule": "quotes",
|
|
16
|
+
"mode": "text",
|
|
17
|
+
"in": "Jis pasakė: \"Manau, kad \"Karmen\" bus populiariausia.\"",
|
|
18
|
+
"out": "Jis pasakė: „Manau, kad „Karmen“ bus populiariausia.“",
|
|
19
|
+
"note": "Drukteinis, Lietuvių kalbos skyryba (2020) Prv. 5-1, p. 154: the nested quotation uses the same pair „ “; secondary equals primary."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "lt-quotes-nested-with-words",
|
|
23
|
+
"rule": "quotes",
|
|
24
|
+
"mode": "text",
|
|
25
|
+
"in": "Jis pasakė: \"Tai 'citata' iš knygos\" ir išėjo.",
|
|
26
|
+
"out": "Jis pasakė: „Tai „citata“ iš knygos“ ir išėjo.",
|
|
27
|
+
"note": "Drukteinis, Lietuvių kalbos skyryba (2020) Prv. 5-1: single straight inner quotes become the same U+201E/U+201C pair."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "lt-quotes-before-question-mark",
|
|
31
|
+
"rule": "quotes",
|
|
32
|
+
"mode": "text",
|
|
33
|
+
"in": "Ar tikrai? \"Taip!\" pasakė jis.",
|
|
34
|
+
"out": "Ar tikrai? „Taip!“ pasakė jis.",
|
|
35
|
+
"note": "Drukteinis, Lietuvių kalbos skyryba (2020): the close U+201C follows the sentence mark flush; innerSpace is none."
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "lt-quotes-already-typeset",
|
|
39
|
+
"rule": "quotes",
|
|
40
|
+
"mode": "text",
|
|
41
|
+
"in": "Jis pasakė „taip“ ir išėjo.",
|
|
42
|
+
"out": "Jis pasakė „taip“ ir išėjo.",
|
|
43
|
+
"note": "Drukteinis, Lietuvių kalbos skyryba (2020): text already carrying „ “ is a fixed point."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "lt-quotes-high-input",
|
|
47
|
+
"rule": "quotes",
|
|
48
|
+
"mode": "text",
|
|
49
|
+
"in": "Jis pasakė “taip” ir išėjo.",
|
|
50
|
+
"out": "Jis pasakė „taip“ ir išėjo.",
|
|
51
|
+
"note": "Drukteinis, Lietuvių kalbos skyryba (2020): English-style high pair input is normalised to „ “ (close U+201C, not U+201D)."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "lt-quotes-no-inner-space",
|
|
55
|
+
"rule": "quotes",
|
|
56
|
+
"mode": "text",
|
|
57
|
+
"in": "Jis pasakė: \" taip \" ir išėjo.",
|
|
58
|
+
"out": "Jis pasakė: „taip“ ir išėjo.",
|
|
59
|
+
"note": "EU Lithuanian translation style guide (2014) A.9.8: no space after the opener or before the closer; stray inner spaces are dropped."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "lt-quotes-already-typeset-nested",
|
|
63
|
+
"rule": "quotes",
|
|
64
|
+
"mode": "text",
|
|
65
|
+
"in": "Jis pasakė: „Tai „citata“ iš knygos“ ir išėjo.",
|
|
66
|
+
"out": "Jis pasakė: „Tai „citata“ iš knygos“ ir išėjo.",
|
|
67
|
+
"note": "Drukteinis, Lietuvių kalbos skyryba (2020) Prv. 5-1: an already-typeset nested pair of the same marks is a fixed point."
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "lt-quotes-wrong-closer-input",
|
|
71
|
+
"rule": "quotes",
|
|
72
|
+
"mode": "text",
|
|
73
|
+
"in": "Jis pasakė „taip” ir išėjo.",
|
|
74
|
+
"out": "Jis pasakė „taip“ ir išėjo.",
|
|
75
|
+
"note": "Drukteinis, Lietuvių kalbos skyryba (2020): the closer is U+201C, not U+201D; input closed with U+201D is normalised."
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "lt-quotes-nest-at-end-declined",
|
|
79
|
+
"rule": "quotes",
|
|
80
|
+
"mode": "text",
|
|
81
|
+
"in": "Jis pasakė: \"Tai 'citata'\" ir išėjo.",
|
|
82
|
+
"out": "Jis pasakė: \"Tai ’citata'\" ir išėjo.",
|
|
83
|
+
"note": "ACCEPTED COST: with the identical pair the inner mark touches the outer one, which the engine declines (quotes.md §6, §3.2 V1); Drukteinis, Lietuvių kalbos skyryba (2020) p. 160 prescribes writing the colliding closing marks once. Pinned so the cost is visible."
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "lt-quotes-nest-at-end-double-declined",
|
|
87
|
+
"rule": "quotes",
|
|
88
|
+
"mode": "text",
|
|
89
|
+
"in": "Jis pasakė: \"Manau, kad \"Karmen\"\" ir išėjo.",
|
|
90
|
+
"out": "Jis pasakė: \"Manau, kad \"Karmen\"\" ir išėjo.",
|
|
91
|
+
"note": "ACCEPTED COST: both straight marks at the end collide and are left as typed (quotes.md §6, §3.2 V1). Pinned so the cost is visible."
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "lt-quotes-nest-at-start-declined",
|
|
95
|
+
"rule": "quotes",
|
|
96
|
+
"mode": "text",
|
|
97
|
+
"in": "Jis pasakė: \"'Karmen' bus\" ir išėjo.",
|
|
98
|
+
"out": "Jis pasakė: \"'Karmen’ bus\" ir išėjo.",
|
|
99
|
+
"note": "ACCEPTED COST: the inner mark touching the outer opener is declined (quotes.md §6, §3.2 V1). Pinned so the cost is visible."
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "lt-ellipsis-three-dots",
|
|
103
|
+
"rule": "ellipsis",
|
|
104
|
+
"mode": "text",
|
|
105
|
+
"in": "Palauk... ir tada.",
|
|
106
|
+
"out": "Palauk… ir tada.",
|
|
107
|
+
"note": "Three dots become one U+2026."
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "lt-ellipsis-after-question",
|
|
111
|
+
"rule": "ellipsis",
|
|
112
|
+
"mode": "text",
|
|
113
|
+
"in": "Ką pasakysiu?...",
|
|
114
|
+
"out": "Ką pasakysiu?..",
|
|
115
|
+
"note": "Drukteinis, Lietuvių kalbos skyryba (2020) Prv. 3-1, p. 141 «pasakysiu?..»: after ? or ! two dots, not three (abbreviatedAfterTerminal true)."
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "lt-ellipsis-after-exclamation",
|
|
119
|
+
"rule": "ellipsis",
|
|
120
|
+
"mode": "text",
|
|
121
|
+
"in": "Neskubėk!...",
|
|
122
|
+
"out": "Neskubėk!..",
|
|
123
|
+
"note": "Drukteinis, Lietuvių kalbos skyryba (2020) Prv. 3-1, p. 141 «neskubėk!..»: after ! two dots."
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"id": "lt-ellipsis-question-exclamation-accepted-cost",
|
|
127
|
+
"rule": "ellipsis",
|
|
128
|
+
"mode": "text",
|
|
129
|
+
"in": "Kas?!...",
|
|
130
|
+
"out": "Kas?!..",
|
|
131
|
+
"note": "ACCEPTED COST: the norm gives «?!.» (Drukteinis, Lietuvių kalbos skyryba (2020), p. 8); the engine reduces three dots after a terminal run to two (ellipsis.md §3.4). Pinned so the cost is visible."
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"id": "lt-ellipsis-double-terminal-question-accepted-cost",
|
|
135
|
+
"rule": "ellipsis",
|
|
136
|
+
"mode": "text",
|
|
137
|
+
"in": "Kas!!?...",
|
|
138
|
+
"out": "Kas!!?..",
|
|
139
|
+
"note": "ACCEPTED COST: the norm keeps three dots after three marks (Drukteinis, Lietuvių kalbos skyryba (2020), p. 140 «!!?...»); the engine gives two (ellipsis.md §3.4). Pinned so the cost is visible."
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "lt-ellipsis-triple-terminal-accepted-cost",
|
|
143
|
+
"rule": "ellipsis",
|
|
144
|
+
"mode": "text",
|
|
145
|
+
"in": "Kur!!!...",
|
|
146
|
+
"out": "Kur!!!..",
|
|
147
|
+
"note": "ACCEPTED COST: the norm keeps three dots after three marks (Drukteinis, Lietuvių kalbos skyryba (2020), Prv. 3-1 «kur!!!...»); the engine gives two. Pinned so the cost is visible."
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"id": "lt-dashes-parenthetical",
|
|
151
|
+
"rule": "dashes",
|
|
152
|
+
"mode": "text",
|
|
153
|
+
"in": "Jis pasakė - žinoma - kad ateis.",
|
|
154
|
+
"out": "Jis pasakė – žinoma – kad ateis.",
|
|
155
|
+
"note": "Drukteinis, Lietuvių kalbos skyryba (2020) p. 9, EU Lithuanian translation style guide (2014) A.4: a dash between words takes a space on both sides; the width is U+2013 (U+2014 is for indents only)."
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"id": "lt-dashes-em-input",
|
|
159
|
+
"rule": "dashes",
|
|
160
|
+
"mode": "text",
|
|
161
|
+
"in": "Tai — žinoma — gerai.",
|
|
162
|
+
"out": "Tai – žinoma – gerai.",
|
|
163
|
+
"note": "EU Lithuanian translation style guide (2014) A.4: U+2014 is reserved for indents, so an em dash between words is set as the spaced en dash."
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"id": "lt-dashes-existing-en",
|
|
167
|
+
"rule": "dashes",
|
|
168
|
+
"mode": "text",
|
|
169
|
+
"in": "Sūnus – dukra atėjo.",
|
|
170
|
+
"out": "Sūnus – dukra atėjo.",
|
|
171
|
+
"note": "An en dash already spaced is left alone."
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"id": "lt-ranges-digits-tight",
|
|
175
|
+
"rule": "ranges",
|
|
176
|
+
"mode": "text",
|
|
177
|
+
"in": "1999-2000 m. ir 15-22 d.",
|
|
178
|
+
"out": "1999–2000 m. ir 15–22 d.",
|
|
179
|
+
"note": "EU Lithuanian translation style guide (2014) A.4.2.1, A.9.11: «2006–2009 m.; 15–22 d.», no spaces around the dash; the en-tight form carries U+2060 either side (ranges.md §3).",
|
|
180
|
+
"rules": {
|
|
181
|
+
"ranges": true
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"id": "lt-ranges-already-tight",
|
|
186
|
+
"rule": "ranges",
|
|
187
|
+
"mode": "text",
|
|
188
|
+
"in": "2001–2006 m.",
|
|
189
|
+
"out": "2001–2006 m.",
|
|
190
|
+
"note": "EU Lithuanian translation style guide (2014) A.9.11: an en dash between digits gets the same en-tight treatment and the result is a fixed point (ranges.md §3).",
|
|
191
|
+
"rules": {
|
|
192
|
+
"ranges": true
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"id": "lt-ranges-already-dash-joined-members",
|
|
197
|
+
"rule": "ranges",
|
|
198
|
+
"mode": "text",
|
|
199
|
+
"in": "2010–2011 – 2012–2013",
|
|
200
|
+
"out": "2010–2011 – 2012–2013",
|
|
201
|
+
"note": "EU Lithuanian translation style guide (2014) A.4.2.1: members that are already dash-joined take spaced dashes; the middle token is left as it is (ranges.md G2).",
|
|
202
|
+
"rules": {
|
|
203
|
+
"ranges": true
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"id": "lt-ranges-word-hyphen-untouched",
|
|
208
|
+
"rule": "ranges",
|
|
209
|
+
"mode": "text",
|
|
210
|
+
"in": "birželis-rugpjūtis",
|
|
211
|
+
"out": "birželis-rugpjūtis",
|
|
212
|
+
"note": "ranges.md §2: only digit flanks qualify; a hyphen between words is untouched.",
|
|
213
|
+
"rules": {
|
|
214
|
+
"ranges": true
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"id": "lt-hyphen-noop",
|
|
219
|
+
"rule": "hyphen",
|
|
220
|
+
"mode": "text",
|
|
221
|
+
"in": "lopšelis-darželis",
|
|
222
|
+
"out": "lopšelis-darželis",
|
|
223
|
+
"note": "LKRS 1992 p. 73 (via Gudzinevičiūtė): breaking at the hyphen is provided for; the hyphen lists are empty and the text is unchanged."
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"id": "lt-nbsp-units",
|
|
227
|
+
"rule": "nbsp",
|
|
228
|
+
"mode": "text",
|
|
229
|
+
"in": "10 % ir 5 € ir 23 °C ir 1 000 kg ir 3 km ir 5 cm ir 33 mm",
|
|
230
|
+
"out": "10 % ir 5 € ir 23 °C ir 1 000 kg ir 3 km ir 5 cm ir 33 mm",
|
|
231
|
+
"note": "EU Lithuanian translation style guide (2014) A.9.5: units and symbols follow the number without a break; beforeUnits binds each with U+00A0."
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"id": "lt-nbsp-unit-words",
|
|
235
|
+
"rule": "nbsp",
|
|
236
|
+
"mode": "text",
|
|
237
|
+
"in": "40 mln. ir 17 val. 20 min. ir 100 proc. ir 5 EUR",
|
|
238
|
+
"out": "40 mln. ir 17 val. 20 min. ir 100 proc. ir 5 EUR",
|
|
239
|
+
"note": "EU Lithuanian translation style guide (2014) A.9.5: «40 mln., 17 val. 20 min., 100 proc.»; beforeUnits binds each with U+00A0."
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"id": "lt-nbsp-year-day",
|
|
243
|
+
"rule": "nbsp",
|
|
244
|
+
"mode": "text",
|
|
245
|
+
"in": "2007 m. liepos 16 d.",
|
|
246
|
+
"out": "2007 m. liepos 16 d.",
|
|
247
|
+
"note": "EU Lithuanian translation style guide (2014) A.9.5: «2007 m. liepos 16 d.»; m. and d. after a number are bound."
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"id": "lt-nbsp-single-letter-unit-inert",
|
|
251
|
+
"rule": "nbsp",
|
|
252
|
+
"mode": "text",
|
|
253
|
+
"in": "5 m ir 3 g",
|
|
254
|
+
"out": "5 m ir 3 g",
|
|
255
|
+
"note": "Single-letter units are excluded by decision (m and g are also common words or initials); nothing is bound."
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"id": "lt-nbsp-abbreviations",
|
|
259
|
+
"rule": "nbsp",
|
|
260
|
+
"mode": "text",
|
|
261
|
+
"in": "taip, t. y. šitaip, t. t. ir š. m. rugsėjį",
|
|
262
|
+
"out": "taip, t. y. šitaip, t. t. ir š. m. rugsėjį",
|
|
263
|
+
"note": "EU Lithuanian translation style guide (2014) A.9.4: «t. y., t. t., š. m.»; abbreviations binds each with U+00A0."
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"id": "lt-nbsp-section-sign",
|
|
267
|
+
"rule": "nbsp",
|
|
268
|
+
"mode": "text",
|
|
269
|
+
"in": "žr. § 19",
|
|
270
|
+
"out": "žr. § 19",
|
|
271
|
+
"note": "EU Lithuanian translation style guide (2014) A.9.5: «§ 19»; afterSymbols binds § with U+00A0."
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"id": "lt-nbsp-initials-inert",
|
|
275
|
+
"rule": "nbsp",
|
|
276
|
+
"mode": "text",
|
|
277
|
+
"in": "E. Petraitis ir J. M. Barroso",
|
|
278
|
+
"out": "E. Petraitis ir J. M. Barroso",
|
|
279
|
+
"note": "initialBinding is none by decision (house style only): initials are not bound."
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"id": "lt-nbsp-short-words-inert",
|
|
283
|
+
"rule": "nbsp",
|
|
284
|
+
"mode": "text",
|
|
285
|
+
"in": "į namus ir su draugu",
|
|
286
|
+
"out": "į namus ir su draugu",
|
|
287
|
+
"note": "EU Lithuanian translation style guide (2014) A.9.2–A.9.7 enumerate the no-break cases without prepositions or conjunctions; afterShortWords is empty, so nothing is bound."
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"id": "lt-spaces-brackets",
|
|
291
|
+
"rule": "spaces",
|
|
292
|
+
"mode": "text",
|
|
293
|
+
"in": "Jis ( tyliai ) išėjo .",
|
|
294
|
+
"out": "Jis (tyliai) išėjo.",
|
|
295
|
+
"note": "Spaces: no space inside brackets or before a closing mark (spaces.md)."
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"id": "lt-symbols-copyright",
|
|
299
|
+
"rule": "symbols",
|
|
300
|
+
"mode": "text",
|
|
301
|
+
"in": "(c) 2026",
|
|
302
|
+
"out": "© 2026",
|
|
303
|
+
"note": "symbols.md: (c) becomes ©, independent of the locale."
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"id": "lt-apostrophe-foreign-name",
|
|
307
|
+
"rule": "apostrophe",
|
|
308
|
+
"mode": "text",
|
|
309
|
+
"in": "O'Brien atėjo.",
|
|
310
|
+
"out": "O’Brien atėjo.",
|
|
311
|
+
"note": "apostrophe.md: a straight apostrophe inside a foreign name becomes U+2019."
|
|
312
|
+
}
|
|
313
|
+
]
|
|
314
|
+
}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
"dash": {
|
|
22
|
-
"parenthetical": "
|
|
22
|
+
"parenthetical": "em-spaced",
|
|
23
23
|
"range": "none"
|
|
24
24
|
},
|
|
25
25
|
"ellipsis": {
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"rule": "dashes",
|
|
68
68
|
"cite": "RAE y ASALE, Diccionario panhispánico de dudas, entrada «raya», apartado 2: «Como el resto de los signos dobles, se escriben pegadas a la primera y a la última palabra del periodo que enmarcan, y separadas por un espacio de la palabra o signo que las precede o las sigue»",
|
|
69
69
|
"url": "https://www.rae.es/dpd/raya",
|
|
70
|
-
"note": "parenthetical = \"
|
|
70
|
+
"note": "parenthetical = \"em-spaced\" ES UNA APROXIMACIÓN CONSCIENTE, no la norma, y se fijó por decisión del operador (27.10.2026). La fuente es explícita y prescribe espacios ORDINARIOS FUERA del par y ninguno en los bordes interiores («Llegó —por fin— a casa»). El enum no expresa esa asimetría: \"em-spaced\" pone un espacio a cada lado de CADA raya, de modo que el texto resultante lleva dos espacios interiores que el DPD no admite («Llegó — por fin — a casa»); \"em-tight\" suprimiría los exteriores que la frase exige y pegaría la raya a la palabra anterior, que es peor. Se eligió \"em-spaced\" porque conserva la longitud correcta del signo (U+2014, no el guion U+002D que el autor escribió) y los espacios exteriores, y solo falla en los interiores. Mientras el esquema no pueda expresar la asimetría, este valor sigue siendo una aproximación y no indica que el DPD prescriba espacios interiores. Hasta spec 1.16.0 el valor era \"none\" (la regla no tocaba nada). Consultado el 18.09.2026."
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
73
|
"rule": "ranges",
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"locale": "lt",
|
|
3
|
+
"name": "Lithuanian",
|
|
4
|
+
"quotes": {
|
|
5
|
+
"primary": {
|
|
6
|
+
"open": "„",
|
|
7
|
+
"close": "“",
|
|
8
|
+
"innerSpace": "none"
|
|
9
|
+
},
|
|
10
|
+
"secondary": {
|
|
11
|
+
"open": "„",
|
|
12
|
+
"close": "“",
|
|
13
|
+
"innerSpace": "none"
|
|
14
|
+
},
|
|
15
|
+
"elisionIdioms": [],
|
|
16
|
+
"elisionClitics": {
|
|
17
|
+
"before": [],
|
|
18
|
+
"after": []
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"dash": {
|
|
22
|
+
"parenthetical": "en-spaced",
|
|
23
|
+
"range": "en-tight"
|
|
24
|
+
},
|
|
25
|
+
"ellipsis": {
|
|
26
|
+
"abbreviatedAfterTerminal": true
|
|
27
|
+
},
|
|
28
|
+
"hyphen": {
|
|
29
|
+
"prefixes": [],
|
|
30
|
+
"suffixes": [],
|
|
31
|
+
"compounds": []
|
|
32
|
+
},
|
|
33
|
+
"nbsp": {
|
|
34
|
+
"beforePunctuation": [],
|
|
35
|
+
"narrowBeforePunctuation": [],
|
|
36
|
+
"afterShortWords": [],
|
|
37
|
+
"abbreviations": ["t. y.", "t. t.", "š. m."],
|
|
38
|
+
"beforeUnits": [
|
|
39
|
+
"%",
|
|
40
|
+
"proc.",
|
|
41
|
+
"°C",
|
|
42
|
+
"kg",
|
|
43
|
+
"km",
|
|
44
|
+
"cm",
|
|
45
|
+
"mm",
|
|
46
|
+
"EUR",
|
|
47
|
+
"Eur",
|
|
48
|
+
"€",
|
|
49
|
+
"mln.",
|
|
50
|
+
"val.",
|
|
51
|
+
"min.",
|
|
52
|
+
"m.",
|
|
53
|
+
"d."
|
|
54
|
+
],
|
|
55
|
+
"beforeNumber": [],
|
|
56
|
+
"beforeWord": [],
|
|
57
|
+
"afterSymbols": ["§"],
|
|
58
|
+
"initialBinding": "none"
|
|
59
|
+
},
|
|
60
|
+
"sources": [
|
|
61
|
+
{
|
|
62
|
+
"rule": "quotes",
|
|
63
|
+
"cite": "A. Drukteinis (ed.), Lietuvių kalbos skyryba. Taisyklės, komentarai, patarimai, Mokslo ir enciklopedijų leidybos centras, Vilnius 2020 (ISBN 978-5-420-01828-6; «Valstybinė lietuvių kalbos komisija pritaria»; rules match VLKK nutarimas «Dėl Lietuvių kalbos skyrybos taisyklių», 2019), Įvadas p. 8 (table «Kabutės „ “»); Prv. 4-2, 5-1 (pp. 149–158); Prv. 5-1 p. 154 «„Manau, kad po kokių dešimties metų „Karmen“ bus populiariausia pasaulyje opera.“»; 5-1 Komentarai 2 (p. 160)",
|
|
64
|
+
"url": "https://emokykla.lt/upload/files/2024/07/08/liet-k-skyryba.pdf",
|
|
65
|
+
"note": "Primary: U+201E open, U+201C close (NOT U+201D). Secondary equals primary, as in bg: Prv. 5-1 nests with the same pair, and no single-mark nesting level is attested (LKRS 1992's single marks for cultivar names are a special use, not nesting). Not doubling colliding closing marks (p. 160, compensation) is an algorithm, not data. ACCEPTED COST of the identical pair: a nest whose inner mark touches the outer one is declined, left as typed or converted only in part (quotes.md §6, §3.2 V1), and pinned by fixtures. innerSpace none for both. Q-W: both WIDE. elisionIdioms and elisionClitics empty: no closed set in any source. VLKK-endorsed; the Prv. boxes are the 2019 nutarimas rules, and the nutarimas itself (vlkk.lt, HTTP 403) was not read. The PDF was read as page images, so code points are identified from glyph shape (MEDIUM-HIGH) and corroborated by the Alt codes in the DGT entry. Retrieved 2026-10-25."
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"rule": "quotes",
|
|
69
|
+
"cite": "European Commission, Europos Sąjungos institucijų vertimo į lietuvių kalbą vadovas (2014), A.8: «Lietuviškų kabučių grafinė raiška yra „abc“ (apačioje devynetukai, viršuje – šešetukai) … (Alt+0132 ir Alt+0147)»; A.8.13: «Dvigubos kabutės nerekomenduojamos (plg. www.vlkk.lt/lit/7696)», recommended «„kilo ginčų dėl bendrovės „Microsoft“.»; A.9.8 (no space inside quotation marks)",
|
|
70
|
+
"url": "http://www.laraneda.lt/failai/interinstitutional_translation_guide_lt.pdf",
|
|
71
|
+
"note": "SECONDARY (EU house style, predates the 2019 rules). Alt 0132/0147 = cp1252 0x84/0x93 = U+201E/U+201C, the code-point corroboration of the primary entry. A.8.13's «dvigubos kabutės» are doubled closing marks, not single inner quotes. The URL is an unofficial mirror; no official europa.eu location was found. Retrieved 2026-10-25."
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"rule": "dashes",
|
|
75
|
+
"cite": "A. Drukteinis (ed.), Lietuvių kalbos skyryba (2020), Įvadas p. 8 (table «Brūkšnys –»), p. 9: «Brūkšnys ir viengubas bei dvigubas pasvirasis dešininis brūkšnys rašomi su tarpeliais iš abiejų pusių»; European Commission, ES institucijų vertimo į lietuvių kalbą vadovas (2014), A.4: «ilgasis brūkšnys (—) vartojamas tik įtraukoms žymėti (Alt+0151), o tekstuose rašomas pusilgis brūkšnys (–) (… Alt+0150)»; «Kai brūkšnys vartojamas kaip skyrybos ženklas, abipus paliekami tarpai»",
|
|
76
|
+
"url": "https://emokykla.lt/upload/files/2024/07/08/liet-k-skyryba.pdf",
|
|
77
|
+
"note": "dash.parenthetical = en-spaced (U+0020 U+2013 U+0020). The spaces are normative (HIGH). The width comes from DGT's Alt 0150 (HIGH); DGT reserves U+2014 for indentation only. VDU's «ilgas brūkšnys» names the same Alt 0150 mark, so the naming difference is not a conflict. Retrieved 2026-10-25."
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"rule": "ranges",
|
|
81
|
+
"cite": "European Commission, ES institucijų vertimo į lietuvių kalbą vadovas (2014), A.4.2.1 («2006–2009 m.; 15–22 d.»), A.9.11: «Tarpų nepaliekama tarp žodžių ar skaitmenų, kuriais nurodomos tam tikros ribos, ir brūkšnio … 2001–2006 m.»; Vilniaus universitetas ChGF, Kalbos patarimai (2021): «Brūkšnys riboms žymėti rašomas be tarpų, ypač tarpai nepaliekami tarp ribas žyminčių skaitmenų. 2017–2020 m.»",
|
|
82
|
+
"url": "http://www.laraneda.lt/failai/interinstitutional_translation_guide_lt.pdf",
|
|
83
|
+
"note": "dash.range = en-tight. HIGH across two house-style sources (DGT, VU) and LKŽin 1998:376 (read via O. L. Gudzinevičiūtė, Kalbos kultūra 85). DGT A.4.2.1 requires spaces when the members are already dash-joined («2010–2011 – 2012–2013»); that case is pinned by a fixture. Spaced multi-word dates are not range candidates. The VLKK 2022 rašybos taisyklės §11.2 is reported to agree but was not read. The ranges rule is off by default. Retrieved 2026-10-25."
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"rule": "ellipsis",
|
|
87
|
+
"cite": "A. Drukteinis (ed.), Lietuvių kalbos skyryba (2020), Įvadas p. 8: «po šauktuko ar klaustuko rašomi du, o ne trys taškai (!.., ?..); šauktuko, klaustuko ir daugtaškio derinyje – tik vienas papildomas taškas (!?., ?!.)»; Prv. 3-1 (p. 141): «pasakysiu?..», «neskubėk!..», «kur!!!...»; p. 140 («!!?...»)",
|
|
88
|
+
"url": "https://emokykla.lt/upload/files/2024/07/08/liet-k-skyryba.pdf",
|
|
89
|
+
"note": "abbreviatedAfterTerminal = true, normative (HIGH). Agrees with LKŽin 1998:349 and LKRS 1992:135 (read via Gudzinevičiūtė). ACCEPTED COSTS, pinned by fixtures: «?!...» becomes «?!..», whereas the norm is «?!.»; «!!?...» and «!!!...», which are norm-correct, become «!!?..» and «!!!..». Retrieved 2026-10-25."
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"rule": "hyphen",
|
|
93
|
+
"cite": "O. L. Gudzinevičiūtė, «Keli probleminiai rašybos ir skyrybos ženklų vartojimo atvejai», Kalbos kultūra 85, pp. 131–132, citing LKRS (1992) p. 73: «lopšelis- /-darželis»",
|
|
94
|
+
"url": "https://journals.lki.lt/bendrinekalba/article/download/237/303/",
|
|
95
|
+
"note": "All three lists are empty. Breaking at a hyphen is provided for, with the hyphen repeated, and no source gives a closed list of unbreakable hyphenated forms. SECONDARY route to LKRS. Retrieved 2026-10-25."
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"rule": "nbsp",
|
|
99
|
+
"cite": "European Commission, ES institucijų vertimo į lietuvių kalbą vadovas (2014), A.9: jungiamasis tarpas «renkamas tada, kai norima, kad tekstas (pvz., skaičius ir mato simbolis) išliktų vienoje eilutėje»; A.9.4 «t. y., t. t., š. m.; E. Petraitis, R. Jutkonytė, J. M. Barroso»; A.9.5 «40 mln., 2007 m. liepos 16 d., 17 val. 20 min., § 19, 100 %, 100 proc., 23 °C, 5 000 EUR, 1 000 kg»; A.9.8 (no space before . ! ? : … , ;); A.9.9 (angular degrees closed up); Vilniaus universitetas ChGF, Kalbos patarimai (2021): nepertraukiamas tarpas for initials, units, currency and %; «53 €», «53 Eur»; A. Drukteinis (2020) p. 142 «33,00 mm»",
|
|
100
|
+
"url": "http://www.laraneda.lt/failai/interinstitutional_translation_guide_lt.pdf",
|
|
101
|
+
"note": "SECONDARY throughout (house styles; no norm of VLKK states a no-break rule). (1) beforePunctuation and narrowBeforePunctuation are empty: a stated negative (A.9.8; Drukteinis p. 9), not silence. (2) beforeUnits = %, proc., °C, kg, km, cm, mm, EUR, Eur, €, mln., val., min., m., d.: the no-break intent is stated (DGT A.9, VU), and km and cm are spaced in A.4.2.2; m. and d. are the year and day abbreviations of A.9.5 («2007 m. liepos 16 d.»), the same footing as bg «г.». DECISIONS: single-letter m (metre) and g are excluded, as in hr, sk, bg and sl; bare ° is not listed, since angular degrees are closed up; ‰ is not attested; vnt. and t. p. are not listed (form evidence only). (3) afterSymbols = §. (4) abbreviations = t. y., t. t., š. m., as named in A.9.4. (5) initialBinding = none: DGT A.9.4 and VU bind a single initial, but that is house style only and a rule on single initials collides at sentence boundaries; DECISION, MEDIUM. (6) afterShortWords is empty: no source binds į, ir, o, ar, su or iš, and DGT A.9.2–A.9.7 enumerates the no-break cases without them. beforeNumber and beforeWord are empty: decisions, not citations. Retrieved 2026-10-25."
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"spec": "1.
|
|
2
|
+
"spec": "1.17.1",
|
|
3
3
|
"$comment": "Locale resolution input. Algorithm is specified in spec/rules/locale-resolution.md and is identical in every runtime — never delegate it to a platform locale-negotiation library. \"spec\" here must track spec/VERSION exactly — it is not itself the global version source; scripts/validate-spec.mjs enforces the match.",
|
|
4
4
|
"locales": [
|
|
5
5
|
"en-US",
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
"bg",
|
|
28
28
|
"hr",
|
|
29
29
|
"sr",
|
|
30
|
-
"sl"
|
|
30
|
+
"sl",
|
|
31
|
+
"lt"
|
|
31
32
|
],
|
|
32
33
|
"aliases": {
|
|
33
34
|
"en": "en-US",
|
|
@@ -902,8 +902,9 @@ never reaches a digit-flanked token at all.
|
|
|
902
902
|
|
|
903
903
|
The first locale with `"none"` on **both** fields, so the rule is a **total no-op** for it in the
|
|
904
904
|
same provable sense `hyphen` is a no-op for a locale with empty lists. It is no longer the only
|
|
905
|
-
one: `
|
|
906
|
-
recorded in its own locale file.
|
|
905
|
+
one: `tr` (spec 1.6.0) is both-`none` too, and `es` was from spec 1.3.0 until 1.17.1, each for its
|
|
906
|
+
own reason and each recorded in its own locale file. (`es` now sets `parenthetical` to `"em-spaced"`
|
|
907
|
+
as a known approximation — see its locale file — and keeps `range` at `"none"`.) This section stays written about `el` because its two fields are
|
|
907
908
|
`"none"` for two *different* reasons, which is what makes it worth reading. Tokens are still
|
|
908
909
|
classified — §3.3's "a range token is never reconsidered as a parenthetical" still holds — but no
|
|
909
910
|
classification has an emission to make. The rows below are therefore all "no change" rows by
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"spec": "1.
|
|
2
|
+
"spec": "1.17.1",
|
|
3
3
|
"$comment": "Single source of truth for pipeline order. Rules run in ascending `order`. Disabling a rule removes it from the sequence and never reorders the rest. Rule ids are public API (see docs/ARCHITECTURE.md section 5). \"spec\" here must track spec/VERSION exactly — it is not itself the global version source; scripts/validate-spec.mjs enforces the match.",
|
|
4
4
|
"rules": [
|
|
5
5
|
{
|
data/lib/polytypo/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: polytypo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.17.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Iurii Rogulia
|
|
@@ -55,6 +55,7 @@ files:
|
|
|
55
55
|
- lib/polytypo/data/fixtures/hu.json
|
|
56
56
|
- lib/polytypo/data/fixtures/it.json
|
|
57
57
|
- lib/polytypo/data/fixtures/locale-resolution.json
|
|
58
|
+
- lib/polytypo/data/fixtures/lt.json
|
|
58
59
|
- lib/polytypo/data/fixtures/nl.json
|
|
59
60
|
- lib/polytypo/data/fixtures/pl.json
|
|
60
61
|
- lib/polytypo/data/fixtures/pt-BR.json
|
|
@@ -81,6 +82,7 @@ files:
|
|
|
81
82
|
- lib/polytypo/data/locales/hr.json
|
|
82
83
|
- lib/polytypo/data/locales/hu.json
|
|
83
84
|
- lib/polytypo/data/locales/it.json
|
|
85
|
+
- lib/polytypo/data/locales/lt.json
|
|
84
86
|
- lib/polytypo/data/locales/nl.json
|
|
85
87
|
- lib/polytypo/data/locales/pl.json
|
|
86
88
|
- lib/polytypo/data/locales/pt-BR.json
|