#jquery #google-translate #jsapi #google-translator-toolkit
#jquery #google-translate #jsapi #google-переводчик-инструментарий
Вопрос:
Известно, что для перевода при использовании Google transliteration необходимо нажать пробел.
Но требование состоит в том, чтобы перевести уже сохраненное значение во входные данные, извлеченные из базы данных, а не значение, введенное пользователем в реальном времени.
Я сомневаюсь, что мы сможем автоматически перевести вводимое значение с помощью Google jspi.
Невозможно перевести, не нажимая пробел, поэтому я пытаюсь нажимать пробел для каждого класса при нажатии определенной кнопки, чтобы он был переведен.
Например, вот кнопка, если нажать на эту кнопку, то нажимайте пробел для каждого класса и переводите автоматически.
Я пробовал добавлять пробел после значения, но без события пробела ничего не изменилось
$('#translate').click(function(){
$('.npl').each(function(){
$(this).val($(this).val() '');
})
})
$('.npl').nepalize();
$.fn.nepalize = function(){
var that = this[0];
google.load("elements", "1", {
packages: "transliteration"
});
function onLoad() {
var options = {
sourceLanguage: 'en', // or google.elements.transliteration.LanguageCode.ENGLISH,
destinationLanguage: ['ne'], // or [google.elements.transliteration.LanguageCode.HINDI],
shortcutKey: 'ctrl g',
transliterationEnabled: true
};
var control = new google.elements.transliteration.TransliterationControl(options);
// Enable transliteration in the textfields with the given Class.
var elements = document.getElementsByClassName('npl');
control.makeTransliteratable(elements);
}
google.setOnLoadCallback(onLoad);
}
$('#translate').click(function(){
$('.npl').each(function(){
$(this).val($(this).val() '');
})
})
$('.npl').nepalize();
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
</head>
<body>
<button id='translate'>Translate</button>
<input class="npl" value='Hello'>
<input class="npl" value='How are you' />
</body>
</html>
Ответ №1:
Хотя это должен быть раздел комментариев, но я должен объяснить и вставить пример здесь. На официальном сайте Google transliterate упоминается, как javascript
строка может быть переведена.
Я думаю, что решение находится в следующем коде
https://developers.google.com/transliterate/v1/getting_started
//Load the Language API.
google.load("language", "1");
//Call google.language.transliterate()
google.language.transliterate(["Namaste"], "en", "hi", function(result) {
if (!result.error) {
var container = document.getElementById("transliteration");
if (result.transliterations amp;amp; result.transliterations.length > 0 amp;amp;
result.transliterations[0].transliteratedWords.length > 0) {
container.innerHTML = result.transliterations[0].transliteratedWords[0];
}
}
});
Если строку javascript можно преобразовать, это был бы лучший способ, поскольку мы можем сохранить строку из базы данных.
Я пробовал с этим, но результат пустой
google.load("language", "1");
function initialize() {
google.language.transliterate(["Namaste"], "en", "ne", function(result) {
if (!result.error) {
var container = document.getElementById("transliteration");
if (result.transliterations amp;amp; result.transliterations.length > 0 amp;amp;
result.transliterations[0].transliteratedWords.length > 0) {
container.innerHTML = result.transliterations[0].transliteratedWords[0];
}
}
});
}
google.setOnLoadCallback(initialize);
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google AJAX Language API - Basic Transliteration</title>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
</head>
<body>
<div id="transliteration"></div>
</body>
</html>