summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/polyglossia/gloss-farsi.ldf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/polyglossia/gloss-farsi.ldf')
-rw-r--r--Master/texmf-dist/tex/xelatex/polyglossia/gloss-farsi.ldf158
1 files changed, 72 insertions, 86 deletions
diff --git a/Master/texmf-dist/tex/xelatex/polyglossia/gloss-farsi.ldf b/Master/texmf-dist/tex/xelatex/polyglossia/gloss-farsi.ldf
index 75556ea167b..6ef01edb1df 100644
--- a/Master/texmf-dist/tex/xelatex/polyglossia/gloss-farsi.ldf
+++ b/Master/texmf-dist/tex/xelatex/polyglossia/gloss-farsi.ldf
@@ -1,6 +1,8 @@
\ProvidesFile{gloss-farsi.ldf}[polyglossia: module for farsi]
\RequirePackage{bidi}
+\RequirePackage{arabicnumbers}
\RequirePackage{farsical}
+\RequirePackage{hijrical}
\makeatletter
\ifx\l@farsi\@undefined
@@ -13,27 +15,40 @@
\newif\if@western@numerals
\def\tmp@western{western}
\define@key{farsi}{numerals}[eastern]{%
- \def\@tmpa{#1}%
- \ifx\@tmpa\tmp@western\@western@numeralstrue\else%
- \@western@numeralsfalse%
- \fi}
+ \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{farsi}{abjadjimnotail}[true]{%
+ \def\@tmpa{#1}%
+ \ifx\@tmpa\tmp@true\abjad@jim@notailtrue%
+ \else
+ \abjad@jim@notailfalse
+ \fi}
-% NOT YET USED
+% NOT YET USED
\define@key{farsi}{locale}[default]{%
- \def\@farsi@locale{#1}}
+ \def\@farsi@locale{#1}}
%TODO add option for CALENDAR
\setkeys{farsi}{locale,numerals}
\def\farsigregmonth#1{\ifcase#1%
- \or ژانویه\or فوریه\or مارس\or آوریل\or مه\or ژوئن\or ژوئیه؛\or ژویه\or اوت\or سپتامبر\or اکتبر\or نوامبر\or دسامبر\fi}
+ \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 آب\or ایلول\or تشرین اول\or تشرین ثانی\or کانون اول\fi}
+%\Hijritoday is now locale-aware and will format the date with this macro:
+\DefineFormatHijriDate{farsi}{\@ensure@RTL{%
+\farsinumber{\value{Hijriday}}\space\HijriMonthArabic{\value{Hijrimonth}}\space\farsinumber{\value{Hijriyear}}}}
+
\def\captionsfarsi{%
-\def\prefacename{\@ensure@RTL{پیشگفتار}}%
+\def\prefacename{\@ensure@RTL{پیشگفتار}}%
\def\refname{\@ensure@RTL{مراجع}}%
\def\abstractname{\@ensure@RTL{چکیده}}%
\def\bibname{\@ensure@RTL{کتاب‌نامه}}%
@@ -46,69 +61,37 @@
\def\figurename{\@ensure@RTL{شكل}}%
\def\tablename{\@ensure@RTL{جدول}}%
\def\partname{\@ensure@RTL{بخش}}%
-%\def\enclname{\@ensure@RTL{}}%<-- Needs translation
-%\def\ccname{\@ensure@RTL{}}%<-- Needs translation
-%\def\headtoname{\@ensure@RTL{}}%<-- Needs translation
+\def\enclname{\@ensure@RTL{پیوست}}%
+\def\ccname{\@ensure@RTL{رونوشت}}%
+\def\headtoname{\@ensure@RTL{به}}%
\def\pagename{\@ensure@RTL{صفحة}}%
-%\def\seename{\@ensure@RTL{}}%<-- Needs translation
-%\def\alsoname{\@ensure@RTL{}}%<-- Needs translation
+\def\seename{\@ensure@RTL{ببینید}}%
+\def\alsoname{\@ensure@RTL{نیز ببینید}}%
\def\proofname{\@ensure@RTL{برهان}}%
-\def\glossaryname{\@ensure@RTL{لغت‌نامه}}%<-- Needs to be checked
+\def\glossaryname{\@ensure@RTL{دانش‌نامه}}%
}
\def\datefarsi{%
\def\today{\@ensure@RTL{\farsinumber\day\space\farsigregmonth{\month}\space\farsinumber\year}}%
}
-\def\farsinumber#1{\if@western@numerals\RL{\number#1}\else%
-\ifnum\XeTeXcharglyph"06F0 > 0%
-{\protect\addfontfeature{Mapping=farsidigits}\number#1}%
-\else%
-{\protect\addfontfeature{Mapping=arabicdigits}\number#1}%
-\fi\fi}
+\def\farsinumber#1{%
+ \if@western@numerals
+ \number#1%
+ \else
+ \ifnum\XeTeXcharglyph"06F0 > 0%
+ \farsidigits{\number#1}%
+ %%{\protect\addfontfeature{Mapping=farsidigits}\number#1}%
+ \else%
+ \arabicdigits{\number#1}%
+ %%{\protect\addfontfeature{Mapping=arabicdigits}\number#1}%
+ \fi
+ \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}
-\ifcsdef{abjad}{}{%
-\def\abjad#1{%
-\ifnum#1>1999 \xpg@warning{Illegal value (#1) for abjad numeral} {#1}
-\else
- \ifnum#1<\z@\space\xpg@warning{Illegal value (#1) for abjad numeral}%
- \else
- \ifnum#1<10\expandafter\abj@num@i\number#1%
- \else
- \ifnum#1<100\expandafter\abj@num@ii\number#1%
- \else
- \ifnum#1<\@m\expandafter\abj@num@iii\number#1%
- \else
- \ifnum#1<\@M\expandafter\abj@num@iv\number#1%since #1<2000, we must have 1000
- \fi
- \fi
- \fi
- \fi
- \fi
-\fi
-}
-\def\abjad@zero{}
-\def\abj@num@i#1{%
- \ifcase#1\or ا\or ب\or ج\char"200D\or د%
- \or ه\or و\or ز\or ح\or ط\fi
- \ifnum#1=\z@\abjad@zero\fi}
-\def\abj@num@ii#1{%
- \ifcase#1\or ي\or ك\or ل\or م\or ن%
- \or س\or ع\or ف\or ص\fi
- \ifnum#1=\z@\fi\abj@num@i}
-\def\abj@num@iii#1{%
- \ifcase#1\or ق\or ر\or ش\or ت\or ث%
- \or خ\or ذ\or ض\or ظ\fi
- \ifnum#1=\z@\fi\abj@num@ii}
-\def\abj@num@iv#1{%
- \ifcase#1\or غ\fi
- \ifnum#1=\z@\fi\abj@num@iii}
-}
-
\def\farsi@numbers{%
\let\@latinalph\@alph%
\let\@latinAlph\@Alph%
@@ -121,50 +104,53 @@
}
\def\farsi@globalnumbers{%
- \let\@latinarabic\@arabic%
+ \let\orig@arabic\@arabic%
\let\@arabic\farsinumber%
% For some reason \thefootnote needs to be set separately:
\renewcommand\thefootnote{\protect\farsinumber{\c@footnote}}%
}
\def\nofarsi@globalnumbers{
- \let\@arabic\@latinarabic%
+ \let\@arabic\orig@arabic%
\renewcommand\thefootnote{\protect\number{\c@footnote}}%
}
\def\farsi@language{\language=\l@farsi}
\def\farsi@font{%
-\font\zf@basefont="\csname zf@family@fontdef\f@family\endcsname" at \f@size pt
-\@ifundefined{farsifont}{%
- \@ifundefined{arabicfont}{%
- \zf@check@ot@script{arab}%
- \if@tempswa%
- \addfontfeature{Script=Arabic}%
- \else%
- \PackageError{polyglossia}{^^J
- The current font does not contain the Arabic script!^^J
- Please define \string\arabicfont\space or \string\farsifont\space with \newfontfamily}%
- \fi%
- \zf@check@ot@lang{FAR}%
- \if@tempswa\addfontfeature{Language=Farsi}\fi
- }%
- {\arabicfont%
- \zf@check@ot@lang{FAR}%
- \if@tempswa\addfontfeature{Language=Farsi}\fi}
- }%
-{\farsifont}}
+ \@ifundefined{farsifont}{%
+ \@ifundefined{arabicfont}{%
+ \normalfontlatin%
+ \font\zf@basefont="\csname zf@family@fontdef\f@family\endcsname" at \f@size pt
+ \zf@check@ot@script{arab}%
+ \if@tempswa
+ \addfontfeature{Script=Arabic}%
+ \else
+ \PackageError{polyglossia}{^^J
+ The current font does not contain the Arabic script!^^J
+ Please define \string\arabicfont\space or \string\farsifont\space with \newfontfamily}%
+ \fi
+ \zf@check@ot@lang{FAR}%
+ \if@tempswa\addfontfeature{Language=Farsi}\fi}%
+ {\arabicfont%
+ \font\zf@basefont="\csname zf@family@fontdef\f@family\endcsname" at \f@size pt
+ \zf@check@ot@lang{FAR}%
+ \if@tempswa\addfontfeature{Language=Farsi}\fi}%
+ }%
+ {\farsifont}%
+}
+
% TODO add setup to define Sans and Mono Arabic fonts if desired
\def\farsi@font@sf{%
\@ifundefined{farsifontsf}{%
% \sffamily% FIXME
% \font\zf@basefont="\csname zf@family@fontdef\f@family\endcsname" at \f@size pt
% \zf@check@ot@script{arab}%
-% \if@tempswa%
+% \if@tempswa
% \addfontfeature{Script=Arabic}%
-% \else%
+% \else
\farsi@font%
-% \fi%
+% \fi
}%
{\farsifontsf}%
}
@@ -173,11 +159,11 @@
% \ttfamily% FIXME
% \font\zf@basefont="\csname zf@family@fontdef\f@family\endcsname" at \f@size pt
% \zf@check@ot@script{arab}%
-% \if@tempswa%
+% \if@tempswa
% \addfontfeature{Script=Arabic}%
-% \else%
+% \else
\farsi@font%
-% \fi%
+% \fi
}%
{\farsifonttt}%
}