Exemplo n.º 1
0
 /// <summary>
 ///     Converts English numbers to Persian or Arabic numbers.
 /// </summary>
 /// <param name="text"></param>
 /// <param name="farsi"></param>
 /// <returns>Converted number</returns>
 public static void FixNumbers(FastStringBuilder text, bool farsi)
 {
     text.Replace((char)EnglishNumbers.Zero, farsi ? (char)FarsiNumbers.Zero : (char)HinduNumbers.Zero);
     text.Replace((char)EnglishNumbers.One, farsi ? (char)FarsiNumbers.One : (char)HinduNumbers.One);
     text.Replace((char)EnglishNumbers.Two, farsi ? (char)FarsiNumbers.Two : (char)HinduNumbers.Two);
     text.Replace((char)EnglishNumbers.Three, farsi ? (char)FarsiNumbers.Three : (char)HinduNumbers.Three);
     text.Replace((char)EnglishNumbers.Four, farsi ? (char)FarsiNumbers.Four : (char)HinduNumbers.Four);
     text.Replace((char)EnglishNumbers.Five, farsi ? (char)FarsiNumbers.Five : (char)HinduNumbers.Five);
     text.Replace((char)EnglishNumbers.Six, farsi ? (char)FarsiNumbers.Six : (char)HinduNumbers.Six);
     text.Replace((char)EnglishNumbers.Seven, farsi ? (char)FarsiNumbers.Seven : (char)HinduNumbers.Seven);
     text.Replace((char)EnglishNumbers.Eight, farsi ? (char)FarsiNumbers.Eight : (char)HinduNumbers.Eight);
     text.Replace((char)EnglishNumbers.Nine, farsi ? (char)FarsiNumbers.Nine : (char)HinduNumbers.Nine);
 }
Exemplo n.º 2
0
        /// <summary>
        ///     Restores removed tashkeel.
        /// </summary>
        public static void RestoreTashkeel(FastStringBuilder letters)
        {
            int letterWithTashkeelTracker = 0;

            foreach (TashkeelLocation location in TashkeelLocations)
            {
                letters.Insert(location.Position + letterWithTashkeelTracker, location.Tashkeel);
                //letterWithTashkeelTracker++;
            }

            /*
             * Fix of https://github.com/mnarimani/RTLTMPro/issues/13
             * The workaround is to replace Shadda + Another Tashkeel with combined form
             */
            letters.Replace(ShaddaFatha, ShaddaWithFathaIsolatedForm);

            letters.Replace(ShaddaDamma, ShaddaWithDammaIsolatedForm);

            letters.Replace(ShaddaKasra, ShaddaWithKasraIsolatedForm);

            letters.Replace(ShaddaDammatan, ShaddaWithDammatanIsolatedForm);

            letters.Replace(ShaddaKasratan, ShaddaWithKasratanIsolatedForm);

            letters.Replace(ShaddaSuperscriptAlef, ShaddaWithSuperscriptAlefIsolatedForm);

            TashkeelLocations.Clear();
        }