private ContentElement CreateContentGUI(VisualElement root, L10nAsset asset, L10nTextRow text,
                                                IList <ContentElement> contentElems, string language)
        {
            root.userData = asset;
            var contentText = asset.GetContent(text.ContentId)?.GetLocalization(language);

            if (string.IsNullOrEmpty(contentText))
            {
                return(null);
            }

            var contentElem = new ContentElement {
                userData = text.ContentId,
                value    = contentText,
                label    = "Text"
            };

            contentElems.Add(contentElem);
            root.Add(contentElem);
            return(contentElem);
        }
        private void OnChangeLanguage(ChangeEvent <string> evt)
        {
            var contentsContainer = (evt.currentTarget as VisualElement).parent.parent;

            if (!(contentsContainer.userData is IList <ContentElement> contents))
            {
                return;
            }

            L10nAsset asset = null;

            foreach (var content in contents)
            {
                if (!ReferenceEquals(asset, content.parent.userData))
                {
                    asset = content.parent.userData as L10nAsset;
                }

                var id = (int)content.userData;
                content.value = asset.GetContent(id)?.GetLocalization(evt.newValue) ?? string.Empty;
            }
        }