The onEdit function is a trigger that fires when a user finishes entering data into a cell in the Spreadsheet:
https://developers.google.com/apps-script/guides/triggers/#onedite
We get the range of cells where changes have occurred:
https://developers.google.com/apps-script/reference/spreadsheet/range
The sheet where changes were made:
https://developers.google.com/apps-script/reference/spreadsheet/sheet
Translate the text into English:
https://developers.google.com/apps-script/reference/language/language-app
Original version:
function onEdit(e) {
Logger.log(e);
// We get the range of cells where changes have occurred
var range = e.range;
// The sheet where changes were made
var sheet = range.getSheet();
// We check if this is the sheet we need.
Logger.log(sheet.getName());
if (sheet.getName() != 'Перевод текста') {
return false;
}
// Only translate text entered into the first column.
// Check the starting position of the range.
Logger.log(range.getColumn());
if (range.getColumn() != 1) {
return false;
}
for (var i = 1; i <= range.getNumRows(); i++) {
var cell = range.getCell(
i, // row number
1 // column number
);
// Get the text in Russian
var russianText = cell.getValue();
// Translate the text into English
var translatedText = LanguageApp.translate(
russianText, // text
'ru', // translate from which language
'en' // translate to which language
);
// Insert the translated text into the second column
sheet.getRange(
cell.getRowIndex(), // row number
2 // column number
).setValue(translatedText);
}
}
My version with changes or enhancements:
function onEdit_(e) {
Logger.log(e);
var range = e.range; // The range of cells with changes
var sheet = range.getSheet(); // The sheet with changes
Logger.log(sheet.getName()); // get name of the sheet
if (sheet.getName() != 'Text Translation') { // check the sheet
return false;
}
// first column only for initial text and check the position
Logger.log(range.getColumn());
if (range.getColumn() != 1) {
return false;
}
for (var i = 1; i <= range.getNumRows(); i++) {
var cell = range.getCell(
i, // row number
1 // column number
);
var russianText = cell.getValue(); // Get the text in Russian
var translatedText = LanguageApp.translate(
russianText, // text
'ru', // from
'en' // to
);
// Translate the text into Estonian
var translatedText2 = LanguageApp.translate(
russianText, // text
'ru', // from
'et' // to
);
// Translate the text into Spanish
var translatedText3 = LanguageApp.translate(
russianText, // text
'ru', // from
'es' // to
);
// Insert the translated text into the second column
sheet.getRange(
cell.getRowIndex(), // row number
2
).setValue(translatedText); // english
sheet.getRange(
cell.getRowIndex(), // row number
3 // Insert the translated text into the third column
).setValue(translatedText2); // estonian
sheet.getRange(
cell.getRowIndex(), // row number
4 // Insert the translated text into the fourth column
).setValue(translatedText3); // spanish
}
}




