% !TEX encoding = UTF-8 Unicode
% Language definition file (part of polyglossia v2.4 -- 2025/01/31)
%
\ProvidesFile{gloss-italian.ldf}[polyglossia: module for Italian]
\PolyglossiaSetup{italian}{
  bcp47=it,
  bcp47-language=it,
  bcp47-region=IT,
  bcp47-script=Latn,
  hyphennames={italian},
  hyphenmins={2,2},
  langtag=ITA,
  frenchspacing=true,
  indentfirst=true,
 }

% BCP-47 compliant aliases
\setlanguagealias*{italian}{it}

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

% Register default options
\InitializeGlossOptions{italian}{babelshorthands=false}

\ifsystem@babelshorthands
  \SetGlossOptions{italian}{babelshorthands=true}
\else
  \SetGlossOptions{italian}{babelshorthands=false}
\fi

\InitializeBabelShorthands

\def\italian@shorthands{%
  \xpg@activate@shorthands%
  \def\language@group{italian}%
  \declare@shorthand{italian}{"}{%
    \relax\ifmmode
      \def\xpgit@next{''}%
    \else
      \def\xpgit@next{\futurelet\xpgit@temp\xpgit@cwm}%
    \fi
  \xpgit@next}%
}

%%% By Enrico Gregorio and Claudio Beccari %%%
\def\xpgit@@cwm{\nobreak\discretionary{-}{}{}\nobreak\hskip\z@skip}
\def\xpgit@cwm{\let\xpgit@@next\relax
  \ifcat\noexpand\xpgit@temp a%
    \def\xpgit@@next{\xpgit@@cwm}%
  \else
    \if\noexpand\xpgit@temp \string|%
      \def\xpgit@@next##1{\xpgit@@cwm}%
    \else
      \if\noexpand\xpgit@temp \string<%
        \def\xpgit@@next##1{«\ignorespaces}%
      \else
        \if\noexpand\xpgit@temp \string>%
          \def\xpgit@@next##1{\unskip »}%
        \else
          \if\noexpand\xpgit@temp\string/%
            \def\xpgit@@next##1{\slash}%
          \else
            \ifx\xpgit@temp"%
              \def\xpgit@@next##1{?}%
            \fi
          \fi
        \fi
      \fi
    \fi
  \fi
  \xpgit@@next}

\def\noitalian@shorthands{%
  \xpg@deactivate@shorthands%
}
%%% CHANGES END %%%

%%% ORIGINAL %%% by Claudio Beccari
\def\captionsitalian{%
  \def\prefacename{Prefazione}%
  \def\refname{Riferimenti bibliografici}%
  \def\abstractname{Sommario}%
  \def\bibname{Bibliografia}%
  \def\chaptername{Capitolo}%
  \def\appendixname{Appendice}%
  \def\contentsname{Indice}%
  \def\listfigurename{Elenco delle figure}%
  \def\listtablename{Elenco delle tabelle}%
  \def\indexname{Indice analitico}%
  \def\figurename{Figura}%
  \def\tablename{Tabella}%
  \def\partname{Parte}%
  \def\enclname{Allegati}%
  \def\ccname{e~p.~c.}%
  \def\headtoname{Per}%
  \def\pagename{Pag.}%    % in Italian the abbreviation is preferred
  \def\seename{vedi}%
  \def\alsoname{vedi anche}%
  \def\proofname{Dimostrazione}%
  \def\glossaryname{Glossario}%
   }
\def\dateitalian{%
   \def\today{\number\day~\ifcase\month\or
    gennaio\or febbraio\or marzo\or aprile\or maggio\or giugno\or
    luglio\or agosto\or settembre\or ottobre\or novembre\or
    dicembre\fi\space \number\year}}
%%% ORIGINAL END %%%

%%% CHANGES START %%% by Enrico Gregorio
\let\xpgit@savedvalues\empty
\AddToHook{begindocument/before}{% the user or the class might define different values
  \edef\xpgit@savedvalues{%
    \clubpenalty=\the\clubpenalty\space
    \@clubpenalty=\the\@clubpenalty\space
    \widowpenalty=\the\widowpenalty\space
    \finalhyphendemerits=\the\finalhyphendemerits}
}


\def\noextras@italian{%
   \lccode\string"2019=\z@%
   \ifitalian@babelshorthands\noitalian@shorthands\fi%
   \xpgit@savedvalues%
}

\def\blockextras@italian{%
   \lccode\string"2019=\string"2019%
   \clubpenalty=3000 \@clubpenalty=3000 \widowpenalty=3000%
   \finalhyphendemerits=50000000%
   \ifitalian@babelshorthands\italian@shorthands\else\noitalian@shorthands\fi%
}

\def\inlineextras@italian{%
   \lccode\string"2019=\string"2019%
   \ifitalian@babelshorthands\italian@shorthands\else\noitalian@shorthands\fi%
}
%%% CHANGES END %%%
\endinput