π€
Defending Against DDoS with AWS WAF: Focusing on User Experience
Running a website inevitably means facing abnormal traffic attacks. Especially when aiming for global services, the domain itself becomes more exposed, increasi...
hhlee
2024-11-12
π€
Developing a Global Version Website with GPT & Copilot
When developing a website, you might be tempted to focus solely on your native language. However, if you're offering a SaaS service that can be sold globally, i...
hhlee
2024-10-29
π€
UX Details to Make All TTS Engines Properly Read Korean
VideoStew offers a variety of AI voices. From Google Wavenet, Amazon Polly, KT AI Voice, Naver Clova, Azure, to ElevenLabs...As a result, a natural issue arises...
Junwoo
2024-08-27
π€
Practical GPT Utilization for Startup Marketers (We said GPT, but we only used Claude π
)
Hello, this is Jun from VideoStew.Lately, I've been writing a lot of behind-the-scenes posts. In this post, I will summarize how I, as a non-developer at a star...
Junwoo
2024-07-22
π€
Videostew: Turn Your Message into Video, Just as You Envisioned
Hello, this is Jun from Videostew. Today, I'd like to share the story of how we created Videostew and why we chose to build it the way we did. You might call it...
Junwoo
2024-07-15
π€
The Struggles of a SaaS Startup with Viral Marketing through Open Chat
Getting StartedMost startups don't have a lot of money. Especially when it comes to marketing budgets! (Or they tend to be extra frugal.) Maybe that's why free ...
Junwoo
2023-12-01
π€
DIY Battery Replacement for the New MacBook: A Retrospective
The haunting aspect of owning a Mac is the bone-chilling repair costs when it breaks down. That's why my team and I have been doing our own Mac repairs for quit...
hhlee
2022-08-05
When developing a website, you might be tempted to focus solely on your native language. However, if you're offering a SaaS service that can be sold globally, it feels like you're missing out. Of course, aiming for a grand global strategy can be daunting and resource-intensive. Our team has come up with our own method to develop in our native language while still supporting global needs, without breaking a sweat.
Translation Completed in the Editor
Drawbacks of the Variable Handling Method
Typical i18n libraries handle multilingual support in the following way. There are various methods, but the basic structure is as follows. You create keys for each message and display them according to the user's language. At first glance, this seems like the most logical method.
This method represents the simplest form of multilingual operation. It has the advantage of allowing you to flexibly add various languages as your business grows. However, if your business is not yet mature and you're working with a small development team, you might encounter the following transitional issues.
These are minor chores, but when developing the front end that interacts with user messages, these processes can waste the already scarce development resources.
Embedding Language Messages in Code
To minimize these inconveniences, the Videostew team is developing multilingual versions at the speed of a single native version. However, we are limiting the multilingual version to just "English." As the market expands, this approach won't be sustainable, but at least in the global initial stage, it is very useful for appealing to users who can use "English."
VideostewTeam registers and uses a global helper called directTrans on both the backend and frontend. The implementation of this code is quite simple. It takes a Korean message as the first parameter, and a global English message as the second parameter.
To display messages to the user, it can be done as simply as shown below.
You might think, "Don't I have to translate into English while coding anyway?" But absolutely not, if you're using Copilot or Cursor AI tools. These tools reference frequently used helpers, function definitions of open tabs, and input patterns, so they understand the usage of frequently used helpers very well, as shown above.
When you input dtrans('.. with Korean, it deduces that the translated English message is inserted as the second parameter, allowing you to create a global version while coding in the editor.
< Type only in your native Korean, and the auto-translated English is added >
This method overcomes all the disadvantages of the standard global version development mentioned above.
As mentioned earlier, this method aims to quickly implement a global version without much effort. It is not suitable for achieving more precise translation quality or creating multiple language versions. As the service grows, the language system needs to be changed.
Asynchronous Translation for Blogs
Beyond user messages in code, our service involves numerous messages and writings. Fixed pages like landing pages or terms can be translated once and that's it, but content that is dynamically created and modified, like guides or blogs, is challenging to keep up with manually.
At Videostew, we register guides in our native Korean and automatically estimate modified parts after a certain period, using the GPT model on the backend to translate them into English. While there are various API services for translation, using LLMs offers the following advantages:
In practice, when dealing with large guides (almost book-length), it's impossible to translate the entire content every time a change is made. Therefore, we create a hash based on the content of each paragraph and only track and automatically translate the paragraphs that change.
< Hash values for modifying only changing paragraphs >
This type of call (though we don't use it) might be more cost-effective with GPT's bulk call discounts, allowing for more affordable mass translations.
Below is the address of this blog post provided in both Korean and English. The English version is the result of GPT's automatic translation, considering the characteristics of our service.
Customer Support Response
We create and use our own chatbot to ensure a perfectly consistent customer experience and real-time user information integration. For users whose information is not in their native language, the chatbot automatically attaches the native language alongside the original. When we respond in the native language, it is translated back into the user's language and delivered.
< Automatic translation for non-native questions >
This reduces delays caused by translations and enables us to provide seamless global service.
Conclusion
Many services have already adopted GPT for development and operations. For small teams like Videostew, using AI tools such as GPT allows us to efficiently offer global services.