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; } }
public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) { //--[ Localize Font Object ]---------- tk2dFont newFont = cmp.GetSecondaryTranslatedObj <tk2dFont>(ref mainTranslation, ref secondaryTranslation); if (newFont != null && mTarget.font != newFont) { mTarget.font = newFont.data; } if (mInitializeAlignment) { mInitializeAlignment = false; mOriginalAlignment = mTarget.anchor; } if (mainTranslation != null && mTarget.text != mainTranslation) { if (Localize.CurrentLocalizeComponent.CorrectAlignmentForRTL) { int align = (int)mTarget.anchor; if (align % 3 == 0) { mTarget.anchor = LocalizationManager.IsRight2Left ? mTarget.anchor + 2 : mOriginalAlignment; } else if (align % 3 == 2) { mTarget.anchor = LocalizationManager.IsRight2Left ? mTarget.anchor - 2 : mOriginalAlignment; } } mTarget.text = mainTranslation; } }
public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) { var mTarget = GetTarget(cmp); if (mTarget.spriteName == mainTranslation) { return; } //--[ Localize Atlas ]---------- UIAtlas newAtlas = cmp.GetSecondaryTranslatedObj <UIAtlas>(ref mainTranslation, ref secondaryTranslation); bool bChanged = false; if (newAtlas != null && mTarget.atlas != newAtlas) { mTarget.atlas = newAtlas; bChanged = true; } if (mTarget.spriteName != mainTranslation && mTarget.atlas.GetSprite(mainTranslation) != null) { mTarget.spriteName = mainTranslation; bChanged = true; } if (bChanged) { mTarget.MakePixelPerfect(); } }
public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) { if (string.IsNullOrEmpty(mainTranslation)) { return; } //--[ Localize Atlas ]---------- tk2dSpriteCollection newCollection = cmp.GetSecondaryTranslatedObj <tk2dSpriteCollection>(ref mainTranslation, ref secondaryTranslation); if (newCollection != null) { if (mTarget.CurrentSprite.name != mainTranslation || mTarget.Collection.name != secondaryTranslation) { mTarget.SetSprite(newCollection.spriteCollection, mainTranslation); } } else { if (mTarget.CurrentSprite.name != mainTranslation) { mTarget.SetSprite(mainTranslation); } } }
public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) { var mTarget = GetTarget(cmp); //--[ Localize Font Object ]---------- Font newFont = cmp.GetSecondaryTranslatedObj <Font>(ref mainTranslation, ref secondaryTranslation); if (newFont != null && newFont != mTarget.font) { mTarget.font = newFont; } if (mInitializeAlignment) { mInitializeAlignment = false; mAlignmentWasRTL = LocalizationManager.IsRight2Left; InitAlignment(mAlignmentWasRTL, mTarget.alignment, out mAlignment_LTR, out mAlignment_RTL); } else { TextAnchor alignRTL, alignLTR; InitAlignment(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 (cmp.CorrectAlignmentForRTL) { mTarget.alignment = LocalizationManager.IsRight2Left ? mAlignment_RTL : mAlignment_LTR; } mTarget.text = mainTranslation; mTarget.SetVerticesDirty(); // In the editor, sometimes unity "forgets" to show the changes #if UNITY_EDITOR if (!Application.isPlaying) { UnityEditor.EditorUtility.SetDirty(mTarget); } #endif } }
public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) { //--[ Localize Material]---------- Material newMat = cmp.GetSecondaryTranslatedObj <Material>(ref mainTranslation, ref secondaryTranslation); if (newMat != null && mTarget.sharedMaterial != newMat) { mTarget.material = newMat; } //--[ Localize Mesh ]---------- Mesh newMesh = cmp.FindTranslatedObject <Mesh>(mainTranslation); MeshFilter filter = mTarget.GetComponent <MeshFilter>(); if (newMesh != null && filter.sharedMesh != newMesh) { filter.mesh = newMesh; } }
public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) { //--[ Localize Font Object ]---------- Font newFont = cmp.GetSecondaryTranslatedObj <Font>(ref mainTranslation, ref secondaryTranslation); if (newFont != null && mTarget.font != newFont) { mTarget.font = newFont; MeshRenderer rend = mTarget.GetComponentInChildren <MeshRenderer>(); rend.material = newFont.material; } //--[ Localize Text ]---------- if (mInitializeAlignment) { mInitializeAlignment = false; mAlignment_LTR = mAlignment_RTL = mTarget.alignment; if (LocalizationManager.IsRight2Left && mAlignment_RTL == TextAlignment.Right) { mAlignment_LTR = TextAlignment.Left; } if (!LocalizationManager.IsRight2Left && mAlignment_LTR == TextAlignment.Left) { mAlignment_RTL = TextAlignment.Right; } } if (mainTranslation != null && mTarget.text != mainTranslation) { if (cmp.CorrectAlignmentForRTL && mTarget.alignment != TextAlignment.Center) { mTarget.alignment = (LocalizationManager.IsRight2Left ? mAlignment_RTL : mAlignment_LTR); } mTarget.font.RequestCharactersInTexture(mainTranslation); mTarget.text = mainTranslation; } }
public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) { var mTarget = GetTarget(cmp); //--[ Localize Font Object ]---------- Font newFont = cmp.GetSecondaryTranslatedObj <Font>(ref mainTranslation, ref secondaryTranslation); if (newFont != null && mTarget.font != newFont) { mTarget.font = newFont; } //--[ Localize Text ]---------- if (mInitializeAlignment) { mInitializeAlignment = false; mAlignment_LTR = mAlignment_RTL = mTarget.alignment; if (LocalizationManager.IsRight2Left && mAlignment_RTL == TextAlignment.Right) { mAlignment_LTR = TextAlignment.Left; } if (!LocalizationManager.IsRight2Left && mAlignment_LTR == TextAlignment.Left) { mAlignment_RTL = TextAlignment.Right; } } if (mainTranslation != null && mTarget.text != mainTranslation) { if (cmp.CorrectAlignmentForRTL && mTarget.alignment != TextAlignment.Center) { mTarget.alignment = (LocalizationManager.IsRight2Left ? mAlignment_RTL : mAlignment_LTR); } mTarget.text = mainTranslation; } }
public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) { var mTarget = GetTarget(cmp); //--[ Localize Font Object ]---------- Font newFont = cmp.GetSecondaryTranslatedObj <Font>(ref mainTranslation, ref secondaryTranslation); if (newFont != null) { if (newFont != mTarget.ambigiousFont) { mTarget.ambigiousFont = newFont; } } else { UIFont newUIFont = cmp.GetSecondaryTranslatedObj <UIFont>(ref mainTranslation, ref secondaryTranslation); if (newUIFont != null && mTarget.ambigiousFont != newUIFont) { mTarget.ambigiousFont = newUIFont; } } if (mInitializeAlignment) { mInitializeAlignment = false; mAlignment_LTR = mAlignment_RTL = mTarget.alignment; if (LocalizationManager.IsRight2Left && mAlignment_RTL == NGUIText.Alignment.Right) { mAlignment_LTR = NGUIText.Alignment.Left; } if (!LocalizationManager.IsRight2Left && mAlignment_LTR == NGUIText.Alignment.Left) { mAlignment_RTL = NGUIText.Alignment.Right; } } UIInput input = NGUITools.FindInParents <UIInput>(mTarget.gameObject); if (input != null && input.label == mTarget) { if (mainTranslation != null && input.defaultText != mainTranslation) { if (cmp.CorrectAlignmentForRTL && (input.label.alignment == NGUIText.Alignment.Left || input.label.alignment == NGUIText.Alignment.Right)) { input.label.alignment = (LocalizationManager.IsRight2Left ? mAlignment_RTL : mAlignment_LTR); } input.defaultText = mainTranslation; } } else { if (mainTranslation != null && mTarget.text != mainTranslation) { if (cmp.CorrectAlignmentForRTL && (mTarget.alignment == NGUIText.Alignment.Left || mTarget.alignment == NGUIText.Alignment.Right)) { mTarget.alignment = (LocalizationManager.IsRight2Left ? mAlignment_RTL : mAlignment_LTR); } mTarget.text = mainTranslation; } } }