Splync Blog Has 42 Languages
This is the 23rd article on my blog for Splync, a shared budget tracker for couples, friends, and families. You might wonder how I publish every post in 42 languages even though I’m a solo engineer. As the disclaimer at the top of each article says, this website is automatically translated into multiple languages using software I built myself. To be clear: I don’t manually write even a single sentence in any language other than English. Because of that, I kindly ask readers to refer to the original English version when accuracy of meaning truly matters. Still, after many rounds of trial and error improving the translation pipeline, I believe the overall translation quality is reasonably good. In this article, I’ll share what my software does to make the Splync blog multilingual.
Python and OpenAI API Do It Together
I always start by writing each article in plain English, including the SEO-related metadata. After that, my Python script sends the English text to the OpenAI API, along with a prompt and a small reference file. On OpenAI’s servers, ChatGPT-4o reads the request and returns the translated article — for example, the Arabic version — in JSON format. Once my MacBook receives that translation, the script immediately sends another request, this time asking for Bengali. The script loops through all 42 target languages automatically. By the end of the process, my computer has 42 translated JSON files. Another Python script then embeds each translation into an HTML template and generates 42 HTML files in less than a second. All the files are uploaded to the server where this blog is hosted, and each language version is placed into its own directory. Finally, a server-side Python script updates the article index and the “Next post” links so that every language’s navigation stays consistent. With the original English article written in plain text, the whole process typically takes 5 minutes or much less. When I need to make changes, I update multiple HTML files simultaneously using server-side Python scripts.
What is API
If you’re not familiar with technical terms, you might wonder how my computer “talks” to OpenAI’s server in the first place. The answer is something called an API, Application Programming Interface. You can think of an API as a messenger window between two programs: one program sends a request, and the other sends back a response. For example, my Python script sends a message like, “Please translate this article into German.” OpenAI receives that message through the API, prepares the translation, and sends the result back. It works just like placing an order in a restaurant: you tell the waiter what you want, the kitchen prepares it, and the waiter brings it back to your table. And why do you need a waiter in the first place? Because you don’t walk into the kitchen or speak directly to the chef — you don’t know how the kitchen works, and you don’t need to. You might say, “Can I have a cheeseburger?” to the waiter, and the waiter might shout, “Order up! T21, Chihuahua!” in a completely different format. An API plays the same role. It connects two different systems without requiring them to understand each other’s internal language or workflow.
Why Do I Need OpenAI API
Now that we’ve seen what an API is, here’s why I actually rely on it for this blog. Practically speaking, I do know how to “talk” to ChatGPT myself — but I have 42 languages to process. Calling a waiter 42 times would be tedious (the program skips translating English into English, but still converts the text into JSON). Using the OpenAI API lets my Python script send all those requests automatically, saving me from repetitive work so I can focus on other things. I’m a solo developer, so I need to use my time as efficiently as possible. Whenever I see a task that is repetitive and has clear rules, I automate it. The result is usually a process that’s a million times faster and completely error-free. That’s why automation through the API is essential — it allows my script to place all 42 “orders” instantly and reliably.
Why 42 Languages?
Technically, I could add many more languages; it would simply take a few more minutes to run while I am doing dishes. But I personally like the number 42, the "Answer to the Ultimate Question of Life, the Universe, and Everything" from Douglas Adams' book. Beyond my attachment to the number 42, adding very minor languages can be risky, because AI translation may become less reliable for languages with limited training data.
Temperature of ChatGPT 4o
When I first experimented with this multilingual translation approach, the results were decent but not perfect. Some sentences were mistranslated, overly literal, or subtly misleading in certain languages. I was also worried about unintentionally generating expressions that might be inappropriate or insensitive in specific cultural contexts. And of course, I didn’t want my translations to sound robotic or mechanical. One of the key factors behind translation quality is the temperature setting — a parameter that controls how “creative” or “strict” the AI should be. A high temperature makes the AI more imaginative, but also more unpredictable. A low temperature makes it stay close to the original meaning, but can sometimes feel rigid. It took a lot of trial and error to find the right balance: low enough to ensure accuracy, but not so low that the text became lifeless. After many experiments, I felt that temperature = 0.8 was the best fit for the needs of this blog: accurate enough to stay faithful to the English original, but flexible enough to sound natural in other languages.
ChatGPT 5.x Does Not Support Temperature
Newer models such as ChatGPT 5 and 5.1 no longer support temperature settings at all — the parameter has been removed and replaced by concepts like reasoning and effort, which influence how the model thinks rather than how “creative” it becomes. In other words, ChatGPT 4o gave me a physical dial I could turn to fine-tune translation style, but the 5.x family follows a different philosophy altogether. If you casually ask the newest model to “translate this with temperature = 0.8,” it may attempt to behave as if such a setting still exists, but internally the parameter is gone. The model simply approximates the intention. As OpenAI continues to update their models, I may adjust my translation pipeline someday. For now, ChatGPT 4o remains my choice for multilingual translations — not only because it understands context well across many languages, but also because its API pricing is reasonable for a solo developer like me. In fact, 4o may go down as one of the most beloved models in OpenAI’s history.
Workers of OpenAI API
One amazing thing about the OpenAI API — compared with using ChatGPT directly in a browser — is that you can use more than one ChatGPT “worker” at the same time. When I send translation requests for 42 languages, I’m not sending them one by one in a slow line. Instead, the API can process many requests in parallel, as if I suddenly hired a roomful of translators who all start working at once. My Python script handles the workflow like a small production line: it prepares the English article, sends out the requests, waits for the responses, and processes the results into JSON files. Meanwhile, the OpenAI servers run multiple model instances simultaneously, each translating a different language in parallel. This is something the ChatGPT website or app cannot do — those interfaces gives you one model, one conversation, one task at a time. But with the API, you can scale your workload as wide as your script allows. For a solo developer like me, this feels like having a tiny team of smartest and egoless assistants. It depends partly on internet speed, but I usually set workers = 12.
What I Do to Multilingualize My Blog Is Doing Dishes
I used to work as a dishwasher in the student cafeteria when I was studying mathematics at Kyoto University. While the payment was about 5 USD per hour, I’ve always liked repetitive manual work after spending several hours — or sometimes several days — in deep intellectual concentration. Later, when I worked at a garlic factory in Hokkaido, my job was simply to polish thousands of white garlic bulbs so they would look brighter on the conveyor belt. Eight hours a day — full focus, steady rhythm. It was strangely satisfying. Now, back from those memories, I’m currently doing intellectual work — writing software, designing systems, composing these articles. But the balance hasn’t changed. If you ask me how I manage to publish a blog article in 42 languages by myself, the honest answer is: I do it by doing the dishes.