% Language definition file (part of polyglossia v2.10 -- 2026/04/18)
%
\ProvidesFile{gloss-slovak.ldf}[polyglossia: module for Slovak]

\PolyglossiaSetup{slovak}{
  bcp47=sk,
  bcp47-language=sk,
  bcp47-script=Latn,
  hyphennames={slovak},
  hyphenmins={2,2},
  langtag=SKY,
 }

% BCP-47 compliant aliases
\setlanguagealias*{slovak}{sk}

\ifluatex
  \RequirePackage{luavlna}
\fi

\DeclareKeys[polyglossia/gloss/slovak]
  {
    babelshorthands.if = slovak@babelshorthands,
    babelshorthands.default:n = true,
    splithyphens.if = slovak@splithyphens,
    splithyphens.default:n = true,
    vlna.if = slovak@vlna,
    vlna.default:n = true,
  }

\ifsystem@babelshorthands
  \SetGlossOptions{slovak}{babelshorthands=true}
  % Register default options
  \InitializeGlossOptions{slovak}{babelshorthands=true,splithyphens=true,vlna=true}
\else
  \SetGlossOptions{slovak}{babelshorthands=false}
  % Register default options
  \InitializeGlossOptions{slovak}{babelshorthands=false,splithyphens=true,vlna=true}
\fi

\InitializeBabelShorthands

\let\xpg@hyphen@char-
\def\slovak@@splhyphen#1{%
  \def\slovak@sh@tmp{%
       \ifx\slovak@sh@next\xpg@hyphen@char#1%
       \else\expandafter\slovak@@@splhyphen{#1}\fi%
     }%
     \futurelet\slovak@sh@next\slovak@sh@tmp%
}

\def\slovak@@@splhyphen#1{%
  \ifnum\hyphenchar \font>0%
    \kern\z@\discretionary{-}{\char\hyphenchar\the\font}{#1}%
    \nobreak\hskip\z@%
  \else%
    #1%
  \fi%
}

\def\slovak@splhyphen{%
  \slovak@@splhyphen{-}%
}

\def\slovak@shorthands{%
  \xpg@activate@shorthands%
  \def\language@group{slovak}%
  \declare@shorthand{slovak}{"=}{\slovak@splhyphen}%
  \declare@shorthand{slovak}{""}{\xpg@invisible@break}%
  \declare@shorthand{slovak}{"~}{\xpg@nobreak@hyphen}%
  \declare@shorthand{slovak}{"-}{\xpg@add@hyphenation@point}%
  \declare@shorthand{slovak}{"|}{\xpg@ligature@break}%
  \declare@shorthand{slovak}{"/}{\xpg@breakable@slash}%
  \declare@shorthand{slovak}{"`}{„}%
  \declare@shorthand{slovak}{"'}{“}%
  \declare@shorthand{slovak}{"<}{«}%
  \declare@shorthand{slovak}{">}{»}%
}

\def\noslovak@shorthands{%
  \xpg@deactivate@shorthands%
}

\ifxetex
  % splithyphens
  \newXeTeXintercharclass\slovak@hyphen % -
  % vlna
  \newXeTeXintercharclass\slovak@openpunctuation
  \newXeTeXintercharclass\slovak@nonsyllabicpreposition
  \ifdefined\e@alloc@intercharclass@top
    \chardef\slovak@boundary=\e@alloc@intercharclass@top
  \else
    \ifdefined\XeTeXinterwordspaceshaping
      \chardef\slovak@boundary=4095 %
      \def\newXeTeXintercharclass{%
        \e@alloc\XeTeXcharclass\chardef
              \xe@alloc@intercharclass\m@ne\@ucharclass@boundary}%
    \else
      \chardef\slovak@boundary=255
    \fi
  \fi
\fi

\def\slovak@hyphens{%
    \ifluatex
      \AfterPreamble{\enablesplithyphens{slovak}}%
    \else
      \XeTeXinterchartokenstate=1
      \XeTeXcharclass `\- \slovak@hyphen
      \XeTeXinterchartoks \z@ \slovak@hyphen = {\slovak@@splhyphen}% "-" -> "\slovak@@splhyphen-"
      % necessary if used together with vlna:
      \XeTeXinterchartoks \slovak@nonsyllabicpreposition \slovak@hyphen = {\slovak@@splhyphen}% "-" -> "\slovak@@splhyphen-"
    \fi%
}

\def\noslovak@hyphens{%
    \ifluatex
      \AfterPreamble{\disablesplithyphens{slovak}}%
    \else
      \XeTeXcharclass `\- \z@
    \fi%
}

% Add nonbreakable space after single-letter word to
% prevent them to land at the end of a line
% vlna code taken and adapted from xevlna.sty
\ifxetex
    \def\slovak@nointerchartoks{\let\slovak@interchartoks\slovak@PreCSpreposition}%
    \def\slovak@PreCSpreposition{%
       \def\next{}%
       \ifnum\catcode`\ =10 % nothing will be done in verbatim
       \ifmmode % nothing in math
       \else
          \let\slovak@interchartoks\slovak@nointerchartoks
          \let\next\slovak@ExamineCSpreposition
       \fi\fi
       \next%
    }%
    \def\slovak@ExamineCSpreposition #1{#1\futurelet\next\slovak@ProcessCSpreposition}%
    \def\slovak@ProcessCSpreposition{\ifx\next\slovak@XeTeXspace\nobreak\fi}%
    \futurelet\slovak@XeTeXspace{ }\slovak@nointerchartoks
\fi

\def\slovak@vlna{%
    \ifluatex
       \preventsingleon
    \else
        % Code taken and adapted from xevlna.sty
        \XeTeXinterchartokenstate=1
        \XeTeXcharclass `\( \slovak@openpunctuation
        \XeTeXcharclass `\[ \slovak@openpunctuation
        \XeTeXcharclass `\„ \slovak@openpunctuation
        \XeTeXcharclass `\» \slovak@openpunctuation
        \XeTeXcharclass `\K \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\k \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\S \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\s \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\V \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\v \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\Z \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\z \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\O \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\o \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\U \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\u \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\A \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\a \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\I \slovak@nonsyllabicpreposition
        \XeTeXcharclass `\i \slovak@nonsyllabicpreposition
        \XeTeXinterchartoks \slovak@boundary \slovak@nonsyllabicpreposition {\slovak@interchartoks}%
        \XeTeXinterchartoks \slovak@openpunctuation \slovak@nonsyllabicpreposition {\slovak@interchartoks}%
    \fi
}

\def\noslovak@vlna{%
    \ifluatex
        \preventsingleoff
    \else
        \XeTeXcharclass`\(\z@
        \XeTeXcharclass`\[\z@
        \XeTeXcharclass`\„\z@
        \XeTeXcharclass`\»\z@
        \XeTeXcharclass`\K\z@
        \XeTeXcharclass`\k\z@
        \XeTeXcharclass`\S\z@
        \XeTeXcharclass`\s\z@
        \XeTeXcharclass`\V\z@
        \XeTeXcharclass`\v\z@
        \XeTeXcharclass`\Z\z@
        \XeTeXcharclass`\z\z@
        \XeTeXcharclass`\O\z@
        \XeTeXcharclass`\o\z@
        \XeTeXcharclass`\U\z@
        \XeTeXcharclass`\u\z@
        \XeTeXcharclass`\A\z@
        \XeTeXcharclass`\a\z@
        \XeTeXcharclass`\I\z@
        \XeTeXcharclass`\i\z@
    \fi
}


\def\captionsslovak{%
   \def\refname{Referencie}%
   \def\abstractname{Abstrakt}%
   \def\bibname{Literatúra}%
   \def\prefacename{Úvod}%
   \def\chaptername{Kapitola}%
   \def\appendixname{Dodatok}%
   \def\contentsname{Obsah}%
   \def\listfigurename{Zoznam obrázkov}%
   \def\listtablename{Zoznam tabuliek}%
   \def\indexname{Register}%
   \def\figurename{Obrázok}%
   \def\tablename{Tabuľka}%
   %\def\thepart{}%
   \def\partname{Časť}%
   \def\pagename{Strana}%
   \def\seename{viď}%
   \def\alsoname{viď tiež}%
   \def\enclname{Prílohy}%
   \def\ccname{cc.}%
   \def\headtoname{Pre}% was komu
   \def\proofname{Dôkaz}%
   \def\glossaryname{Slovník}%
}

\def\dateslovak{%   
  \def\today{\number\day.~\ifcase\month\or
    januára\or februára\or marca\or apríla\or mája\or
    júna\or júla\or augusta\or septembra\or októbra\or
    novembra\or decembra\fi
    \space \number\year}%
}

\def\noextras@slovak{%
  \ifslovak@babelshorthands\noslovak@shorthands\fi%
  \noslovak@hyphens%
  \noslovak@vlna%
  \ifxetex\XeTeXinterchartokenstate=0\fi%
}

\def\blockextras@slovak{%
  \ifslovak@babelshorthands\slovak@shorthands\else\noslovak@shorthands\fi%
  \ifslovak@vlna\slovak@vlna\else\noslovak@vlna\fi%
  \ifslovak@splithyphens\slovak@hyphens\else\noslovak@hyphens\fi%
}

\def\inlineextras@slovak{%
  \ifslovak@babelshorthands\slovak@shorthands\else\noslovak@shorthands\fi%
  \ifslovak@vlna\slovak@vlna\else\noslovak@vlna\fi%
  \ifslovak@splithyphens\slovak@hyphens\else\noslovak@hyphens\fi%
}

\def\nestedextras@slovak{%
 \ifluatex%
   \ifslovak@vlna\slovak@vlna\else\noslovak@vlna\fi%
   \ifslovak@splithyphens\slovak@hyphens\else\noslovak@hyphens\fi%
 \fi%
}

\endinput
