Python Script for Text Translation with Multiple Languages

The Python Script is now:
You can add a wide range of languages to the menu for both source and target languages. Here's an extended version of your code with additional languages added to the menu:
```python
import tkinter as tk
from tkinter import filedialog
from googletrans import Translator
from gtts import gTTS
import playsound
def translate_text(text, source_lang, target_lang):
translator = Translator()
translated = translator.translate(text, src=source_lang, dest=target_lang)
return translated.text
def open_file():
file_path = filedialog.askopenfilename(filetypes=[("Text Files", "*.txt")])
if file_path:
with open(file_path, "r", encoding="utf-8") as file:
source_text.delete(1.0, tk.END) # Clear existing text
source_text.insert(tk.END, file.read())
def translate_and_speak():
source_language = source_language_var.get()
target_language = target_language_var.get()
source_text_str = source_text.get(1.0, tk.END)
translated_text_str = translate_text(source_text_str, source_language, target_language)
translated_text.delete(1.0, tk.END)
translated_text.insert(tk.END, translated_text_str)
speech = gTTS(text=translated_text_str, lang=target_language, slow=False, tld="com.au")
speech.save("TTSpeech.mp3")
playsound.playsound("TTSpeech.mp3")
# Create the main window
root = tk.Tk()
root.title("Text Translator")
# Create menu system
menu = tk.Menu(root)
root.config(menu=menu)
file_menu = tk.Menu(menu)
menu.add_cascade(label="File", menu=file_menu)
file_menu.add_command(label="Open", command=open_file)
language_menu = tk.Menu(menu)
menu.add_cascade(label="Language", menu=language_menu)
source_language_var = tk.StringVar()
target_language_var = tk.StringVar()
source_menu = tk.Menu(language_menu)
language_menu.add_cascade(label="Source", menu=source_menu)
target_menu = tk.Menu(language_menu)
language_menu.add_cascade(label="Target", menu=target_menu)
# Define language codes (You can extend this list)
languages = [
("English", "en"),
("French", "fr"),
("German", "de"),
("Spanish", "es"),
("Italian", "it"),
("Portuguese", "pt"),
("Dutch", "nl"),
("Russian", "ru"),
("Japanese", "ja"),
("Korean", "ko"),
("Simplified Chinese", "zh-CN"),
("Arabic", "ar"),
("Hindi", "hi"),
("Turkish", "tr"),
("Swedish", "sv"),
("Polish", "pl"),
# Add more languages here
]
for language, code in languages:
source_menu.add_radiobutton(label=language, variable=source_language_var, value=code)
target_menu.add_radiobutton(label=language, variable=target_language_var, value=code)
# Create text fields
source_text = tk.Text(root, width=40, height=10)
source_text.grid(row=0, column=0, padx=5, pady=5)
translated_text = tk.Text(root, width=40, height=10)
translated_text.grid(row=0, column=1, padx=5, pady=5)
# Create Translate button
translate_button = tk.Button(root, text="Translate", command=translate_and_speak)
translate_button.grid(row=1, column=0, columnspan=2, pady=5)
# Start the GUI application
root.mainloop()
```
In this code, I've added several additional languages to the menu. You can continue to add more languages to the `languages` list as needed.
Comments on 'Python Script for Text Translation with Multiple Languages' (0)
Comments Feed