% Language definition file (part of polyglossia v2.6 -- 2025/06/30)
%
\ProvidesFile{gloss-syriac.ldf}[polyglossia: module for Syriac]

\RequireBidi
\RequirePackage{arabicnumbers}

\PolyglossiaSetup{syriac}{
  bcp47=syr,
  bcp47-language=syr,
  bcp47-script=Syrc,
  script=Syriac,
  scripttag=syrc,
  langtag=SYR,
  direction=RL,
  hyphennames={syriac,nohyphenation},
  localnumeral=syriacnumerals,
  Localnumeral=syriacnumerals
}

% BCP-47 compliant aliases
\setlanguagealias*{syriac}{syr}

\def\syriacnumber#1{\@syriacnumber{#1}}

\newif\if@eastern@numerals
\newif\ifsyriac@customsep\syriac@customsepfalse
\def\xpg@sepmark{}

\DeclareKeys[polyglossia/gloss/syriac]
  {
    sectionsep.code = \gdef\xpg@sepmark{#1}\syriac@customseptrue,
    sectionsep.default:n = .,
    numerals.choice:,
    numerals / eastern.code =
      {%
        \@eastern@numeralstrue
        \SetLanguageKeys{syriac}{bcp47-extension-u=nu-syrc}%
      },
    numerals / western.code =
      {%
        \@eastern@numeralsfalse
        \SetLanguageKeys{syriac}{bcp47-extension-u=nu-latn}%
      },
    numerals / abjad.code =
      {%
          \let\syriacnumber\abjadsyriac
      },
    numerals.default:n = eastern,
    numerals/unknown.code = \xpg@warning{Unknown Syriac numerals option `#1'}
  }

% Register default options
\InitializeGlossOptions{syriac}{numerals=western}
	
%\define@key{polyglossia}{syriaclocale}[default]{%
%	\def\@syriac@locale{#1}}
%
%\def\captionssyriac{%
%\def\prefacename{\@ensure@RTL{}}% 
%\def\refname{\@ensure@RTL{}}
%\def\abstractname{\@ensure@RTL{}}%
%\def\bibname{\@ensure@RTL{}}%
%\def\chaptername{\@ensure@RTL{}}%
%\def\appendixname{\@ensure@RTL{}}%
%\def\contentsname{\@ensure@RTL{}}
%\def\listfigurename{\@ensure@RTL{}}%
%\def\listtablename{\@ensure@RTL{}}%
%\def\indexname{\@ensure@RTL{}}%
%\def\figurename{\@ensure@RTL{}}%
%\def\tablename{\@ensure@RTL{}}%
%\def\partname{\@ensure@RTL{}}%
%\def\enclname{\@ensure@RTL{}}%
%\def\ccname{\@ensure@RTL{}}%
%\def\headtoname{\@ensure@RTL{}}%
%\def\pagename{\@ensure@RTL{}}%
%\def\seename{\@ensure@RTL{}}%
%\def\alsoname{\@ensure@RTL{}}%
%\def\proofname{\@ensure@RTL{}}%
%\def\glossaryname{\@ensure@RTL{}}%
%}

\def\datesyriac{%
  \def\syriac@month##1{\ifcase##1%
  \or ܟܢܘܢ ܐܚܪܝ\or ܫܒܛ\or ܐܕܪ\or ܢܝܣܢ\or ܐܝܪ\or ܚܙܝܪܢ\or ܬܡܘܙ\or ܐܒ\or ܐܝܠܘܠ% ܐܠܘܠ
   \or ܬܫܪܝܢ ܩܕܡ% ܬܫܪܝܢ ܩܕܝܡ
   \or ܬܫܪܝܢ ܐܚܪܝ\or ܟܢܘܢ ܩܕܡ% ܟܢܘܢ ܩܕܝܡ
   \fi}%
   \def\today{\@ensure@RTL{\syriacnumber\day{\space}%
    \syriac@month{\month}{\space}\syriacnumber\year}}%
}

\def\syriac@zero{}

\def\abjadsyriac#1{%
\ifnum#1>9999\xpg@ill@value{#1}{abjadsyriac}%
\else%
  \ifnum#1<\z@\space\xpg@ill@value{#1}{abjadsyriac}%
  \else%
    \ifnum#1<10\expandafter\abj@syr@num@i\number#1%
    \else%
      \ifnum#1<100\expandafter\abj@syr@num@ii\number#1%
      \else%
        \ifnum#1<1000\expandafter\abj@syr@num@iii\number#1%
	\else%
          \expandafter\abj@syr@num@iv\number#1%
	\fi%
      \fi%
    \fi%
  \fi%
\fi%
}
\def\abj@syr@num@i#1{%
  \ifcase#1\or\char"0710\or\char"0712\or\char"0713\or\char"0715%
 \or\char"0717\or\char"0718\or\char"0719\or\char"071A\or\char"071B\fi
  \ifnum#1=\z@\syriac@zero\fi}
\def\abj@syr@num@ii#1{%
  \ifcase#1\or\char"071D\or\char"071F\or\char"0720\or\char"0721\or\char"0722%
          \or\char"0723\or\char"0725\or\char"0726\or\char"0728\fi
  \ifnum#1=\z@\fi\abj@syr@num@i}
\def\abj@syr@num@iii#1{%
  \ifcase#1\or\char"0729\or\char"072A\or\char"072B\or\char"072C%
  \or\char"0722\char"0307\or\char"0723\char"0307\or\char"0725\char"0307%
  \or\char"0726\char"0307\or\char"0728\char"0307\fi
  \ifnum#1=\z@\fi\abj@syr@num@ii}
\def\abj@syr@num@iv#1{%
  \ifcase#1\or\char"0710\char"0748\or\char"0712\char"0748%
  \or\char"0713\char"0748\or\char"0715\char"0748%
  \or\char"0717\char"0748\or\char"0718\char"0748%
  \or\char"0719\char"0748\or\char"071A\char"0748\or\char"071B\char"0748\fi
  \ifnum#1=\z@\fi\abj@syr@num@iii}

\def\@syriacnumber#1{%
   \if@eastern@numerals
      %%% we test for the presence of one of ١٢٣٤٥٦٧٨٩٠ in the Syriac font, 
      %%% else we try \arabicfont if defined (and give a warning), 
      %%% else we fall back to the Western numerals.
      \IfCharIsAvailableTF{0661}%
          {\@ensure@LTR{\protect\arabicdigits{\number#1}}}%
          {\@ensure@LTR{\arabicdigits{\number#1}}
           \@ifundefined{arabicfont}%
	     {\number#1%%% <---changed from \RL{\protect\reset@font\protect\number#1}%
	      \xpg@warning{You have specified the option numerals=eastern for Syriac, but the Syriac font does not contain the appropriate glyphs:
                           since \string\arabicfont is not defined, we'll use Western numerals instead}}%
	     {\@ensure@LTR{\protect\arabicdigits{\number#1}}%
	      \xpg@warning{You have specified the option numerals=eastern for Syriac, but the Syriac font does not contain the appropriate glyphs:
                           I am using \string\arabicfont instead}}%
          }%
   \else
     %%\RL{\protect\reset@font\number#1}%
     \number#1%
   \fi%
}

\def\syriac@numbers{%
   \let\@alph\abjadsyriac%
   \let\@Alph\abjadsyriac%
}

\def\nosyriac@numbers{%
  \let\@alph\latin@alph%
  \let\@Alph\latin@Alph%
}

\newcommand{\syriacnumerals}[2]{\syriacnumber{#2}}

% Store original definition
\let\xpg@save@arabic\@arabic

\def\syriac@globalnumbers{%
  \let\@arabic\syriacnumber%
  \renewcommand\thefootnote{\localnumeral*{footnote}}%
}

\def\nosyriac@globalnumbers{%
  \let\@arabic\xpg@save@arabic%
}

\def\syriac@xetex@capsformat{%
  \let\xpg@save@sepmark\@SepMark%
  \SepMark{\xpg@sepmark}
}

\def\nosyriac@xetex@capsformat{%
   \ifcsname xpg@save@sepmark\endcsname%
     \SepMark{\xpg@save@sepmark}
   \fi%
}

\def\syriac@luatex@capsformat{%
  %
  % change chapter and part headings
  \ifsyriac@customsep
     \ifcsname chapter\endcsname%
        \let\xpg@save@thesection\thesection%
        \renewcommand*\thesection{\thechapter\xpg@sepmark\@arabic\c@section}
        \let\xpg@save@theequation\theequation%
        \renewcommand*\theequation{%
	    \ifnum \c@chapter>\z@ \thechapter\xpg@sepmark\fi\@arabic\c@equation}
        \let\xpg@save@thefigure\thefigure%
	\renewcommand*\thefigure{%
	    \ifnum\c@chapter>\z@\thechapter\xpg@sepmark\fi\@arabic\c@figure}
        \let\xpg@save@thetable\thetable%
	\renewcommand*\thetable{%
	    \ifnum\c@chapter>\z@\thechapter\xpg@sepmark\fi\@arabic\c@table}
     \fi%
     \let\xpg@save@thesubsection\thesubsection%
     \renewcommand\thesubsection
	{\thesection\xpg@sepmark\@arabic\c@subsection}
     \let\xpg@save@thesubsubsection\thesubsubsection%
     \renewcommand\thesubsubsection{\thesubsection\xpg@sepmark\@arabic\c@subsubsection}
     \let\xpg@save@theparagraph\theparagraph%
     \renewcommand\theparagraph
         {\thesubsubsection\xpg@sepmark\@arabic\c@paragraph}
     \let\xpg@save@thesubparagraph\thesubparagraph%
     \renewcommand\thesubparagraph{\theparagraph\xpg@sepmark\@arabic\c@subparagraph}
  \fi% (end \ifsyriac@customsep)
}

\def\nosyriac@luatex@capsformat{%
   \ifcsname xpg@save@thesection\endcsname%
        \let\thesection\xpg@save@thesection%
   \fi%
   \ifcsname xpg@save@theequation\endcsname%
        \let\theequation\xpg@save@theequation%
   \fi%
   \ifcsname xpg@save@thefigure\endcsname%
        \let\thefigure\xpg@save@thefigure%
   \fi%
   \ifcsname xpg@save@thetable\endcsname%
        \let\thetable\xpg@save@thetable%
   \fi%
   \ifcsname xpg@save@thesubsection\endcsname%
        \let\thesubsection\xpg@save@thesubsection%
      \ifcsname xpg@save@thesubsubsection\endcsname%
        \let\thesubsubsection\xpg@save@thesubsubsection%
      \fi%
   \fi%
   \ifcsname xpg@save@theparagraph\endcsname%
        \let\theparagraph\xpg@save@theparagraph%
   \fi%
   \ifcsname xpg@save@thesubparagraph\endcsname%
        \let\thesubparagraph\xpg@save@thesubparagraph%
   \fi%
}

\def\blockextras@syriac{%
   \ifsyriac@customsep
      \ifxetex
        \syriac@xetex@capsformat
      \else
        \syriac@luatex@capsformat
      \fi   
   \fi
}
%
\def\noextras@syriac{%
    \ifsyriac@customsep
      \ifxetex
        \nosyriac@xetex@capsformat
      \else
        \nosyriac@luatex@capsformat
      \fi   
   \fi
}

\endinput