С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 7
Word

Автоматический перевод текста по шаблону [RUS -> ENG]

14.01.2020, 08:56. Показов 3710. Ответов 12

Студворк — интернет-сервис помощи студентам
Здравствуйте! Подскажите, как решить следующую задачу:
- есть отчет в word, который формирует программа.
- В отчете применяются одни и те же слова, предложения, обозначения на русском языке.
- Их может быть больше, или меньше, в зависимости от входных условий.
- Но важно, что все слова, предложения и обозначения заранее известны.

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

Как я вижу решение поставленной задачи - сформировать excel таблицу, где в одном столбце вписаны известные слова, предложения и обозначения на русском языке, а во втором столбце соответствующие им переводы на английском. Таблицу можно пополнять. Далее, должен быть какой-то макрос в word в виде надстройки. Каждый, кому это будет необходимо сможет себе эту надстройку установить и пользоваться. Макрос по команде пользователя (нажатие пиктограммы в надстройке) будет осуществлять поиск в отчете слова, предложения и обозначения, сравнивать их с таблицей excel (которая размещена в известном месте, например Мои документы), и осуществлять замену.

Прошу помочь в решении этой задачи.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.01.2020, 08:56
Ответы с готовыми решениями:

Перевод Eng to Rus через Regex
Есть код, переводящий слова, набранные в английской раскладке,в русскую: string Ru =...

Язык Eng/Rus
У меня только Енг буквы в компе (Ноуте) а как поставить что бы ещё и русс были,я не знаю =( помогите !

RUS или ENG
Вопрос к опытным програмистам на delohi 7, где удобней работать в руссефицированной или в английской версии??

12
109 / 60 / 27
Регистрация: 22.02.2018
Сообщений: 189
14.01.2020, 09:30
составляете словарь, как вы написали, в два столбца. и далее циклом проходите по всем строкам словаря, и функцией
Visual Basic
1
2
3
    For i = 1 to ...
        Replace(ТЕКСТ, РУС(i), АНГ(i))
    Next i
"переводите"
1
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 7
14.01.2020, 10:07  [ТС]
Aleksan7, спасибо вам. Уверен, что код, написанный вами понятен профессионалам, но я таковым, к сожалению, не являюсь. Максимум, что я могу сделать, это прочесть чужой код, попробовать его понять, и местами подкорректировать, или адаптировать, под свои нужны. С вашим же кодом, я чувствую, нужно делать и начало, и завершение кода. Если вас не затруднит, распишите подробнее.
0
109 / 60 / 27
Регистрация: 22.02.2018
Сообщений: 189
14.01.2020, 10:22
jonny0, на теоретический вопрос - теоретический ответ
приложите файлы для работы, с вордом не работал, но попробую из соседней темы приемы украсть, там в вордовском файле ищут совпадения со списком(тем же словарем) в екселе и выделяют цветом, по сути то что нам нужно, только не выделять цветом а заменять.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,931
Записей в блоге: 4
14.01.2020, 13:06
Цитата Сообщение от jonny0 Посмотреть сообщение
решить следующую задачу: есть отчет в word, который формирует программа
любой отчет - это сочетание постоянной и переменной информации

- постоянная - это название отчета,его логотип, шапки таблиц, подписи, примечания
- переменная -это данные таблиц

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

перевод слов(словосочетаний) - это одно
но в отчетах часто могут быть предложения, а значит грамматика должна учитывать например пол или обращение типа мистер/мисс или падежи
0
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 7
14.01.2020, 15:51  [ТС]
Дайте мне немного времени, я все подготовлю
0
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 7
17.01.2020, 16:45  [ТС]
Готово! посмотрите, пожалуйста.
Вложения
Тип файла: doc Отчет [рус. яз].doc (79.0 Кб, 4 просмотров)
Тип файла: doc Отчет [англ. яз].doc (80.0 Кб, 4 просмотров)
Тип файла: xlsx База слов.xlsx (11.4 Кб, 9 просмотров)
0
109 / 60 / 27
Регистрация: 22.02.2018
Сообщений: 189
20.01.2020, 15:25
jonny0, попробуйте
в ячейке А1 путь к файлу ексель база слов
А2 путь к файлу отчета который нужно перевести
А3 путь куда сохранится переведенный отчет

работает долго, так как это простой перебор

файлы с которыми будет работать макрос должны быть закрыты

вот код или файл во вложении

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Perevod()
    Dim wordtext As Object
    Dim xlwb As Object
    Set xlwb = GetObject(ThisWorkbook.Sheets(1).Cells(1, 1))
    xlwb.Windows(1).Visible = 1
    aSlova = xlwb.Sheets(1).UsedRange.Value
    xlwb.Close False
    Set wordtext = GetObject(ThisWorkbook.Sheets(1).Cells(2, 1))
    wordtext.Windows(1).Visible = 1
    For i = 1 To UBound(aSlova)
        With wordtext.Range.Find
            .ClearFormatting
            .Text = aSlova(i, 1)
            With .Replacement
                .ClearFormatting
                .Text = aSlova(i, 2)
            End With
            .Execute Replace:=wdReplaceAll
        End With
    Next i
    wordtext.SaveAs (ThisWorkbook.Sheets(1).Cells(3, 1)) & "\" & Replace(wordtext.Name, (Split(wordtext.Name, ".")(UBound(Split(wordtext.Name)))), "англ.яз.doc")
    wordtext.Close False
End Sub
Вложения
Тип файла: zip Лист Microsoft Excel.zip (16.1 Кб, 3 просмотров)
1
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 7
21.01.2020, 09:47  [ТС]
Aleksan7, спасибо вам большое! Все работает. Есть некоторые косяки с переводом, но это поправимо, думаю. Есть вопрос, в развитии решения: 1. можно ли в вашем excel файле сделать список файлов, требующих перевода? Т.е. макрос будет поочередно переводить все файлы по списку. 2. можно ли задавать диапазон листов для перевода? Например из 6-ти листов перевод требуют только 1-й и 3-й, или с 3-го по 6-й?
0
109 / 60 / 27
Регистрация: 22.02.2018
Сообщений: 189
21.01.2020, 10:54
jonny0,
1. список файлов это легко, можно например указать папку или список папок откуда все файлы переведутся
2. с вордом первый раз что то делал, не знаю особо в нём ничего. нужно у специалистов спросить, здесь есть такие

если никто не сделает, то попозже допишу.
так нужен список файлов или список папок откуда будут браться файлы?
0
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 7
21.01.2020, 10:56  [ТС]
Aleksan7, список файлов в виде полных путей к ним.
0
109 / 60 / 27
Регистрация: 22.02.2018
Сообщений: 189
21.01.2020, 17:09
Лучший ответ Сообщение было отмечено jonny0 как решение

Решение

jonny0, список файлов в столбце В,
A1 словарь
A2 путь сохранения
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Sub Perevod()
    Dim wordtext As Object
    Dim xlwb As Object
    Set xlwb = GetObject(ThisWorkbook.Sheets(1).Cells(1, 1))
    xlwb.Windows(1).Visible = 1
    aSlova = xlwb.Sheets(1).UsedRange.Value
    aD = ThisWorkbook.Sheets(1).UsedRange.Value
    xlwb.Close False
    For k = 1 To UBound(aD)
        If ThisWorkbook.Sheets(1).Cells(k, 2) <> "" Then
            Set wordtext = GetObject(ThisWorkbook.Sheets(1).Cells(k, 2))
            wordtext.Windows(1).Visible = 1
            For i = 1 To UBound(aSlova)
                With wordtext.Range.Find
                    .ClearFormatting
                    .Text = aSlova(i, 1)
                    With .Replacement
                        .ClearFormatting
                        .Text = aSlova(i, 2)
                    End With
                    .Execute Replace:=wdReplaceAll
                End With
            Next i
        wordtext.SaveAs (ThisWorkbook.Sheets(1).Cells(2, 1)) & "\" & Replace(wordtext.Name, (Split(wordtext.Name, ".")(UBound(Split(wordtext.Name, ".")))), "англ.яз.doc")
        wordtext.Close False
        End If
    Next k
End Sub
1
0 / 0 / 0
Регистрация: 06.11.2015
Сообщений: 7
23.01.2020, 11:58  [ТС]
Aleksan7, спасибо огромное! Очень выручили.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.01.2020, 11:58
Помогаю со студенческими работами здесь

Пропал значок RUS\ENG в языковой панели
подскажите, у меня такая фигня вообщем пропал значок языковой панели RUS\ENG, пробывал правой кнопкой\панедь инструментов , а там нет...

Стоимость клика AdSense vs AdWords Rus vs Eng
Сразу говорю, тематика моего сайта развлечение. Клики недорогие. Но разница меня, скажем просто поразила... Решил я сделать статистику...

Переводчик eng - rus (подобие Punto Switcher)
Значит переводчик действует так: меняет f на а (русскую) или g на п то есть он переведет &quot;ghbdtn&quot; на &quot;привет&quot; или...

Нужен visual studio 2010 - 2013 rus - eng
Дайте пожалуйста ссылочку на microsoft visual studio 2010 или 2013 желательно русскую версию ( Крякнутую или же какой нибудь ключ) чтоб не...

Нужен Установщик Windows 7 Interprise (Корпоративная) RUS/ENG,
Здравствуйте Ребята, Не могу найти Установщик Windows 7 Interprise, может у кого то найдется. Помогите, буду благодарен.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru