23.04.2011, 18:03
|
Интересующийся
|
|
Регистрация: 10.03.2011
Сообщений: 25
|
|
использование API Google Translate
здравствуйте.
хочу сделать некий userjs, который берет текст с сайта передает его на гугл, производит транслиретацию и возвращает результат.
http://code.google.com/intl/ru-RU/ap...g_started.html
почитал доки, вроде бы просто.
вот даже пример есть
http://code.google.com/intl/ru-RU/ap...sliterate.html
но как userjs не хочет работать, пока делал в простейшем варианте(просто статическую строку)
var head=document.getElementsByTagName('head')[0];
var elem=document.createElement('script');
var oScript=head.appendChild(elem);
oScript.setAttribute("src","https://www.google.com/jsapi");
oScript.setAttribute("type","text/javascript");
var elem1=document.createElement('script');
var oScript1=head.appendChild(elem1);
oScript1.setAttribute("type","text/javascript");
oScript1.text='google.load("language", "1"); function initialize() { google.language.transliterate(["привет"], "ru", "en", function(result) { if (!result.error) { var m; if (result.transliterations && result.transliterations.length > 0 && result.transliterations[0].transliteratedWords.length > 0)
{
m = result.transliterations[0].transliteratedWords[0]; }
}}); } google.setOnLoadCallback(initialize); ';
затем пытаюсь вывести переменную m с результатом по событию document.addEventListener("DOMContentLoaded",funct ion() {}
а в консоли: m - undefined.
подскажите как реализовать правильно?
|
|
27.04.2011, 11:54
|
Интересующийся
|
|
Регистрация: 10.03.2011
Сообщений: 25
|
|
неужеле никто не сталкивался с подобным.
мне кажется ошибка моя глупая какая-то.
подскажите плиз
|
|
27.04.2011, 13:38
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
зачем так сложно создавать скрипты?
var head=document.getElementsByTagName('head')[0];
var elem=document.createElement('script');
elem.type = "text/javascript";
// а ключ писали? key=INSERT-YOUR-KEY
elem.src = "https://www.google.com/jsapi";
head.appendChild(elem);
var elem1=document.createElement('script');
elem1.type= "text/javascript";
head.appendChild(elem1);
// а ЭТО что такое???
oScript1.text='google.load("language", "1"); function initialize() { google.language.transliterate(["привет"], "ru", "en", function(result) { if (!result.error) { var m; if (result.transliterations && result.transliterations.length > 0 && result.transliterations[0].transliteratedWords.length > 0)
{
m = result.transliterations[0].transliteratedWords[0]; }
}}); } google.setOnLoadCallback(initialize); ';
см пример гугла
<script type="text/javascript" src="http://www.google.com/jsapi?key=ТВОЙ_КЛЮЧ"></script>
<script type="text/javascript">
google.load("language", "1");
function initialize() {
// google.language.transliterate( ARRAY STRING слова, STR из какого, STR в какой, FUNCTION колбек)
google.language.transliterate(["Namaste"], "en", "hi", function(result) {
if (!result.error) {
var container = document.getElementById("transliteration");
if (result.transliterations && result.transliterations.length > 0 &&
result.transliterations[0].transliteratedWords.length > 0)
container.innerHTML = result.transliterations[0].transliteratedWords[0];
}
});
}
google.setOnLoadCallback(initialize);
</script>
</head>
<div id="transliteration"></div>
Последний раз редактировалось melky, 27.04.2011 в 13:47.
|
|
27.04.2011, 17:24
|
Интересующийся
|
|
Регистрация: 10.03.2011
Сообщений: 25
|
|
Сообщение от melky
|
зачем так сложно создавать скрипты?
|
я видел этот пример, мне не нужно выдавать результат в div, я хочу запомнить его в переменную и потом использовать.
|
|
27.04.2011, 17:36
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
читайте внимательней тот пример
google.load("language", "1");
function initialize() {
// google.language.transliterate( ARRAY STRING слова, STR из какого, STR в какой, FUNCTION колбек)
google.language.transliterate(["Namaste"], "en", "hi", function(result) {
if (!result.error) {
var container = document.getElementById("transliteration");
if (result.transliterations && result.transliterations.length > 0 &&
result.transliterations[0].transliteratedWords.length > 0)
// ВОТ ваш текст!!--------------
container.innerHTML = *!* result.transliterations[0].transliteratedWords[0];*/!*
// ------------------
}
});
}
google.setOnLoadCallback(initialize);
я не буду регаться там
не стоит же?
|
|
27.04.2011, 17:54
|
Интересующийся
|
|
Регистрация: 10.03.2011
Сообщений: 25
|
|
Сообщение от melky
|
я не буду регаться там
не стоит же?
|
там и без регистрации работает.
Сообщение от melky
|
result.transliterations[0].transliteratedWords[0];
|
да, вот я хочу этот готовый 'текст' запихнуть в переменную, чтобы потом использовать, а в консоли ругается на эту переменную как undefined
я хочу реализовать так, чтобы принималась строка на русском, а выдавалось на англ.
|
|
27.04.2011, 18:01
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
а с сервера что приходит???
посмотрите
может он пишет пустое место тем, кто не берет API по ключу
|
|
27.04.2011, 18:16
|
Интересующийся
|
|
Регистрация: 10.03.2011
Сообщений: 25
|
|
Сообщение от melky
|
а с сервера что приходит???
посмотрите
может он пишет пустое место тем, кто не берет API по ключу
|
проверил пример с гугла на лок компе, т.е без ключа api, все работает, резульат получает, но в див через innerhtml.
если тоже самое, но сохранять в переменную, пишет
Uncaught exception: ReferenceError: Undefined variable: m
|
|
27.04.2011, 18:34
|
Интересующийся
|
|
Регистрация: 10.03.2011
Сообщений: 25
|
|
вообщем, если я не ошибся, то причина в этом:
Цитата:
|
Currently, English is the only supported source language.
|
я попробовал и действительно: с англ на рус транслиритирует, а уже с рус на англ нет
|
|
27.04.2011, 18:57
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
вот тебе и ошибка))
|
|
|
|