Перевод результатов на язык API поиска новостей Bing?

Я выполняю поиск в Bing News Search для зарубежных рынков, таких как Китай, Малайзия, Россия и т. Д. Результаты не всегда на английском языке. Есть ли способ или параметр, который я могу установить, чтобы переводить все результаты на английский язык?

Или мне придется делать это отдельно от API поиска новостей Bing, вызывая API перевода на другой язык? Параметр setLang не работает.


person Prashanth Subramanian    schedule 09.09.2020    source источник


Ответы (1)


Согласно официальной документации, setLang не следует использовать для установки языка результатов поиска. Я проверил официальные документы. В 2012 году Microsoft рекомендовала использовать JSON Code Sample (Web SourceType) . Я проверил его, но он не подействовал. Вы можете просматривать похожие сообщения.

API поиска Bing - как локализовать результаты?

Поскольку существующие материалы слишком старые, все они документы много лет назад. Поэтому я рекомендую использовать Microsoft Translator .

Ниже я привожу пример кода, заменяющий значения OcpApimSubscriptionKey1 и OcpApimSubscriptionKey1 и OcpApimSubscriptionRegion, который можно запускать напрямую. Схема эффекта выглядит следующим образом.

Примечание.

1. Приведенный пример кода является всего лишь справочным кодом, и он должен учитывать обработку специальных символов при использовании в производственной среде.

2. Образец кода Неоптимальный образец кода - это всего лишь мой образец.

введите описание изображения здесь

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Translate</title>
    <script src="https://code.jquery.com/jquery-3.5.1.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script>
    <script>
        var OcpApimSubscriptionKey1="267****6fac1978";
        var OcpApimSubscriptionKey2="00d****bff196393";
        var OcpApimSubscriptionRegion="koreacentral";
        var tmp_jsonstr="";
        $(document).ready(function(){

        })
        function bingnewssearch(){
            $.ajax({
                url: 'https://panshubeicognitiveservices.cognitiveservices.azure.com/bing/v7.0/news/search?q='+$("#keywords").val()+"&mkt=zh-CN&setLang=EN&cc=EN&count=5",
                method: 'GET',
                contentType: "application/x-www-form-urlencoded; charset=urf-8",
                dataType: 'json',
                beforeSend: function (xhr) {
                    xhr.setRequestHeader('Ocp-Apim-Subscription-Key', OcpApimSubscriptionKey1);
                },
                success:function(result){
                    var myJSON = JSON.stringify(result);
                    tmp_jsonstr=myJSON;
                    $("#orginresult").html(myJSON)
                },
                error:function(){
                    alert("Oop, No Data Response");
                }
            })
        }
        function translatejson(){
            var str="[{\"Text\":\""+tmp_jsonstr.replace(/\"/g,"'")+"'\"}]";
            
            var jsonData=eval( str);//JSON.parse(str);
            $.ajax({
                url: "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=zh-Hans&to=en",
                method: 'POST',
                contentType: "application/json; charset=UTF-8",
                dataType: 'json',
                data:str,
                beforeSend: function (xhr) {
                    xhr.setRequestHeader('Ocp-Apim-Subscription-Key', OcpApimSubscriptionKey2);
                    xhr.setRequestHeader('Ocp-Apim-Subscription-Region', OcpApimSubscriptionRegion);
                },
                success:function(result){
                    var myJSON1 = JSON.stringify(result);
                    var str=result[0].translations[0].text;
                    str="{"+str.replace(/'/g, '"')+"}"
                    $("#translatedresult").html(str)
                },
                error:function(){
                    alert("Oop, No Data Response");
                }
            })
        }
    </script>
</head>
<body>
    <div>
        <div><p>Bing News Search</p></div>
        <div>
            <input type="text" id="keywords" placeholder="key words"/>
        </div>
        <div>
            <button onclick="bingnewssearch()">Search</button>
        </div>
        <div>Orgin Result</div>
        <div>
            <span id="orginresult"></span>
        </div>
    </div>
    <hr/>
    <div>
        <div>
            <button onclick="translatejson()">translate orgindata</button>
        </div>
        
        <div>
            <span id="translatedresult"></span>
        </div>
    </div>
</body>
</html>

person Jason Pan    schedule 11.09.2020