/** * Title: 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. * * Namespace: * * i3GEO.idioma * * Exemplos: * * (start code) * * i3GEO.idioma.define("pt"); * * i3GEO.idioma.defineDicionario(g_traducao); * * i3GEO.idioma.alteraDicionario("d22","novo oi"); * * alert($trad("d22")) * * (end) * * Veja: * * */ /** Licença * * 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@gmail.com * * 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 ADEQUACÃ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') { var i3GEO = {}; } 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} * */ 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 default utilizado * * Tipo: * * {object} * * Default: * * g_traducao */ DICIONARIO : g_traducao, /** * Function: define * * Define qual o idioma em uso. O default é "pt". * * Parametro: * * {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. * * Return: * * {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: * * {Object} - Objeto com a tradução. * * Exemplo: * * (start code) * * g_traducao = { * "p1": [{ * pt:"texto em portugues", * en:"texto em ingles", * es:"texto em espanhol" * }] * }; * * (end) */ defineDicionario : function(obj) { i3GEO.idioma.DICIONARIO = obj; }, /** * Function: alteraDicionario * * Altera um texto do dicionario ou acresecenta um novo texto para o idioma * atual. * * Parametros: * * {String} - Código do texto. * * {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 * * Parametros: * * {String} - Código do texto. * * {string} - Objeto que contém o dicioná. Por default, * utiliza i3GEO.idioma.DICIONARIO * * Returns: * * {String} Texto traduzido. */ traduzir : function(id, dic) { if (!dic) { dic = i3GEO.idioma.DICIONARIO; } if (dic[id]) { var r, t = dic[id][0]; r = t[i3GEO.idioma.ATUAL]; if (r == "") { r = t["pt"]; } return r; } else { return; } }, /** * Function: adicionaDicionario * * Adiciona novos registros ao dicionário atual * * Parametro: * * {Object} - Objeto novo dicionário. * * Exemplo: * * (start code) * * var novodic ={ "pp": [{ * * pt:"texto em portugues", * * en:"texto em ingles", * * es:"texto em espanhol" * * }]} * * i3GEO.idioma.adicionaDicionario(novodic) * * alert($trad("pp")) * * (code) */ 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 = 0; 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: * * {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} 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; ins = ""; n = i3GEO.idioma.SELETORES.length; if ($i("i3geo") && i3GEO.parametros.w < 700) { w = "width:10px;"; } else { w = ""; } for (i = 0; i < n; i++) { temp = i3GEO.idioma.SELETORES[i]; ins += '