-118 / 92 / 13
Регистрация: 26.06.2013
Сообщений: 4,521
1

Нужен автоматический извлекатель из полей print для автоматического перевода на русский

08.01.2020, 15:37. Показов 1039. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нет ли такой готовой программы? По идее такая идея возможно уже приходила кому то в голову, может уже есть готовый софт?
Программа из print('text') должна извлекать в другой файл построчно фразы, приделывая перед каждым фрагментом порядковый номер. Затем засуну этот текст в компьютерный переводчик. Потом файл с переводом скармливать программе и она обратно чтобы засунула переведенные строки в print. При этом наверное лучше, чтобы рядом с иностранным текстом был русский в готовом варианте, чтобы если будет в глаза бросаться ошибка, можно было по исходному тексту понять, что на самом деле имелось в виду.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.01.2020, 15:37
Ответы с готовыми решениями:

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

Программа для автоматического перевода звуков в текст
Здравствуйте, подскажите пожалуйста есть ли программы которые могут автоматически делать...

Программа для перевода голоса с англ на русский
Добрый день, интересуют программы на ПК, которые в режиме реального времени переводят звук с...

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

Нужен метод для автоматического нажатия клавиш.
Добрый день. Суть проблемы такова. Нужно, чтобы методы посылали "нажатия клавиш" в окно имеющее...

10
3255 / 2057 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
08.01.2020, 15:42 2
Полностью автоматически — нет, т.к. строки могут не располагаться непосредственно в принте.

См. утилиту gettext и соответствующий модуль gettext.
0
-118 / 92 / 13
Регистрация: 26.06.2013
Сообщений: 4,521
08.01.2020, 16:15  [ТС] 3
Вы имеете в виду, что строки могут располагаться в input? Его тоже нужно учесть. Тогда для таких вариантов, где выводимый текст хранится в этих двух тегах, можно делать такой утилитой.
0
3255 / 2057 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
08.01.2020, 16:21 4
Цитата Сообщение от supmener Посмотреть сообщение
Вы имеете в виду, что строки могут располагаться в input?
Строки могут быть в любых выражениях. Поэтому gettext предполагает, что разработчик сам обернет строки, требующие локализации, в специальную функцию.
0
-118 / 92 / 13
Регистрация: 26.06.2013
Сообщений: 4,521
08.01.2020, 16:26  [ТС] 5
Меня бы устроил вариант, где автоматически переведется то, что в print и input. А насчет остальных строк можно потом покумекать. Так как планируется иметь дело с десятками программ и с каждой вручную подолгу возиться нет возможности.
0
Просто Лис
Эксперт Python
5313 / 3328 / 1019
Регистрация: 17.05.2012
Сообщений: 9,761
Записей в блоге: 9
09.01.2020, 12:17 6
Переводить машинным переводом? Медицинские тексты? Ересь.

Если вам не нужен двух/многоязычный интерфейс, то и gettext вам не нужен. Переводите текст вручную, правя код.

Добавлено через 21 минуту
Присоединяюсь к рекомендации использования gettext. Меньше вероятности ошибиться при переводе.

Было:
Python
1
print('hello')
Стало:
Python
1
2
3
from gettext import gettext as _
 
print(_('hello'))
Добавлено через 2 минуты
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ pygettext hello.py
$ cat messages.pot 
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2020-01-09 [skip]\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
"Generated-By: pygettext.py 1.5\n"
 
 
#: hello.py:3
msgid "hello"
msgstr ""
Добавлено через 15 секунд
Переводим файл messages.pot.

Добавлено через 59 секунд
Код
#: hello.py:3
msgid "hello"
msgstr "привет"
Добавлено через 7 минут
Компилим файл переводов и кладём в нужную папку:
Bash
1
2
3
msgfmt messages.pot
mkdir -p locales/ru/LC_MESSAGES
mv messages.mo locales/ru/LC_MESSAGES/ # лень разбираться как правильно
Код
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: utf-8\n"
Python
1
2
3
4
5
6
7
8
import gettext
# from gettext import gettext as _
 
el = gettext.translation('messages', localedir='locales', languages=['ru'])
el.install()
_ = el.gettext
 
print(_('hello'))
Код
привет
1
-118 / 92 / 13
Регистрация: 26.06.2013
Сообщений: 4,521
09.01.2020, 12:23  [ТС] 7
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Переводить машинным переводом? Медицинские тексты? Ересь.
Там обычные фразы для людей используются часто, а не написанные медицинским языком. Пробовал уже переводить такие словосочетания. В Promt насколько помню есть специальный медицинский словарь для более сложных случаев.
0
Просто Лис
Эксперт Python
5313 / 3328 / 1019
Регистрация: 17.05.2012
Сообщений: 9,761
Записей в блоге: 9
09.01.2020, 13:28 8
По какой-то неведомой причине pygettext перезатирает файл *.po при повторной генерации. То ли ключика какого не хватает, то ли джанго использует что-то другое (в ней всё ок).

Добавлено через 6 минут
Дошло:
Обычно шаблоны имеют расширение .pot, а заполненные файлы имеют расширение .po.
https://habr.com/ru/post/73554/

Добавлено через 58 минут
Пример: Как запускать скрипты на Python, написанные другими людьми?
1
-118 / 92 / 13
Регистрация: 26.06.2013
Сообщений: 4,521
01.11.2020, 11:34  [ТС] 9
А если захочу хранить строки перевода в файле со структурой:
Hello=>Здравствуйте
What is you name?=>Как Вас зовут?
0
Просто Лис
Эксперт Python
5313 / 3328 / 1019
Регистрация: 17.05.2012
Сообщений: 9,761
Записей в блоге: 9
01.11.2020, 11:48 10
Тебе же объяснили, есть единственно верный расовый способ локализовать приложение: gettext

И как ты будешь в файлике хранить такое? https://github.com/fox0/Plants... po#L22-L27
Код
#: Plants and medical Expert Systems.py:339
msgid ""
"1. Medical expert System \n"
"2. The plants Expert System\n"
"3. To Exit\n"
msgstr ""
0
-118 / 92 / 13
Регистрация: 26.06.2013
Сообщений: 4,521
01.11.2020, 12:46  [ТС] 11
Видел сообщение, что человек так сделал, поэтому и задал вопрос.
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
И как ты будешь в файлике хранить такое?
Это я у Вас спрашивал.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2020, 12:46
Помогаю со студенческими работами здесь

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

Нужен русский шаблон АК для 7.0.2
Нужен русский шаблон АК с русским алфавитом (picker). У меня почему-ту в руском лотусе 7/0/2...

Автоматический слайдер картинок с отключением автоматического перелистывания при ручной навигации
Здравствуйте! Нашел в сети код на автоматический слайдер картинок. Слайдер отлично сполняется со...

Нужен русский почтовый шаблон для Lotus 7.0, 6.5.*
Люди выручите русским шаблоном для почты. Очень нуно.... Если что вышлите на почту...

Автоматический перевод плагинов с английского на русский
Всем привет! Каким образом можно перевести плагины с английского на русский язык автоматически?)...

Программа перевода с английского на русский
С русского на англ сделала, а как сделать чтобы и наоборот тоже переводила????


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru