Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala pessoal tudo bem
Estou criando um site para o cliente e ele me pediu para colocar um tradutor ao clicar nas bandeiras
porem eu nao queria fazer uma pagina para cada traduçao eu queria fazer tipo usando o google Translate
alguem tem alguma sugetao de como posso fazer ou um exemplo
grato
>
On 7/2/2022 at 2:13 AM, Matheus Tavares said:
1 - Crie uma função responsável pelas traduções (lang.php):
Concordo com a sugestão do @Matheus Tavares para seguir em frente.
Caso contrário, você pode usar o plug-in escrito em php principal para tradução de idioma
Vou dar uma ideia talvez não seja das melhores aqui
Pode fazer uso com PHP da seguinte forma
<?php
//Criamos uma função para ISO-8859-1
function Codigo($String) {
return addslashes(htmlentities(trim(utf8_decode($String)), ENT_QUOTES, 'ISO-8859-1'));
}
//Pegando metado GET
if(isset($_GET['lang'])) {
switch(strtolower(Codigo($_GET['lang']))) {
case 'pt': $language = 'pt'; break;
case 'es': $language = 'es'; break;
default: $language = 'en';
}
setcookie('Language', $language, time()+2592000, '/');
$url = urldecode(addslashes(trim($_GET['url'])));
if(!empty($url) && strpos($url, 'lang') === false) {
header('Location: '.$url);
} else {
header('Location: ./');
}
exit;
}
//Criamos um COOKIE para retornar a Language atual após algum tempo como mostra na linha setcookie('Language', $language, time()+2592000, '/'); logo a cima
$cookieLang = (!empty($_COOKIE['Language']) ? strtolower(Codigo($_COOKIE['Language'])) : '');
if($cookieLang == 'pt' || $cookieLang == 'en' || $cookieLang == 'es') {
$language = $cookieLang; case 'pt': $defaultLang = 'pt'; break;
case 'es': $defaultLang = 'es'; break;
default: $defaultLang = 'en';
}
$AtiveLang = strlen(trim($_SERVER["HTTP_ACCEPT_LANGUAGE"])) > 1 ? strtolower(substr(trim($_SERVER["HTTP_ACCEPT_LANGUAGE"]), 0, 2)) : '';
if(!empty($AtiveLang)) {
switch(strtolower(Codigo($AtiveLang))) {
case 'pt': $language = 'pt'; break;
case 'es': $language = 'es'; break;
case 'en': $language = 'en'; break;
default: $language = $defaultLang;
}
} else {
$language = $defaultLang;
}
setcookie('Language', $language, time()+2592000, '/');
}require('lang/'.$language.'.php');
?>
Na pasta lang cria os arquivos que deseja ser os idiomas
Exemplo: lang/en.php | lang/es.php | lang/pt.php
Dentro deles faz conforme desejar mais da forma que o php consegue ler
exemplo =>lang/en.php
<?php
$LANG[01] = "Wait a few seconds and reload the page.";
?>
exemplo =>lang/es.php
<?php
$LANG[01] = "Espere unos segundos y vuelva a cargar la página.";
?>
exemplo =>lang/pt.php
<?php
$LANG[01] = "Aguarde alguns instantes e recarregue a página.";
?>
Nas suas páginas faz isso
<div class="conteiner <?= $language; ?>en">
<div class="row">
<div class="langs"> <?php $StatusLang = "&url=http://".urlencode($_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']); ?>
<a href='?lang=en' class='en' title='English' onclick="document.location.replace('./index.php?lang=en<?= $StatusLang; ?>');return false;"><span>English</span></a>
<a href='?lang=pt' class='pt' title='Português' onclick="document.location.replace('./index.php?lang=pt<?= $StatusLang; ?>');return false;"><span>Português</span></a>
<a href='?lang=es' class='es' title='Español' onclick="document.location.replace('./index.php?lang=es<?= $StatusLang; ?>');return false;"><span>Español</span></a>
</div>
<h1><?= $LANG[01]; ?></h1>
</div>
caso for usar banco de dados da pra fazer tbm porem vai subcarregar, mais recomendo usar desta forma mesmo sem banco de dados...
Espero que possa ajudar.
Olá @Caio Vargas, existem diversas formas para isso.
A mais simples (e amadora) seria simplesmente oferecer o link automático do Google Translate. Exemplo
iMasters original: https://imasters.com.br/
iMasters em inglês: https://imasters-com-br.translate.goog/?_x_tr_sl=pt&_x_tr_tl=en&_x_tr_hl=pt-BR&_x_tr_pto=wapp
Para fazer isso, siga esse guia: https://www.dummies.com/article/technology/notable-websites/google/how-to-translate-a-website-with-google-translate-145071/
Minha sugestão é que você utilize a metodologia mais comum em todas as frameworks PHP por aí, que é essa:
1 - Crie uma função responsável pelas traduções (lang.php):
$GLOBALS[ 'lang' ][ 'en' ] = [ 'A' => 'THE', 'SEGUNDA' => 'SECOND', 'EDIÇÃO DO'=> 'EDITION OF', 'FORNECEDORES DE FUNDIÇÃO' => 'CASTING SUPPLIERS', 'Todos os direitos reservados' => 'All rights reserved',