public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) { //--[ Localize Font Object ]---------- { TMPro.TMP_FontAsset newFont = cmp.GetSecondaryTranslatedObj<TMPro.TMP_FontAsset>(ref mainTranslation, ref secondaryTranslation); if (newFont != null) { if (mTarget.font != newFont) mTarget.font = newFont; } else { //--[ Localize Font Material ]---------- Material newMat = cmp.GetSecondaryTranslatedObj<Material>(ref mainTranslation, ref secondaryTranslation); if (newMat != null && mTarget.fontMaterial != newMat) { if (!newMat.name.StartsWith(mTarget.font.name, StringComparison.Ordinal)) { newFont = GetTMPFontFromMaterial(cmp, secondaryTranslation.EndsWith(newMat.name, StringComparison.Ordinal) ? secondaryTranslation : newMat.name); if (newFont != null) mTarget.font = newFont; } mTarget.fontSharedMaterial/* fontMaterial*/ = newMat; } } } if (mInitializeAlignment) { mInitializeAlignment = false; mAlignmentWasRTL = LocalizationManager.IsRight2Left; InitAlignment_TMPro(mAlignmentWasRTL, mTarget.alignment, out mAlignment_LTR, out mAlignment_RTL); } else { TMPro.TextAlignmentOptions alignRTL, alignLTR; InitAlignment_TMPro(mAlignmentWasRTL, mTarget.alignment, out alignLTR, out alignRTL); if ((mAlignmentWasRTL && mAlignment_RTL != alignRTL) || (!mAlignmentWasRTL && mAlignment_LTR != alignLTR)) { mAlignment_LTR = alignLTR; mAlignment_RTL = alignRTL; } mAlignmentWasRTL = LocalizationManager.IsRight2Left; } if (mainTranslation != null && mTarget.text != mainTranslation) { if (mainTranslation != null && cmp.CorrectAlignmentForRTL) { mTarget.alignment = (LocalizationManager.IsRight2Left ? mAlignment_RTL : mAlignment_LTR); mTarget.isRightToLeftText = LocalizationManager.IsRight2Left; if (LocalizationManager.IsRight2Left) mainTranslation = I2Utils.ReverseText(mainTranslation); } mTarget.text = mainTranslation; } }