\ProvidesFile{gloss-russian.ldf}[polyglossia: module for russian]
\makeatletter

\ifx\l@russian\@undefined
   \xpg@nopatterns{Russian}
   \adddialect\l@russian0
\fi

\def\russian@font{%
\font\zf@basefont="\csname zf@family@fontdef\f@family\endcsname" at \f@size pt
\@ifundefined{russianfont}{%
      \@ifundefined{cyrillicfont}{%
        \zf@check@ot@script{cyrl}%
	\if@tempswa%
	  \addfontfeature{Script=Cyrillic}%
	\else%
	  \PackageError{polyglossia}{^^J
	  The current font does not contain the Cyrillic script!^^J
	  Please define \string\cyrillicfont\space or \string\russianfont\space with \string\newfontfamily}%
	\fi%
	\zf@check@ot@lang{RUS}%
	\if@tempswa\addfontfeature{Language=Russian}\fi%
	}%
        {\cyrillicfont%
	\zf@check@ot@lang{RUS}%
	\if@tempswa\addfontfeature{Language=Russian}\fi}%
     }% 
     {\russianfont}%
}

\def\tmp@old{old}
\define@key{russian}{spelling}[modern]{%
   \def\@tmpa{#1}%
   \ifx\@tmpa\tmp@old
    \def\captionsrussian{\captionsrussian@old}
    \def\daterussian{\daterussian@old}%
   \else%
     \def\captionsrussian{\captionsrussian@modern}
     \def\daterussian{\daterussian@modern}%
   \fi}

\setkeys{russian}{spelling}

\def\captionsrussian@modern{%
   \def\prefacename{Предисловие}%
   \def\refname{Список литературы}%
   \def\abstractname{Аннотация}%
   \def\bibname{Литература}%
   \def\chaptername{Глава}%
   \def\appendixname{Приложение}%
   \ifcsundef{thechapter}%
   	{\def\contentsname{Содержание}}%
	{\def\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\daterussian@modern{%
      \def\today{\number\day%
      \space\ifcase\month\or%
      января\or
      февраля\or
      марта\or
      апреля\or
      мая\or
      июня\or
      июля\or
      августа\or
      сентября\or
      октября\or
      ноября\or
      декабря\fi%
      \space \number\year\space г.}}
     
\def\captionsrussian@old{%
   \def\prefacename{Предисловіе}%
   \def\refname{Примѣчанія}%
   \def\abstractname{Аннотація}%
   \def\bibname{Библіографія}%
   \def\chaptername{Глава}%
   \def\appendixname{Приложеніе}%
   \ifcsundef{thechapter}%
   	{\def\contentsname{Содержаніе}}%
	{\def\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\daterussian@old{
      \def\today{\number\day%
      \space\ifcase\month\or%
      января\or
      февраля\or
      марта\or
      апреля\or
      мая\or
      іюня\or
      іюля\or
      августа\or
      сентября\or
      октября\or
      ноября\or
      декабря\fi%
      \space \number\year\space г.}}

% The following is based on some ideas from ruscor.sty
\def\russian@capsformat{%
   \def\@seccntformat##1{\csname pre##1\endcsname%
      \csname the##1\endcsname%
      \csname post##1\endcsname}%
   \def\@aftersepkern{\hspace{0.5em}}%
   \def\postchapter{.\@aftersepkern}%
   \def\postsection{.\@aftersepkern}%
   \def\postsubsection{.\@aftersepkern}%
   \def\postsubsubsection{.\@aftersepkern}%
   \def\postparagraph{.\@aftersepkern}%
   \def\postsubparagraph{.\@aftersepkern}%
   \def\prechapter{}%
   \def\presection{}%
   \def\presubsection{}%
   \def\presubsubsection{}%
   \def\preparagraph{}%
   \def\presubparagraph{}}

\def\russian@Alph#1{\ifcase#1\or
   А\or Б\or В\or г\or д\or Е\or Ж\or
   З\or И\or К\or Л\or М\or Н\or О\or
   П\or Р\or С\or Т\or У\or Ф\or Х\or
   Ц\or Ч\or Ш\or Щ\or Э\or Ю\or Я\else\xpg@ill@value{#1}{russian@Alph}\fi}
\def\russian@alph#1{\ifcase#1\or 
   а\or б\or в\or Г\or Д\or е\or ж\or
   з\or и\or к\or л\or м\or н\or о\or
   п\or р\or с\or т\or у\or ф\or х\or
   ц\or ч\or ш\or щ\or э\or ю\or я\else\xpg@ill@value{#1}{russian@alph}\fi}

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

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

\def\russian@language{\protect\language=\l@russian}

\setlocalhyphenmins{russian}{2}{2}%

\def\noextras@russian{%
   \nonfrenchspacing%
   \def\@seccntformat##1{\csname the##1\endcsname\quad}% = LaTeX kernel
   }
   
\def\blockextras@russian{%
   \frenchspacing%
   \russian@capsformat%
   }

\def\inlineextras@russian{%
   \frenchspacing%
   }

\endinput

%\def\russian@punctuation{%
%   \frenchspacing%
%   \def\No{№\kern.1667em}%
%   \def\cyrdash{—}%
%   \def\PlainTextEmDash{\ifdim\lastskip>\z@\unskip\nobreak\hskip.2em\fi%
%      \cyrdash\hskip.2em\ignorespaces}%
%   \def\CompoundNamesEmDash{\leavevmode\ifdim\lastskip>\z@\unskip\fi%
%      \nobreak\cyrdash\penalty\exhyphenpenalty\hskip\z@skip\ignorespaces}%
%   \def\DirectSpeechEmDash{\leavevmode%
%      \nobreak\cyrdash\nobreak\hskip.35em\ignorespaces}}
%
%\def\norussian@punctuation{%
%   \nonfrenchspacing%
%   \let\No\@undefined%
%   \let\cyrdash\@undefined%
%   \let\PlainTextEmDash\@undefined%
%   \let\CompoundNamesEmDash\@undefined%
%   \let\DirectSpeechEmDash\@undefined%
%}