/// <summary>
        /// It will populate available ML strings (CaptionML, OptionCaptionML, and ToolTip) but NOT TextConst.
        /// </summary>
        /// <param name="propertiesNode">Control/Action node to update</param>
        /// <param name="pageId">page ID for search</param>
        /// <param name="controlId">controlId==0 will represent page CaptionML</param>
        internal static void PopulateMlStrings(XmlNode propertiesNode, int pageId, int controlId)
        {
            if (propertiesNode == null)
            {
                return;
            }

            if (!(propertiesNode.Name == "Properties" || propertiesNode.Name == "Action" || propertiesNode.Name == "Separator"))
            {
                return;
            }

            string captionMl = GetCaptionML(pageId, controlId, TranslationType.CaptionMl);

            if (!string.IsNullOrEmpty(captionMl))
            {
                XmlUtility.UpdateNodeInnerText(propertiesNode, "CaptionML", captionMl);
            }

            string optionCaptionMl = GetCaptionML(pageId, controlId, TranslationType.OptionCaptionMl);

            if (!string.IsNullOrEmpty(optionCaptionMl))
            {
                XmlUtility.UpdateNodeInnerText(propertiesNode, "OptionCaptionML", optionCaptionMl);
            }

            string toolTip = GetCaptionML(pageId, controlId, TranslationType.ToolTip);

            if (!string.IsNullOrEmpty(toolTip))
            {
                XmlUtility.UpdateNodeInnerText(propertiesNode, "ToolTipML", toolTip);
            }
        }