You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
tex-compiler/texmf-dist/tex/latex/polyglossia/gloss-persian.ldf

144 lines
4.3 KiB

\ProvidesFile{gloss-persian.ldf}[polyglossia: module for persian]
\ifluatex
\xpg@warning{Persian is not supported with LuaTeX.\MessageBreak
I will proceed with the compilation, but\MessageBreak
the output is not guaranteed to be correct\MessageBreak
and may look very wrong.}
\fi
\RequireBidi
\RequirePackage{arabicnumbers}
\RequirePackage{farsical}
\RequirePackage{hijrical}
\PolyglossiaSetup{persian}{
bcp47=fa,
babelname=farsi,
script=Arabic,
direction=RL,
scripttag=arab,
langtag=FAR,
hyphennames={nohyphenation},
fontsetup=true,
localnumeral=farsinumerals
}
% BCP-47 compliant aliases
\setlanguagealias*{persian}{fa}
% Babel and backwards compat. alias
\setlanguagealias{persian}{farsi}
\newif\if@western@numerals
\def\tmp@western{western}
\define@key{persian}{numerals}[eastern]{%
\def\@tmpa{#1}%
\ifx\@tmpa\tmp@western\@western@numeralstrue\else%
\@western@numeralsfalse%
\fi}
%this is needed for \abjad in arabicnumbers.sty
\def\tmp@true{true}
\define@key{persian}{abjadjimnotail}[true]{%
\def\@tmpa{#1}%
\ifx\@tmpa\tmp@true\abjad@jim@notailtrue%
\else
\abjad@jim@notailfalse
\fi}
% NOT YET USED
\define@key{persian}{locale}[default]{%
\def\@persian@locale{#1}}
%TODO add option for CALENDAR
% Register default options
\xpg@initialize@gloss@options{persian}{locale=default,numerals=eastern,abjadjimnotail=false}
\def\farsigregmonth#1{\ifcase#1%
\or ژانویه\or فوریه\or مارس\or آوریل\or مه\or ژوئن\or ژوئیه\or اوت\or سپتامبر\or اکتبر\or نوامبر\or دسامبر\fi}
\def\farsimonth#1{\ifcase#1%
\or کانون ثانی\or شباط\or اذار%%or ادار
\or نیسان\or ایار\or حزیران\or تموز\or آب\or ایلول\or تشرین اول\or تشرین ثانی\or کانون اول\fi}
%\Hijritoday is now locale-aware and will format the date with this macro:
\DefineFormatHijriDate{persian}{\@ensure@RTL{%
\farsinumber{\value{Hijriday}}\space\HijriMonthArabic{\value{Hijrimonth}}\space\farsinumber{\value{Hijriyear}}}}
\def\captionspersian{%
\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\datepersian{%
\def\today{\@ensure@RTL{\farsinumber\day\space\farsigregmonth{\month}\space\farsinumber\year}}%
}
\newcommand{\farsinumerals}[2]{\farsinumber{#2}}
\def\farsinumber#1{%
\if@western@numerals
\number#1%
\else
\xpg@if@char@available{06F0}%
{\farsidigits{\number#1}}%
{\arabicdigits{\number#1}}%
\fi
}
%\def\farsinum#1{\expandafter\farsinumber\csname c@#1\endcsname}
%\def\farsibracenum#1{(\expandafter\farsinumber\csname c@#1\endcsname)}
%\def\farsiornatebracenum#1{\char"FD3E\expandafter\farsinumber\csname c@#1\endcsname\char"FD3F}
%\def\farsialph#1{\expandafter\@farsialph\csname c@#1\endcsname}
\def\persian@numbers{%
\let\@alph\abjad%
\let\@Alph\abjad%
}
\def\nopersian@numbers{%
\let\@alph\@latinalph%
\let\@Alph\@latinAlph%
}
\def\persian@globalnumbers{%
\let\@arabic\farsinumber%
\renewcommand\thefootnote{\localnumeral*{footnote}}%
\renewcommand\theequation{\localnumeral*{equation}}%
}
% Store original definition
\let\xpg@save@arabic\@arabic
\def\nopersian@globalnumbers{
\let\@arabic\xpg@save@arabic%
}
% Save original \MakeUppercase definition
\let\xpg@save@MakeUppercase\MakeUppercase
\def\blockextras@persian{%
\def\MakeUppercase##1{##1}%
}
\def\noextras@persian{%
% restore original \MakeUppercase definition
\let\MakeUppercase\xpg@save@MakeUppercase
}
\endinput