polytypo 1.14.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 +247 -0
- 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 +4 -2
- data/lib/polytypo/data/locales/sl.json +82 -0
- data/lib/polytypo/data/rules/order.json +1 -1
- data/lib/polytypo/version.rb +1 -1
- metadata +5 -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,247 @@
|
|
|
1
|
+
{
|
|
2
|
+
"spec": "1.16.0",
|
|
3
|
+
"locale": "sl",
|
|
4
|
+
"cases": [
|
|
5
|
+
{
|
|
6
|
+
"id": "sl-quotes-primary",
|
|
7
|
+
"rule": "quotes",
|
|
8
|
+
"mode": "text",
|
|
9
|
+
"in": "Rekel je: \"da\" in odšel.",
|
|
10
|
+
"out": "Rekel je: »da« in odšel.",
|
|
11
|
+
"note": "Slovenski pravopis 2001 §461 lists the double middle pair » « (U+00BB open, U+00AB close) first and every example uses it; chosen by decision. The low-high pair is handwriting (§465)."
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": "sl-quotes-nested-secondary",
|
|
15
|
+
"rule": "quotes",
|
|
16
|
+
"mode": "text",
|
|
17
|
+
"in": "Rekel je: \"pesem 'Zdravljica' je himna\" in odšel.",
|
|
18
|
+
"out": "Rekel je: »pesem ›Zdravljica‹ je himna« in odšel.",
|
|
19
|
+
"note": "Slovenski pravopis 2001 §461: a quotation inside a quotation takes the single middle pair › ‹ (U+203A, U+2039), by decision (§463's own example nests „…“ and ‚…‘)."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "sl-quotes-nested-at-end",
|
|
23
|
+
"rule": "quotes",
|
|
24
|
+
"mode": "text",
|
|
25
|
+
"in": "Rekel je: \"pesem 'Zdravljica'\".",
|
|
26
|
+
"out": "Rekel je: »pesem ›Zdravljica‹«.",
|
|
27
|
+
"note": "Slovenski pravopis 2001 §463: the inner level may end where the outer one does."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "sl-quotes-before-question-mark",
|
|
31
|
+
"rule": "quotes",
|
|
32
|
+
"mode": "text",
|
|
33
|
+
"in": "Ali res? \"Da!\" je rekel.",
|
|
34
|
+
"out": "Ali res? »Da!« je rekel.",
|
|
35
|
+
"note": "Slovenski pravopis 2001 §461: the close U+00AB follows the sentence mark flush; innerSpace is none."
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "sl-quotes-question-inside",
|
|
39
|
+
"rule": "quotes",
|
|
40
|
+
"mode": "text",
|
|
41
|
+
"in": "\"Kaj?\" je vprašal.",
|
|
42
|
+
"out": "»Kaj?« je vprašal.",
|
|
43
|
+
"note": "Slovenski pravopis 2001 §461: a quote that opens a sentence takes U+00BB, flush against the text."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "sl-quotes-reversed-guillemets",
|
|
47
|
+
"rule": "quotes",
|
|
48
|
+
"mode": "text",
|
|
49
|
+
"in": "Rekel je «da» in odšel.",
|
|
50
|
+
"out": "Rekel je »da« in odšel.",
|
|
51
|
+
"note": "Slovenski pravopis 2001 §461: input with the guillemets the French way round is normalised to » « (U+00BB open, U+00AB close)."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "sl-quotes-low-high-input",
|
|
55
|
+
"rule": "quotes",
|
|
56
|
+
"mode": "text",
|
|
57
|
+
"in": "Rekel je „da“ in odšel.",
|
|
58
|
+
"out": "Rekel je »da« in odšel.",
|
|
59
|
+
"note": "Slovenski pravopis 2001 §465: the low-high pair is the handwriting form; typeset text takes » «."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "sl-quotes-already-typeset-nested",
|
|
63
|
+
"rule": "quotes",
|
|
64
|
+
"mode": "text",
|
|
65
|
+
"in": "»pesem ›Zdravljica‹ je himna«",
|
|
66
|
+
"out": "»pesem ›Zdravljica‹ je himna«",
|
|
67
|
+
"note": "Slovenski pravopis 2001 §461: an already-typeset nested pair » › ‹ « is a fixed point."
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "sl-quotes-already-typeset-question",
|
|
71
|
+
"rule": "quotes",
|
|
72
|
+
"mode": "text",
|
|
73
|
+
"in": "»Ali prideš?« je vprašal.",
|
|
74
|
+
"out": "»Ali prideš?« je vprašal.",
|
|
75
|
+
"note": "Slovenski pravopis 2001 §461: a question mark inside already-typeset » « stays flush before the close."
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "sl-quotes-already-typeset",
|
|
79
|
+
"rule": "quotes",
|
|
80
|
+
"mode": "text",
|
|
81
|
+
"in": "Rekel je »da« in odšel.",
|
|
82
|
+
"out": "Rekel je »da« in odšel.",
|
|
83
|
+
"note": "Slovenski pravopis 2001 §461: text that already carries » « is a fixed point; a primary opener of U+00BB is not read as a closer."
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "sl-quotes-already-typeset-comma",
|
|
87
|
+
"rule": "quotes",
|
|
88
|
+
"mode": "text",
|
|
89
|
+
"in": "»Dobro,« je dejal.",
|
|
90
|
+
"out": "»Dobro,« je dejal.",
|
|
91
|
+
"note": "Slovenski pravopis 2001 §461: a comma inside the quote before the close stays; already-typeset input is unchanged."
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "sl-quotes-no-inner-space",
|
|
95
|
+
"rule": "quotes",
|
|
96
|
+
"mode": "text",
|
|
97
|
+
"in": "Rekel je: \" da \" in odšel.",
|
|
98
|
+
"out": "Rekel je: »da« in odšel.",
|
|
99
|
+
"note": "Slovenski pravopis 2001 §461: no space after the opener or before the closer (innerSpace none); the stray spaces inside the straight quotes are dropped."
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "sl-quotes-stray-period-after",
|
|
103
|
+
"rule": "quotes",
|
|
104
|
+
"mode": "text",
|
|
105
|
+
"in": "Vprašal je: \"Kaj?\".",
|
|
106
|
+
"out": "Vprašal je: »Kaj?«.",
|
|
107
|
+
"note": "Slovenski pravopis 2001 §461: the closing quote sits flush before the final period."
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "sl-ellipsis-three-dots",
|
|
111
|
+
"rule": "ellipsis",
|
|
112
|
+
"mode": "text",
|
|
113
|
+
"in": "Počakaj... in potem.",
|
|
114
|
+
"out": "Počakaj… in potem.",
|
|
115
|
+
"note": "Slovenski pravopis 2001 §399 Tri pike: three dots become one U+2026."
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "sl-ellipsis-not-abbreviated",
|
|
119
|
+
"rule": "ellipsis",
|
|
120
|
+
"mode": "text",
|
|
121
|
+
"in": "Kaj...?",
|
|
122
|
+
"out": "Kaj…?",
|
|
123
|
+
"note": "Slovenski pravopis 2001 §§399–410: no two-dot form after a terminal is prescribed (abbreviatedAfterTerminal false); the ellipsis stays whole before the mark."
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"id": "sl-dashes-parenthetical",
|
|
127
|
+
"rule": "dashes",
|
|
128
|
+
"mode": "text",
|
|
129
|
+
"in": "Rekel je - seveda - da pride.",
|
|
130
|
+
"out": "Rekel je – seveda – da pride.",
|
|
131
|
+
"note": "Slovenski pravopis 2001 §228: the dash is set with a space on both sides; navadni pomišljaj is U+2013."
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"id": "sl-dashes-existing-en",
|
|
135
|
+
"rule": "dashes",
|
|
136
|
+
"mode": "text",
|
|
137
|
+
"in": "Sin – hči sta prišla.",
|
|
138
|
+
"out": "Sin – hči sta prišla.",
|
|
139
|
+
"note": "Slovenski pravopis 2001 §228, §378: an en dash already spaced is left alone."
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "sl-ranges-digits-tight",
|
|
143
|
+
"rule": "ranges",
|
|
144
|
+
"mode": "text",
|
|
145
|
+
"in": "vojna 1941-1945 in str. 125-132",
|
|
146
|
+
"out": "vojna 1941–1945 in str. 125–132",
|
|
147
|
+
"note": "Slovenski pravopis 2001 §394: the dash for od … do is written closed up: v letih 1941–1945, str. 125–132. ranges.md §3: the en-tight form carries U+2060 on both sides.",
|
|
148
|
+
"rules": {
|
|
149
|
+
"ranges": true
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"id": "sl-ranges-already-tight",
|
|
154
|
+
"rule": "ranges",
|
|
155
|
+
"mode": "text",
|
|
156
|
+
"in": "v letih 1941–1945",
|
|
157
|
+
"out": "v letih 1941–1945",
|
|
158
|
+
"note": "Slovenski pravopis 2001 §394, ranges.md §3: an en dash between digits gets the same en-tight treatment and the result is a fixed point.",
|
|
159
|
+
"rules": {
|
|
160
|
+
"ranges": true
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"id": "sl-ranges-word-hyphen-untouched",
|
|
165
|
+
"rule": "ranges",
|
|
166
|
+
"mode": "text",
|
|
167
|
+
"in": "proga Ljubljana-Trst",
|
|
168
|
+
"out": "proga Ljubljana-Trst",
|
|
169
|
+
"note": "Slovenski pravopis 2001 §394, ranges.md §2: a hyphen between words is not a range; only digit flanks qualify.",
|
|
170
|
+
"rules": {
|
|
171
|
+
"ranges": true
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"id": "sl-hyphen-noop",
|
|
176
|
+
"rule": "hyphen",
|
|
177
|
+
"mode": "text",
|
|
178
|
+
"in": "slovensko-angleški slovar",
|
|
179
|
+
"out": "slovensko-angleški slovar",
|
|
180
|
+
"note": "Slovenski pravopis 2001 §608: breaking at the hyphen is provided for, so the hyphen lists are empty and the text is unchanged."
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"id": "sl-nbsp-units",
|
|
184
|
+
"rule": "nbsp",
|
|
185
|
+
"mode": "text",
|
|
186
|
+
"in": "10 % in 5 € in 38 °C in 10 kg in 3 km in 16 ‰",
|
|
187
|
+
"out": "10 % in 5 € in 38 °C in 10 kg in 3 km in 16 ‰",
|
|
188
|
+
"note": "Slovenski pravopis 2001 §610: units follow the number without a break (5 m, 10 kg); § 259 «38 °C»; the draft lists % ‰ €. beforeUnits binds each with U+00A0."
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"id": "sl-nbsp-single-letter-unit-inert",
|
|
192
|
+
"rule": "nbsp",
|
|
193
|
+
"mode": "text",
|
|
194
|
+
"in": "5 m in 3 a",
|
|
195
|
+
"out": "5 m in 3 a",
|
|
196
|
+
"note": "Slovenski pravopis 2001 §610 names m, but single-letter units are excluded by decision (m, a are common words or initials); nothing is bound."
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"id": "sl-nbsp-abbreviation-ti",
|
|
200
|
+
"rule": "nbsp",
|
|
201
|
+
"mode": "text",
|
|
202
|
+
"in": "glej t. i. pojem",
|
|
203
|
+
"out": "glej t. i. pojem",
|
|
204
|
+
"note": "Slovenski pravopis 2001 §595: t. i. is written with a space; the draft states the no-break intent. abbreviations binds it with U+00A0."
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"id": "sl-nbsp-section-sign",
|
|
208
|
+
"rule": "nbsp",
|
|
209
|
+
"mode": "text",
|
|
210
|
+
"in": "glej § 10",
|
|
211
|
+
"out": "glej § 10",
|
|
212
|
+
"note": "Slovenski pravopis 2001 §235 shows § followed by a space and the number; the binding itself is from the Pravopis 8.0 draft (secondary). afterSymbols binds them with U+00A0."
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"id": "sl-nbsp-short-words-inert",
|
|
216
|
+
"rule": "nbsp",
|
|
217
|
+
"mode": "text",
|
|
218
|
+
"in": "v hiši in k mizi",
|
|
219
|
+
"out": "v hiši in k mizi",
|
|
220
|
+
"note": "Slovenski pravopis 2001 §612 concerns word division, not one-letter prepositions; afterShortWords is empty, so nothing is bound."
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"id": "sl-spaces-brackets",
|
|
224
|
+
"rule": "spaces",
|
|
225
|
+
"mode": "text",
|
|
226
|
+
"in": "Rekel ( tiho ) in odšel .",
|
|
227
|
+
"out": "Rekel (tiho) in odšel.",
|
|
228
|
+
"note": "Spaces: no space inside brackets or before a closing mark (spaces.md)."
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"id": "sl-symbols-copyright",
|
|
232
|
+
"rule": "symbols",
|
|
233
|
+
"mode": "text",
|
|
234
|
+
"in": "(c) 2026",
|
|
235
|
+
"out": "© 2026",
|
|
236
|
+
"note": "symbols.md: (c) becomes ©, independent of the locale."
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"id": "sl-apostrophe-foreign-name",
|
|
240
|
+
"rule": "apostrophe",
|
|
241
|
+
"mode": "text",
|
|
242
|
+
"in": "O'Brien je prišel.",
|
|
243
|
+
"out": "O’Brien je prišel.",
|
|
244
|
+
"note": "apostrophe.md: a straight apostrophe inside a foreign name becomes U+2019."
|
|
245
|
+
}
|
|
246
|
+
]
|
|
247
|
+
}
|
|
@@ -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",
|
|
@@ -26,7 +26,9 @@
|
|
|
26
26
|
"hu",
|
|
27
27
|
"bg",
|
|
28
28
|
"hr",
|
|
29
|
-
"sr"
|
|
29
|
+
"sr",
|
|
30
|
+
"sl",
|
|
31
|
+
"lt"
|
|
30
32
|
],
|
|
31
33
|
"aliases": {
|
|
32
34
|
"en": "en-US",
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"locale": "sl",
|
|
3
|
+
"name": "Slovenian",
|
|
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": false
|
|
27
|
+
},
|
|
28
|
+
"hyphen": {
|
|
29
|
+
"prefixes": [],
|
|
30
|
+
"suffixes": [],
|
|
31
|
+
"compounds": []
|
|
32
|
+
},
|
|
33
|
+
"nbsp": {
|
|
34
|
+
"beforePunctuation": [],
|
|
35
|
+
"narrowBeforePunctuation": [],
|
|
36
|
+
"afterShortWords": [],
|
|
37
|
+
"abbreviations": ["t. i."],
|
|
38
|
+
"beforeUnits": ["%", "‰", "€", "°C", "kg", "km"],
|
|
39
|
+
"beforeNumber": [],
|
|
40
|
+
"beforeWord": [],
|
|
41
|
+
"afterSymbols": ["§"],
|
|
42
|
+
"initialBinding": "none"
|
|
43
|
+
},
|
|
44
|
+
"sources": [
|
|
45
|
+
{
|
|
46
|
+
"rule": "quotes",
|
|
47
|
+
"cite": "SAZU / ZRC SAZU Inštitut za slovenski jezik Frana Ramovša, Slovenski pravopis 2001, I Pravila, §461 (p. 51; forms » «, › ‹, „ “, ‚ ‘, \" \"), §463 (nested quotes), §465 «Pri pisanju z roko uporabljamo dvojni narekovaj spodaj-zgoraj.», §467 (p. 52); dictionary entry narekovaj: «ločilo ‹“ ”›, ‹» «›»",
|
|
48
|
+
"url": "https://fran.si/134/slovenski-pravopis/datoteke/Pravopis_Pravila.pdf",
|
|
49
|
+
"note": "Primary: U+00BB open, U+00AB close. DECISION: §461 lists the double middle pair first, every example in §§461–466 and §473 uses it, and §465 assigns the low-high pair „ “ to handwriting. The list is introduced with «npr.» and is not explicitly ranked. Permitted variant, not adopted: U+201C/U+201D (dictionary entry; Pravopis 8.0 draft names it as equally common in computer typesetting). The issue's lead «„…“ / „…”» was an observation, not a norm; if the low-high pair were ever pinned its close is U+201C, not U+201D. Secondary: U+203A open, U+2039 close. DECISION and CONFLICT: §461 names the single middle pair (the counterpart of the primary), §463's own example nests „…“ and ‚…‘ inside »…«, and the Pravopis 8.0 draft example uses ‘…’; the single middle pair is listed in both editions. innerSpace none for both. Q-W: primary WIDE, secondary NARROW. elisionIdioms and elisionClitics are empty: §468 (Opuščaj) gives no closed set. Confidence: MEDIUM-HIGH that »…« is the print norm of the edition in force; MEDIUM on the secondary. The PDF has no text layer and was read as page images, so code points are identified from glyph shape (MEDIUM-HIGH). Pravopis 8.0 (predlog, 2026) is a draft not in force and is cited only as a secondary check. Retrieved 2026-10-24."
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"rule": "dashes",
|
|
53
|
+
"cite": "SAZU / ZRC SAZU Inštitut za slovenski jezik Frana Ramovša, Slovenski pravopis 2001, I Pravila, §228 (p. 30): «pomišljaj načeloma pišemo na obe strani s presledkom (je nestičen)»; §378, §381, §398 (pp. 44–45)",
|
|
54
|
+
"url": "https://fran.si/134/slovenski-pravopis/datoteke/Pravopis_Pravila.pdf",
|
|
55
|
+
"note": "dash.parenthetical = en-spaced (U+0020 U+2013 U+0020). The spaces are normative (HIGH). The width is a DECISION, MEDIUM-HIGH: §378 distinguishes the ordinary dash (navadni) from the long one (dolgi), which appears only between sentences or listed units; the ordinary one is U+2013 by glyph shape and in the Pravopis 8.0 draft. The PDF has no text layer and was read as page images, so code points are identified from glyph shape (MEDIUM-HIGH). Pravopis 8.0 (predlog, 2026) is a draft not in force and is cited only as a secondary check. Retrieved 2026-10-24."
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"rule": "ranges",
|
|
59
|
+
"cite": "SAZU / ZRC SAZU Inštitut za slovenski jezik Frana Ramovša, Slovenski pravopis 2001, I Pravila, §228; §394 (p. 45): «namesto predlogov od … do … piše se stično na obeh straneh: proga Ljubljana–Trst, … 80–100 SIT, str. 125–132, v letih 1941–1945»; §614 (p. 68)",
|
|
60
|
+
"url": "https://fran.si/134/slovenski-pravopis/datoteke/Pravopis_Pravila.pdf",
|
|
61
|
+
"note": "dash.range = en-tight. HIGH. The draft keeps ranges tight even between full dates («1. 1. 2024–30. 6. 2024»), so unlike sr no spaced exception for multi-word range members is needed. The ranges rule is off by default. The PDF has no text layer and was read as page images, so code points are identified from glyph shape (MEDIUM-HIGH). Pravopis 8.0 (predlog, 2026) is a draft not in force and is cited only as a secondary check. Retrieved 2026-10-24."
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"rule": "ellipsis",
|
|
65
|
+
"cite": "SAZU / ZRC SAZU Inštitut za slovenski jezik Frana Ramovša, Slovenski pravopis 2001, I Pravila, §§399–410 (pp. 46–47), Tri pike",
|
|
66
|
+
"url": "https://fran.si/134/slovenski-pravopis/datoteke/Pravopis_Pravila.pdf",
|
|
67
|
+
"note": "abbreviatedAfterTerminal = false is a DECISION, not a citation: no two-dot form after ? or ! is given. ACCEPTED COST: the edition sets the ellipsis spaced (nestično) and the draft recommends a no-break space before it; not adopted, because inserting one would break the word-internal ellipsis of §410 («prepr…!»). An author's own space stays, breakable. MEDIUM-HIGH. The PDF has no text layer and was read as page images, so code points are identified from glyph shape (MEDIUM-HIGH). Pravopis 8.0 (predlog, 2026) is a draft not in force and is cited only as a secondary check. Retrieved 2026-10-24."
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"rule": "hyphen",
|
|
71
|
+
"cite": "SAZU / ZRC SAZU Inštitut za slovenski jezik Frana Ramovša, Slovenski pravopis 2001, I Pravila, §437 (p. 48), §471 (p. 52), §608 (p. 68): «Če besedo, ki se piše z vezajem, delimo ravno tam, kjer je v njej vezaj, ga lahko prenesemo na začetek druge vrstice»",
|
|
72
|
+
"url": "https://fran.si/134/slovenski-pravopis/datoteke/Pravopis_Pravila.pdf",
|
|
73
|
+
"note": "All three lists are empty. Breaking at a hyphen is provided for, and no closed list of unbreakable hyphenated forms exists. HIGH. The PDF has no text layer and was read as page images, so code points are identified from glyph shape (MEDIUM-HIGH). Pravopis 8.0 (predlog, 2026) is a draft not in force and is cited only as a secondary check. Retrieved 2026-10-24."
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"rule": "nbsp",
|
|
77
|
+
"cite": "SAZU / ZRC SAZU Inštitut za slovenski jezik Frana Ramovša, Slovenski pravopis 2001, I Pravila, §610 (p. 68): «V naslednjo vrstico ne prenašamo posameznih simbolov za mere, uteži ipd. za številkami: 5 m, 10 kg.»; §250, §259 («38 °C»), §397, §595 («t. i.»), §612; dictionary entry odstotek «5 %»; Pravopis 8.0 (predlog), Nedeljivi presledek and Presledek («10 %», «16 ‰», «5 €», «10 °C», «§ 10», «t. i.»)",
|
|
78
|
+
"url": "https://fran.si/134/slovenski-pravopis/datoteke/Pravopis_Pravila.pdf",
|
|
79
|
+
"note": "(1) beforeUnits = %, ‰, €, °C, kg, km. %, °C, kg, km are in the edition in force; ‰ and € are from the draft only (SECONDARY). DECISIONS: single-letter units (m, g, V, a) are excluded although §610 names m, because they are common words or initials (as in hr, sk, bg); $ and £ are out; bare ° is never listed. (2) afterSymbols = §: draft, SECONDARY; the edition shows only the spaced form («§ 49», §235). (3) abbreviations = t. i.: the edition gives the spaced form and the draft states the no-break intent; the other spaced abbreviations (t. l., n. m., d. d., d. o. o.) are not listed, since extending the intent to them would be a derivation. DECISION, MEDIUM. (4) afterShortWords is empty: §612 concerns word division, not one-letter prepositions; nothing is imported from cs or sk. (5) beforePunctuation and narrowBeforePunctuation are empty: §228 puts punctuation closed up. (6) beforeNumber, beforeWord are empty and initialBinding = none: only the spaced form of « dr. F. Prešeren » is shown. Decisions, not citations. The PDF has no text layer and was read as page images, so code points are identified from glyph shape (MEDIUM-HIGH). Pravopis 8.0 (predlog, 2026) is a draft not in force and is cited only as a secondary check. Retrieved 2026-10-24."
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
}
|
|
@@ -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
|
|
@@ -62,6 +63,7 @@ files:
|
|
|
62
63
|
- lib/polytypo/data/fixtures/ro.json
|
|
63
64
|
- lib/polytypo/data/fixtures/ru.json
|
|
64
65
|
- lib/polytypo/data/fixtures/sk.json
|
|
66
|
+
- lib/polytypo/data/fixtures/sl.json
|
|
65
67
|
- lib/polytypo/data/fixtures/sr.json
|
|
66
68
|
- lib/polytypo/data/fixtures/sv.json
|
|
67
69
|
- lib/polytypo/data/fixtures/tr.json
|
|
@@ -80,6 +82,7 @@ files:
|
|
|
80
82
|
- lib/polytypo/data/locales/hr.json
|
|
81
83
|
- lib/polytypo/data/locales/hu.json
|
|
82
84
|
- lib/polytypo/data/locales/it.json
|
|
85
|
+
- lib/polytypo/data/locales/lt.json
|
|
83
86
|
- lib/polytypo/data/locales/nl.json
|
|
84
87
|
- lib/polytypo/data/locales/pl.json
|
|
85
88
|
- lib/polytypo/data/locales/pt-BR.json
|
|
@@ -88,6 +91,7 @@ files:
|
|
|
88
91
|
- lib/polytypo/data/locales/ro.json
|
|
89
92
|
- lib/polytypo/data/locales/ru.json
|
|
90
93
|
- lib/polytypo/data/locales/sk.json
|
|
94
|
+
- lib/polytypo/data/locales/sl.json
|
|
91
95
|
- lib/polytypo/data/locales/sr.json
|
|
92
96
|
- lib/polytypo/data/locales/sv.json
|
|
93
97
|
- lib/polytypo/data/locales/tr.json
|