如何使用 Google Translator Api 将转换后的英文文本设置为另一个文本框?

新手上路,请多包涵

我有两个文本框,一个用于英语,另一个用于印地语,当我在第一个框中输入英语时,文本应在第二个框中显示为印地语版本(在按键事件中)。

在您的网站上提到了一个如何通过 Google API 将英语翻译成印地语 的示例,并尝试根据下面提出的要求稍微修改一下

<html>
<head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>

<script type="text/javascript">
google.load("elements", "1", {packages: "transliteration"});
</script>

<script>
function OnLoad() {

                            var options = {
                                sourceLanguage:
                                google.elements.transliteration.LanguageCode.ENGLISH,
                                destinationLanguage:
                                [google.elements.transliteration.LanguageCode.HINDI],
                                shortcutKey: 'ctrl+g',
                                transliterationEnabled: true
                            };

                    var control = new
                    google.elements.transliteration.TransliterationControl(options);
                    control.makeTransliteratable(["txtEnglish"]);

    } //end onLoad function

    google.setOnLoadCallback(OnLoad);

</script>

</head>
    <body>

       English Text: <input size="40" type="text" id="txtEnglish"/> <br/>
       Hindi Text : <input size="40" type="text" id="txtHindi"/>

</body>
</html>

但是此代码仅适用于“英文文本”文本框。只有当我按下空格键时,它才会将英文单词翻译成印地语。

要求是:当用户在英文文本框中键入英文单词时,英文单词将保持原样,但在英文文本框中的按键事件中,转换后的印地语版本应出现在印地语文本框中。

所以无论如何,英语文本框中的值应该发生变化。它应该只有英语,只有翻译后的印地语版本才会出现在“印地语文本框”上。

我试过

document.getElementById("txtHindi").value = document.getElementById("txtEnglish").value;

但没有用。

编辑

我还放置了@Suresh 此处提供的解决方案的输出,如下所示

在此处输入图像描述

原文由 priyanka.sarkar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 313
2 个回答
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>

<script type="text/javascript">
google.load("elements", "1", {packages: "transliteration"});
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script>
function OnLoad() {
    var options = {
        sourceLanguage:
        google.elements.transliteration.LanguageCode.ENGLISH,
        destinationLanguage:
        [google.elements.transliteration.LanguageCode.HINDI],
        shortcutKey: 'ctrl+g',
        transliterationEnabled: true
    };

    var control = new google.elements.transliteration.TransliterationControl(options);
    control.makeTransliteratable(["txtHindi"]);
    var keyVal = 32; // Space key
    $("#txtEnglish").on('keydown', function(event) {
        if(event.keyCode === 32) {
            var engText = $("#txtEnglish").val() + " ";
            var engTextArray = engText.split(" ");
            $("#txtHindi").val($("#txtHindi").val() + engTextArray[engTextArray.length-2]);

            document.getElementById("txtHindi").focus();
            $("#txtHindi").trigger ( {
                type: 'keypress', keyCode: keyVal, which: keyVal, charCode: keyVal
            } );
        }
    });

    $("#txtHindi").bind ("keyup",  function (event) {
        setTimeout(function(){ $("#txtEnglish").val($("#txtEnglish").val() + " "); document.getElementById("txtEnglish").focus()},0);
    });
} //end onLoad function

google.setOnLoadCallback(OnLoad);
</script>

</head>
    <body>
       English Text: <input size="40" type="text" id="txtEnglish"/> <br/>
       Hindi Text`enter code here` : <input size="40" type="text" id="txtHindi"/>
</body>
</html>

原文由 Suresh 发布,翻译遵循 CC BY-SA 3.0 许可协议

您希望将文本从英语字段复制到印地语字段,然后仅将 Google 翻译应用于 _印地语字段_。一旦从英文字段中复制了文本,就没有理由进一步操纵英文字段了。就像是:

 document.getElementById("txtEnglish").addEventListener("keyup", translate);

function translate() {
 document.getElementById("txtHindi").value = document.getElementById("txtEnglish").value;
}

此时谷歌翻译应将 txtHindi 框中的英文文本更改为印地语。

编辑:您还需要将 control.makeTransliteratable(["txtEnglish"]); 更改为 control.makeTransliteratable(["txtHindi"]); 以生成翻译。

原文由 Glen Despaux Jr 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题