Logo Hardware.com.br
Tiago Cruz
Tiago Cruz Zumbi Registrado
10.3K Mensagens 1 Curtida

PHP -> Programa com i18n (para internacionalização)

#1 Por Tiago Cruz 22/08/2005 - 12:21
Olá pessoal!

Fiz um programinha em PHP+MySQL bem simples e gostaria que meus usuários da europa vissem o mesmo em Ingles, e o pessoal daqui vissem o mesmo em Português smile.png

Certa vez li algo sobre isso na LinuxMagazine, mas não tenho mais acesso a mesma.

Alguem sabe como fazer isso em linhas gerais, ou conhece algum artigo que possa ser tomado como base?

Obrigado!
Tiago Cruz
Tiago Cruz Zumbi Registrado
10.3K Mensagens 1 Curtida
#4 Por Tiago Cruz
23/08/2005 - 17:09
Rapaz,

To me virando por aqui:
http://www.dicas-l.unicamp.br/dicas-l/20050420.php

E funciona mesmo!

Agora, eu quero colocar um esquema para o cara escolher a linguagem, manja?
O que rola eh que eu ja tenho um botão no meu form chamado Submit e no meu codigo eu tenho:

if (getenv("REQUEST_METHOD&quot == "POST&quot {


E agora? Como eu crio uma rotina para o outro botão?
oops.png

Valeu!!!
Kleber Costa
Kleber Costa General de Pijama Registrado
5.2K Mensagens 1 Curtida
#5 Por Kleber Costa
23/08/2005 - 19:35
É simples, dá um nome pra cada botão submit! tem um exemplo abaixo!
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST&quot {
if ($_POST['pt_BR']) {
echo "Brasil";
}

if ($_POST['en_US']) {
echo "United States";
}
}

?>
<html>
<head>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="form">
<input type="text" name="nome">
<input type="text" name="idade">
<input type="submit" name="pt_BR" value="Envia">
<input type="submit" name="en_US" value="Send">
</form>
</body>
</html>
Salve! Ó terra dos altos coqueiros!
De belezas soberbo estendal!
Nova Roma dos bravos guerreiros
Pernambuco, imortal, imortal!


Linux User #262254
rwar
rwar Tô em todas Registrado
2.4K Mensagens 13 Curtidas
#6 Por rwar
24/08/2005 - 09:09
Em um projeto que trabalhei, havia tradução para 7 línguas! O que faziam, basicamente, era guardar a língua clicada (que estranho esse comentário) em uma session, e a cada página, era feita uma "tradução simultânea" das palavras da referida página através de um função. As palavras eram guardadas em um banco de dados para posterior recuperação. Pelo menos funcionava perfeitamente... :wink:
No caminho dos scripts. Por enquanto, powershell...
Tiago Cruz
Tiago Cruz Zumbi Registrado
10.3K Mensagens 1 Curtida
#7 Por Tiago Cruz
24/08/2005 - 10:57
Pessoal,

O bagúio ta mais ou menos funcionando, valeu mesmo pelas dicas!!!

if (getenv("REQUEST_METHOD&quot == "POST" and ($_POST['select']) ) {
if ($_POST['language'] == "pt_BR&quot {
$language = 'pt_BR';
} else {
$language = 'en_US';
}
}

// Intenacionalização
setlocale(LC_ALL, $language); // configura a variável de localidade
putenv("LANG=$language&quot; //configura a variável de ambiente LANG
setlocale(LC_ALL, $language); // configura a variável de localidade
$domain = 'messages'; // Configura o text domain como 'messages'
bindtextdomain($domain, "locale/&quot;
textdomain($domain);

?>


Mais ou menos porque quando seleciono a linguagem e clico em Select, ele realmente muda meus campos certinho! Coloquei essa função no meu top.php para que até o cabeçalho fique traduzido wink.png

Mas, quando preencho os campos, clico em "submit" (do cad_mail.php) e ele faz as validações dos campos, ele volta para ingles!!! Que coisa chata, rsrsrsr... eu tentei de diversas formas fazer com que ele contiue em portugues, mas não deu certo... Alguem pode me ajudar?

(estou perderndo muito tempo com essa frescura, heheheheh) :lol:

Valeu!!!
Tiago Cruz
Tiago Cruz Zumbi Registrado
10.3K Mensagens 1 Curtida
#8 Por Tiago Cruz
24/08/2005 - 14:18
Pessoal,

O Angelo me deu umas dicas, e agora parece estar tudo bem. Para deixar registrado:

session_start();

// Se for POST e o usuário apertou o botão select...
if (getenv("REQUEST_METHOD&quot == "POST" and ($_POST['select']) ) {

if ($_POST['language'] == "pt_BR&quot {
$_SESSION["idioma"]=pt_BR;
} else {
$_SESSION["idioma"]=en_US;
}
}

// Intenacionalização
setlocale(LC_ALL, $_SESSION["idioma"]);
$domain = 'messages'; // Configura o text domain como 'messages'
bindtextdomain($domain, "locale/&quot;
textdomain($domain);


Valeu a todos! :wink:
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal