/* Title: Idioma File: i3geo/classesjs/classe_idioma.js About: Licença I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil Desenvolvedor: Edmar Moretti edmar.moretti@mma.gov.br Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation; tanto a versão 2 da Licença. Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral do GNU para mais detalhes. Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto com este programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ if(typeof(i3GEO) == 'undefined'){ i3GEO = new Array(); } /* Class: i3geo.idioma Tradução da interface principal. Fornece os métodos para traduzir frases para idiomas específicos. O dicionário é definido em i3geo/classesjs/dicionario.js Se você está customizando o i3geo,acrescentandonovas funcionalidades, utilize o método alteraDicionario para acrescentar novas traduções, dessa forma, quandoo usuário escolher oidioma ainterface será adaptada corretamente. Exemplos: i3GEO.idioma.define("pt"); i3GEO.idioma.defineDicionario(g_traducao); i3GEO.idioma.alteraDicionario("d22","novo oi"); alert($trad("d22")) */ i3GEO.idioma = { /* Property: MOSTRASELETOR Define se o i3Geo irá incluir no mapa as bandeiras de seleção de idiomas Type: {Boolean} Default: true */ MOSTRASELETOR: true, /* Property: IDSELETOR Define o id do elemento HTML que receberá o seletor. Se não for definido, o seletor será posicionado automaticamente pelo i3Geo Type: {String} Default: "" */ IDSELETOR: "", /* Property: SELETORES Lista os seletores (bandeiras) que serão incluídas no seletor Type: {Array} Default: "pt","en","es","it" */ SELETORES: new Array("pt","en","es","it"), /* Property: DICIONARIO Define o objeto com o dicionário utilizado */ DICIONARIO: g_traducao, /* Function: define Define qual o idioma em uso. O default é "pt". Parameters: codigo - {String} Código do idioma. */ define: function(codigo) { i3GEO.idioma.ATUAL = codigo; i3GEO.util.insereCookie("i3geolingua",codigo); }, /* Function: retornaAtual Retorna o idioma atual. Returns: {string} Código do idioma. */ retornaAtual: function() { return (i3GEO.idioma.ATUAL); }, /* Function: defineDicionario Define o objeto com as traduções. O default é "g_traducao" Parameters: obj - {Object} Objeto com a tradução. Example: g_traducao = { "p1": [{ pt:"texto em portugues", en:"texto em ingles", es:"texto em espanhol" }] } */ defineDicionario: function(obj) { i3GEO.idioma.DICIONARIO = obj; }, /* Function: alteraDicionario Altera um texto do dicionario ou acresecenta um novo texto para o idioma atual. Parameters: id - {String} Código do texto. novo - (String) Novo texto. */ alteraDicionario: function(id,novo) { i3GEO.idioma.DICIONARIO[id][0][i3GEO.idioma.ATUAL] = novo; }, /* Function: traduzir Traduz um texto para o idioma escolhido Parameters: id - {String} Código do texto. Returns: {String} Texto traduzido. */ traduzir: function(id) { if(i3GEO.idioma.DICIONARIO[id]){ //YAHOO.log("traduzir", "i3geo"); var t = i3GEO.idioma.DICIONARIO[id][0]; //YAHOO.log("Fim traduzir", "i3geo"); return t[i3GEO.idioma.ATUAL]; } else return; }, /* Function: adicionaDicionario Adiciona novos registros ao dicionário atual Parameters: novodic - {Object} Objeto novo dicionário. Example: var novodic ={ "pp": [{ pt:"texto em portugues", en:"texto em ingles", es:"texto em espanhol" }]} i3GEO.idioma.adicionaDicionario(novodic) alert($trad("pp")) */ adicionaDicionario: function(novodic) { for (k in novodic) { i3GEO.idioma.DICIONARIO[k] = novodic[k]; } }, /* Function: mostraDicionario Abre uma nova janela do navegador com a lista de palavras do dicionário. */ mostraDicionario: function() { var w = window.open(); for (k in i3GEO.idioma.DICIONARIO) { w.document.write(k+" = "+i3GEO.idioma.traduzir(k)+"
"); } }, /* Function: trocaIdioma Troca o idioma atual por outro. A troca é baseada na definição de um cookie e reload da página. Parameters: codigo - {String} Código do idioma (p.e. "en") */ trocaIdioma: function(codigo) { i3GEO.util.insereCookie("i3geolingua",codigo); window.location.reload(true) }, /* Function: listaIdiomas Lista os idiomas disponíveis no dicionário ativo Returns: {Array} Array com os códigos de idioma disponíveis. */ listaIdiomas: function() { for (k in i3GEO.idioma.DICIONARIO){ return (i3GEO.util.listaChaves(i3GEO.idioma.DICIONARIO[k][0])); } }, /* Function: mostraSeletor Inclui as bandeiras no mapa permitindo a seleção do idioma As imagens das bandeiras devem estar definidas no CSS do i3geo, recebendo como identificadores os ids uk,brasil,italiano,espanhol */ mostraSeletor: function(){ //alert(i3GEO.idioma.MOSTRASELETOR) if(!i3GEO.idioma.MOSTRASELETOR){return;} // //monta o elemento HTML com as bandeiras // var ins = ""; var n = i3GEO.idioma.SELETORES.length; if(i3GEO.parametros.w < 550) {var w = "width:12px;"} else {var w = "";} for(i=0;i