/// <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()); }