Pular para o conteúdo principal

Site ASP em vários idiomas

Tive que implementar um site aqui em mais de um idioma, bom, a solicitação era pra ser em Inglês e Português, mas deixei pronto para inclusão de um novo idioma.
 
Em PHP há um monte de jeitos de fazer tal proeza, mas em ASP eu não achei nada muito bom, então tive que fazer eu mesmo.
 
O Esquema é o seguinte, no meu arquivo de inclusão que eu uso em chamo no site inteiro eu coloquei o código abaixo.
 
session("lang") = "pt"
if r("lang") <> "" then session("lang") = r("lang")
Na primeira linha eu seto o idioma padrão a sessão, na segunda linha eu verifico se estou recebendo uma solicitação pra mudar o idioma padrão. A função r() foi explicada no post anterior que nada mais é que um request() com alguns tratamentos.
 
Vale ressaltar que esquemas para verificar qual o idioma do visitante não devem ser usado em todos os casos, pois os user-agents irão catalogar seu site no idioma deles e não no idioma padrão que você determinar, deve-se analisar se isto é um problema pra você.
 
Para carregar conteúdos dinâmicos basta usar no seu select algo como tabela_ & session("lang") e ter uma tabela para cada idioma.
 
Para carregar conteúdo estático eu apenas troquei o conteúdo por uma função, que usa uma tabela para o idioma padrão e uma outra tabela para cada um dos idiomas secundários. A função checa o idioma atual é o padrão do site, se sim apenas devolve o texto recebido, se não ela pesquisa este texto recebido para achar seu ID e em seguida pesquisa na tabela correspondente ao idioma atual o texto traduzido. Há dois pontos na função onde pose-se criar um log de textos não encontrados no idioma padrão e no idioma secundário respectivamente (comentados na função.)
 
'usar assim <%=trasnlate("Conteúdo aqui")%>
function t(s)
 'se session(lang) for pt mostra o valor recebido,
 'se não, procura o valor no bd para mostra no idioma correto
 'o valor passado deve estar em pt
 if session("lang") = "pt" then
  trasnlate = s
 else
  'se o texto existe em pt
  set lang_pt = abredb.Execute("select * from lang_pt where s = '"&s&"'")
  if not lang_pt.EOF then
   set lang_2 = abredb.Execute("select * from lang_en where id = "&lang_pt("id"))
   if not lang_2.EOF then
    trasnlate = lang_2("s")
   else
    trasnlate = s
    '===> incluir aqui um log de pedidos de tradução para textos não encontrados
   end if
   if lang_2.state <> 0 then lang_2.close
  else
   '===> incluir aqui um log de pedidos de tradução para textos não encontrados    
   trasnlate = s
  end if
  if lang_pt.state <> 0 then lang_pt.close
 end if
end function
 
Para mudar de idioma use links do tipo <a href="?lang=en" title="in English">English</a>.
 
Espero ter ajudado, esta função me quebrou um galho danado.
 

Comentários

  1. Olá amigo,
    sou iniciante em asp, e estou precisando fazer exatamente isto.

    nao teria como vc mandar os arquivos de exemplo por email, pra eu entender melhor a sua explicação?..

    desde ja agradeço...
    Abraços

    ResponderExcluir
  2. Estou preparando um novo post com maiores esplicações, e pretendo colocar arquivos de exemplo para download nele.

    ResponderExcluir
  3. Ok Paulo,estarei aguardando. Muito Obrigado.

    Abraços

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

O que é codificar?

Essa é uma pergunta que muitas pessoas fazem quando se deparam com o mundo da programação. Codificar é o ato de escrever instruções para um computador executar uma determinada tarefa. Mas não se engane, codificar não é apenas digitar linhas de código em uma tela. Codificar é também uma forma de expressão, de criatividade, de solução de problemas e de diversão.  Codificar é expressão porque você pode usar diferentes linguagens de programação para comunicar a sua ideia ao computador. Cada linguagem tem suas próprias regras, sintaxe e estilo, mas todas elas permitem que você crie algo a partir do seu pensamento. Você pode escolher a linguagem que mais se adapta ao seu objetivo, ao seu gosto ou ao seu desafio. Codificar é criatividade porque você pode inventar novas formas de fazer as coisas, de combinar elementos, de usar recursos e de surpreender o usuário. Você pode criar aplicativos, jogos, sites, animações, robôs e muito mais. Você pode usar a sua imaginação para dar vida aos seus pro

Aumentando o limite de usuários do IIS, erro HTTP 403.9 - Acesso proibido

Você cria um “sisteminha” para rodar na rede da empresa que trabalha. Seu chefe gosta e pede algumas melhorias. Todo mundo da empresa gosta e começa a usar bastante, mas, em um dia tranqüilo você recebe uma ligação do pessoal do setor financeiro dizendo que algo de errado não esta certo no sistema. Você checa e percebe o erro “HTTP 403.9 - Acesso proibido: número excessivo de usuários conectados” e não sabe o que fazer. Não se desespere, pois isto está acontecendo porque nossa amiguinha Micro$oft bloqueia o IIS, para no máximo 10 conexões simultâneas, em versões do Windows, que não são voltadas para trabalharem em servidores (Windows 200, Windows XP, Windows Vista, Windows 7, etc.). A saída e burlar este bloqueio editando a Metabase do IIS, isto pode ser feito através do IIS MetaEdit 2.2 utility. Basta editar o ID 1014, mudando o valor 10 para 40 conforme figura abaixo. Mas o valor não pode ser maior que 40, pois há um bloqueio no fonte do IIS que limita em 40 o numero de conexões simu

Gerando PDF com páginas ASP

Recentemente tive que incluir um relatório em um sistema que gerencio, tentei fazer em HTML mesmo, mas, apesar do sistema ser acessado apenas dentro da empresa houve dificuldades ao configurar o padrão de impressão. A saída encontrada foi criar documentos em PDF, surgiu então o segundo problema, o sistema roda com ASP 3.0 e ate então eu não conhecia nenhuma ferramenta para gerar PDF sem ser necessário instalar componentes no servidor. Vasculhando na net encontrei o FPDF , uma classe escrita em ASP puro, uma tradução de seu homônimo em PHP FPDF . Funcionou que é uma beleza, os relatórios estão todos prontos e em produção, claro que a formatação leva um tempinho, mas o resultado é ótimo. Podemos escolher qual unidade de medida trabalhar, qual o tamanho da página, margens, utilizar cabeçalhos e rodapé predefinidos, quebras de página automáticas, alinhamento e justificar textos, inserir imagens JPEG, cores, links, etc. Confira e comente os resultados.