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-urdu.ldf

152 lines
4.2 KiB

%%% Adapted from a file contributed by Kamal Abdali
\ProvidesFile{gloss-urdu.ldf}[polyglossia: module for Urdu]
\ifluatex
\xpg@warning{Urdu 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{hijrical}
\PolyglossiaSetup{urdu}{
bcp47=ur,
script=Arabic,
direction=RL,
scripttag=arab,
langtag=URD,
hyphennames={urdu,nohyphenation},
fontsetup=true,
localnumeral=urdunumerals
%TODO localalph={abjad,abjad}
}
% BCP-47 compliant aliases
\setlanguagealias*{urdu}{ur}
\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}
%% TODO USE boolkey instead !!!
%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{}%
\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}%
\fi}
\def\urdu@numbers{%
\let\@alph\abjad%
\let\@Alph\abjad%
}
\def\nourdu@numbers{%
\let\@alph\latin@alph%
\let\@Alph\latin@Alph%
}
\newcommand{\urdunumerals}[2]{\urdunumber{#2}}
% Store original definition
\let\xpg@save@arabic\@arabic
\def\urdu@globalnumbers{%
\let\@arabic\urdunumber%
% For some reason \thefootnote needs to be set separately:
\renewcommand\thefootnote{\localnumeral*{footnote}}%
}
\def\nourdu@globalnumbers{
\let\@arabic\xpg@save@arabic%
}
% Save original \MakeUppercase definition
\let\xpg@save@MakeUppercase\MakeUppercase
\def\blockextras@urdu{%
\def\MakeUppercase##1{##1}%
}
\def\noextras@urdu{%
% restore original \MakeUppercase definition
\let\MakeUppercase\xpg@save@MakeUppercase%
}
\endinput