diff options
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/polyglossia/gloss-urdu.ldf')
-rw-r--r-- | Master/texmf-dist/tex/xelatex/polyglossia/gloss-urdu.ldf | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/xelatex/polyglossia/gloss-urdu.ldf b/Master/texmf-dist/tex/xelatex/polyglossia/gloss-urdu.ldf new file mode 100644 index 00000000000..a1759c19ed5 --- /dev/null +++ b/Master/texmf-dist/tex/xelatex/polyglossia/gloss-urdu.ldf @@ -0,0 +1,190 @@ +%%% Adapted from a file contributed by Kamal Abdali +\ProvidesFile{gloss-urdu.ldf}[polyglossia: module for Urdu] +\RequirePackage{bidi} +\RequirePackage{arabicnumbers} +\RequirePackage{hijrical} +\makeatletter + +\ifx\l@urdu\@undefined + %\xpg@nopatterns{urdu}% + \adddialect\l@urdu\l@nohyphenation +\fi + +\def\urdu@RL{\relax} + +\newif\if@western@numerals +\def\tmp@western{western} +\define@key{urdu}{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{urdu}{abjadjimnotail}[true]{% + \def\@tmpa{#1}% + \ifx\@tmpa\tmp@true\abjad@jim@notailtrue% + \else + \abjad@jim@notailfalse + \fi} + +\newif\if@hijrical +\def\tmp@hijri{hijri} +\define@key{urdu}{calendar}[gregorian]{% + \def\@tmpa{#1}% + \ifx\@tmpa\tmp@hijri\@hijricaltrue% + \else\@hijricalfalse% + \fi} + +\define@key{urdu}{hijricorrection}[0]{% + \gdef\@hijri@correction{#1}}% + +% This should set the defaults +\setkeys{urdu}{calendar,numerals,hijricorrection} + +\def\urdugregmonth#1{\ifcase#1% + \or جنوری\or فروری\or مارچ\or اپریل\or مئی\or جون\or جولائی\or اگست\or ستمبر\or اکتوبر\or نومبر\or دسمبر\fi} + +\def\urduhijrimonth#1{\ifcase#1% + \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{urdu}{\@ensure@RTL{% +\urdunumber{\value{Hijriday}}؍\space\urduhijrimonth{\value{Hijrimonth}}\space\urdunumber{\value{Hijriyear}}}} + +\def\captionsurdu{% +\def\refname{\@ensure@RTL{حوالہ جات}}% +\def\abstractname{\@ensure@RTL{ملخّص}}% +\def\bibname{\@ensure@RTL{کتابیات}}% +\def\prefacename{\@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\thepart{\text<lang>{}}% +\def\partname{\@ensure@RTL{حصّہ}}% +\def\pagename{\@ensure@RTL{صفحہ}}% +\def\seename{\@ensure@RTL{ملاحظہ ہو}}% +\def\alsoname{\@ensure@RTL{ایضاً}}% +\def\enclname{\@ensure@RTL{منسلک}}% +\def\ccname{\@ensure@RTL{نقل}}% +\def\headtoname{\@ensure@RTL{بملاحظہ}}% +\def\proofname{\@ensure@RTL{ثبوت}}% +\def\glossaryname{\@ensure@RTL{لغت}}% +\def\sectionname{\@ensure@RTL{فصل}}% +} + +\def\dateurdu{% + \def\today{% + \if@hijrical + \Hijritoday[\@hijri@correction]% + \else + \@ensure@RTL{\urdunumber\day؍\space\urdugregmonth{\month}% + \space\urdunumber\year}% + \fi}% +} + +\def\urdunumber#1{% + \if@western@numerals + \number#1% + \else + %%FIXME use farsidigits instead??? + \protect\arabicdigits{\number#1}% + %%{\protect\addfontfeature{Mapping=arabicdigits}\number#1}% + \fi} + +\def\urdu@numbers{% + \let\@latinalph\@alph% + \let\@latinAlph\@Alph% + \let\@alph\abjad% + \let\@Alph\abjad% + } +\def\nourdu@numbers{% + \let\@alph\@latinalph% + \let\@Alph\@latinAlph% + } +\def\urdu@globalnumbers{% + \let\orig@arabic\@arabic% + \let\@arabic\urdunumber% + % For some reason \thefootnote needs to be set separately: + \renewcommand\thefootnote{\protect\urdunumber{\c@footnote}}% + } +\def\nourdu@globalnumbers{ + \let\@arabic\orig@arabic% + \renewcommand\thefootnote{\protect\number{\c@footnote}}% + } + +\def\urdu@language{\language=\l@urdu} + +\def\urdu@font{% + \@ifundefined{urdufont}{% + \@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\urdufont\space with \newfontfamily}% + \fi + \zf@check@ot@lang{URD}% + \if@tempswa\addfontfeature{Language=urdu}\fi}% + {\arabicfont% + \font\zf@basefont="\csname zf@family@fontdef\f@family\endcsname" at \f@size pt + \zf@check@ot@lang{URD}% + \if@tempswa\addfontfeature{Language=urdu}\fi}% + }% + {\urdufont}% +} + +% TODO add setup to define Sans and Mono Arabic fonts if desired +\def\urdu@font@sf{% + \@ifundefined{urdufontsf}{% +% \sffamily% FIXME +% \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% + \urdu@font% +% \fi% + }% + {\urdufontsf}% +} +\def\urdu@font@tt{% + \@ifundefined{urdufonttt}{% +% \ttfamily% FIXME +% \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% + \urdu@font% +% \fi% + }% + {\urdufonttt}% +} + +\def\selectnormalfonturdu{% + \let\normalfont=\urdu@font% + \let\rmfamily=\urdu@font% + \let\sffamily=\urdu@font@sf% + \let\ttfamily=\urdu@font@tt% + \def\reset@font{\normalfont}} + +\def\blockextras@urdu{% + \let\@@MakeUppercase\MakeUppercase% + \def\MakeUppercase##1{##1}% + } +\def\noextras@urdu{% + \let\MakeUppercase\@@MakeUppercase% + } +\endinput + |