Макрос для перевода текста в excel

Макрос-переводчик

Обучим немецкому

языку по методу гестапо.

Работающие в иностранных компаниях сотрудники часто вынуждены готовить по два одинаковых отчета для отечественного и зарубежного своего начальства — на русском и английском языках. Цифры в этих отчетах, естественно, одинаковые, а меняются только подписи, заголовки и другой текст.

Такую задачу можно решить более изящно. Создаем новый лист в таком отчете и называем его «Словарь«. Выписываем на этот лист в любом порядке все слова, которые надо автоматически переводить. Для каждого языка добавляем новый столбец, например, так:

translater1.gif

Потом переходим в редактор Visual Basic (меню Сервис — Макрос — Редактор Visual Basic), вставляем новый модуль (меню Insert — Module) и копируем туда текст вот этих двух макросов:

Sub Translate()
Dim cell1 as Range, cell2 As Range
Dim i as Long, Langs As Long 

Langs = 3 'количество языков перевода, включая русский

    For Each cell1 In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)
        For Each cell2 In Worksheets("Словарь").Cells.SpecialCells(xlCellTypeConstants)
            If cell1.Value = cell2.Value Then
                i = cell2.Column
                If i = Langs Then i = 1 Else i = i + 1
                cell1.Value = Worksheets("Словарь").Cells(cell2.Row, i).Value
                GoTo 1
            End If
        Next cell2
1:   Next cell1

End Sub

Теперь можно вернуться на лист с отчетом и запустить макрос Translate через меню Сервис — Макрос — Макросы (Tools — Macro — Macros) или нажав ALT+F8. Все слова из вашего отчета, найденные в на листе Словарь, будут заменены на слова из соседней колонки, т.е. переведены на другой язык. Запуская макрос несколько раз, мы будем по кругу переводить наш отчет последовательно на русский-английский-немецкий-русский-английский-и т.д. Выглядеть это будет так:

translater2.gif

Praktisch, nicht wahr? :)

Ссылки по теме

  • Что такое макросы, куда вставлять код макроса на VBA, как их использовать
  • Преобразование русского текста в транслит

Данная VBA функция позволяет перевести текст с любого языка на другой
Язык исходного текста можно не указывать — Google распознает его самостоятельно.
(т.е. вызовы res$ = Translate(txt$, «en», «ru») и res$ = Translate(txt$, «en») равнозначны)

Добавлено 17.10.2011
В данный момент функция не работает для большого числа запросов — Google недавно ввёл ограничение.
Решение для обхода этого ограничения сложное, потому пока мной не реализовано (не было необходимости)

Добавлено 07.03.2012
Исправленный вариант функции вы можете найти в конце статьи. (теперь снова можно выполнять автоматизированный перевод любого количества фраз на любые языки)
Алгоритм функции немного изменился — но это и не важно, главное, что перевод снова работает.
Пример использования перевода на листе Excel — во втором прикреплённом файле

Sub ПримерИспользованияФункцииПеревода()
    txt$ = "Привет! Это функция перевода текста на иностранный язык"
    res$ = Translate(txt$, "en", "ru")
    MsgBox "Результат перевода на английский:" & vbNewLine & res$, vbInformation, txt$
    res$ = Translate(txt$, "de")
    MsgBox "Результат перевода на немецкий:" & vbNewLine & res$, vbInformation, txt$
End Sub

Список кодов доступных языков для перевода:
(используются в качестве параметров функции Translate)

ar — арабский; bg — болгарский; cs — чешский;
da — датский ; de — немецкий; el — греческий;
en — английский; es — испанский; fi — финский;
fr — французский; hi — хинди; hr — хорватский;
it — итальянский; ja — японский; ko — корейский;
nl — голландский; no — норвежский; pl — польский;
pt — португальский; ro — румынский; ru — русский;
sv — шведский; zh-cn — китайский упрощенный; zh-tw — китайский традиционный

Код функции перевода:

Function Translate$(ByVal TextToBeTranslated$, ByVal resultLanguageCode$, Optional ByVal sourceLanguageCode$ = "")
    ' переводит текст TextToBeTranslated$ с языка sourceLanguageCode$ на язык resultLanguageCode$,
    ' используя сервис переводов Google Translate
    With CreateObject("ADODB.Stream")
        .Charset = "utf-8": .Mode = 3: .Type = 2: .Open
        .WriteText TextToBeTranslated: .Flush: .Position = 0
        .Type = 1: .Read 3: ByteArrayToEncode = .Read(): .Close
    End With
 
    For i = 0 To UBound(ByteArrayToEncode)
        iAsc = ByteArrayToEncode(i)
        Select Case iAsc
            Case 32: sTemp$ = "+"    'space
            Case 48 To 57, 65 To 90, 97 To 122: sTemp$ = Chr(ByteArrayToEncode(i))
            Case Else: sTemp$ = "%" & Hex(iAsc)
        End Select
        txt$ = txt$ & sTemp$
    Next
 
    Set objhttp = CreateObject("MSXML2.ServerXMLHTTP")
    URL$ = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" & _
           txt$ & "&langpair=" & sourceLanguageCode$ & "%7C" & resultLanguageCode$
    objhttp.Open "GET", URL$, False
    objhttp.setTimeouts 1000000, 1000000, 1000000, 1000000: objhttp.send ("")
 
    Translate$ = objhttp.responseText
    Translate$ = Right(Translate$, Len(Translate$) - InStr(1, Translate$, "translatedText") - 16)
    Translate$ = Left(Left(Translate$, InStr(1, Translate$, Chr(34)) - 1), 255)
    Translate$ = Replace(Translate$, "quot;", Chr(39))
    If Translate$ = " null, " Then Translate$ = "Не переведено"
End Function

(добавлено позже)
Видоизменил функцию — теперь перевод снова работает
(пример использования — во втором прикреплённом файле)

Function Translate$(ByVal TextToBeTranslated$, ByVal resultLanguageCode$, _
                    Optional ByVal sourceLanguageCode$ = "")
    ' переводит текст TextToBeTranslated$ с языка sourceLanguageCode$
    ' на язык resultLanguageCode$, используя сервис переводов Google Translate
    Application.Volatile True
    Set ADOStream = CreateObject("ADODB.Stream")
    With ADOStream
        .Charset = "utf-8": .Mode = 3: .Type = 2: .Open
        .WriteText TextToBeTranslated: .Flush: .Position = 0
        .Type = 1: .Read 3: ByteArrayToEncode = .Read(): .Close
    End With
 
    For i = 0 To UBound(ByteArrayToEncode)
        iAsc = ByteArrayToEncode(i)
        Select Case iAsc    ' переводим текст в кодировку, понятную Google
            Case 32: sTemp$ = "+"    'space
            Case 48 To 57, 65 To 90, 97 To 122: sTemp$ = Chr(ByteArrayToEncode(i))
            Case Else: sTemp$ = "%" & Hex(iAsc)     'Chr(iAsc)
        End Select
        txt$ = txt$ & sTemp$
    Next
 
    ' формируем ссылку, по которой Google выдаст нам файл с переводом
    URL$ = "http://translate.google.com.ua/translate_a/t?client=json&text=" & _
           txt$ & "&hl=" & resultLanguageCode$ & "&sl=" & sourceLanguageCode$
 
    Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")    ' скачиваем файл
    XMLHTTP.Open "GET", Replace(URL$, "", "/"), "False": XMLHTTP.send
 
    If XMLHTTP.statustext = "OK" Then
        LocalPath$ = Environ("TMP") & "google.txt"
        With ADOStream    ' перекодировка файла
            .Type = 1: .Open: .Write XMLHTTP.responseBody
            .SaveToFile LocalPath$, 2
            .Close: .Type = 2: .Charset = "utf-8": .Open:
            .LoadFromFile LocalPath$    ' загружаем данные из файла
            Translate$ = .ReadText   ' считываем текст файла в переменную Translate$
        End With
 
        On Error Resume Next    ' вырезаем нужный текст из ответа
        Translate$ = Split(Translate$, """trans"":""")(1)
        Translate$ = Split(Translate$, """,""orig")(0)
        Translate$ = Replace(Translate$, "quot;", Chr(39))
        If Translate$ = " null, " Then Translate$ = "Не переведено"
    End If
    Set XMLHTTP = Nothing: Set ADOStream = Nothing
End Function

Update: Improved For Each v In arr_Response-iteration, allowing special charactors. Added mouse-cursor change, when translation is processing. Added an example on how to improve the translated output_string.

There are a majority of free translation API’s outthere, but none really seems to beat Googles Translation Service, GTS (in my opinion). As a result of Googles’ restrictions on the free GTS-usage, the best VBA-approach seems to be narrowed down to the IE.navigation — as Santosh’s answer also emphasizes.

Using this approach, causes some problematics. The IE-instans doesn’t know when the page is fully loaded, and IE.ReadyState is really not trusthworthy. Therefore the coder has to add «delays» using the Application.Wait function. When using this function, you are just guessing how long it would take, before the page is fully loaded. In situations where the internet is really slow, this hardcoded time, might not be enough. The following code fixes this, with the ImprovedReadyState.

In situations where a sheet has different columns, and you want to add different translation into every cell, I find the best approach where the translation-string is assigned to the ClipBoard, rather then calling a VBA-Function from within the formula. Thereby you can easily paste the translation, and modify it as a string.

Columns in Excel

How to use:

  1. Insert the procedures into a custom VBA-Module
  2. Change the 4 Const’s to your desire (see upper TranslationText)
  3. Assign a shortkey to fire the TranslationText-procedure

Shortkey Excel

  1. Activate the cell you want to translate. Required the first row to end with a language-tag. Etc. «_da», «_en», «_de». If you want another functionality, you change ws_ActiveWS.Cells(r_ActiveCell.Row, r_InputRange.Column)

enter image description here

  1. Press the shortkey from 4. (etc. CTRL + SHIRT + S). See proces in your processbar (bottom of excel). Paste (CTRL+V) when translation done is displayed:

enter image description here
Translation done

    Option Explicit

    'Description: Translates content, and put the translation into ClipBoard
    'Required References: MIS (Microsoft Internet Control)
    Sub TranslateText()

    'Change Const's to your desire
    Const INPUT_RANGE As String = "table_products[productname_da]"
    Const INPUT_LANG As String = "da"
    Const PROCESSBAR_INIT_TEXT As String = "Processing translation. Please wait... "
    Const PROCESSBAR_DONE_TEXT As String = "Translation done. "

    Dim ws_ActiveWS As Worksheet
    Dim r_ActiveCell As Range, r_InputRange As Range
    Dim s_InputStr As String, s_InputLang As String, s_OutputLang As String, arr_Response() As String, s_Translation As String
    Dim o_IE As Object, o_MSForms_DataObject As Object
    Dim i As Long
    Dim v As Variant

    Set o_MSForms_DataObject = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    Set ws_ActiveWS = ThisWorkbook.ActiveSheet
    Set r_ActiveCell = ActiveCell
    Set o_IE = CreateObject("InternetExplorer.Application")
    Set r_InputRange = ws_ActiveWS.Range(INPUT_RANGE)

    'Update statusbar ("Processing translation"), and change cursor
    Application.Statusbar = PROCESSBAR_INIT_TEXT
    Application.Cursor = xlWait

    'Declare inputstring (The string you want to translate from)
    s_InputStr = ws_ActiveWS.Cells(r_ActiveCell.Row, r_InputRange.Column)

    'Find the output-language
    s_OutputLang = Right(ws_ActiveWS.Cells(1, r_ActiveCell.Column).Value, 2)

    'Navigate to translate.google.com
    With o_IE

        .Visible = False 'Run IE in background
        .Navigate "http://translate.google.com/#" & INPUT_LANG & "/" _
            & s_OutputLang & "/" & s_InputStr

        'Call improved IE.ReadyState
        Do
            ImprovedReadyState
        Loop Until Not .Busy

        'Split the responseText from Google
        arr_Response = Split(.Document.getElementById("result_box").innerHTML, "<span class")

        'Remove html from response, and construct full-translation-string
        For Each v In arr_Response
            s_Translation = s_Translation & Replace(v, "<span>", "")
            s_Translation = Replace(s_Translation, "</span>", "")
            s_Translation = Replace(s_Translation, """", "")
            s_Translation = Replace(s_Translation, "=hps>", "")
            s_Translation = Replace(s_Translation, "=atn>", "")
            s_Translation = Replace(s_Translation, "=hps atn>", "")

            'Improve translation.
            'This could etc. be moved to seperate sheets (containing every language), and make the lookup in a dynamic table/sheet. Futurely it'd be possible to hook on the changeevent, and automatically improve the translation-algoritmen.
            'If Google can't translate the etc. the word "Lys", you can extend the translation, with an auto correction. This example shows to autocorrect the word "Lys" -> "ljus". 
            If (s_OutputLang = "sv") Then
                s_Translation = Replace(s_Translation, "lys", "ljus")
            End if
        Next v

        'Put Translation into Clipboard
        o_MSForms_DataObject.SetText s_Translation
        o_MSForms_DataObject.PutInClipboard

        If (s_Translation <> vbNullString) Then
            'Put Translation into Clipboard
            o_MSForms_DataObject.SetText s_Translation
            o_MSForms_DataObject.PutInClipboard

            'Update statusbar ("Translation done"). If the input_string is above 70 chars (which is roughly the limitation in processbar), then cut the string, and extend with "...".
            Application.Statusbar = PROCESSBAR_DONE_TEXT & """" & IIf(Len(s_InputStr) < 70, s_InputStr, Mid(s_InputStr, 1, 70) & "...") & """"
        Else
            'Update statusbar ("Error")
            Application.Statusbar = PROCESSBAR_ERROR_TEXT
        End If

        'Cleanup
        .Quit

        'Change cursor back to default
        Application.Cursor = xlDefault

        Set o_MSForms_DataObject = Nothing
        Set ws_ActiveWS = Nothing
        Set r_ActiveCell = Nothing
        Set o_IE = Nothing

    End With

End Sub

Sub ImprovedReadyState()

    Dim si_PauseTime As Single: si_PauseTime = 1 'Set duration
    Dim si_Start As Single: si_Start = Timer 'Set start-time
    Dim si_Finish As Single 'Set end-time
    Dim si_TotalTime As Single 'Calculate total time.

    Do While Timer < (si_Start + si_PauseTime)
        DoEvents
    Loop

    si_Finish = Timer

    si_TotalTime = (si_Finish - si_Start)

End Sub

Хитрости »

7 Сентябрь 2013              101528 просмотров


Внимание: периодически Google вводит ограничение и изменяет алгоритмы автоматического перевода (так же иногда для получения перевода необходимо вводить каптчу). Поэтому временами функция может не работать. Некоторое время назад можно было наблюдать это. Сейчас функция работает.

На днях проводил ревизию кодов и различных примеров в файлах и нашел довольно много интересного. В том числе функцию перевода текста из ячейки Excel на разные языки при помощи сервиса Google. Посмотрел и решил её переработать и оптимизировать, т.к. в том виде, в котором она была у меня она никуда не годилась: переводила коряво, т.к. Google поменял алгоритм в формат выходных данных. Плюс надо было решить вопрос некорректной замены различных символов внутри текста. Подозреваю, что и сейчас функция далеко не идеальна. Поэтому если у кого-то возникнут ошибки — пишите комментарии, попробуем разобраться.

Option Explicit
'---------------------------------------------------------------------------------------
' Procedure : GoogleTranslate
' DateTime  : 04.09.2013 22:55
' Author    : The_Prist(Щербаков Дмитрий)
'             http://www.excel-vba.ru
' Purpose   : 
'     Функция переводит текст, используя сервис переводов Google Translate
'     Аргументы:
'          sText       - текст для перевода. Непосредственно текст или ссылка на ячейку.
'          sResLang    - код языка, на который осуществлять перевод
'          sSourceLang - код языка, с которого переводить.
'                        Если не указывать, Google автоматом определяет язык введенного текста
'                        Доступно 74 кода языков.
'---------------------------------------------------------------------------------------
Dim objRegExp As Object
Function GoogleTranslate(ByVal sText As String, ByVal sResLang As String, _
                         Optional ByVal sSourceLang As String = "")
 
    Dim sGoogleURL As String, sAllTxt As String, sTmpStr As String, sRes As String, sTextToTranslate As String
    Dim lByte As Long, alByteToEncode, li As Long
    Dim asTmp, lPos As Long
    'раскомментировать при необходимости пересчета функции при любом изменении в книге
    'Application.Volatile True
    If objRegExp Is Nothing Then
        Set objRegExp = CreateObject("VBScript.RegExp")
        With objRegExp
            .MultiLine = True: .ignorecase = True: .Global = True
            .Pattern = "[n;]"
        End With
    End If
    sTextToTranslate = Application.Trim(objRegExp.Replace(sText, " "))
 
    With CreateObject("ADODB.Stream")
        .Charset = "utf-8": .Mode = 3: .Type = 2: .Open
        .WriteText sTextToTranslate
        .Flush: .Position = 0: .Type = 1: .Read 3
        alByteToEncode = .Read(): .Close
    End With
 
    'переводим текст в кодировку, понятную Google
    For li = 0 To UBound(alByteToEncode)
        lByte = alByteToEncode(li)
        Select Case lByte
        Case 32: sTmpStr = "+"
        Case 48 To 57, 65 To 90, 97 To 122: sTmpStr = Chr(alByteToEncode(li))
        Case Else: sTmpStr = "%" & Hex(lByte)
        End Select
        sAllTxt = sAllTxt & sTmpStr
    Next li
 
    'формируем ссылку для Google
    sGoogleURL = "http://translate.google.com.ua/translate_a/t?client=json&text=" & _
                 sAllTxt & "&hl=" & sResLang & "&sl=" & sSourceLang
    sGoogleURL = Replace(sGoogleURL, "", "/") '"
    'получаем ответ от Google
    With CreateObject("Microsoft.XMLHTTP")
        .Open "GET", sGoogleURL, "False": .send
        If .statustext = "OK" Then
            sTmpStr = .responsetext
            'отбираем только переведенный текст
            asTmp = Split(sTmpStr, "{""trans"":""")
            For li = LBound(asTmp) To UBound(asTmp)
                lPos = InStr(1, asTmp(li), """,""orig"":", 1)
                If lPos Then sRes = sRes & Mid(asTmp(li), 1, lPos - 1)
            Next li
            If sRes = "" Then sRes = "Не удалось перевести"
        End If
    End With
    GoogleTranslate = sRes
End Function

Выложенный выше код является функцией пользователя для вызова из ячейки листа.

Синтаксис функции:
с английского на русский A1 записан текст на английском — Google автоматом определяет язык):
=GoogleTranslate(A1;»ru»)
с английского на русский — текст задан константой:
=GoogleTranslate(«translation»; «ru»)

sText — текст для перевода. Непосредственно текст или ссылка на ячейку.
sResLang — код языка, на который осуществлять перевод.
sSourceLang — Необязательный аргумент. Указывается код языка, с которого переводить. Если не указывать, Google автоматом определяет язык введенного текста.

Всего доступно 74 языка:

  • en — английский
  • ru — русский
  • az — азербайджанский
  • sq — албанский
  • en — английский
  • ar — арабский
  • hy — армянский
  • af — африкаанс
  • eu — баскский
  • be — белорусский
  • bn — бенгальский
  • bg — болгарский
  • bs — боснийский
  • cy — валлийский
  • hu — венгерский
  • vi — вьетнамский
  • gl — галисийский
  • nl — голландский
  • el — греческий
  • ka — грузинский
  • gu — гуджарати
  • da — датский
  • iw — иврит
  • yi — идиш
  • id — индонезийский
  • ga — ирландский
  • is — исландский
  • es — испанский
  • it — итальянский
  • kn — каннада
  • ca — каталанский
  • zh-TW — китайский (традиционный)
  • zh-CN — китайский (упрощенный)
  • ko — корейский
  • ht — креольский (Гаити)
  • km — кхмерский
  • lo — лаосский
  • la — латынь
  • lv — латышский
  • lt — литовский
  • mk — македонский
  • ms — малайский
  • mt — мальтийский
  • mr — маратхи
  • de — немецкий
  • no — норвежский
  • fa — персидский
  • pl — польский
  • pt — португальский
  • ro — румынский
  • ru — русский
  • ceb — себуанский
  • sr — сербский
  • sk — словацкий
  • sl — словенский
  • sw — суахили
  • tl — тагальский
  • th — тайский
  • ta — тамильский
  • te — телугу
  • tr — турецкий
  • uk — украинский
  • ur — урду
  • fi — финский
  • fr — французский
  • hi — хинди
  • hmn — хмонг
  • hr — хорватский
  • cs — чешский
  • sv — шведский
  • eo — эсперанто
  • et — эстонский
  • jw — яванский
  • ja — японский

Добавил функцию перевода, которая получает текст перевода через Internet Explorer. Получается медленнее и не у всех сможет работать исключительно потому, что IE капризный и очень чувствителен к тому, какая его версия на какой ОС установлена. Но это больше исключение — в подавляющем большинстве случаев работать должно без проблем:

Option Explicit
'---------------------------------------------------------------------------------------
' Procedure : GoogleTranslate_IE
' DateTime  : 12.04.2018 22:55
' Author    : The_Prist(Щербаков Дмитрий)
'             Профессиональная разработка приложений для MS Office любой сложности
'             Проведение тренингов по MS Excel
'             http://www.excel-vba.ru
'             info@excel-vba.ru
'             WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
' Purpose   :
'     Функция переводит текст, используя сервис переводов Google Translate
'     Аргументы:
'          sText       - текст для перевода. Непосредственно текст или ссылка на ячейку.
'          sResLang    - код языка, на который осуществлять перевод
'          sSourceLang - код языка, с которого переводить.
'                        Если не указывать, Google автоматом определяет язык введенного текста
'                        Доступно 74 кода языков.
'---------------------------------------------------------------------------------------
Dim IE As Object
Function GoogleTranslate_IE(ByVal sText As String, _
                         Optional ByVal sResLang As String = "en", _
                         Optional ByVal sSourceLang As String = "auto") As String
    Dim isIEOpen As Boolean
    'подключаемся к InternetExplorer
    On Error Resume Next
    Set IE = GetObject(, "InternetExplorer.application")
    'IE еще не запущен - запускаем
    If IE Is Nothing Then
        Set IE = CreateObject("InternetExplorer.application")
        'делаем окно IE скрытым
        IE.Visible = False
    End If
    'переходим на страницу перевода и указываем параметры
    IE.navigate "https://translate.google.com/#" & sSourceLang & "/" & sResLang & "/" & sText
    'ждем отклика от IE
    Do While IE.Busy Or IE.readyState <> 4
        DoEvents
    Loop
    'получаем текст перевода
    GoogleTranslate_IE = IE.Document.getElementById("result_box").innerText
    'если IE не был запущен до вызова функции - закрываем
    If Not isIEOpen Then
        IE.Quit
        Set IE = Nothing
    End If
End Function

Функция будет работать быстрее, если перед переводом запустить InternetExplorer. Это заставит функцию использовать уже запущенный экземпляр IE, а не запускать для каждой ячейки новый(что отнимает немало времени).

Скачать пример:

  Tips_Macro_GoogleTranslate.xls (53,5 KiB, 6 462 скачиваний)

Так же см.:
Транслит — Перевод с транслита и обратно


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

переводчик-excel-logo

Знаете ли вы, что в Excel реализован инструмент перевода текста на другой язык. С помощью мини-переводчика вы можете перевести фразу, абзац или весь файл, написанный на другом языке. Данный элемент использует функционал программы Microsoft Translator, который по умолчанию содержится в офисных приложениях Microsoft. В сегодняшней статье я опишу, как воспользоваться данным функционалом. Помимо этого, мы рассмотрим, как с помощью функций ВЕБСЛУЖБА и ФИЛЬТР.XML реализовать Яндекс переводчик в нашей Excel книге.

Итак, у вас имеется текст, который необходимо перевести на другой язык. В нашем случае, я хочу перевести текст, находящийся в ячейках A1:A3 с русского на английский. Переходим во вкладку Рецензирование в группу Язык, щелкаем по кнопке Перевод. В правой части книги появится панель Справочные материалы, в которой необходимо указать переводимый текст и языки исходный и на который перевести.

справочные материалы excel

Чтобы задать текст для перевода, есть два пути. Первый, банальный, ручками набиваем текст в поле Искать, указываем язык перевода, жмем кнопку со стрелкой, слева от поля, ждем пару секунд пока Microsoft Translator подберет нужные слова и наслаждаемся результатом перевода в этой же панельке.

ручной текст excel

Второй вариант более технологичный и предполагает, что текст, который требуется перевести, уже имеется на листе. Для этого, удерживая клавишу Alt, щелкаем по ячейке с переводимым текстом, в поле Искать панели Справочные материалы вы увидите фразу с выбранной ячейки, а ниже ее перевод. Если вы нажмете кнопку Вставить, находящуюся под переводом, Excel заменит исходный текст в ячейке на переведенный.

перевод текста в ячейке

Данный инструмент прост в обращении и особенно выручает, если в Excel книге попадаются незнакомые слова.

Реализация Яндекс переводчика в Excel

Способ, описанный выше, не требует каких-либо особых навыков владения Excel, достаточно один раз воспользоваться им, и все станет понятно. Способ, описанный ниже, посложнее и тем интереснее, потребует от пользователей некоторой сноровки.

Итак, как я уже писал в статье об автоматическом обновлении валют, в Excel 2013 реализован инструмент импорта данных в формате XML, с помощью функции ВЕБСЛУЖБА и ФИЛЬТР.XML. Первая функции использует API веб службы для выгрузки данных из интернета, вторая – возвращает конкретную информацию из выгруженного XML. Для реализации задуманной идеи в Excel мы воспользуемся переводчиком Яндекс, который имеет свой API. Переходим на страницу API Перевода Яндекс, где можно прочитать всю документацию и правила оформления результатов перевода, находим пункт Получите бесплатный API-ключ и щелкаем по нему (ВНИМАНИЕ! Чтобы получить ключ, у вас должен иметься профиль Яндекс).

яндекс переводчик excel

Далее необходимо заполнить форму получения API-ключа, где надо указать от какой службы вам требуется ключ, прочитать пользовательское соглашение, поставить галочку о прочтении и нажать кнопку Получить API-ключ. Выглядит он следующим образом.

API ключ

Данный ключ будет использоваться, как один из обязательных аргументов в передаваемом URL запросе к Яндекс службам. Следующий обязательный аргумент – это текст, который требуется перевести и третий аргумент – направление перевода, может задаваться как пара кодов языков (например, ru-en), либо в виде кода конечного языка (например, ru). Подробнее о синтаксисе URL запроса можете почитать на сайте Яндекс.

Таким образом, два обязательных аргумента у вас будут практически неизменными – ключ и язык перевода, а текст перевода будет переменным аргументом.

перевод в excel

Важный момент, на который следует обратить внимание – прежде чем передавать запрос в Яндекс, необходимо изменить кодировку текста запроса, на понятный для веб службы язык. Для этого необходимо воспользоваться функцией КОДИР.URL, которая возвращает строку, зашифрованную в виде URL-адреса. К примеру, текст Самара будет выглядеть как %D0%A1%D0%B0%D0%BC%D0%B0%D1%80%D0%B0.

Добавив немного лоска нашем файлу, наш переводчик принял вполне удобочитаемый вид.

оформленный переводчик в excel

Скачать файл с переводчиком Яндекс в Excel.

Содержание

  • 1 Перевод с помощью Microsoft Translator
  • 2 Реализация Яндекс переводчика в Excel
  • 3 Способ 1. Формула
  • 4 Способ 2. Формат ячеек
  • 5 Первый способ транслитерировать русский текст
  • 6 Второй способ перевода русского текста в транслит в Excel с помощью пользовательской функции

Знаете ли вы, что в Excel реализован инструмент перевода текста на другой язык. С помощью мини-переводчика вы можете перевести фразу, абзац или весь файл, написанный на другом языке. Данный элемент использует функционал программы Microsoft Translator, который по умолчанию содержится в офисных приложениях Microsoft. В сегодняшней статье я опишу, как воспользоваться данным функционалом. Помимо этого, мы рассмотрим, как с помощью функций ВЕБСЛУЖБА и ФИЛЬТР.XML реализовать Яндекс переводчик в нашей Excel книге.

Перевод с помощью Microsoft Translator

Итак, у вас имеется текст, который необходимо перевести на другой язык. В нашем случае, я хочу перевести текст, находящийся в ячейках A1:A3 с русского на английский. Переходим во вкладку Рецензирование в группу Язык, щелкаем по кнопке Перевод. В правой части книги появится панель Справочные материалы, в которой необходимо указать переводимый текст и языки исходный и на который перевести.

Чтобы задать текст для перевода, есть два пути. Первый, банальный, ручками набиваем текст в поле Искать, указываем язык перевода, жмем кнопку со стрелкой, слева от поля, ждем пару секунд пока Microsoft Translator подберет нужные слова и наслаждаемся результатом перевода в этой же панельке.

Второй вариант более технологичный и предполагает, что текст, который требуется перевести, уже имеется на листе. Для этого, удерживая клавишу Alt, щелкаем по ячейке с переводимым текстом, в поле Искать панели Справочные материалы вы увидите фразу с выбранной ячейки, а ниже ее перевод. Если вы нажмете кнопку Вставить, находящуюся под переводом, Excel заменит исходный текст в ячейке на переведенный.

Данный инструмент прост в обращении и особенно выручает, если в Excel книге попадаются незнакомые слова.

Способ, описанный выше, не требует каких-либо особых навыков владения Excel, достаточно один раз воспользоваться им, и все станет понятно. Способ, описанный ниже, посложнее и тем интереснее, потребует от пользователей некоторой сноровки.

Итак, как я уже писал в статье об автоматическом обновлении валют, в Excel 2013 реализован инструмент импорта данных в формате XML, с помощью функции ВЕБСЛУЖБА и ФИЛЬТР.XML. Первая функции использует API веб службы для выгрузки данных из интернета, вторая – возвращает конкретную информацию из выгруженного XML. Для реализации задуманной идеи в Excel мы воспользуемся переводчиком Яндекс, который имеет свой API. Переходим на страницу API Перевода Яндекс, где можно прочитать всю документацию и правила оформления результатов перевода, находим пункт Получите бесплатный API-ключ и щелкаем по нему (ВНИМАНИЕ! Чтобы получить ключ, у вас должен иметься профиль Яндекс).

Далее необходимо заполнить форму получения API-ключа, где надо указать от какой службы вам требуется ключ, прочитать пользовательское соглашение, поставить галочку о прочтении и нажать кнопку Получить API-ключ. Выглядит он следующим образом.

Данный ключ будет использоваться, как один из обязательных аргументов в передаваемом URL запросе к Яндекс службам. Следующий обязательный аргумент – это текст, который требуется перевести и третий аргумент – направление перевода, может задаваться как пара кодов языков (например, ru-en), либо в виде кода конечного языка (например, ru). Подробнее о синтаксисе URL запроса можете почитать на сайте Яндекс.

Таким образом, два обязательных аргумента у вас будут практически неизменными – ключ и язык перевода, а текст перевода будет переменным аргументом.

Важный момент, на который следует обратить внимание – прежде чем передавать запрос в Яндекс, необходимо изменить кодировку текста запроса, на понятный для веб службы язык. Для этого необходимо воспользоваться функцией КОДИР.URL, которая возвращает строку, зашифрованную в виде URL-адреса. К примеру, текст Самара будет выглядеть как %D0%A1%D0%B0%D0%BC%D0%B0%D1%80%D0%B0.

Добавив немного лоска нашем файлу, наш переводчик принял вполне удобочитаемый вид.

Скачать файл с переводчиком Яндекс в Excel.

Разберем варианты перевода данных в тысячи, миллионы и другие порядки в Excel для сокращения записей (например, запись вида 123 456 руб. в 123,4 тыс. руб.).

Приветствую всех, уважаемые читатели блога TutorExcel.Ru.

Проблема наглядной визуализации данных всегда остро стоит перед любым пользователем программы Excel — сегодня мы остановимся на аспектах отображения чисел с выделением размерности.
К примеру, при виде числа 123 456 789 не сразу сообразишь что это за число, а уж при виде большой таблицы с подобными числами глаза точно устанут и таблица станет не читаемой.

Проблему с округлением чисел мы можем решить 2 способами:

  • Формула. Непосредственное деление содержимого ячейки на требуемый делитель (тысяча, миллион, миллиард и т.д.);
  • Формат. Изменения отображения ячейки с помощью настройки формата ячейки.

Начнем с более очевидного и простого варианта.

Способ 1. Формула

Чтобы перевести числа в тысячи, нужно эти числа разделить на тысячу.
Достаточно очевидный факт, тем не менее именно в простоте и заключается суть применения варианта с формулами.

Возьмем таблицу с произвольными числами (продублируем данные в соседний столбец B для более понятного пояснения):

Оставим столбец A неизменным, а работать будем со столбцом B.

Запишем в любую неиспользуемую ячейку число 1 000 (или 1 000 000, в зависимости от порядка, который мы хотим показать).
Копируем данную ячейку, а затем выделяем диапазон ячеек (ячейки B2:B10), где будем менять размерность.
Воспользуемся инструментом Специальная вставка — щелкаем правой кнопкой мыши по выделенному диапазону и выбираем Специальную вставку (либо воспользуемся сочетанием клавиш Ctrl+Alt+V):

как сделать перевод в excel
В появившемся окошке в разделе Операция выбираем Разделить и щелкаем на ОК, в результате получаем (для наглядности я добавил еще 1 знак после запятой):

Минус данного способа в том, что операцией деления мы меняем содержимое ячеек, что не всегда удобно и возможно.
Теперь перейдем к рассмотрению более сложного, однако более гибкого и красивого варианта.

Способ 2. Формат ячеек

Помимо изменения самих ячеек, мы можем менять и их формат отображения.
К тому же, если перед нами стоит задача, например, перевести рубли в тысячи рублей, то мы сможем это сделать только данным способом (так как предыдущий способ меняет само число, но подпись оставляет неизменной).

Рассмотрим такую же таблицу, что и в примере выше, аналогично выделяем диапазон с данными (B2:B10), щелкаем правой кнопкой мыши и переходим в Формат Ячеек.
Во вкладке Число в разделе Числовые форматы выбираем (все форматы), в правой части окна показывается как будет отображаться ячейка, в моем случае маска отображения «# ##0».

Для того, чтобы сделать число в тысячах добавим 1 пробел в конце записи числа в маске — «# ##0 » (для миллиона 2 подряд пробела и т.д.), нажимаем ОК и получаем аналогичный результат.
Если нужно добавить в запись «тыс. руб.», то в формат маски записываем «# ##0,0 » тыс. руб.»», т.е. ставим пробел именно после записи формата числа (до добавления текстовой записи, а не после):

как сделать перевод в excel
Скачать файл с примером.

Спасибо за внимание!
Если у вас есть мысли или вопросы по теме статьи — делитесь в комментариях.

Удачи вам и до скорых встреч на страницах блога TutorExcel.Ru!

Очень часто требуется преобразовать русский текст (кириллицу) в английский (транслит), не перевести, а написать русские слова английскими буквами.

Такое, например, может понадобиться для импорта данных в какую-нибудь программу, базу данных, которая не поддерживает русские буквы. Задача распространенная, но стандартными средствами Excel не решается.

Мы предлагаем вам два варианта решения данной задачи.

Первый способ транслитерировать русский текст

Первый способ транслита русского текста достаточно топорный — с использованием приложения Punto Switcher от Яндекс.

Скачиваем программу Punto Switcher на официальном сайте:

Punto Switcher — программа, которая автоматически переключает раскладку клавиатуры. Она знает, что «ghbdtn» — это «привет», а «пщщв ьщктштп» — это «good morning». 

Так вот, данная программа, помимо своей основной функции можете переводить текст в транслит, менять регистр выделенного текста (сделать из «иванов» в «ИВАНОВ») и другое.

Устанавливаем программу себе на компьютер, в системном трее должен появится значок программы

Если зайти в настройки (правой кнопкой мыши по значку, выбрать настройки, горячие клавиши), то можно увидеть, что по умолчанию установлено переводить текст в транслит с помощью горячих клавиш Alt+Scroll Lock

К сожалению, в самом Excel программа транслитерировать текст не сможет, необходимо промежуточное действие. Копируем столбец с русскими буквами, открываем блокнот на компьютере (Notepad) и вставляем туда текст, далее выделяем текст в блокноте и нажимаем клавиши Alt+Scroll Lock, текст автоматически поменяется на транслит.

Далее вы просто копируете этот текст и вставляете обратно в Excel.

Это удобно если нужно например перевести в translit, например один объемный столбец данных на русском языке, но иногда преобразование текста в транслит требуется с помощью формул Excel, поэтому рассмотрим второй способ с использованием пользовательской функции Excel, написанной на VBA

Второй способ перевода русского текста в транслит в Excel с помощью пользовательской функции

Есть специальный макрос для создания пользовательской функции.

Function Translit(Txt As String) As String   Dim Rus As Variant  Rus = Array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", _  "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", _  "щ", "ъ", "ы", "ь", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", _  "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", _  "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я")   Dim Eng As Variant  Eng = Array("a", "b", "v", "g", "d", "e", "jo", "zh", "z", "i", "j", _  "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", _  "sh", "sch", "''", "y", "'", "e", "yu", "ya", "A", "B", "V", "G", "D", _  "E", "JO", "ZH", "Z", "I", "J", "K", "L", "M", "N", "O", "P", "R", _  "S", "T", "U", "F", "KH", "TS", "CH", "SH", "SCH", "''", "Y", "'", "E", "YU", "YA")   For I = 1 To Len(Txt)  с = Mid(Txt, I, 1)   flag = 0  For J = 0 To 65  If Rus(J) = с Then  outchr = Eng(J)  flag = 1  Exit For  End If  Next J If flag Then outstr = outstr & outchr Else outstr = outstr & с  Next I   Translit = outstr End Function

Переключите раскладку на русский язык!! Копируем данный код, открываем среду VBA, для это нажмите правой кнопкой на активный лист и выберите пункт «Исходные данные», либо нажмите Alt+F11 далее через меню выберите новый программный модуль (Insert — Module)

и в открывшееся окно вставляете данный код и закрываете это окно.

После этого в любом месте данного листа (а при вставке кода с помощью Insert — Module — в любом месте данной книги) вы сможете использовать пользовательскую функцию, которую можно вызвать выбрав:

Вставка — Функция (Insert — Function)

в Excel 2013 Функция — Вставить функцию

Выбираем Категория: определенные пользователем, в данном списке должна появится наша функция Translit

Можно просто в нужной ячейке набрать =Transit (ссылка_на_русский_текст) 

После этого протягиваем формулу и получаем нужный нам результат.

Если вы присмотритесь в полученный результат, то увидите, что данные немного отличаются, например

Ivanov Sergej Petrovich и Ivanov Sergey Petrovich

то есть буква «й» преобразовалась по-разному, если для вас это критично, то нужно будет немного поменять указанный выше код. В коде есть две таблицы — одна на русском языке, другая латиницей. Не трудно догадаться, что вам необходимо поменять нужные вам буквы. В данном случае в коде нужно найти «j» и поменять на «y», если требуется, то по аналогии поступаем с другими буквам.

Важно!

  • Начиная с Excel 2007 не забудьте сохранить файл в формате поддержки макросов — xlsm, иначе макрос не сохранится;
  • Данный макрос необходимо вставлять в каждую отдельную книгу, в которой вы хотите, чтобы он работал;
  • Иногда требуется, чтобы была не встроенная функция, а макрос при запуске которого текст будет переводится в транслит, в этом случае нужно вставить код, указанный ниже. В итоге, для перевода текста в transit необходимо выделить нужный текст на русском языке (диапазон ячеек) и запустить макрос «Translit» и данный текст будет обработан.
  • Важно! Перед копированием данного кода, обязательно переключите раскладку клавиатуры на русский язык.
Sub Translit() Dim Txt As Variant Dim i As Integer Dim J As Integer Dim c As String Dim flag As Integer Dim outchr As String Dim outstr As String   Dim Rus As Variant  Rus = Array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", _  "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", _  "щ", "ъ", "ы", "ь", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", _  "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", _  "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я")   Dim Eng As Variant  Eng = Array("a", "b", "v", "g", "d", "e", "jo", "zh", "z", "i", "j", _  "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", _  "sh", "sch", "''", "y", "'", "e", "yu", "ya", "A", "B", "V", "G", "D", _  "E", "JO", "ZH", "Z", "I", "J", "K", "L", "M", "N", "O", "P", "R", _  "S", "T", "U", "F", "KH", "TS", "CH", "SH", "SCH", "''", "Y", "'", "E", "YU", "YA")   For Each Txt In Selection.Cells  outstr = Empty  For i = 1 To Len(Txt)  с = Mid(Txt, i, 1)   flag = 0  For J = 0 To 65  If Rus(J) = с Then  outchr = Eng(J)  flag = 1  Exit For  End If  Next J  If flag Then outstr = outstr & outchr Else outstr = outstr & с  Next i  Txt.Value = outstr  Next Txt End Sub  

Итак, надеюсь вы нашли ответ на свой вопрос о том, как проще всего транслитерировать текст в Excel (преобразовать текст на русском языке в транслит).

Ставьте лайки, подписывайтесь на наши группы в социальных сетях и следите за следующими уроками.

SirExcel — безграничные возможности Excel

  • Перевод в 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г.

переводим текст с русского на английский в Excel с помощью Deepl

Переводим в Excel с русского на английский текст документации Deepl

Перевод текста через Google Translate

Google Translate — замечательный продукт. Перевод с его помощью довольно качественный и при этом моментальный. Но у веб-интерфейса есть свои недостатки. Например, ограничения по количеству знаков.

А что, если бы можно было пользоваться Google Translate прямо в Excel?

Это было бы просто замечательно! Поэтому я и реализовал в !SEMTools функции и процедуры для перевода текста на популярные языки.

Бесплатный перевод с Google Translate

Использовать процедуры несколько удобнее, чем функции, т.к. все действия осуществляются парой кликов мыши. Доступен перевод с русского на 6 популярных языков и обратно. Здесь используется бесплатная веб-версия переводчика, подходит для перевода небольших объемов текста.

Для редких случаев перевода с иностранного на иностранный можно воспользоваться отдельной процедурой с выбором языка. Она поддерживает выбор 12 наиболее популярных языков и доступна в полной версии !SEMTools.

Инструменты перевода текста в Excel (!SEMTools)

Перевод текста в Excel

Платный API Google Translate

У многих при использовании бесплатной версии переводчика возникают проблемы с превышением бесплатных лимитов. Разумеется, Google не готов абсолютно бесплатно делиться столь сложным в разработке и полезным инструментом, поэтому ограничивает “недобросовестное” использование бесплатной версии сервиса.

Альтернатива – это возможность пользоваться сервисом через платный API.

Но на текущий момент (2023 г.) Google предоставляет перевод первых 500.000 знаков бесплатно! Нужно только подключить платежный профиль, но первые 500.000 знаков деньги расходоваться не будут.

Для тех, кому нужно переводить многие сотни строк текста и многие тысячи знаков, инструмент будет очень полезен. Поддержка платного API доступна с версии 10.23.14 (февраль 2023 г.), только в полной версии надстройки.

Если вы еще не прописали ваш персональный API-токен, процедура уведомит вас о его отсутствии (и перевод, конечно же, не сработает).

Для активации токена в меню присутствует отдельная процедура:

процедура активации Google Translate 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 и переводите любые объемы текста на нужный вам язык!

Понравилась статья? Поделить с друзьями:
  • Макрос для парсинга сайта в excel
  • Макрос для очистки ячейки в excel
  • Макрос для очистки форматов в excel
  • Макрос для очистки листа excel
  • Макрос для отправки файла excel по почте