Locales

Slovenian typography rules · sl

Slovenščina

Slovenian sets primary quotation marks as »…« and secondary quotation marks as ›…‹. A break in a sentence is written with an en dash (U+2013) with a space on each side; number and date ranges take an en dash (U+2013) with no surrounding spaces. Numbers bind to units such as % ‰ € with U+00A0.

Updated · spec 1.16.0

Run polytypo with Slovenian rules

Edit the text and polytypo typesets it with the sl locale, in your browser. The code under the form is the call that produces the result.

Runs in your browser. Nothing you paste is sent anywhere.

The call the form above is making, right now

Other locales, and all the options, are in the full playground.

Slovenian typography at a glance #

Tagsl
NameSlovenian
Primary quotes» U+00BB right-pointing double angle quotation mark … « U+00AB left-pointing double angle quotation mark
Secondary quotes› U+203A single right-pointing angle quotation mark … ‹ U+2039 single left-pointing angle quotation mark
Parenthetical dashspaced en dash
Range dashunspaced en dash
Rules with citationsquotes, dashes, ranges, ellipsis, hyphen, nbsp
Conformance cases29

Which locale tags resolve to Slovenian? #

The locale option is resolved exactly, then by declared alias, then by dropping the region once; anything else throws POLYTYPO_UNKNOWN_LOCALE.

TagHow it resolves

Which quotation marks does Slovenian use? #

Primary» U+00BB right-pointing double angle quotation mark … « U+00AB left-pointing double angle quotation mark — no space inside the marks
Secondary› U+203A single right-pointing angle quotation mark … ‹ U+2039 single left-pointing angle quotation mark — no space inside the marks

quotes

sl-quotes-primary
Rekel je: "da" in odšel.
Rekel je: »da« in odšel.
sl-quotes-nested-secondary
Rekel je: "pesem 'Zdravljica' je himna" in odšel.
Rekel je: »pesem ›Zdravljica‹ je himna« in odšel.
sl-quotes-nested-at-end
Rekel je: "pesem 'Zdravljica'".
Rekel je: »pesem ›Zdravljica‹«.

How are apostrophes set in Slovenian? #

apostrophe

sl-apostrophe-foreign-name
O'Brien je prišel.
O’Brien je prišel.

Which dashes does Slovenian use for breaks and ranges? #

Parenthetical break (dash.parenthetical)an en dash (U+2013) with a space on each side
Between numbers and dates (dash.range)an en dash (U+2013) with no surrounding spaces

The dashes rule reads the parenthetical convention. The ranges rule reads the range convention and is off by default.

dashes

sl-dashes-parenthetical
Rekel je - seveda - da pride.
Rekel je – seveda – da pride.

ranges

The ranges rule is off by default; these cases enable it with rules: { ranges: true }.

sl-ranges-digits-tight
vojna 1941-1945 in str. 125-132
vojna 1941⁠–⁠1945 in str. 125⁠–⁠132

options: rules: {"ranges": true}

How is the ellipsis set in Slovenian? #

An ellipsis keeps its full form after ! and ?; this locale does not abbreviate it there.

ellipsis

sl-ellipsis-three-dots
Počakaj... in potem.
Počakaj… in potem.
sl-ellipsis-not-abbreviated
Kaj...?
Kaj…?

How are hyphens handled in Slovenian? #

The hyphen lists are empty for this locale, so the hyphen rule changes nothing.

Where does Slovenian use no-break spaces? #

Characters that take U+00A0 before them (nbsp.beforePunctuation)none
Characters that take U+202F before them (nbsp.narrowBeforePunctuation)none
Short words after which the space becomes U+00A0, so the word is not left at the end of a line (nbsp.afterShortWords)none
Multi-token abbreviations whose internal spaces become U+00A0 (nbsp.abbreviations)t. i.
Units and signs bound to the preceding number with U+00A0 (nbsp.beforeUnits)% ‰ € °C kg km
Abbreviations bound to the following number with U+00A0 (nbsp.beforeNumber)none
Abbreviations bound to the following word with U+00A0 (nbsp.beforeWord)none
Symbols bound to the following number with U+00A0 (nbsp.afterSymbols)§
Initials (nbsp.initialBinding)none — disabled: initials are never bound to the name that follows

spaces

sl-spaces-brackets
Rekel ( tiho ) in odšel .
Rekel (tiho) in odšel.

nbsp

sl-nbsp-units
10 % in 5 € in 38 °C in 10 kg in 3 km in 16 ‰
10 % in 5 € in 38 °C in 10 kg in 3 km in 16 ‰
sl-nbsp-abbreviation-ti
glej t. i. pojem
glej t. i. pojem
sl-nbsp-section-sign
glej § 10
glej § 10

How are symbols set in Slovenian? #

symbols

sl-symbols-copyright
(c) 2026
© 2026

How does Slovenian text behave in text, HTML and Markdown modes? #

Each input is the locale's sample sentence followed by a code run, say("a -- b ..."). text mode sets the whole string as prose, code run included. In html and markdown mode the code run comes back byte for byte; only the prose is set.

text
Vprašala je: "Ali ni to trgovina, ki ji pravijo 'tista za vogalom'?" ... Hodili smo - skoraj 3 km - in bila je zaprta. Copyright (c) 2026, format 40x60 cm. say("a -- b ...")
Vprašala je: »Ali ni to trgovina, ki ji pravijo ›tista za vogalom‹?« … Hodili smo – skoraj 3 km – in bila je zaprta. Copyright © 2026, format 40×60 cm. say(»a – b …«)
html
<p>Vprašala je: "Ali ni to trgovina, ki ji pravijo 'tista za vogalom'?" ... Hodili smo - skoraj 3 km - in bila je zaprta. Copyright (c) 2026, format 40x60 cm.</p> <pre><code>say("a -- b ...")</code></pre>
<p>Vprašala je: »Ali ni to trgovina, ki ji pravijo ›tista za vogalom‹?« … Hodili smo – skoraj 3 km – in bila je zaprta. Copyright © 2026, format 40×60 cm.</p> <pre><code>say("a -- b ...")</code></pre>
markdown
Vprašala je: "Ali ni to trgovina, ki ji pravijo 'tista za vogalom'?" ... Hodili smo - skoraj 3 km - in bila je zaprta. Copyright (c) 2026, format 40x60 cm. `say("a -- b ...")`
Vprašala je: »Ali ni to trgovina, ki ji pravijo ›tista za vogalom‹?« … Hodili smo – skoraj 3 km – in bila je zaprta. Copyright © 2026, format 40×60 cm. `say("a -- b ...")`

Which sources define Slovenian typography? #

6 citations in spec/locales/sl.json, grouped by the rule each one supports. A citation names the authority; the note records what the source does and does not settle.

ellipsis

  • SAZU / ZRC SAZU Inštitut za slovenski jezik Frana Ramovša, Slovenski pravopis 2001, I Pravila, §§399–410 (pp. 46–47), Tri pike fran.si

    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.

ranges

  • 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) fran.si

    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.

dashes

  • 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) fran.si

    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.

hyphen

  • 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» fran.si

    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.

quotes

  • 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 ‹“ ”›, ‹» «›» fran.si

    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.

nbsp

  • 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.») fran.si

    (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.

Already using polytypo? Add our badge

Two lines: a script tag and a span. No per-embed network call. Pick a language and a theme, then copy the code into your footer or credits. Embedding notes cover Content Security Policy. Sites with the badge are listed on Sites using polytypo.

<script async src="https://polytypo.dev/badge.js"></script>
<span data-polytypo-lang="en" data-polytypo-theme="light"></span>

Search runs in your browser. Nothing is sent anywhere.