rem: else if (isoStrArray.length > 1 && isoStrArray[1]) langLabel += ' (' + isoStrArray[1] + ')'; 
add:  else if (isoStrArray.length > 1 && isoStrArray[1]) { langLabel += ' (' + isoStrArray[1]; if (isoStrArray.length > 2 && isoStrArray[2]) langLabel += '-' + isoStrArray[2]; langLabel += ')'; } 
context: function InitLanguageMenu(){  var languageMenuList = document.getElementById("languageMenuList");  if (!languageMenuList)    return;  var spellChecker = Components.classes["@mozilla.org/spellchecker/myspell;1"]                               .getService(mozISpellCheckingEngine);  var o1 = {};  var o2 = {};  // Get the list of dictionaries from the spellchecker.  spellChecker.getDictionaryList(o1, o2);  var dictList = o1.value;  var count    = o2.value;  // If dictionary count hasn't changed then no need to update the menu.  if (sDictCount == count)    return;  // Store current dictionary count.  sDictCount = count;  // Load the language string bundle that will help us map  // RFC 1766 strings to UI strings.  var languageBundle = document.getElementById("languageBundle");  var isoStrArray;  var langId;  var langLabel;  var i;  for (i = 0; i < count; i++)  {    try    {      langId = dictList[i];      isoStrArray = dictList[i].split("-");      if (languageBundle && isoStrArray[0])        langLabel = languageBundle.getString(isoStrArray[0].toLowerCase());      // the user needs to be able to distinguish between the UK English dictionary      // and say the United States English Dictionary. If we have a isoStr value then      // wrap it in parentheses and append it to the menu item string. i.e.      // English (US) and English (UK)      if (!langLabel)        langLabel = langId;      else if (isoStrArray.length > 1 && isoStrArray[1]) // if we have a language ID like US or UK, append it to the menu item        langLabel += ' (' + isoStrArray[1] + ')';    }    catch (ex)    {      // getString throws an exception when a key is not found in the      // bundle. In that case, just use the original dictList string.      langLabel = langId;    }    dictList[i] = [langLabel, langId];  }  // sort by locale-aware collation  dictList.sort(    function compareFn(a, b)    {      return a[0].localeCompare(b[0]);    }  );   // Remove any languages from the list.  while (languageMenuList.hasChildNodes())    languageMenuList.removeChild(languageMenuList.firstChild);  for (i = 0; i < count; i++)  {    var item = document.createElement("menuitem");    item.setAttribute("label", dictList[i][0]);    item.setAttribute("value", dictList[i][1]);    item.setAttribute("type", "radio");    languageMenuList.appendChild(item);  }      }
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/a8ef4ab1c66bce1287d8f07f926bfbf021f876a8/MsgComposeCommands.js/buggy/mailnews/compose/resources/content/MsgComposeCommands.js