/// <summary>
        /// Builds a message string.
        /// </summary>
        /// <param name="locale">Locale in which the message should be translated.</param>
        /// <param name="separator">Message separator.</param>
        /// <returns>a localized message string.</returns>
        private String buildMessage(CultureInfo locale, String separator)
        {
            StringBuilder sb    = new StringBuilder();
            int           count = 0;
            int           len   = msgPatterns.Count;

            for (int i = 0; i < len; i++)
            {
                Localizable pat  = msgPatterns[i];
                Object[]    args = msgArguments[i];
                //MessageFormat fmt = new MessageFormat(pat.getLocalizedString(locale), locale);
                //The line above shows what actually happens on Java,
                //I tried my best to implement it the similiar way I could in C#
                sb.Append(String.Format(pat.getLocalizedString(locale), args));
                if (++count < len)
                {
                    // Add a separator if there are other messages.
                    sb.Append(separator);
                }
            }
            return(sb.ToString());
        }