/// <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); }
/// <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(); }