Ever wondered what language a sentence is written in?
With just a few lines of Python code, you can create a simple app that detects the language of any sentence you input. A Language Detector Using Python and CustomTkinter
In this article, I’ll walk you through how to build a language detector using the langdetect library and CustomTkinter for the graphical user interface (GUI).
Let’s dive in!

Contents
What Does the Code Do?
This project creates a small desktop application that allows you to enter a sentence and detect its language.
The language code (like ‘en’ for English, ‘fr’ for French) will be displayed as the output.
Importing Necessary Libraries
langdetect is a Python library that helps detect the language of a given text.
CustomTkinter is a modern and customizable version of the Tkinter library used for creating GUIs.
PIL (Python Imaging Library) is used to handle images in the application.
from langdetect import detect, DetectorFactory
from customtkinter import *
from PIL import ImageCreating the Main Application Class
We create a class LanguageDetector that inherits from CTk, which is the main window of our app.
The __init__ method is the constructor that initializes the window and its elements like the title, text entry, and buttons.
class LanguageDetector(CTk):
def __init__(self):
super().__init__()
self.title("Language Detector")Adding an Image
An image is loaded and displayed using CTkImage and CTkLabel.
This adds a nice visual element to our app.
self.search_img = CTkImage(light_image=Image.open("search.png"), size=(250, 200))
self.il = CTkLabel(self, image=self.search_img, text="")
self.il.grid(row=0, column=0, pady=20, padx=20)
Creating a Text Entry
CTkEntry is used to create a text box where users can enter the sentence they want to analyze.
self.text = CTkEntry(self, placeholder_text="Enter a sentence: ")
self.text.grid(row=0, column=0, padx=20, pady=20)
Adding a Button
A button labeled “Detect Language” is added. When clicked, it triggers the detect method, which handles the language detection.
self.gettext = CTkButton(self, text="Detect Language", command=self.detect)
self.gettext.grid(row=1, column=0, pady=20)Language Detection Logic
The detect method retrieves the text entered by the user, detects its language using the langdetect library, and displays the result.
def detect(self):
text = self.text.get()
DetectorFactory.seed = 0
detected_lang_code = detect(text)
label = f"The language code is {detected_lang_code}"
self.code_label = CTkLabel(self, text=label)
self.code_label.grid(row=2, column=0, padx=20, pady=20)Running the Application
Finally, an instance of the LanguageDetector class is created and the mainloop method is called to keep the app running.
app = LanguageDetector()
app.mainloop()Full Source Code: Language Detector Using Python and CustomTkinter
Click for the full code of Language Detector Using Python and CustomTkinter
from langdetect import detect, DetectorFactory
from customtkinter import *
from PIL import Image
class LanguageDetector(CTk):
def __init__(self):
# Call the constructor of the parent class (CTk) using super()
super().__init__()
self.title("Language Detector")
# image
self.search_img = CTkImage(light_image=Image.open("search.png"),size=(250,200))
self.il = CTkLabel(self, image=self.search_img, text="")
self.il.grid(row=0, column=0, pady=20, padx=20)
# Create a CTkEntry
self.text = CTkEntry(self, placeholder_text="Enter a sentence: ")
self.text.grid(row=0, column=0, padx=20, pady=20)
# Create a CTkButton
self.gettext = CTkButton(self, text="Detect Language", command=self.detect)
self.gettext.grid(row=1, column=0, pady=20)
def detect(self):
"""Takes text as input and shows language code."""
# getting the text
text = self.text.get()
DetectorFactory.seed = 0
detected_lang_code = detect(text)
label = f"The language code is {detected_lang_code}"
# displaying the code
self.code_label = CTkLabel(self, text=label)
self.code_label.grid(row=2, column=0, padx=20, pady=20)
app = LanguageDetector()
app.mainloop()Language Detector Using Python and CustomTkinter Language Detector Using Python and CustomTkinter Language Detector Using Python and CustomTkinter