LocalizeTarget_2DToolKit_Sprite.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #if TK2D
  2. using UnityEngine;
  3. namespace I2.Loc
  4. {
  5. #if UNITY_EDITOR
  6. [UnityEditor.InitializeOnLoad]
  7. #endif
  8. public class LocalizeTarget_2DToolKit_Sprite : LocalizeTarget<tk2dBaseSprite>
  9. {
  10. static LocalizeTarget_2DToolKit_Sprite() { AutoRegister(); }
  11. [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type<tk2dBaseSprite, LocalizeTarget_2DToolKit_Sprite>() { Name = "2DToolKit Sprite", Priority = 100 }); }
  12. public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.TK2dCollection; }
  13. public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.TK2dCollection; }
  14. public override bool CanUseSecondaryTerm() { return true; }
  15. public override bool AllowMainTermToBeRTL() { return false; }
  16. public override bool AllowSecondTermToBeRTL() { return false; }
  17. public override void GetFinalTerms(Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm)
  18. {
  19. primaryTerm = (mTarget.CurrentSprite != null ? mTarget.CurrentSprite.name : string.Empty);
  20. secondaryTerm = (mTarget.Collection != null ? mTarget.Collection.spriteCollectionName : null);
  21. }
  22. public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation)
  23. {
  24. if (string.IsNullOrEmpty(mainTranslation))
  25. return;
  26. //--[ Localize Atlas ]----------
  27. tk2dSpriteCollection newCollection = cmp.GetSecondaryTranslatedObj<tk2dSpriteCollection>(ref mainTranslation, ref secondaryTranslation);
  28. if (newCollection != null)
  29. {
  30. if (mTarget.CurrentSprite.name != mainTranslation || mTarget.Collection.name != secondaryTranslation)
  31. mTarget.SetSprite(newCollection.spriteCollection, mainTranslation);
  32. }
  33. else
  34. {
  35. if (mTarget.CurrentSprite.name != mainTranslation)
  36. mTarget.SetSprite(mainTranslation);
  37. }
  38. }
  39. }
  40. }
  41. #endif