private bool LoadXML(SpeechGrammar grammar, string xml)
        {
            // Check Language
            var language = ConfigManager.GetInstance().Find("bot.language", "fr-FR");

            if (!Regex.IsMatch(xml, "xml:lang=\"" + language + "\"", RegexOptions.IgnoreCase))
            {
                Log("Ignoring : " + grammar.Name + " (" + language + ")");
                return(false);
            }

            // Clean XML
            var bot = ConfigManager.GetInstance().Find("bot.name", "SARAH").ToUpper();

            // Replace SaRaH by bot name
            xml = Regex.Replace(xml, "([^/])SARAH", "$1" + bot, RegexOptions.IgnoreCase);

            // Add optional SARAH
            var item = "<item>\\s*" + bot + "\\s*</item>";

            if (Regex.IsMatch(xml, item, RegexOptions.IgnoreCase))
            {
                xml             = Regex.Replace(xml, item, "<item repeat=\"0-1\">" + bot + "</item>", RegexOptions.IgnoreCase);
                grammar.HasName = true;
            }

            // Set XML
            grammar.SetXML(xml);
            return(true);
        }
    private bool LoadXML(SpeechGrammar grammar, string xml) {
      // Check Language
      var language = ConfigManager.GetInstance().Find("bot.language", "fr-FR");
      if (!Regex.IsMatch(xml, "xml:lang=\"" + language + "\"", RegexOptions.IgnoreCase)) {
        Log("Ignoring : " + grammar.Name + " (" + language + ")");
        return false;
      }

      // Clean XML
      var bot = ConfigManager.GetInstance().Find("bot.name", "SARAH").ToUpper();

      // Replace SaRaH by bot name
      xml = Regex.Replace(xml, "([^/])SARAH", "$1" + bot, RegexOptions.IgnoreCase);

      // Add optional SARAH
      var item = "<item>\\s*" + bot + "\\s*</item>";
      if (Regex.IsMatch(xml, item, RegexOptions.IgnoreCase)) {
        xml = Regex.Replace(xml, item, "<item repeat=\"0-1\">" + bot + "</item>", RegexOptions.IgnoreCase);
        grammar.HasName = true;
      }

      // Set XML
      grammar.SetXML(xml);
      return true;
    }