Jump to content
webmine

Alertas para outras linguas

Recommended Posts

webmine

Boas pessoal, tenho aqui um formulario e não sei como poderei dar a volta, neste formulario dáme um alerta em caso de não preencher um campo diz-me para o preencher, mas no meu site tenho mais que uma lingua, o que gostaria é dependendo da versão da linguagem que estiver dar-me o respectivo alerta traduzido para a linguagem que estiver a ver na minha página, aqui deixo o codigo do forumulário:

<?php 

$nome=$_POST["nome"];	
$loja=$_POST["loja"];
$telefone=$_POST["telefone"];
$email=$_POST["email"];
$comentarios=$_POST["comentarios"];

?>

<div class="txt_int_loja">

<h1><?php echo txt1 ?></h1>
<p class="texto3"><?php echo txt11 ?></p>



<form action="envia.php" method="post" name="form_contactos" id="contactos" />

<?php
if($dados)
{echo "Preencha os campos em falta.";}
?>
<p class="texto3" style="width:230px;"><?php echo txti01 ?><br />
<input name="nome" type="text"  id="nome" style="width:220px;margin-top:5px;" tabindex="1" size="220" />
<?php if($dados && $nome=="");?></p>

<p  class="texto3" style="width:230px;"><?php echo txti02 ?>
<input name="loja" type="text"  id="loja" style="width:210px; float:left;margin-top:5px;" tabindex="2" size="210" />
<?php if($dados && $loja=="");?>    

</p>


<p class="texto3" style="width:230px;margin-top:15px;"><?php echo txti05 ?><br />
<input name="telefone" type="text"  id="telefone" style="width:210px;margin-top:5px; " tabindex="7" />
<?php if($dados && $telefone=="");?>    
</p>


      <p class="texto3" style="width:230px;margin-top:15px;"><?php echo txti06 ?><input name="email" type="text"  id="email" style="width:220px; margin-top:5px; float:left;" tabindex="8" />
      <?php if($dados && $email=="");?>
      </p>


  <p class="texto3" style="width:450px;"><?php echo txti10 ?><br />
<textarea name="comentarios" rows="5"  id="comentarios" style="width:450px;font-family:Arial, Helvetica, sans-serif;font-size:12px;margin-top:5px;" cols="1" tabindex="9"></textarea>
<?php if($dados && $comentarios=="");?>
</p>
      

<p class="texto3" style="width:100px; margin-top:14px;"> <img src="captcha/code.php" name="img_codigo" width="100" height="17" border="0" id="img_codigo" style="border:1px solid #abadb3; float:left;" ></p>
<a href="javascript:void(0);" onclick="actualiza_captcha();"><img src="images/refresh.png" alt="actualizar" title="actualizar" width="16" height="16" border="0" alt="código"style="float:left;margin-left:13px;margin-top:18px;" ></a>
<p style="width:90px; margin-top:16px; padding-left:11px;"><input name="codigo" type="text" class="texto2" id="codigo" style="width:80px; float:left;" tabindex="10" maxlength="5" />

</p>
<p style="width:70px;float:left; margin-top:14px;padding-left:11px;"> <img src="images/limpar.jpg" alt="LIMPAR" border="0" style="cursor:pointer; width:70px; height:19px ;float:left;" title="LIMPAR" onClick="javascript:form_contactos.reset();">

<p class="texto3" style="width:90px; margin-top:16px; padding-left:69px;"><input name="enviar" type="image" onClick="return Form_Validator(form_contactos);" src="images/enviar.jpg" alt="ENVIAR" title="ENVIAR" style="height:19px; width:70px; border:none;" /></p>
</form>   
</div>

Share this post


Link to post
Share on other sites
jfosorio

Podes verificar o idioma do browser do visitante com javascript e definir a respectiva mensagem a apresentar.

Qualquer coisa como:

if(navigator.userLanguage == "pt"){
<?php $msg = "mensagem em pt"; ?>
} else {
<?php $msg = "mensagem noutra língua"; ?>
}

Espero que a informação tenha sido útil...


CSS 3D Text - Partilha mensagens em 3D com os teus amigos no Facebook!

Portal de Informática it4life - Emprego, notícias, fórum, comunidade.

Share this post


Link to post
Share on other sites
Caya

Podes injectar a mensagem no alert via PHP que é onde deverá ter as função de tradução.

Share this post


Link to post
Share on other sites
brunoais

Podes verificar o idioma do browser do visitante com javascript e definir a respectiva mensagem a apresentar.

Qualquer coisa como:

if(navigator.userLanguage == "pt"){
<?php $msg = "mensagem em pt"; ?>
} else {
<?php $msg = "mensagem noutra língua"; ?>
}

Espero que a informação tenha sido útil...

Isso é um fail acima do possível.

Como é que esperas que o javascript (que corre no browser) execute um if para seleccionar o valor de uma variável que está no servidor se, depois de executar no servidor, não pode ser alterado :wallbash:?

Quanto muito algo que pode ser executado só no servidor:

http://www.thefutureoftheweb.com/blog/use-accept-language-header ou então:

if(explode (',', $_SERVER['HTTP_ACCEPT_LANGUAGE'])[0] == 'pt'){
$msg = "mensagem em pt"; 
} else {
$msg = "mensagem noutra língua"; 
}


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
Caya

brunoais acho que o fail aqui é teu. O objecto navigator tem a propriedade userLanguage, penso é que é só em IE por isso não é aconselhável usar.

Share this post


Link to post
Share on other sites
jfosorio

Isso é um fail acima do possível.

Como é que esperas que o javascript (que corre no browser) execute um if para seleccionar o valor de uma variável que está no servidor se, depois de executar no servidor, não pode ser alterado :wallbash:?

Se tivesse feito um pouquinho o TPC, limitavas-te a dar sugestões úteis, e não criticavas as sugestões dos outros.

O código que eu postei está correcto. Os browsers identificam qual é o idioma do utilizador e podemos aproveitar isso para fazer a estrutura de decisão. Quanto ao facto de só ser possível no IE, está mais ou menos correcto. De facto, a propriedade navigator.userLanguage só pode ser utilizada para IE, mas podemos usar a propriedade navigator.language para os outros browsers.

Por exemplo:

if(navigator.userLanguage){
alert(navigator.userLanguage);	
} else {
alert(navigator.language);
}

Agora é só adaptar para o que se pretende...

Cumprimentos!


CSS 3D Text - Partilha mensagens em 3D com os teus amigos no Facebook!

Portal de Informática it4life - Emprego, notícias, fórum, comunidade.

Share this post


Link to post
Share on other sites
brunoais

brunoais acho que o fail aqui é teu. O objecto navigator tem a propriedade userLanguage, penso é que é só em IE por isso não é aconselhável usar.

O fail é dele por estar a usar o if do javascript para alterar coisas no PHP.

A definição do valor da variável $msg (q está no servidor) (segundo o código dele nesse post) depende do resultado do if que é feito no browser (no cliente)

ADD: o fail não está nessa parte. (Até achei essa parte correcta (sem pensar q só dava para o IE).) O erro está na parte que assinalei como errada.

Se tivesse feito um pouquinho o TPC, limitavas-te a dar sugestões úteis, e não criticavas as sugestões dos outros.

O código que eu postei está correcto. Os browsers identificam qual é o idioma do utilizador e podemos aproveitar isso para fazer a estrutura de decisão. Quanto ao facto de só ser possível no IE, está mais ou menos correcto. De facto, a propriedade navigator.userLanguage só pode ser utilizada para IE, mas podemos usar a propriedade navigator.language para os outros browsers.

Por exemplo:

...

Agora é só adaptar para o que se pretende...

Cumprimentos!

Estás a indicar eu estar errado em dizer que está mal em algo que não reclamo como estando mal. (vê/lê e interpreta o q escrevi)


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
yoda

Os browsers identificam qual é o idioma do utilizador e podemos aproveitar isso para fazer a estrutura de decisão.

A linguagem que o browser tem não tem de ser fiel à do utilizador. Eu uso os browsers em inglês, por exemplo. Mesmo a selecção de idioma com base no IP do user é limitada.

Share this post


Link to post
Share on other sites
jfosorio

ADD: o fail não está nessa parte. (Até achei essa parte correcta (sem pensar q só dava para o IE).) O erro está na parte que assinalei como errada.Estás a indicar eu estar errado em dizer que está mal em algo que não reclamo como estando mal. (vê/lê e interpreta o q escrevi)

Vamos lá ver se nos entendemos. Disseste que o "fail" (seja lá isso o que for...) era meu porque estava a alterar php com javascript. Eu não estou a alterar nada. Eu uso o javascript para fazer a inicialização das variáveis. É óbvio que isto deverá ser feito no evento "onload". Estando inicializadas, quando as variáveis forem invocadas, irão apresentar o valor desejado.

Yoda, quanto ao que disseste, tens razão, mas penso que isso já são questões que ultrapassam quem está a construir um website. De qualquer forma, o ideal seria "dividir" o site em duas línguas distintas e deixar que seja o utilizador a seleccionar o idioma.


CSS 3D Text - Partilha mensagens em 3D com os teus amigos no Facebook!

Portal de Informática it4life - Emprego, notícias, fórum, comunidade.

Share this post


Link to post
Share on other sites
mjamado
Vamos lá ver se nos entendemos. Disseste que o "fail" (seja lá isso o que for...) era meu porque estava a alterar php com javascript. Eu não estou a alterar nada. Eu uso o javascript para fazer a inicialização das variáveis. É óbvio que isto deverá ser feito no evento "onload". Estando inicializadas, quando as variáveis forem invocadas, irão apresentar o valor desejado.

Continua a ser fail (enfim, não concordo com o fail - isso é para quando se falha numa coisa óbvia que todos devíamos saber, neste caso terá sido mais ignorância, e quanto a isso, nada a fazer).

O PHP é interpretado do lado do servidor; nesse ponto, o JS não manda nada. Por isso, independentemente da linguagem do browser (que, tal como o yoda já indicou, é possível que seja a pior maneira possível de se fazer isto), a variável $msg conterá sempre "mensagem noutra língua". Quando chegar a altura do JS ser interpretado (no browser), não vai acontecer nada de especial - até porque naquele sítio não tens mais nada. Se queres mesmo saber, o que o browser verá naquele sítio será:

if(navigator.userLanguage == "pt"){

} else {

}

Isto é, nada.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.