В Google Таблицах есть занятная функция, позволяющая переводить текст прямо в ячейках:
В этой статье расскажу, как ей пользоваться и как автоматически определять язык текста в ячейке.
Синтаксис функции следующий:
GOOGLETRANSLATE(text,[source_language],[target_language])
text — это текст, который нужно переводить. Можно, конечно, взять текст в кавычки и записать прямо в формулу, а можно сослаться на ячейку, в которой он содержится.
[source_language] — язык, с которого мы переводим;
[target_language] — соответственно, язык, на который мы переводим.
Второй и третий аргументы задаются двухзначным кодом: es, fr, en, ru. Их тоже можно указать в самой функции, но можно брать из ячейки, а язык исходного текста и вовсе можно автоматически определять.
Обратите внимание, что оба аргумента необязательные — если их не указать, перевод будет осуществляться на английский. Язык исходного текста будет определяться автоматически:
А как быть, если мы все-таки хотим переводить не на английский, а на разные языки? И при этом не хотим каждый раз указывать язык исходника вручную?
Тут пригодится функция DETECTLANGUAGE. У нее единственный аргумент — текст, язык которого нужно определить:
Осталось ее «внедрить» в функцию TRANSLATE. Укажем справа от текста, на какие языки хотим переводить исходный текст (в столбце B). В столбец C введем формулу GOOGLETRANSLATE. Первым аргументом будет текст в столбце A, вторым — функция DETECTLANGUAGE, которая определит, с какого языка переводить, а третья — код языка из столбца B.
Как и с любой другой функцией, прелесть здесь в автоматизации. Можно быстро поменять текст или язык; быстро перевести одну фразу на 10 языков и так далее. Конечно, мы понимаем, что это текст онлайн-переводчика — качество будет соответствующим.
Quel merveilleux tableau!
Translations are not a fascinating task for me. I once received a request to help out a colleague in translating an Excel file to English. Copy to Google Translate, translate, copy back to Excel and again… After going through part of the file we quickly extrapolated that the whole translation would take at least a whole day if done in this manner. I had to optimize this process as much as possible.
That’s when I thought of leveraging Google Translate to help with my localization efforts. Why translate stuff manually when we can put Excel to do the job for you.
Find below a quickly written VBA procedure that adds a shortcut to Excel to quickly translate any cell from one language to another. The below is a simple procedure you can easily pin to your Excel shortcuts (e.g. CTRL+K or similar). Simply select a certain Excel range and execute the TranslateCell procedure below.
Sub TranslateCell() Dim getParam As String, trans As String, translateFrom As String, translateTo As String translateFrom = "fr" translateTo = "en" Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP") getParam = ConvertToGet(ActiveCell.Value) URL = "https://translate.google.pl/m?hl=" & translateFrom & "&sl=" & translateFrom & "&tl=" & translateTo & "&ie=UTF-8&prev=_m&q=" & getParam objHTTP.Open "GET", URL, False objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.send ("") If InStr(objHTTP.responseText, "div dir=""ltr""") > 0 Then trans = RegexExecute(objHTTP.responseText, "div[^""]*?""ltr"".*?>(.+?)</div>") ActiveCell.Value = Clean(trans) Else MsgBox ("Error") End If End Sub '----Used functions---- Function ConvertToGet(val As String) val = Replace(val, " ", "+") val = Replace(val, vbNewLine, "+") val = Replace(val, "(", "%28") val = Replace(val, ")", "%29") ConvertToGet = val End Function Function Clean(val As String) val = Replace(val, """, """") val = Replace(val, "%2C", ",") val = Replace(val, "'", "'") Clean = val End Function Public Function RegexExecute(str As String, reg As String, _ Optional matchIndex As Long, _ Optional subMatchIndex As Long) As String On Error GoTo ErrHandl Set regex = CreateObject("VBScript.RegExp"): regex.Pattern = reg regex.Global = Not (matchIndex = 0 And subMatchIndex = 0) 'For efficiency If regex.Test(str) Then Set matches = regex.Execute(str) RegexExecute = matches(matchIndex).SubMatches(subMatchIndex) Exit Function End If ErrHandl: RegexExecute = CVErr(xlErrValue) End Function
How to setup Google Translate code in Excel?
Here you can find the full list of language 2 letter codes.
- In the Excel Developer ribbon open Macros
- Select the TranslateCell sub and go to Options
- Add a shortcut: e.g. CTRL+SHIFT+T
How to use it?
- Select any cell in Excel and click the configured shortcut e.g. CTRL+SHIFT+T
What if I want an UDF?
The procedure above can easily be converted to a User Defined Function (UDF) instead, allowing you to use it as a formula. Be sure to copy the required supporting functions (from the sections above) ConvertToGet, Clean and RegexExecute.
VBA UDF Google Translate
Public Function Translate(rng As Range, Optional translateFrom As String = "nl", Optional translateTo As String = "en") Dim getParam As String, trans As String, objHTTP As Object, URL As String Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP") getParam = ConvertToGet(rng.Value) URL = "https://translate.google.pl/m?hl=" & translateFrom & "&sl=" & translateFrom & "&tl=" & translateTo & "&ie=UTF-8&prev=_m&q=" & getParam objHTTP.Open "GET", URL, False objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.send ("") If InStr(objHTTP.responseText, "div dir=""ltr""") > 0 Then trans = RegexExecute(objHTTP.responseText, "div[^""]*?""ltr"".*?>(.+?)</div> ") Translate = Clean(trans) Else Translate = CVErr(xlErrValue) End If End Function
How to use the Translate UDF?
See an example below of how to translate text in cell A1 from French (fr) to English (en):
=TRANSLATE("A1","fr","en")
What if I want it to run on all selected cells?
Here is a modification of the function above to run on ALL selected cells:
Sub TranslateCell() Dim getParam As String, trans As String, translateFrom As String, translateTo As String translateFrom = "pl" translateTo = "en" Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP") Dim r As Range, cell As Range Set cell = Selection For Each cell In Selection.Cells getParam = ConvertToGet(cell.Value) URL = "https://translate.google.pl/m?hl=" & translateFrom & "&sl=" & translateFrom & "&tl=" & translateTo & "&ie=UTF-8&prev=_m&q=" & getParam objHTTP.Open "GET", URL, False objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.send ("") If InStr(objHTTP.responseText, "div dir=""ltr""") > 0 Then trans = RegexExecute(objHTTP.responseText, "div[^""]*?""ltr"".*?>(.+?)</div>") cell.Value = Clean(trans) Else MsgBox ("Error") End If Next cell End Sub
on
January 5, 2022, 11:31 AM PST
How to use Google Translate to translate your Microsoft Office documents
Google’s online translator can step in to translate your Office documents for free. Now you can read documents from all over the world with the click of a button.
We may be compensated by vendors who appear on this page through methods such as affiliate links or sponsored partnerships. This may influence how and where their products appear on our site, but vendors cannot pay to influence the content of our reviews. For more info, visit our Terms of Use page.
Google Translate is available as a website, a mobile app and a feature built into Google Docs. But you can also use the online version to translate external documents saved on your computer. The Google Translate webpage supports Word documents, Excel spreadsheets and PowerPoint presentations. After choosing the source and target languages, you point to the file you want translated, and Google takes care of the rest. Let’s see how this works.
SEE: 6 tips for expanding your SMB internationally (TechRepublic)
Open the Google Translate webpage in your browser. Click on the current source and target languages if you need to change them. Click the down arrow to access the full selection of languages. You can also set the source language to automatically be detected, but you may get more accurate results by specifying the language (Figure A).
Figure A
Next, you can simply copy and paste the text you want translated into the window for the source language. But the idea here is to translate an entire document. Click the Documents button and then select the option for Browse Your Computer. You can choose from a variety of Microsoft Office file types, including .doc, .docx, .odf, .pdf, .ppt, .pptx, .ps, .rtf, .txt, .xls and .xlsx (Figure B).
Figure B
Select the document you want translated. Let’s try a Word document in this case. Then click the Translate button (Figure C).
Figure C
The translated version appears on the website. To compare the translation with the original text, hover your mouse over each paragraph. A small window pops up showing the text in the source language (Figure D).
Figure D
If you’re familiar with the target language and feel the translation contains some errors, click the link for Contribute a Better Translation. You can then fix any words in the translation that are inaccurate (Figure E).
Figure E
To translate another file, click the back arrow to return to the Google Translate site. Click the button for Browse Your Computer to select a different file, maybe an Excel spreadsheet. Then click the Translate button. The translated spreadsheet appears. Again, hover over any translated paragraph to see the original text (Figure F).
Figure F
Finally, try translating a PowerPoint presentation. Open the file in the Google Translate site and click the Translate button. The text from the file appears in the translated language. Hover over a translated section to compare it with the source language (Figure G).
Figure G
Also See
-
How to translate documents into different languages with Google Docs (TechRepublic)
-
How to use Apple’s Translate app to translate a real-time conversation (TechRepublic)
-
How to view translations of foreign websites on your iPhone or iPad (TechRepublic)
-
How to use the translation tools in iOS 14 for easier communication and website translation (TechRepublic)
-
Why Wearable Translator 2 earbuds are a must-have for travelers (TechRepublic)
-
Checklist: Securing Windows 10 systems
(TechRepublic Premium) -
More must-read Microsoft coverage
(TechRepublic on Flipboard)
-
Google
-
Microsoft
-
Software
- Перевод в Excel с помощью API Deepl
- Перевод текста через Google Translate
- Бесплатный перевод с Google Translate
- Платный API Google Translate
- Бесплатная Функция GTranslate
- Таблица обозначений языков для перевода Google
- F. A. Q.
Excel-переводчик пригодится всем, кто производит локализацию сайтов, интерфейсов приложений и прочих больших массивов текста.
В Excel есть встроенный переводчик от Microsoft, но со своими причудами. Например, перевести можно только одну ячейку, а что делать, когда их сотни?
Можно попытаться использовать возможности VBA для использования онлайн-переводчиков в Excel. Сервисы предоставляют API для подобных задач.
Deepl — это сервис перевода, основанный на глубоком (машинном) обучении и нейросетях. Нетрудно догадаться из названия (Deep Learning – глубокое обучение).
Deepl — заслуженно крутой переводчик, качество перевода точно не уступает и часто превосходит конкурентов (а это, на минуточку, Google, Microsoft и другие гиганты, чей бизнес изначально был построен на текстовом анализе). О том, что их перевод лучше остальных, основатели проекта не скромничают на своём сайте. И с ними нельзя не согласиться — качество переведенного текста и в самом деле практически не требует дополнительной редактуры.
Deepl популярен в среде SEO-специалистов, которые локализуют тексты с его помощью. Есть подозрения, что Google может пессимизировать тексты, переведенные им же самим, это еще один довод в пользу сторонних решений.
Deepl позволяет выбирать формальность перевода (в языках где это есть, например, в русском яркий пример Ты-Вы).
К сожалению, сейчас Deepl доступен далеко не во всех странах – нужна карточка, выпущенная банком стран EU, US, Японии и еще нескольких стран.
Но если вам нужен действительно качественный перевод – вас это вряд ли остановит.
Поддержка перевода с помощью бесплатного и платного API Deepl появилась в !SEMTools 17 февраля 2023г.
Перевод текста через Google Translate
Google Translate — замечательный продукт. Перевод с его помощью довольно качественный и при этом моментальный. Но у веб-интерфейса есть свои недостатки. Например, ограничения по количеству знаков.
А что, если бы можно было пользоваться Google Translate прямо в Excel?
Это было бы просто замечательно! Поэтому я и реализовал в !SEMTools функции и процедуры для перевода текста на популярные языки.
Бесплатный перевод с Google Translate
Использовать процедуры несколько удобнее, чем функции, т.к. все действия осуществляются парой кликов мыши. Доступен перевод с русского на 6 популярных языков и обратно. Здесь используется бесплатная веб-версия переводчика, подходит для перевода небольших объемов текста.
Для редких случаев перевода с иностранного на иностранный можно воспользоваться отдельной процедурой с выбором языка. Она поддерживает выбор 12 наиболее популярных языков и доступна в полной версии !SEMTools.
Платный API Google Translate
У многих при использовании бесплатной версии переводчика возникают проблемы с превышением бесплатных лимитов. Разумеется, Google не готов абсолютно бесплатно делиться столь сложным в разработке и полезным инструментом, поэтому ограничивает “недобросовестное” использование бесплатной версии сервиса.
Альтернатива – это возможность пользоваться сервисом через платный API.
Но на текущий момент (2023 г.) Google предоставляет перевод первых 500.000 знаков бесплатно! Нужно только подключить платежный профиль, но первые 500.000 знаков деньги расходоваться не будут.
Для тех, кому нужно переводить многие сотни строк текста и многие тысячи знаков, инструмент будет очень полезен. Поддержка платного API доступна с версии 10.23.14 (февраль 2023 г.), только в полной версии надстройки.
Если вы еще не прописали ваш персональный API-токен, процедура уведомит вас о его отсутствии (и перевод, конечно же, не сработает).
Для активации токена в меню присутствует отдельная процедура:
После активации токена процедуры будут переводить текст в любых объемах, но будьте внимательны и следите за превышением начальной квоты в 500.000 знаков, и дальнейшим расходом средств (хотя расценки Google вполне скромные). Вся информация доступна на дашборде Google Cloud.
Как получить токен
Чтобы получить токен API Google Translate, вам потребуется:
- Зарегистрировать Google аккаунт
- Перейти в Google Cloud Console: https://console.cloud.google.com/apis/dashboard
- Создать там аккаунт и подключить биллинг (потребуется зарубежная карта)
- Активировать Cloud Translation API
- Найти токен на вкладке Credentials: https://console.cloud.google.com/apis/api/translate.googleapis.com/credentials
Бесплатная Функция GTranslate
Функция доступна всем бесплатно – нужно только скачать !SEMTools и подключить надстройку к вашему Excel.
Синтаксис функции аналогичен таковому в Google Spreadsheets:
=GTranslate(A1;"en";"ru")
Преимущество перед самими “гуглодоками” в том, что Spreadsheets зависнут и перестанут отдавать перевод раньше.
С функциями можно использовать любой язык из предложенных на сервисах. Используется “бесплатная” версия перевода, что означает небольшие лимиты на количество строк и знаков.
Таблица обозначений языков для перевода Google
Afrikaans | af | Galician | gl | Latin | la | Sesotho | st |
Albanian | sq | Georgian | ka | Latvian | lv | Shona | sn |
Amharic | am | German | de | Lithuanian | lt | Sindhi | sd |
Arabic | ar | Greek | el | Luxembourgish | lb | Sinhala (Sinhalese) | si |
Armenian | hy | Gujarati | gu | Macedonian | mk | Slovak | sk |
Azerbaijani | az | Haitian Creole | ht | Malagasy | mg | Slovenian | sl |
Basque | eu | Hausa | ha | Malay | ms | Somali | so |
Belarusian | be | Hawaiian | haw (ISO-639-2) | Malayalam | ml | Spanish | es |
Bengali | bn | Hebrew | he or iw | Maltese | mt | Sundanese | su |
Bosnian | bs | Hindi | hi | Maori | mi | Swahili | sw |
Bulgarian | bg | Hmong | hmn (ISO-639-2) | Marathi | mr | Swedish | sv |
Catalan | ca | Hungarian | hu | Mongolian | mn | Tagalog (Filipino) | tl |
Cebuano | ceb (ISO-639-2) | Icelandic | is | Myanmar (Burmese) | my | Tajik | tg |
Chinese (Simplified) | zh-CN or zh (BCP-47) | Igbo | ig | Nepali | ne | Tamil | ta |
Chinese (Traditional) | zh-TW (BCP-47) | Indonesian | id | Norwegian | no | Telugu | te |
Corsican | co | Irish | ga | Nyanja (Chichewa) | ny | Thai | th |
Croatian | hr | Italian | it | Pashto | ps | Turkish | tr |
Czech | cs | Japanese | ja | Persian | fa | Ukrainian | uk |
Danish | da | Javanese | jv | Polish | pl | Urdu | ur |
Dutch | nl | Kannada | kn | Portuguese (Portugal, Brazil) | pt | Uzbek | uz |
English | en | Kazakh | kk | Punjabi | pa | Vietnamese | vi |
Esperanto | eo | Khmer | km | Romanian | ro | Welsh | cy |
Estonian | et | Korean | ko | Russian | ru | Xhosa | xh |
Finnish | fi | Kurdish | ku | Samoan | sm | Yiddish | yi |
French | fr | Kyrgyz | ky | Scots Gaelic | gd | Yoruba | yo |
Frisian | fy | Lao | lo | Serbian | sr | Zulu | zu |
F. A. Q.
Можно ли сделать собственный переводчик в Excel?
Можно составить словарь слов и их аналогов на другом языке – по тому же принципу, как это сделано в моей процедуре лемматизации. Но пословный перевод редко получается корректным.
Например, фразовые глаголы в английском языке уже приносят страдания тем, кто их учит, т.к. два слова рядом переводятся совсем не так, как по отдельности.
Словоформы глаголов в русском языке зависят от рода субъекта, а в английском – нет.
Нужно переводить не только слова, но и фразы, определяя контекст и взаимоотношения слов. Более того, одни и те же сочетания могут по разному переводиться в зависимости от пунктуации – ее тоже нужно учитывать.
Все это делает задачу составления собственного переводчика очень сложной. Гораздо проще воспользоваться готовыми решениями.
Подходит ли бесплатный функционал для объемов в тысячи строк?
Нет. Если попытаться перевести сотни строк и тысячи-десятки тысяч слов одновременно, Google наложит временный бан на IP. Как правило, это несколько часов.
Для перевода в промышленных масштабах нужно использовать платный API.
Будет ли в !SEMTools включена поддержка других API (например, Deepl)?
Да, другие API также планируются.
Нужно перевести текст в Excel? Установите надстройку !SEMTools и переводите любые объемы текста на нужный вам язык!