polytypo 1.15.0 → 1.16.0
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 +1 -1
- 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/lt.json +104 -0
- data/lib/polytypo/data/locales/registry.json +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: 0bb45c49f6324b998cbae334a40be29c07ebd0b09ce9192016c4ac18e7a0b406
|
|
4
|
+
data.tar.gz: 247abf209c0ce1d5ba1e7210912991f9f02cf6fccff0a07d773b69d17009e5fa
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0c3e8783b3e6f50fb2012b0fbb792e776d872cd5cb9d9354edc806cfc750813653bdf4c85ea56794e4523e9d2e54bafa22a08f1783775271e9283124bd5986ea
|
|
7
|
+
data.tar.gz: 963149a6046f54878cf503e259927d4ec07e19b60ead0234c90aa80b01589946a802331eb52f1fde08e432202b10b352868460929d7e4a6a8af766a46b47d7ae
|
data/lib/polytypo/data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.16.0
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
{
|
|
2
|
+
"spec": "1.16.0",
|
|
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
|
+
}
|
|
@@ -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.16.0",
|
|
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",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"spec": "1.
|
|
2
|
+
"spec": "1.16.0",
|
|
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.16.0
|
|
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
|