public override void Compile(string primaryLanguage, string secondaryLanguage)
        {
            if (entries == null || entries.Count == 0)
            {
                if (Application.isPlaying == true)
                {
                    LoadFromSource();
                }
            }

            if (entries != null)
            {
                for (var i = entries.Count - 1; i >= 0; i--)
                {
                    var entry       = entries[i];
                    var translation = LeanLocalization.RegisterTranslation(entry.Name);

                    translation.Register(Language, this);

                    if (Language == primaryLanguage)
                    {
                        translation.Data    = entry.Text;
                        translation.Primary = true;
                    }
                    else if (Language == secondaryLanguage && translation.Primary == false)
                    {
                        translation.Data = entry.Text;
                    }
                }
            }
        }
        public override void Compile(string primaryLanguage, string secondaryLanguage)
        {
            var translation = LeanLocalization.RegisterTranslation(name);

            if (entries != null)
            {
                for (var i = entries.Count - 1; i >= 0; i--)
                {
                    var entry = entries[i];

                    translation.Register(entry.Language, this);

                    if (entry.Language == primaryLanguage)
                    {
                        Compile(translation, entry, true);
                    }
                    else if (entry.Language == secondaryLanguage && translation.Primary == false)
                    {
                        Compile(translation, entry, false);
                    }
                }
            }
        }
        public override void Register(string primaryLanguage, string defaultLanguage)
        {
            // Lazy load only?
            switch (Cache)
            {
            case CacheType.LazyLoad:
            {
                if (Language != primaryLanguage && Language != defaultLanguage)
                {
                    return;
                }
            }
            break;

            case CacheType.LazyLoadAndUnload:
            {
                if (Language != primaryLanguage && Language != defaultLanguage)
                {
                    DoClear();

                    return;
                }
            }
            break;

            case CacheType.LazyLoadAndUnloadPrimaryOnly:
            {
                if (Language != primaryLanguage)
                {
                    DoClear();

                    return;
                }
            }
            break;
            }

            if (entries == null || entries.Count == 0)
            {
                if (Application.isPlaying == true)
                {
                    DoLoadFromSource();
                }
            }

            if (entries != null)
            {
                for (var i = entries.Count - 1; i >= 0; i--)
                {
                    var entry       = entries[i];
                    var translation = LeanLocalization.RegisterTranslation(entry.Name);

                    translation.Register(Language, this);

                    if (Language == primaryLanguage)
                    {
                        translation.Data    = entry.Text;
                        translation.Primary = true;
                    }
                    else if (Language == defaultLanguage && translation.Primary == false)
                    {
                        translation.Data = entry.Text;
                    }
                }
            }
        }