/*jslint plusplus:false,white:false,undef: false, rhino: true, onevar: true, evil: false */ /* Title: Idioma Arquivo: i3geo/classesjs/classe_idioma.js Licenca: GPL2 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; 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 = []; } /* Classe: 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 = { /* Propriedade: MOSTRASELETOR Define se o i3Geo irá incluir no mapa as bandeiras de seleção de idiomas Tipo: {Boolean} Default: {true} */ MOSTRASELETOR: true, /* Propriedade: IDSELETOR Define o id do elemento HTML que receberá o seletor. Se não for definido, o seletor será posicionado automaticamente pelo i3Geo Tipo: {String} Default: {""} */ IDSELETOR: "", /* Propriedade: SELETORES Lista os seletores (bandeiras) que serão incluídas no seletor Tipo: {Array} Default: {["pt","en","es","it"]} */ SELETORES: ["pt","en","es"], //,"it"], /* Propriedade: DICIONARIO Objeto contendo o dicionário utilizado Tipo: {object} - veja Default: {g_traducao} */ DICIONARIO: g_traducao, /* Function: define Define qual o idioma em uso. O default é "pt". Parametro: codigo - {String} Código do idioma. */ define: function(codigo) { if(typeof(console) !== 'undefined'){console.info("i3GEO.idioma.define()");} 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" Parametro: 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. Parametros: 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 Parametro: id - {String} Código do texto. Returns: {String} Texto traduzido. */ traduzir: function(id) { if(i3GEO.idioma.DICIONARIO[id]){ var t = i3GEO.idioma.DICIONARIO[id][0]; return t[i3GEO.idioma.ATUAL]; } else {return;} }, /* Function: adicionaDicionario Adiciona novos registros ao dicionário atual Parametro: 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 (var k in novodic) { if(novodic.hasOwnProperty(k)) {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,k; w = window.open(); for (k in i3GEO.idioma.DICIONARIO){ if(i3GEO.idioma.DICIONARIO.hasOwnProperty(k)) {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. Parametro: codigo - {String} Código do idioma (p.e. "en") */ trocaIdioma: function(codigo) { if(typeof(console) !== 'undefined'){console.info("i3GEO.idioma.trocaIdioma()");} 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(var k in i3GEO.idioma.DICIONARIO){ if(i3GEO.idioma.DICIONARIO.hasOwnProperty(k)) {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(){ if(typeof(console) !== 'undefined'){console.info("i3GEO.idioma.mostraSeletor()");} if(!i3GEO.idioma.MOSTRASELETOR){return;} // //monta o elemento HTML com as bandeiras // var ins,n,w,i,pos,novoel,temp, iu = i3GEO.util; ins = ""; n = i3GEO.idioma.SELETORES.length; if($i("i3geo") && i3GEO.parametros.w < 550) {w = "width:12px;";} else {w = "";} for(i=0;i