javascript - 我想在一个文本框中输入英语,并希望将阿拉伯语文本转换为另一种文本

标签 javascript google-translate transliteration

我的要求很明确...我想在一个文本框中输入英语,并希望将阿拉伯语文本转换为另一个文本,如果我使用退格键、删除等编辑第一个文本框,则应在文本框二中重新翻译相同的效果......我使用了以下代码

    <!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.ARABIC],
            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> 

    <script type="text/javascript">
        function clearText() {

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

    </script>

</head>
    <body>
       English Text: <input size="40" type="text" id="txtEnglish"/> <br/>
       Arabic Text`enter code here` : <input size="40" type="text" id="txtHindi"/> 
        <input type="button" id="CmdShowKeyboard" value="Clear" onclick="clearText()">
</body>
</html>

它工作正常,但是当我使用退格键或删除从文本框中删除文本时,第一个文本框不起作用,并在第二个文本框中给出错误的输出,请建议

最佳答案

我认为这应该有效

$("#txtEnglish").on('keydown', function (event) {
    if (event.keyCode === 32 || event.keyCode === 8) {
        var engText = $("#txtEnglish").val() + " ";
        var engTextArray = engText.split(" ");
        if(event.keyCode === 32)
        {
           $("#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(){
                if (event.keyCode === 32) {
                    $("#txtEnglish").val($("#txtEnglish").val()+ ' ');
                }
                else if(event.keyCode === 8)
                {
                    $("#txtEnglish").val($("#txtEnglish").val().substring(0,$("#txtEnglish").val().length - 1));
                }
                document.getElementById("txtEnglish").focus()
            },0);
        });

关于javascript - 我想在一个文本框中输入英语,并希望将阿拉伯语文本转换为另一种文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49146437/

相关文章:

r - 使用R中的iconv函数音译德语单词

javascript - 将动态键值添加到 JSON 对象

javascript - 使用 Javascript,我如何随机偏移经度和纬度数字

javascript - 在 JavaScript 上使用 "this"编写函数时出现语法错误

python - PyInstaller 文件无法执行脚本 - DistributionNotFound

javascript - 如何在网站上使用谷歌翻译而不使用组合框更改语言?

javascript - HTML5 : Framework/Library for Drag-and-Drop on Canvas

javascript - 将中文表单数据转换为英文?

javascript - 如何通过 JavaScript 自动 Google 音译文本区域中的单词(无需手动按空格键或 Enter 键)

ruby - 在 Ruby 中使用 Iconv 进行音译