#javascript #encodeuricomponent #gb2312
#javascript #encodeuricomponent #gb2312
Вопрос:
Я программист-любитель, и у меня есть небольшая проблема.
Моя цель — ввести один текст с помощью двух кнопок.
- Первая кнопка использует часть Javascript под названием SundayMorning для перевода текста (на китайский)
- Вторая кнопка отправляет текст по URL-адресу. Для URL-адреса требуется, чтобы китайский текст был закодирован в наборе символов GBK2312.
Я склеил различные найденные коды для получения результата, который у меня есть сейчас. Из-за привередливого поведения SundayMorning Javascript мое решение состоит в том, чтобы иметь два поля ввода, второе из которых я скрою.
Прямо сейчас это не работает:
- Я не могу закодировать китайский язык в GBK2312, независимо от того, что я пытаюсь.
- БОНУСНАЯ ГОЛОВОЛОМКА: второе поле копирует мои входные данные буква за буквой по мере ввода, но не копирует перевод на китайский, который возвращает Javascript.
Извините за мой неряшливый любительский код. Я полагаюсь на тех, кто поумнее, если у вас есть какие-либо добрые предложения.
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<script type='text/javascript' Src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js'>
</script>
///THIS JS TRANSLATES THE TEXT INLINE
<script
type="text/javascript"
src="jquery.sundaymorning.js">
</script>
<script type="text/javascript">
$(function() {
$('#example3').sundayMorningReset();
$('#example3 input[type=image]').click(function(evt) {
$.sundayMorning(
$('#example3 input[type=text]').val(),{source:'en', destination:'ZH', menuLeft:evt.pageX, menuTop:evt.pageY},function(response) {$('#example3 input[type=text]').val(response.translation);});});});
</script>
///
///THIS PUTS THE CONTENT OF THE TRANSLATION BOX INTO THE SUBMISSION BOX
<script type="text/javascript">
$(document).ready(function(){
var $url = $("#url");
$("#track").keyup(function() {
$url.val(this.value);});
$("#track").blur(function() {
$url.val(this.value);});});
</script>
///THIS PUTS THE CONTENT OF THE SUBMISSION INSIDE A URL
<SCRIPT type="text/javascript">
function goToPage(url)
{
var initial = "http://example.com/";
var extension = ".html";
document.something.action=initial url extension;
}
</SCRIPT>
</head>
<body>
<div id="featured">
<div id="example3">
<input type="text" name="track" id="track" value="" class="box"onkeydown="javascript:if (event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementById('mama').click();}};"/>
<input type="image" src="http://taobaofieldguide.com/images/orange-translate-button.png" id="searchsubmit" value="Translate" class="btn" />
</div>
<FORM name="something" method="post" onsubmit="goToPage(this.url.value);">
<input type="text" id="url";>
<INPUT type="submit" id="mama" value="GO" >
</FORM>
</div>
</body>
Ответ №1:
Плагин jQuery выглядит так, как будто он использует старую версию API Google Translate.
На веб-сайте SundayMorning (http://sundaymorning.jaysalvat.com /), получите это сообщение об ошибке:
Ошибка перевода: пожалуйста, используйте Translate v2. Смотрите http://code.google.com/apis/language/translate/overview.html
Вероятно, вам нужно зарегистрироваться для получения ключа Translate API и обновить код, чтобы использовать Google Translate v2 вместо v1, или найти новую библиотеку, которая работает «из коробки».