MktoForms2 :: Google Translate API
by sanford
HTML
<script src="//app-sj01.marketo.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm_298"></form>
JavaScript
MktoForms2.loadForm("//app-sj01.marketo.com", "410-XOR-673", 298)
MktoForms2.whenReady(function(form) {
var formEl = form.getFormElem()[0],
commentsField = 'Comments__c',
googleTranslateAPIBase = 'https://www.googleapis.com/language/translate/v2',
googleTranslateSource = 'en',
googleTranslateTarget = 'de',
googleTranslateAPIKey = 'AIzaSyC9vOmwqqRq-UfunFilWcYqIf1fTPg0rik',
validationComplete = false;
// Sandy's demo email
form.setValues({Email:'[email protected]'});
formEl.querySelector('#Email').readOnly = true;
form.onValidate(function(valid) {
form.submittable(validationComplete); // reenable on cb
if (valid && !form.submittable()) {
var originalValues = form.getValues(),
originalComments = originalValues[commentsField],
translatedValues = {};
simpleJSONP( googleTranslateAPIBase + '?'
+ '&source=' + googleTranslateSource
+ '&target=' + googleTranslateTarget
+ '&key=' + googleTranslateAPIKey
+ '&q=' + encodeURIComponent(originalComments),
window.translateComments = function translateComments(response) {
translatedValues[commentsField] = response.data.translations[0].translatedText;
form.setValues(translatedValues);
validationComplete = true;
form.submit();
});
} else if (valid) {
form.submittable(false); // remove this line on your production site, but leave it in for the demo!
}
});
function simpleJSONP(url,callback)
...