// Define the lookup tables - There must be one for every language
trans = new Array();
trans["en"] = new Array();
trans["zh"] = new Array();
trans["fr"] = new Array();
trans["es"] = new Array();
trans["pt"] = new Array();
trans["it"] = new Array();
trans["de"] = new Array();
trans["ar"] = new Array();
trans["da"] = new Array();

// Define languages that use NCR encoding
trans["zh"]["ncr.encoded"]=1;
trans["ar"]["ncr.encoded"]=1;

// Define the translations
trans["en"]["SPECIFY_TEAM_NAME"] = "Team name must be specified";
trans["zh"]["SPECIFY_TEAM_NAME"] = "&#25152;&#26377;&#29699;&#21592;&#24517;&#39035;&#36873;&#25321;";

trans["en"]["SELECT_ALL_PLAYERS"] = "All Players must be selected";
trans["zh"]["SELECT_ALL_PLAYERS"] = "&#29699;&#38431;&#21517;&#31216;&#24517;&#39035;&#25351;&#23450;";
trans["pt"]["SELECT_ALL_PLAYERS"] = "Não pode incluir mais nenhum {1}";

trans["en"]["TOO_MANY_PLAYERS_IN_SIDE"] = "Sorry, you cannot pick any more players from ";
trans["zh"]["TOO_MANY_PLAYERS_IN_SIDE"] = "&#24456;&#25265;&#27465;, &#24744;&#19981;&#33021;&#20877;&#36873;&#25321;&#26356;&#22810;&#29699;&#21592;&#20110; ";

trans["en"]["ALREADY_SELECTED"] = "Oops! You have already selected ";
trans["zh"]["ALREADY_SELECTED"] = "&#22114;! &#24744;&#24050;&#32463;&#36873;&#25321;&#20102;&#36825;&#20010; ";
trans["pt"]["ALREADY_SELECTED"] = "Já seleccionou anteriormente ";

trans["en"]["NOT_ENOUGH_MONEY"] = "Sorry, you do not have enough money left for ";
trans["zh"]["NOT_ENOUGH_MONEY"] = "&#24456;&#25265;&#27465;, &#24744;&#27809;&#26377;&#36275;&#22815;&#37329;&#39069;&#21097;&#19979;&#21435; ";
trans["pt"]["NOT_ENOUGH_MONEY"] = "Ultrapassou o orçamento permitido ";

trans["en"]["NO_MORE_TRANSFERS"] = "Sorry, you do not have any transfers left";
trans["zh"]["NO_MORE_TRANSFERS"] = "&#24456;&#25265;&#27465;, &#24744;&#27809;&#26377;&#20313;&#19979;&#30340;&#36716;&#20250;&#21517;&#39069;";

trans["en"]["UNLIMITED"] = "unlimited";
trans["zh"]["UNLIMITED"] = "&#26080;&#38480;";

trans["en"]["TOO_MANY_TEAMS"] = "Sorry, you now have the maximum number of teams.";
trans["zh"]["TOO_MANY_TEAMS"] = "&#24456;&#25265;&#27465;, &#24744;&#29616;&#22312;&#24050;&#26377;&#21040;&#36798;&#19978;&#38480;&#30340;&#29699;&#38431;";

trans["en"]["CONFIRM_TRANSFERS"] = "Continue with {1} transfers? Active on {2}";
trans["zh"]["CONFIRM_TRANSFERS"] = "&#32487;&#32493;&#36827;&#34892; {1} &#36716;&#20250;?";

trans["en"]["NO_TEAMS"] = "You must first add some teams!";
trans["zh"]["NO_TEAMS"] = "&#24744;&#24517;&#39035;&#20808;&#22686;&#28155;&#29699;&#38431;";

trans["en"]["CONFIRM_TEAM"] = "Are you sure that you would like to continue with {1} team?";
trans["zh"]["CONFIRM_TEAM"] = "&#24744;&#26159;&#21542;&#30830;&#23450;&#36873;&#25321;{1}&#29699;&#38431;";

trans["en"]["CONFIRM_TEAMS"] = "Are you sure that you would like to continue with {1} teams?";
trans["zh"]["CONFIRM_TEAMS"] = "&#24744;&#26159;&#21542;&#30830;&#23450;&#36873;&#25321;{1}&#29699;&#38431;";

trans["pt"]["SELECT_CATEGORY"] = "Todos os jogadores têm que ser seleccionados - Escolha outro por favor {1}";

trans["en"]["DUPLICATE_RACE_SELECTED"] = "You can not select the same race twice";

trans["en"]["SELECT_COURSE_RACE_TIP"] = "Please select a course, race, and horse for each tip";

trans["en"]["SELECT_ALL_TIPS"] = "Please select all tips";
            
// Flash Game Translations                  
trans["en"]["MANAGERS NOTEBOOK"] = "MANAGER\'S NOTEBOOK";
trans["en"]["Instructions register team."] = "You must select a save option below to confirm your team changes.";
trans["en"]["Instructions saved teams."] = "Choose which of your line-ups to view.";
trans["en"]["Instructions save team."] = "Please pick a team name.";
                            
            
// Flash Game Translations                  
trans["pt"]["m"] = "m"; // million        
trans["pt"]["SAVE"] = "SALVAR";  
trans["pt"]["FIELD"] = "CAMPO";   
trans["pt"]["NOTEBOOK"] = "ANOTACOES";
trans["pt"]["SAVING"] = "SALVANDO";
trans["pt"]["SAVE TEAM"] = "SALVAR TIME";
trans["pt"]["SAVED TEAMS"] = "TIMES SALVOS";
trans["pt"]["FORMATIONS"] = "FORMACOES";
trans["pt"]["BUDGET"] = "CAIXA";
trans["pt"]["TOTAL BUDGET"] = "CAIXA TOTAL";
trans["pt"]["USED"] = "USADO";
trans["pt"]["AVAILABLE"] = "DISPONIVEL";
trans["pt"]["SCORES"] = "PONTUACAO";
trans["pt"]["TOTAL POINTS"] = "TOTAL DE PONTOS";
trans["pt"]["OVERALL POSITION"] = "POSICAO GERAL";
trans["pt"]["ROUND POINTS"] = "PONTOS";
trans["pt"]["ROUND POSITION"] = "POSICAO";
trans["pt"]["MINI LEAGUE POSITION"] = "POSICAO NA MINI LIGA";
trans["pt"]["SEARCH"] = "BUSCAR";
trans["pt"]["Striker"] = "Atacante";
trans["pt"]["strikers"] = "atacantes";
trans["pt"]["Midfielder"] = "Meio-campista";
trans["pt"]["midfielders"] = "meio-campistas";
trans["pt"]["Defender"] = "Defensor";
trans["pt"]["defenders"] = "defensores";
trans["pt"]["Goalkeeper"] = "Goleiro";
trans["pt"]["GOALKEEPER"] = "GOLEIRO";
trans["pt"]["DEFENDER"] = "DEFENSOR";
trans["pt"]["MIDFIELDER"] = "MEIO-CAMPISTA";
trans["pt"]["STRIKER"] = "ATACANTE";
trans["pt"]["GOALKEEPER,DEFENDER"] = "GOLEIRO,DEFENSOR";
trans["pt"]["GOALKEEPER,DEFENDER,MIDFIELDER"] = "GOLEIRO,DEFENSOR,MEIO-CAMPISTA";
trans["pt"]["GOALKEEPER,DEFENDER,MIDFIELDER,STRIKER"] = "GOLEIRO,DEFENSOR,MEIO-CAMPISTA,ATACANTE";
trans["pt"]["goalkeepers"] = "goleiros";
trans["pt"]["TRANSFERS"] = "TRANSFERENCIAS";
trans["pt"]["EDITING TEAM"] = "EDITANDO TIME";
trans["pt"]["VIEWING TEAM"] = "VENDO TIME";
trans["pt"]["PICK YOUR PLAYERS"] = "ESCOLHA SEUS JOGADORES";
trans["pt"]["Pick your players"] = "Escolha Seus Jogadores";
trans["pt"]["Pick Your Players"] = "Escolha Seus Jogadores";
trans["pt"]["NO PLAYERS COULD BE FOUND"] = "NENHUM JOGADOR PODE SER ENCONTRADO";
trans["pt"]["YOU HAVE NO TRANSFERS LEFT"] = "VOCE NAO TEM TRANSFERENCIAS RESTANTES";
trans["pt"]["OK"] = "OK";
trans["pt"]["CANCEL"] = "CANCELAR";
trans["pt"]["FORMATIONS"] = "FORMACAO";
trans["pt"]["SELECT"] = "ESCOLHER";
trans["pt"]["TEAM NAME"] = "NOME DO TIME";
trans["pt"]["LOAD"] = "CARREGANDO";
trans["pt"]["SELECT A TEAM"] = "ESCOLHER UM TIME";
trans["pt"]["Edit Team"] = "Editar time";
trans["pt"]["Current Team"] = "Time atual";
trans["pt"]["player"] = "jogador";
trans["pt"]["PLAYERS"] = "jogadors";
trans["pt"]["points"] = "pontos";
trans["pt"]["team"] = "time";
trans["pt"]["value"] = "valor";
trans["pt"]["Start Match"] = "Comecar partida";
trans["pt"]["Substitute"] = "Substituir";
trans["pt"]["Goal"] = "Gol";
trans["pt"]["Key Goal Contribution"] = "Contribuicao-chave para o gol";
trans["pt"]["Clean Sheet"] = "Limpar";
trans["pt"]["Conceded Goal"] = "Gol sofrido";
trans["pt"]["Yellow Card"] = "Cartao amarelo";
trans["pt"]["Red Card"] = "Cartao vermelho";
trans["pt"]["{1} IS ALREADY IN YOUR TEAM"] = "{1} JA ESTA EM SEU TIME";
trans["pt"]["YOU CANNOT PICK ANY MORE PLAYERS FROM {1}"] = "VOCE NAO PODE MAIS ESCOLHER MAIS JOGADORES DE {1}";
trans["pt"]["YOU CANNOT AFFORD {1}"] = "VOCE NAO PODE COMPRAR {1}";
trans["pt"]["YOU HAVE ENOUGH {1}"] = "VOCE JA TEM {1} SUFICIENTE";
trans["pt"]["YOU NEED A {1}"] = "VOCE PRECISA DE {1}";
trans["pt"]["HELP"] = "AJUDA";
trans["pt"]["PITCH"] = "CAMPO";
trans["pt"]["UNLIMITED"] = "ILIMITADO";
trans["pt"]["PLAYER SEARCH"] = "BUSCA DE JOGADOR";
trans["pt"]["PLAYER DETAILS"] = "DETALHES DO JOGADOR";
trans["pt"]["Save team to"] = "Salvar time como";
trans["pt"]["SAVE"] = "SALVAR";
trans["pt"]["OR"] = "OU";
trans["pt"]["MANAGERS NOTEBOOK"] = "ANOTACOES DOS MANAGERS";
trans["pt"]["To save switch to pitch view"] = "Isso pode ser feito pelo botao SALVAR TIME, nesta pagina";
trans["pt"]["VALUE"] = "VALOR";
trans["pt"]["NAME"] = "NOME";
trans["pt"]["BENCH"] = "Banco";
trans["pt"]["Instructions seved teams."] = "Instrucoes salvas por time.";
trans["pt"]["Instructions Save Team."] = "Instrucoes Salvar Time.";
trans["pt"]["Instructions Save Team"] = "Instrucoes Salvar Time";
trans["pt"]["Instructions save team."] = "Instrucoes salvar time.";
trans["pt"]["Instructions save team"] = "Instrucoes salvar time";
trans["pt"]["Instructions register team."] = "Usted debe tomar uno del salva las opciones para confirmar sus cambios";
trans["pt"]["ADD PLAYER"] = "ADICIONAR JOGADOR";
trans["pt"]["REMOVE PLAYER"] = "REMOVIDO JOGADOR";
trans["pt"]["YOUR TEAM HAS ERRORS"] = "Um erro ocorreu - por favor, leia as instrucoes atentamente e tente de novo";
trans["pt"]["Your team is not complete please add a player to every position."] = "Sua entrada selecionada nao esta disponivel";
trans["pt"]["PICK YOUR PLAYERS"] = "ESCOLHA SEUS JOGADORES";
trans["pt"]["PICK YOUR"] = "ESCOLHA SEUS";
trans["pt"]["PLAYER ADDED"] = "ADICIONADO JOGADOR";
trans["pt"]["Weekly Points"] = "Pontos por semana";
trans["pt"]["Weekly Position"] = "Posicao por semana";
trans["pt"]["Monthly Points"] = "Pontos por mes";
trans["pt"]["MONTHLY SCORE"] = "PONTOS POR MES";
trans["pt"]["OVERALL SCORE"] = "TOTAL DE PONTOS";
trans["pt"]["Monthly Position"] = "Posicao por mes";
trans["pt"]["MONTHLY POSITION"] = "POSICAO POR MES";
trans["pt"]["Fixtures"] = "Dados";
trans["pt"]["LATEST FIXTURES"] = "ULTIMOS RESULTADOS";
trans["pt"]["Next seven days"] = "Proximos sete dias";
trans["pt"]["Thank you your team has been saved"] = "SALVO! Obrigado, seu time foi salvo corretamente";
trans["pt"]["Sub Player"] = "Reserva";
trans["pt"]["Player Info"] = "Informacoes do jogador";
trans["pt"]["Undo"] = "Alterar";
trans["pt"]["Transfer Player"] = "Jogador transferido";
trans["pt"]["Option: 1) Save your team for the next deadline freeze."] = "Opcao 1: salve seu time para o proximo deadline";
trans["pt"]["Option: 2) Save your team for a future team freeze. Ideal if you are going to be away from your computer for a while. Use the drop down boxes to select a date."] = "Opcao 2: salve sua equipe antes de continuar. Ao voltar, use as caixas de selecao para continuar";
trans["pt"]["OR"] = "O";

// Define the abbreviations
trans["abbreviation"] = new Array();
trans["abbreviation"]["Manchester United"] = "MUN";
trans["abbreviation"]["Manchester City"] = "MCY";
trans["abbreviation"]["West Ham United"] = "WHM";
trans["abbreviation"]["Man City"] = "MAC";
trans["abbreviation"]["Man Utd"] = "MUN";
trans["abbreviation"]["MAN CITY"] = "MAC";
trans["abbreviation"]["MAN UTD"] = "MUN";
trans["abbreviation"]["West Ham"] = "WHM";
trans["abbreviation"]["West Brom"] = "WBA";
trans["abbreviation"]["West Bromwich Albion"] = "WBA";
trans["abbreviation"]["manchester united"] = "MUN";
trans["abbreviation"]["manchester city"] = "MAC";
trans["abbreviation"]["west ham united"] = "WHM";
trans["abbreviation"]["man city"] = "MAC";
trans["abbreviation"]["man utd"] = "MUN";
trans["abbreviation"]["man city"] = "MAC";
trans["abbreviation"]["man utd"] = "MUN";
trans["abbreviation"]["west ham"] = "WHM";
trans["abbreviation"]["west brom"] = "WBA";
trans["abbreviation"]["west bromwich albion"] = "WBA";
trans["abbreviation"]["Al Ahly"] = "AHL";
trans["abbreviation"]["al ahly"] = "AHL";
trans["abbreviation"]["AL AHLY"] = "AL AHLY";
trans["abbreviation"]["El Geish"] = "GEI";
trans["abbreviation"]["el geish"] = "GEI";
trans["abbreviation"]["EL GEISH"] = "EL GEISH";
trans["abbreviation"]["El Masry"] = "MAS";
trans["abbreviation"]["el masry"] = "MAS";
trans["abbreviation"]["EL MASRY"] = "EL MASRY";
trans["abbreviation"]["El Shorta"] = "SHO";
trans["abbreviation"]["el shorta"] = "SHO";
trans["abbreviation"]["EL SHORTA"] = "EL SHORTA";
trans["abbreviation"]["Al Mokawloon Al Arab"] = "MOK";
trans["abbreviation"]["al mokawloon al arab"] = "MOK";
trans["abbreviation"]["AL MOKAWLOON AL ARAB"] = "AL MOKAWLOON AA";
trans["abbreviation"]["El Ittihad"] = "ITT";
trans["abbreviation"]["el ittihad"] = "ITT";
trans["abbreviation"]["EL ITTIHAD"] = "EL ITTIHAD";
trans["abbreviation"]["El Gonah"] = "GON";
trans["abbreviation"]["el gonah"] = "GON";
trans["abbreviation"]["EL GONAH"] = "EL GONAH";
trans["abbreviation"]["El Entag El Harbi"] = "ENT";
trans["abbreviation"]["el entag el harbi"] = "ENT";
trans["abbreviation"]["EL ENTAG EL HARBI"] = "EL ENTAG EH";
trans["abbreviation"]["El Mansoura"] = "MAN";
trans["abbreviation"]["el mansoura"] = "MAN";
trans["abbreviation"]["EL MANSOURA"] = "EL MANSOURA";
trans["abbreviation"]["Al-Ahly"] = "ALY";
trans["abbreviation"]["al-ahly"] = "ALY";
trans["abbreviation"]["AL-AHLY"] = "AL-AHLY";
trans["abbreviation"]["Al-Fateh"] = "FAT";
trans["abbreviation"]["al-fateh"] = "FAT";
trans["abbreviation"]["AL-FATEH"] = "AL-FATEH";
trans["abbreviation"]["Al-Hazm"] = "HAZ";
trans["abbreviation"]["al-hazm"] = "HAZ";
trans["abbreviation"]["AL-HAZM"] = "AL-HAZM";
trans["abbreviation"]["Al Hilal"] = "HIL";
trans["abbreviation"]["al hilal"] = "HIL";
trans["abbreviation"]["AL HILAL"] = "AL-HILAL";
trans["abbreviation"]["Al-Ittifaq"] = "ITF";
trans["abbreviation"]["al-ittifaq"] = "ITF";
trans["abbreviation"]["AL-ITTIFAQ"] = "AL-ITTIFAQ";
trans["abbreviation"]["Al-Ittihad"] = "ITH";
trans["abbreviation"]["al-ittihad"] = "ITH";
trans["abbreviation"]["AL-ITTIHAD"] = "AL-ITTIHAD";
trans["abbreviation"]["Al-Nasr"] = "NAS";
trans["abbreviation"]["al-nasr"] = "NAS";
trans["abbreviation"]["AL-NASR"] = "AL-NASR";
trans["abbreviation"]["Al-Qadissiyyah"] = "QUA";
trans["abbreviation"]["al-qadissiyyah"] = "QUA";
trans["abbreviation"]["AL-QADISSIYYAH"] = "AL-QUADISSIYYA";
trans["abbreviation"]["Al-Raed"] = "RAE";
trans["abbreviation"]["al-raed"] = "RAE";
trans["abbreviation"]["AL-RAED"] = "AL-RAED";
trans["abbreviation"]["Al-Shabab"] = "SHA";
trans["abbreviation"]["al-shabab"] = "SHA";
trans["abbreviation"]["AL-SHABAB"] = "AL-SHABAB";
trans["abbreviation"]["Al-Wahda"] = "WAH";
trans["abbreviation"]["al-wahda"] = "WAH";
trans["abbreviation"]["AL-WAHDA"] = "AL-WAHDA";
trans["abbreviation"]["AC Milan"] = "ACM";
trans["abbreviation"]["ac milan"] = "ACM";
trans["abbreviation"]["AC MILAN"] = "AC MILAN";
trans["abbreviation"]["AS Roma"] = "ROM";
trans["abbreviation"]["as roma"] = "ROM";
trans["abbreviation"]["AS ROMA"] = "AS ROMA";
trans["abbreviation"]["AS Livorno Calcio"] = "LIV";
trans["abbreviation"]["as livorno Calcio"] = "LIV";
trans["abbreviation"]["AS LIVORNO CALCIO"] = "AS LIVORNO CALCIO";
trans["abbreviation"]["AS Bari"] = "BAR";
trans["abbreviation"]["as bari"] = "BAR";
trans["abbreviation"]["AS BARI"] = "AS BARI";
trans["abbreviation"]["Real Madrid"] = "RMD";
trans["abbreviation"]["real madrid"] = "RMD";
trans["abbreviation"]["REAL MADRID"] = "REAL MADRID";
trans["abbreviation"]["Athletic Bilbao"] = "ATB";
trans["abbreviation"]["athletic bilbao"] = "ATB";
trans["abbreviation"]["ATHLETIC BILBAO"] = "ATHLETIC BILBAO";
trans["abbreviation"]["Atlético Madrid"] = "ATM";
trans["abbreviation"]["atlético madrid"] = "ATM";
trans["abbreviation"]["ATLÉTICO MADRID"] = "ATLÉTICO MADRID";
trans["abbreviation"]["Málaga"] = "MGA";
trans["abbreviation"]["málaga"] = "MGA";
trans["abbreviation"]["MÁLAGA"] = "MÁLAGA";
trans["abbreviation"]["Mallorca"] = "MRC";
trans["abbreviation"]["mallorca"] = "MRC";
trans["abbreviation"]["MALLORCA"] = "MALLORCA";
trans["abbreviation"]["Real Zaragoza"] = "RZA";
trans["abbreviation"]["real zaragoza"] = "RZA";
trans["abbreviation"]["REAL ZARAGOZA"] = "REAL ZARAGOZA";
trans["abbreviation"]["Real Valladolid"] = "RVD";
trans["abbreviation"]["real valladolid"] = "RVD";
trans["abbreviation"]["REAL VALLADOLID"] = "REAL VALLADOLID";
trans["abbreviation"]["Deportivo Xerez"] = "DPX";
trans["abbreviation"]["deportivo xerez"] = "DPX";
trans["abbreviation"]["DEPORTIVO XEREZ"] = "DEPORTIVO XEREZ";
trans["abbreviation"]["Deportivo La Coruña"] = "DEP";
trans["abbreviation"]["deportivo la coruña"] = "DEP";
trans["abbreviation"]["DEPORTIVO LA CORUÑA"] = "DEPORTIVO LA CORUÑA";
trans["abbreviation"]["CD Tenerife"] = "TEN";
trans["abbreviation"]["cd tenerife"] = "TEN";
trans["abbreviation"]["CD TENERIFE"] = "CD TENERIFE";
trans["abbreviation"]["Al-Ahly Dubai"] = "AHL";
trans["abbreviation"]["al-ahly Dubai"] = "AHL";
trans["abbreviation"]["AL-AHLY DUBAI"] = "AL-AHLY DUBAI";
trans["abbreviation"]["Al-Ain"] = "AIN";
trans["abbreviation"]["al-ain"] = "AIN";
trans["abbreviation"]["AL-AIN"] = "AL-AIN";
trans["abbreviation"]["Al-Jazeera"] = "JAZ";
trans["abbreviation"]["al-jazeera"] = "JAZ";
trans["abbreviation"]["AL-JAZEERA"] = "AL-JAZEERA";
trans["abbreviation"]["Al Nasr"] = "NAS";
trans["abbreviation"]["al nasr"] = "NAS";
trans["abbreviation"]["AL NASR"] = "AL NASR";
trans["abbreviation"]["Al-Shabab Dubai"] = "SHA";
trans["abbreviation"]["al-shabab dubai"] = "SHA";
trans["abbreviation"]["AL-SHABAB DUBAI"] = "AL-SHABAB DUBAI";
trans["abbreviation"]["Al-Wasl"] = "WAS";
trans["abbreviation"]["al-wasl"] = "WAS";
trans["abbreviation"]["AL-WASL"] = "AL-WASL";
trans["abbreviation"]["Al Wahda"] = "WAH";
trans["abbreviation"]["al wahda"] = "WAH";
trans["abbreviation"]["AL WAHDA"] = "AL WAHDA";
trans["abbreviation"]["Al-Dhafra"] = "DHA";
trans["abbreviation"]["al-dhafra"] = "DHA";
trans["abbreviation"]["AL-DHAFRA"] = "AL-DHAFRA";
trans["abbreviation"]["Al-Emirates"] = "EMI";
trans["abbreviation"]["al-emirates"] = "EMI";
trans["abbreviation"]["AL-EMIRATES"] = "AL-EMIRATES";
trans["abbreviation"]["FC København"] = "FCK";
trans["abbreviation"]["Brøndby IF"] = "BIF";
trans["abbreviation"]["FC Midtjylland"] = "FCM";
trans["abbreviation"]["Silkeborg IF"] = "SIF";
trans["abbreviation"]["FC Nordsjaelland"] = "FCN";
trans["abbreviation"]["Esbjerg fB"] = "EfB";
trans["abbreviation"]["SønderjyskE"] = "SE";
trans["abbreviation"]["Randers FC"] = "RFC";

                            
// This function will allow translating of a message
function translate(message) {
 
  var translated = undefined;

  // If the language isn't set then set it to english
  if (window.languageCode == undefined) {
   
    window.languageCode = "en";
  }

  var languageLookup = trans[window.languageCode];

  // If is a language lookup for this language then try to use it  
  if (languageLookup != undefined) {
    
    translated = languageLookup[message];
  }

  // If we haven't translated yet then translate into english
  if (languageCode != "en" &&
      translated == undefined) {

    languageLookup = trans["en"];
    translated = languageLookup[message];
  }

  // If we still haven't successfully translated then return the original message
  if (translated == undefined) {

    // console.log(message);
    translated = message;
  }

  // If this language is NCR encoded then decode it
  if (languageLookup["ncr.encoded"] == 1) {

    translated = decodeNCR(translated);
  }

  return translated;
}


// This function will replace {1} in the message with the specified variable
function translate1(message, variable) {
  
  var translated = translate(message);
  return translated.replace("{1}", variable);
}


// This function will replace {1} and {2} in the message with the specified variables
function translate2(message, variable1, variable2) {
  
  var translated = translate1(message, variable1);
  return translated.replace("{2}", variable2);
}

// This function will replace {1} and {2} and {3} in the message with the specified variables
function translate3(message, variable1, variable2, variable3) {
  
  var translated = translate2(message, variable1, variable2);
  return translated.replace("{3}", variable3);
}

function abbreviate(message, length) {

  var abbreviation = undefined;
  
  var languageLookup = trans["abbreviation"];
  if (languageLookup != undefined) {
    
    abbreviation = languageLookup[message];
  }

  // If we didn't find an abbreviation then use the original message
  if (abbreviation == undefined) {

    // console.log(message);
    abbreviation = message;
  }
  
  // Truncate the abbreviation
  if (abbreviation.length > length) {
    
    abbreviation = abbreviation.substring(0, length);
  }

  return abbreviation;
}

// This function will decode NCR encoded text 
function decodeNCR(encodedText) {

  return convertCP2Char(convertDecNCR2CP(encodedText));
}

// This function will encode NCR encoded text 
function encodeNCR(text) {

  return convertCP2DecNCR(convertChar2CP(text));
}


// This function converts from a code point to a character
function convertCP2Char ( textString ) {

  var outputString = '';
  textString = textString.replace(/^\s+/, '');
  if (textString.length == 0) { return ""; }
    textString = textString.replace(/\s+/g, ' ');
  var listArray = textString.split(' ');
  for ( var i = 0; i < listArray.length; i++ ) {
    var n = parseInt(listArray[i], 16);
    if (n <= 0xFFFF) {
      outputString += String.fromCharCode(n);
    } else if (n <= 0x10FFFF) {
      n -= 0x10000
      outputString += String.fromCharCode(0xD800 | (n >> 10)) + String.fromCharCode(0xDC00 | (n & 0x3FF));
    } else {
      outputString += '!erreur ' + dec2hex(n) +'!';
    }
  }
  return( outputString );
}

function convertCP2DecNCR(ts) { 

  var outputString = ""; 
  ts = ts.replace(/^\s+/, ''); 
  if(ts.length == 0) return ""; 
  ts = ts.replace(/\s+/g, ' '); 
  var listArray = ts.split(' '); 
  for(var i = 0; i < listArray.length; i++) { 
  
    var n = parseInt(listArray[i], 16); 
    outputString += ('&#' + n + ';'); 
  } return(outputString); 
}

// This function converts from a character to a code point
function convertChar2CP ( textString ) {

  var outputString = "";
  var haut = 0;
  var n = 0;
  for (var i = 0; i < textString.length; i++) {
    var b = textString.charCodeAt(i);  // alert('b:'+dec2hex(b));
    if (b < 0 || b > 0xFFFF) {
      outputString += '!erreur ' + dec2hex(b) + '!';
    }
    if (haut != 0) {
      if (0xDC00 <= b && b <= 0xDFFF) {
        outputString += dec2hex(0x10000 + ((haut - 0xD800) << 10) + (b - 0xDC00)) + ' ';
        haut = 0;
        continue;
      } else {
        outputString += '!erreur ' + dec2hex(haut) + '!';
        haut = 0;
      }
    }
    if (0xD800 <= b && b <= 0xDBFF) {
      haut = b;
    } else {
      outputString += dec2hex(b) + ' ';
    }
  }
  return( outputString.replace(/ $/, '') );
}

// This function converts from NCR to a code point
function convertDecNCR2CP ( textString ) {

  outputString = '';
  inNCR = false;
  tempString = '';
  for (var i=0; i<textString.length; i++) {   
    if (textString.charAt(i) == '&') { // &
      inNCR = true;
      if (tempString != '') { outputString += convertChar2CP( tempString )+' '; }
      tempString = ''; 
      }
    else if ( inNCR && textString.charAt(i) == ';' ) { // ;
      inNCR = false;
      outputString += dec2hex(parseInt(tempString.substring(1, tempString.length), 10))+' ';
      tempString = '';
      }
    else {
      tempString += textString.charAt(i);
      }
    }
  outputString = outputString.substring(0, outputString.length-1);
  if (tempString != '') { outputString += ' '+convertChar2CP( tempString ); }
  return( outputString );
}

// This function converts from decimal to hex
function dec2hex ( textString ) {

   return (textString+0).toString(16).toUpperCase();
}
