Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boas,
Amigos tenho a seguinte duvida, é o seguinte, eu tenho um website de humor, que gostava de disponibilizar em vários idiomas, é o meu problema é o seguinte, existe alguma forma de traduzir um texto automaticamente enviado e inserir no banco de dados? Inserir o que se encontra na textarea e inserir o traduzido.
Agradeço respostas.
Boas,
Mangakah, poderia me arranjar um exemplo de como ficaria o codigo, ou um tutorial?
O da microsoft é gratuito?
Nos sites das APIs há documentação e exemplos de código, basta procurar.
O Translator da Microsoft é exclusivo para clientes Azure.
Corrigindo:
O Translator da Microsoft é gratuito até 2.000.000 caracteres por mês. A tabela de preços pode ser vista aqui:
https://datamarket.azure.com/dataset/1899a118-d202-492c-aa16-ba21c33c06cb
Recomendo evitar tradutor automático para essa finalidade.
Toda tradução, mesmo feita manualmente, necessita de supervisão humana.
O site é humorístico ?
Seriam traduzidos textos como piadas ?
Muitas piadas ou ironias são regionais ou atreladas a costumes, por isso podem até soar como ofensa em culturas diferentes.
Por exemplo, piadas que estamos acostumados no Brasil soam como ofensa na China ou algo estranho mesmo num país vizinho como a Argentina.
O contrário também ocorre.
Por isso, pense bem se realmente quer fazer isso.
Seria so para ser em portugues, espanhol, ingles, françes e alemao.
Precisava mesmo que fosse automatico.
Obrigado.
Qual me aconselha mangakah ? Bing ou MyMemory?
Boas,
arranjei este script
token.php
<?php
$ClientID="your client id";
$ClientSecret="your client secret";
$ClientSecret = urlencode ($ClientSecret);
$ClientID = urlencode($ClientID);
// Get a 10-minute access token for Microsoft Translator API.
$url = "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13";
$postParams = "grant_type=client_credentials&client_id=$ClientID&client_secret=$ClientSecret&scope=http://api.microsofttranslator.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postParams);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$rsp = curl_exec($ch);
print $rsp;
?>
index.html
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script language="javascript">
var g_token = '';
function onLoad() {
// Get an access token now. Good for 10 minutes.
getToken();
// Get a new one every 9 minutes.
setInterval(getToken, 9 * 60 * 1000);
}
function getToken() {
var requestStr = "./token.php";
$.ajax({
url: requestStr,
type: "GET",
cache: true,
dataType: 'json',
success: function (data) {
g_token = data.access_token;
}
});
}
function translate(text, from, to) {
var p = new Object;
p.text = text;
p.from = from;
p.to = to;
// A major puzzle solved. Who would have guessed you specify the jsonp callback in oncomplete?
p.oncomplete = 'ajaxTranslateCallback';
// Another major puzzle. The authentication is supplied in the deprecated appId param.
p.appId = "Bearer " + g_token;
var requestStr = "http://api.microsofttranslator.com/V2/Ajax.svc/Translate";
$.ajax({
url: requestStr,
type: "GET",
data: p,
dataType: 'jsonp',
cache: true
});
}
function ajaxTranslateCallback(response) {
// Display translated text in the right textarea.
$("#target").text(response);
}
function translateSourceTarget() {
// Translate the text typed by the user into the left textarea.
var src = $("#source").val();
translate(src, "en", "fr");
}
</script>
<style>
#source, #target {
position:relative;
float:left;
width:400px;
height: 50px;
padding:10px;
margin: 10px;
border: 1px solid black;
}
#translateButton {
float:left;
margin: 10px;
height:50px;
}
</style>
</head>
<body onload="onLoad();">
<textarea id="source">Text typed here will be translated.</textarea>
<button id="translateButton" onclick="translateSourceTarget();">Translate English to French</button>
<textarea id="target"></textarea>
</body>
</html>
O problema é o seguinte, o codigo funciona, mas a cada requesiçao cria um token que so posso voltar a usar passado 9 minutos, tem como tirar esse bloqueio?
Percebo pouco de javascript, ja andei a tentar mas ate o momento nada feito.
Agradeço as respsotas.Obrigado
#6..
ainda sim desaconselhável... mas, boa sorte.
Muitas piadas ou ironias são regionais ou atreladas a costumes, por isso podem até soar como ofensa em culturas diferentes.
Um bom exemplo disso é o Cyanide & Happiness, da Explosm. A versão traduzida dos quadrinhos, quando não fazem muito sentido para o público brasileiro recebem observações para aqueles que lêem possam entender o porquê da graça.
Você precisa usar um serviço de tradução automática, como o Google Translate, para converter o texto em um idioma para outro.
Alternativas:
Microsoft Translator
MyMemory
Todos esses serviços são pagos. MyMemory tem uma cota gratuita de 100 requisições por dia.