This content originally appeared on DEV Community and was authored by Joseph Hoppe
Want to convert any text into any language? Let’s create a simple Python script to do it!
What We're Building
Our translator will be a Python script that:
- Prompts the user to specify their target language
- Accepts text input for translation
- Uses OpenAI's GPT model through LangChain to perform the translation
With the Artificial Intelligence APIs available today, it is incredibly simple.
Instead of validating the name of the language that the user inputs, let’s leave it open-ended for some creativity. I.e., we can translate to natural language descriptions such as "Spanish," "French," or "Shakespearean English", or even “Chandler Bing” (from the TV show Friends).
Prerequisites
Before we dive in, you'll need:
- Python 3 installed on your system. This was written with 3.13.
- An OpenAI API key (available at platform.openai.com)
I purchased $5 worth of OpenAI credits to play around with.
Setting Up Your Environment
First, let's install the required dependencies. Open your terminal and run:
pip install langchain-openai python-dotenv
This blog post was written with these specific package versions:
pip install langchain==0.3.15 python-dotenv==1.0.1
These packages provide:
-
langchain-openai
: Integration between LangChain and OpenAI's models -
python-dotenv
: Loading the environment variables from a .env file
Next, create a .env
file in your project directory to store your OpenAI API key securely:
OPENAI\_API\_KEY=your\_api\_key\_here
Replace your_api_key_here
with your actual OpenAI API key. This approach keeps sensitive information out of your source code.
The Translation Script
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
load_dotenv()
language = input("Enter the language to translate into: ").strip()
text_to_translate = input("Enter the text to translate: ").strip()
try:
model = ChatOpenAI(model="gpt-4o-mini")
messages = [
SystemMessage("You are a translator. Translate the given text into the specified language. Respond with the translation and no other text."),
HumanMessage(f"Translate '{text_to_translate}' into {language}"),
]
print(model.invoke(messages).content)
except Exception as e:
print(f"Translation failed: {e}")
Breaking Down the Code
Let's examine each component of our translator:
Environment Setup
from dotenv import load\_dotenv
load\_dotenv()
The load_dotenv()
function reads our .env
file and makes the OpenAI API key available to the application without hardcoding sensitive information.
User Input Collection
language \= input("Enter the language to translate into: ").strip()
text\_to\_translate \= input("Enter the text to translate: ").strip()
We collect two pieces of information from the user: the target language and the text to translate. The .strip()
method removes any leading or trailing whitespace.
Model Initialization
model \= ChatOpenAI(model="gpt-4o-mini")
There is a whole world of AI models to choose from. Let’s choose gpt-4o-mini
.
Message Construction
messages \= \[
SystemMessage("You are a translator. Translate the given text into the specified language. Respond with the translation and no other text."),
HumanMessage(f"Translate '{text\_to\_translate}' into {language}"),
\]
LangChain uses a message-based approach. The SystemMessage
provides instructions to the model, while the HumanMessage
contains the actual text to translate.
Translation and Output
print(model.invoke(messages).content)
We invoke the model with our messages and print the translated content directly to the console.
Error Handling
The try-except block ensures our application handles errors gracefully:
try:
\# Translation logic
except Exception as e:
print(f"Translation failed: {e}")
This catches various potential issues such as network connectivity problems, API rate limits, or invalid API keys.
Running Your Translator
Save the script as translate.py
and run it from your terminal:
python3 translate.py
The script will prompt you for:
- Target language (e.g., "French," "Japanese," "Italian")
- Text to translate
Example interactions:
python3 .\\translate.py**
Enter the language to translate into:** Spanish
Enter the text to translate:** Where is the black cat?
¿Dónde está el gato negro?
python3 .\\translate.py**
Enter the language to translate into:** Chandler Bing
Enter the text to translate**: Did you go to the store today
Could I \*be\* any more curious if you hit up the store today?
Cost Considerations
The OpenAI API charges based on token usage. The more you run this script, the more of your OpenAI credits you will use!
Conclusion
Building a universal language translator with Python and LangChain demonstrates the power of modern AI tools in solving real-world problems. With just a few lines of code, we've created a flexible translation system that can handle any language pair and provides natural, contextually appropriate translations.
The simplicity of this approach makes it an excellent starting point for more complex multilingual applications. Whether you're building a customer service tool, a content management system, or a personal productivity app, this foundation can be extended to meet your specific needs.
And remember - AI doesn’t always get it right!
Here is my GitHub repository with the Universal Translator script.
This content originally appeared on DEV Community and was authored by Joseph Hoppe

Joseph Hoppe | Sciencx (2025-07-12T01:53:42+00:00) Building a Universal Language Translator with Python and LangChain. Retrieved from https://www.scien.cx/2025/07/12/building-a-universal-language-translator-with-python-and-langchain/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.