using System; using UnityEngine; [ExecuteInEditMode] [RequireComponent(typeof(UIWidget))] [AddComponentMenu("NGUI/UI/Localize")] public class UILocalize : MonoBehaviour { public string value { set { if (!string.IsNullOrEmpty(value)) { UIWidget component = base.GetComponent(); UILabel uilabel = component as UILabel; UISprite uisprite = component as UISprite; if (uilabel != null) { UIInput uiinput = NGUITools.FindInParents(uilabel.gameObject); if (uiinput != null && uiinput.label == uilabel) { uiinput.defaultText = value; } else { uilabel.text = value; } } else if (uisprite != null) { UIButton uibutton = NGUITools.FindInParents(uisprite.gameObject); if (uibutton != null && uibutton.tweenTarget == uisprite.gameObject) { uibutton.normalSprite = value; } uisprite.spriteName = value; uisprite.MakePixelPerfect(); } } } } private void OnEnable() { if (this.mStarted) { this.OnLocalize(); } } private void Start() { this.mStarted = true; this.OnLocalize(); } private void OnLocalize() { if (string.IsNullOrEmpty(this.key)) { UILabel component = base.GetComponent(); if (component != null) { this.key = component.text; } } if (!string.IsNullOrEmpty(this.key)) { this.value = Localization.Get(this.key); } } public string key; private bool mStarted; }