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

\PolyglossiaSetup{georgian}{
  bcp47=ka,
  bcp47-language=ka,
  bcp47-script=Geor,
  script=Georgian,
  scripttag=geor,
  langtag=KAT,
  hyphennames={georgian},
  localnumeral=georgiannumerals,
  Localnumeral=georgiannumerals
}

% BCP-47 compliant aliases
\setlanguagealias*{georgian}{ka}

\newif\ifgeorgian@numerals

\DeclareKeys[polyglossia/gloss/georgian]
  {
    babelshorthands.if = georgian@babelshorthands,
    babelshorthands.default:n = true,
    oldmonthnames.if = georgian@oldmonthnames,
    oldmonthnames.default:n = true,
    numerals.choice:,
    numerals / arabic.code =
      {%
        \georgian@numeralsfalse
        \SetLanguageKeys{georgian}{bcp47-extension-u=nu-latn}%
      },
    numerals / georgian.code =
      {%
        \georgian@numeralstrue
        \SetLanguageKeys{georgian}{bcp47-extension-u=nu-geor}%
      },
    numerals.default:n = arabic
  }

\ifsystem@babelshorthands
  \SetGlossOptions{georgian}{babelshorthands=true}
  % Register default options
  \InitializeGlossOptions{georgian}{babelshorthands=true,oldmonthnames=false,numerals=arabic}
\else
  \SetGlossOptions{georgian}{babelshorthands=false}
  % Register default options
  \InitializeGlossOptions{georgian}{babelshorthands=false,oldmonthnames=false,numerals=arabic}
\fi

\InitializeBabelShorthands

\def\georgian@shorthands{%
  \xpg@activate@shorthands%
  \def\language@group{georgian}%
  \declare@shorthand{georgian}{"`}{„}%
  \declare@shorthand{georgian}{"'}{“}%
  \declare@shorthand{georgian}{"<}{«}%
  \declare@shorthand{georgian}{">}{»}%
  \declare@shorthand{georgian}{""}{\xpg@invisible@break}%
  \declare@shorthand{georgian}{"~}{\xpg@nobreak@hyphen}%
  \declare@shorthand{georgian}{"=}{\xpg@breakable@hyphen}%
  \declare@shorthand{georgian}{"|}{\xpg@ligature@break}%
  \declare@shorthand{georgian}{"-}{\xpg@cyrillic@dash}%
  \declare@shorthand{georgian}{",}{\xpg@thinspace@allow@hyphenation@after}%
}

\ifx\cyrdash\undefined
  \def\cyrdash{\leavevmode\hbox to.8em{\textendash\hss\textendash}}%
\fi

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

\def\captionsgeorgian{%
    \def\prefacename{წინასიტყვაობა}%
    \def\refname{ლიტერატურა}%
    \def\abstractname{ანოტაცია}%
    \def\bibname{ლიტერატურა}%
    \def\chaptername{თავი}%
    \def\appendixname{დანართი}%
    \@ifundefined{thechapter}
      {\def\contentsname{შინაარსი}}%
      {\def\contentsname{შინაარსი}}%
    \let\tocname=\contentsname
    \def\listfigurename{სურათი}%
    \def\listtablename{ცხრილი}%
    \def\indexname{საძიებელი}%
    \def\authorname{სახელთა საძიებელი}%
    \def\figurename{სურ.}%
    \def\tablename{ცხრ.}%
    \def\partname{ნაწილი}%
    \def\enclname{ჩათვ.}%
    \def\ccname{წყარ.}%
    \def\headtoname{შ.}%
    \def\pagename{გვ.}%
    \def\seename{იხ.}%
    \def\alsoname{იხ.\ ასევე}%
    \def\proofname{დამტკიცება}%
    \def\glossaryname{ტერმინები}%
}%

\def\dategeorgian{%
   \def\today{\number\day~\ifcase\month\or
    იანვარი\or
    თებერვალი\or
    მარტი\or
    აპრილი\or
    მაისი\or
    ივნისი\or
    ივლისი\or
    აგვისტო\or
    სექტემბერი\or
    ოქტომბერი\or
    ნოემბერი\or
    დეკემბერი\fi
    \space \number\year~წ.}%
    \ifgeorgian@oldmonthnames
       \dategeorgian@old%
    \fi
}

\def\dategeorgian@old{%
   \def\today{\number\day~\ifcase\month\or
    აპნისი\or
    სურწყუნისი\or
    მირკანი\or
    იგრიკა\or
    ვარდობისთვე\or
    თიბათვე\or
    მკათათვე\or
    მარიამობისთვე\or
    ახალწლისა ენკენისთვე\or
    ღვინობისთვე\or
    გიორგობისთვე\or
    ქრისტეშობისთვე\fi
    \space \number\year~წ.}%
}

\def\georgian@numbers{%
   \ifgeorgian@numerals%
     \def\georgian@alph##1{\expandafter\georgiannumeral\expandafter{\the##1}}%
     \let\@alph\georgian@@alph%
   \fi
}

\def\nogeorgian@numbers{%
   \let\@alph\latin@alph%
   \let\georgian@alph\@undefined%
}

\def\georgian@globalnumbers{%
  \ifgeorgian@numerals
    \let\@arabic\georgiannumber%
    \renewcommand\thefootnote{\localnumeral*{footnote}}%
    \renewcommand\theequation{\localnumeral*{equation}}%
  \fi
}

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

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

\newcommand{\georgiannumerals}[2]{%
  \ifgeorgian@numerals
     \georgiannumber{#2}%
  \else
     #2%
  \fi%
}

\protected\def\georgiannumber#1{\expandafter\@georgiannumber\expandafter{\number#1}}
\def\@georgiannumber#1{%
  \ifnum#1<\@ne\space\geor@ill@value{#1}%
  \else
    \ifnum#1<10\expandafter\geor@num@i\number#1%
    \else
      \ifnum#1<100\expandafter\geor@num@ii\number#1%
      \else
        \ifnum#1<\@m\expandafter\geor@num@iii\number#1%
        \else
          \ifnum#1<\@M\expandafter\geor@num@iv\number#1%
          \else
             \space\geor@ill@value{#1}%
          \fi
        \fi
      \fi
    \fi
  \fi
}

\let\georgiannumeral=\georgiannumber
\def\geor@num@i#1{% 1--9
  \ifcase#1\or ა\or ბ\or გ\or დ\or ე\or ვ\or ზ\or ჱ\or თ\fi}
\def\geor@num@ii#1{% 10--90
  \ifcase#1\or ი\or კ\or ლ\or მ\or ნ\or ჲ\or ო\or პ\or ჟ\fi
  \geor@num@i}
\def\geor@num@iii#1{% 100--900
  \ifcase#1\or რ\or ს\or ტ\or ჳ\or ფ\or ქ\or ღ\or ყ\or შ\fi
  \geor@num@ii}
\def\geor@num@iv#1{% 1000--9000
  \ifcase#1\or ჩ\or ც\or ძ\or წ\or ჭ\or ხ\or ჴ\or ჯ\or ჰ\fi
  \geor@num@iii}
\def\geor@ill@value#1{\xpg@warning{Illegal value (#1) for Georgian numeral}[$#1$]}

\def\noextras@georgian{%
   \ifgeorgian@numerals\nogeorgian@numbers\fi%
   \ifgeorgian@babelshorthands\nogeorgian@shorthands\fi%
}

\def\blockextras@georgian{%
   \ifgeorgian@numerals\georgian@numbers\else\nogeorgian@numbers\fi%
   \ifgeorgian@babelshorthands\georgian@shorthands\else\nogeorgian@shorthands\fi%
}

\def\inlineextras@georgian{%
   \ifgeorgian@babelshorthands\georgian@shorthands\else\nogeorgian@shorthands\fi%
}

\endinput
