Benutzerhandbuch Abbrechen

Konfigurieren eines Übersetzungsframeworks für einen Dienstleister

Erfahren Sie, wie Sie das Übersetzungsframework für einen Übersetzungsdienstleister Ihrer Wahl konfigurieren, um Ihre Inhalte dynamisch mit RoboHelp zu übersetzen.

Zusätzlich zu den vordefinierten Übersetzungsanbietern, die sofort verfügbar sind, können Sie auch Ihren Übersetzungsconnector integrieren, um Ihren Anforderungen gerecht zu werden.

Verwenden von benutzerdefiniertem Skript für die Übersetzung

Um einen benutzerdefinierten Anbieter zu konfigurieren, erstellen Sie eine JavaScript-Datei auf dem System.Die Datei enthält eine Funktion mit einem Objekt als Rückgabewert. Dieses zurückgegebene Objekt hat ein Feld „caller“ und eine Funktion des Rückgabetyps JavaScript-Promise als Wert.

(src_lng, tar_lng, text2translate, API_KEY, endpoint) => {
//src_lang: source language
//tar_lang: target language
//text2translate: text to send for translation
//API_KEY: API key from your service provider
//endpoint: endpoint/API URL of your service provider
//build your query
var query:Function = //REST API goes here, which returns a Promise
return {
caller: query
}
}
(src_lng, tar_lng, text2translate, API_KEY, endpoint) => { //src_lang: source language //tar_lang: target language //text2translate: text to send for translation //API_KEY: API key from your service provider //endpoint: endpoint/API URL of your service provider //build your query var query:Function = //REST API goes here, which returns a Promise return { caller: query } }
(src_lng, tar_lng, text2translate, API_KEY, endpoint) => { 
 //src_lang: source language 
 //tar_lang: target language 
 //text2translate: text to send for translation 
 //API_KEY: API key from your service provider 
 //endpoint: endpoint/API URL of your service provider 
 //build your query  
 var query:Function = //REST API goes here, which returns a Promise 
 return { 
  caller: query  
 } 
}

caller (Funktion)

Die im caller-Feld des zurückgegebenen Objekts definierte Funktion sendet die REST-API-Anforderung mithilfe der JavaScript-Methode „request“ an den Server, der ein JavaScript-Promise zurückgibt. Das Promise wird entsprechend aufgelöst bzw. abgelehnt, und schließlich wird der übersetzte Text zurückgegeben oder im Falle eines Fehlers eine Fehlermeldung ausgegeben.

Bing-Beispielskriptdatei

(src_lng, tar_lng, text2translate, API_KEY, endpoint) => {
const uuidv4 = require('uuid/v4');
const request = require('request');
var api_request_fn = () => {
// return a promise because sending and receiving translated text is asynchronous procedure
return new Promise((resolve, reject) => {
var request_data = {
method: 'POST',
baseUrl: endpoint,
url: 'translate',
qs: {
'api-version': '3.0',
'to': [tar_lng]
},
headers: {
'Ocp-Apim-Subscription-Key': API_KEY, //your API key goes here
'Content-type': 'application/json',
'X-ClientTraceId': uuidv4().toString() //give an ID to your request
},
body: [{
'text': text2translate //send the text to translate as a part of the body
}],
json: true,
}
// the structure of request_data is different for every service provider
// look up the documentation provided by your translation service provider
// to build the request data.
request(request_data, function(err, res, body) {
// read about request method here https://www.npmjs.com/package/request
if(err) {// in case of an error reject the promise, it will exit the translation process
reject({body, err, res})
} else {// in case of a valid response from the server, resolve the promise
resolve({body, err, res})
}
})
}).then(data => {
if(data.body.error) {
// in case error from the server is send as part of the body
// and skipping the previous if block in request, handle it here
throw new Error(data.body.error.message);
// throw the error with the message you want to show,
// preferably the error message sent by the server
} else {
return data.body[0].translations[0].text
// return the translated text here, in this case it is in the data at
// the specified location. The location in the data object varies with the provider
}
})
}
}
(src_lng, tar_lng, text2translate, API_KEY, endpoint) => { const uuidv4 = require('uuid/v4'); const request = require('request'); var api_request_fn = () => { // return a promise because sending and receiving translated text is asynchronous procedure return new Promise((resolve, reject) => { var request_data = { method: 'POST', baseUrl: endpoint, url: 'translate', qs: { 'api-version': '3.0', 'to': [tar_lng] }, headers: { 'Ocp-Apim-Subscription-Key': API_KEY, //your API key goes here 'Content-type': 'application/json', 'X-ClientTraceId': uuidv4().toString() //give an ID to your request }, body: [{ 'text': text2translate //send the text to translate as a part of the body }], json: true, } // the structure of request_data is different for every service provider // look up the documentation provided by your translation service provider // to build the request data. request(request_data, function(err, res, body) { // read about request method here https://www.npmjs.com/package/request if(err) {// in case of an error reject the promise, it will exit the translation process reject({body, err, res}) } else {// in case of a valid response from the server, resolve the promise resolve({body, err, res}) } }) }).then(data => { if(data.body.error) { // in case error from the server is send as part of the body // and skipping the previous if block in request, handle it here throw new Error(data.body.error.message); // throw the error with the message you want to show, // preferably the error message sent by the server } else { return data.body[0].translations[0].text // return the translated text here, in this case it is in the data at // the specified location. The location in the data object varies with the provider } }) } }
(src_lng, tar_lng, text2translate, API_KEY, endpoint) => { 
     const uuidv4 = require('uuid/v4'); 
   const request = require('request'); 
 var api_request_fn = () => { 
   // return a promise because sending and receiving translated text is asynchronous procedure 
            return new Promise((resolve, reject) => {  
   var request_data = { 
              method: 'POST', 
              baseUrl: endpoint, 
              url: 'translate', 
              qs: { 
                'api-version': '3.0', 
                'to': [tar_lng] 
              }, 
              headers: { 
                 'Ocp-Apim-Subscription-Key': API_KEY, //your API key goes here 
                 'Content-type': 'application/json', 
                 'X-ClientTraceId': uuidv4().toString() //give an ID to your request 
              }, 
              body: [{ 
                    'text': text2translate //send the text to translate as a part of the body 
              }], 
              json: true, 
          }  
   // the structure of request_data is different for every service provider 
   // look up the documentation provided by your translation service provider  
   // to build the request data. 
 
                request(request_data, function(err, res, body) {  
     // read about request method here https://www.npmjs.com/package/request 
                    if(err) {// in case of an error reject the promise, it will exit the translation process 
                        reject({body, err, res}) 
                    } else {// in case of a valid response from the server, resolve the promise 
                        resolve({body, err, res}) 
                    } 
                }) 
            }).then(data => { 
                if(data.body.error) { 
     // in case error from the server is send as part of the body  
     // and skipping the previous if block in request, handle it here  
                    throw new Error(data.body.error.message); 
     // throw the error with the message you want to show,  
     // preferably the error message sent by the server 
                } else { 
                    return data.body[0].translations[0].text  
     // return the translated text here, in this case it is in the data at  
     // the specified location. The location in the data object varies with the provider 
                } 
            }) 
        } 
}

Wir haben den Bing-Übersetzungs-API-Builder im obigen Beispiel erläutert. Beachten Sie, dass Google und yandex andere Handler haben als Bing. Erstellen Sie diese Funktion gemäß den Spezifikationen Ihres Dienstanbieters.

Sie sollten sich unbedingt Beispiele in Ihrem RoboHelp-Installationsverzeichnis ansehen:   
„resources/data/template/translation/bing/profile_builder.js“
„resources/data/template/translation/google/profile_builder.js“
„resources/data/template/translation/yandex/profile_builder.js“
„resources/data/template/translation/deepl/profile_builder.js“

Hinweis:
  1. Wenn Kunden diese Übersetzungsfunktionen verwenden, werden die Daten zur Verarbeitung an den Dienstleister übermittelt. 
  2. Die Verwendung und Verarbeitung dieser Daten unterliegt dem Vertrag des Kunden mit dem Dienstleister und der Datenschutzrichtlinie des Dienstleisters, und Adobe ist nicht für den Dienstleister verantwortlich.

Erstellen eines benutzerdefinierten Integrationsprofils

  1. Navigieren Sie zu „Übersetzungsprofilen“. Weitere Informationen finden Sie unter Profil für maschinelle Übersetzung erstellen.

  2. Klicken Sie auf „+“, um ein neues Profil zu erstellen.

  3. Geben Sie im Dialogfeld „Übersetzungsprofil“ die Details für API-SchlüsselEndpunkt und Benutzerdefinierter Skriptpfad an.

  4. Klicken Sie auf Überprüfen, um zu überprüfen, ob die eingegebenen Anmeldeinformationen korrekt und vollständig sind.

  5. Klicken Sie auf Speichern.

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?