The LanguageApp service of Apps Script can be used to translate any selected piece of text in a Google Document from one language to another. Select a paragraph in the document, or a word or a partial sentence, and choose the translate option from the menu bar. It will append the translated text with the original selection.
The functionality is offered by existing add-ons but this will give you an idea of what happens behind the scenes.
function translateSelection() { var selection = DocumentApp.getActiveDocument().getSelection(); if (!selection) { DocumentApp.getUi().alert("Please select text for translation."); return; } var elements = selection.getSelectedElements(); /* Append the translated text with the original */ for (var i = 0; i < elements.length; i++) { if (elements[i].isPartial()) { /* Is partial text selected */ var element = elements[i].getElement().asText(); var startIndex = elements[i].getStartOffset(); var endIndex = elements[i].getEndOffsetInclusive(); var text = element.getText().substring(startIndex, endIndex + 1); var translatedText = LanguageApp.translate(text, 'ja', 'en'); element.insertText(endIndex + 1, " [" + translatedText + "] "); } else { var element = elements[i].getElement(); if (element.editAsText) { /* Is the selection contains text */ var text = element.asText().getText(); var translatedText = LanguageApp.translate(text, 'ja', 'en'); element.asText().setText(text + " [" + translatedText + "] "); } } } }