Logo
hhlee
2024-10-29 14:33:12

Behind
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, 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.

  • While implementing the UI and writing numerous error and user messages, there's the issue of naming and securing language keys.
  • There's the problem of translating for each language (which can be somewhat alleviated with external services and GPT).
  • You have to check if a key is already in use, and if not, add it by searching.
  • When a message that requires code modification is found by a user, you have to search for the related language key before locating the error.
  • 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.

    copilot.gif

    < 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.

  • Since you write user messages in your native language while coding, there's no need for a separate translation system, saving time.
  • You can write necessary messages immediately, regardless of existing keys (though there is the disadvantage of longer code due to duplicate messages, but duplicate messages are rare).
  • It's easy to quickly find the code part based on the exposed user message (since the message itself is in the code).
  • 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:

  • We can set the tone to be as natural as we want.
  • Through system messages, translations can consider the field and characteristics of our service.
  • We can prevent mistranslations of specialized terms or jargon used only on our site.
  • 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.

  • Korean : https://videostew.com/blog/28425?loc=ko
  • English : https://videostew.com/blog/28425?loc=en
  • 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.

    cs.gif

    < 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.

    Go to Article
    πŸ€” 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...
    Defending Against DDoS with AWS WAF: Focusing on User Experience
    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...
    Developing a Global Version Website with GPT & Copilot
    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...
    UX Details to Make All TTS Engines Properly Read Korean
    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...
    Practical GPT Utilization for Startup Marketers (We said GPT, but we only used Claude πŸ˜…)
    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...
    Videostew: Turn Your Message into Video, Just as You Envisioned
    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 ...
    The Struggles of a SaaS Startup with Viral Marketing through Open Chat
    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...
    DIY Battery Replacement for the New MacBook: A Retrospective
    hhlee 2022-08-05
    [Stop]