Найти в Дзене
Python и 1000 программ

Делаем свой переводчик на python!

Сегодня мы напишем свой переводчик всего за 10 минут! Для начала нам нужно установить модуль translate с помощью которого мы будем переводить текст pip install translate Импортируем ранее установленый модуль для работы переводчика from translate import Translator tkinter - библиотека для создания графического интерфейса, она встроена! from tkinter import * ttk - модуль для создания интерфейса как у Windows from tkinter import ttk Создадим окно и назовем его root root = Tk() Названия нашего окна(оно находится в левом верхнем углу) root.title('Переводчик') Указываем размер окна(ширину-730 пикселей и высоту-480 пикселей) root.geometry('730x480') Делаем окно неизменяемым в размерах, чтобы виджеты в окне не съезжали как здесь root.resizable(width=False, height=False) Создаем переменную в которой будет храниться значение радиокнопки rBtn = IntVar() Cоздаем главную функцию которая будет переводить текст def translater(): # если получено значение 0 то текст переводиться с английского на русски

Сегодня мы напишем свой переводчик всего за 10 минут!

Для начала нам нужно установить модуль translate с помощью которого мы будем переводить текст

pip install translate

Импортируем ранее установленый модуль для работы переводчика

from translate import Translator

tkinter - библиотека для создания графического интерфейса, она встроена!

from tkinter import *

ttk - модуль для создания интерфейса как у Windows

from tkinter import ttk

Создадим окно и назовем его root

root = Tk()

Названия нашего окна(оно находится в левом верхнем углу)

root.title('Переводчик')

Указываем размер окна(ширину-730 пикселей и высоту-480 пикселей)

root.geometry('730x480')

Делаем окно неизменяемым в размерах, чтобы виджеты в окне не съезжали как здесь

-2
root.resizable(width=False, height=False)

Создаем переменную в которой будет храниться значение радиокнопки

rBtn = IntVar()

Cоздаем главную функцию которая будет переводить текст

def translater():
# если получено значение 0 то текст переводиться с английского на русский
if (rBtn.get() == 0):
translator = Translator(from_lang='English', to_lang='Russian')
# если получено значение 1 то текст переводиться с русского на английский
elif (rBtn.get() == 1):
translator = Translator(from_lang='Russian', to_lang='English')
# получаем введеный нами текст из поля
txt = pole.get('0.0', END)
# переводим полученный текст
w = translator.translate(txt)
# удаляем все с поля вывода
poleTranslate.delete('1.0', END)
# вставляем полученный текст в поле вывода
poleTranslate.insert('1.0', w)

Функция перевода готова, осталось создать и расположить элементы в окне.

Cоздаем поле ввода

pole = Text(root, width=80, height=10, font='Arial, 13')
pole.pack(pady=10)

Первая радиокнопка с значением 0

algo01 = Radiobutton(root, text="Перевод на русский", variable=rBtn, value=0, font='Arial, 12')
algo01.place(x=50, y=215)

Кнопка при нажатие которой будет осуществляться перевод

Btn = ttk.Button(root, text="Перевести", command=translater)
Btn.pack()

Вторая радиокнопка с значением 1

algo02 = Radiobutton(root, text="Перевод на английский", variable=rBtn, value=1, font='Arial, 12')
algo02.place(x=430, y=215)

Создаем поле вывода

poleTranslate = Text(root, width=80, height=10, font='Arial, 13')
poleTranslate.pack(pady=10)

Метод mainloop запускает главный цикл обработки событий, что приводит к отображению главного окна со всеми "упакованными" на нем виджетами:

root.mainloop()

Весь код, получилось 34 строки вместе с пробелами:

from translate import Translator
from tkinter import *
from tkinter import ttk
root = Tk()
rBtn = IntVar()
root.title('Переводчик')
root.geometry('730x480')
root.resizable(width=False, height=False)
def translater():
if (rBtn.get() == 0):
translator = Translator(from_lang='English', to_lang='Russian')
elif (rBtn.get() == 1):
translator = Translator(from_lang='Russian', to_lang='English')
txt = pole.get('0.0', END)
w = translator.translate(txt)
poleTranslate.delete('1.0', END)
poleTranslate.insert('1.0', w)
pole = Text(root, width=80, height=10, font='Arial, 13')
pole.pack(pady=10)
algo01 = Radiobutton(root, text="Перевод на русский", variable=rBtn, value=0, font='Arial, 12')
algo01.place(x=50, y=215)
Btn = ttk.Button(root, text="Перевести", command=translater)
Btn.pack()
algo02 = Radiobutton(root, text="Перевод на английский", variable=rBtn, value=1, font='Arial, 12')
algo02.place(x=430, y=215)
poleTranslate = Text(root, width=80, height=10, font='Arial, 13')
poleTranslate.pack(pady=10)
root.mainloop()

Переводчик получился довольно простой, без каких-то особых фич и крутого интерфейса, так что у вас есть над чем поработать!

Подписывайтесь на канал, переходите в наш телеграм и учите python!

-3