Этот набор скриптов позволяет автоматизировать процесс перевода комментариев в Python-файлах между различными языками, сохраняя при этом правильное форматирование и структуру исходного кода.
Для работы скриптов вам потребуется:
- Python 3.6 или выше
- Библиотека
deep-translator
:pip install deep-translator
extract_inject_comments.py
- Скрипт для извлечения комментариев из Python-файлов и их последующей заменыtranslate_from_to.py
- Скрипт для перевода комментариев между различными языками
python extract_inject_comments.py ваш_файл.py -o RU.txt
Это команда создаст два файла:
RU.txt
- содержит все найденные комментарииRU.txt.locations.json
- содержит информацию о расположении комментариев в исходном файле
python translate_from_to.py RU.txt EN.txt -s ru -t en
Эта команда переведёт комментарии из RU.txt
и сохранит их в EN.txt
.
Скрипт интеллектуально обрабатывает разные типы комментариев:
- docstring-комментарии (в тройных кавычках)
- однострочные комментарии, начинающиеся с #
- комментарии в конце строки после кода (
код # комментарий
)
Скрипт поддерживает перевод между любыми языками, поддерживаемыми Google Translate:
# Французский на испанский
python translate_from_to.py FR.txt ES.txt -s fr -t es
# Китайский на японский
python translate_from_to.py ZH.txt JA.txt -s zh -t ja
# Немецкий на итальянский
python translate_from_to.py DE.txt IT.txt -s de -t it
Вы можете увидеть полный список поддерживаемых языков с помощью:
python translate_from_to.py -l
python extract_inject_comments.py ваш_файл.py -i EN.txt
Эта команда создаст новый файл ваш_файл_translated.py
с переведенными комментариями.
Исходный файл останется без изменений.
Если вы хотите сохранить результат в другой файл, используйте параметр --name-translated
или -n
:
python extract_inject_comments.py ваш_файл.py -i EN.txt -n результат.py
Скрипты обрабатывают следующие типы комментариев:
-
Docstring-комментарии - многострочные комментарии в тройных кавычках (
"""
или'''
)def function(): """ Описание функции на нескольких строках """
-
Однострочные комментарии - комментарии, начинающиеся с символа
#
# Это однострочный комментарий
-
Комментарии в конце строки - комментарии после кода
x = 5 # Это комментарий в конце строки
- Скрипты сохраняют оригинальное форматирование комментариев
- При переводе комментариев в конце строки переводится только часть после символа
#
, а код остается неизменным - Скрипт перевода использует Google Translate API через библиотеку
deep-translator
- Скрипты создают копию оригинального файла, не изменяя исходный код
- Переводятся только комментарии, содержащие символы исходного языка
- Специальное определение символов разных языков доступно для: русского, китайского, японского, корейского, арабского, иврита, греческого, хинди и тайского
- Для других языков используется общая эвристика для обнаружения не-ASCII символов
input_file
- Путь к входному файлу с комментариямиoutput_file
- Путь для сохранения переведенных комментариев-s
,--source
- Код исходного языка (по умолчанию: 'ru')-t
,--target
- Код целевого языка (по умолчанию: 'en')-l
,--list-langs
- Показать список всех поддерживаемых языков-h
,--help
- Показать справку
source_file
- Исходный Python-файл-o
,--out
- Выходной файл для сохранения извлеченных комментариев-i
,--in
- Входной файл с переведенными комментариями-n
,--name-translated
- Выходной файл для сохранения переведенного кода (по умолчанию создает копию с суффиксом _translated)-h
,--help
- Показать справку