Localization visualization

The Localization Strategy That Changed How We Grew

April 2025

It started with a complaint from the sales team.

They were losing deals in Thailand. Not because the product was wrong, not because the price was wrong, but because the hotel staff couldn’t use it. Receptionists who handled check-ins every day, configuration staff who set up the system, they spoke little to no English. When your product is only available in English, you’re not selling to Thailand. You’re selling to the English speakers in Thailand. That’s a very different, much smaller market.

The sales team had been fighting this battle for a while. They knew the opportunity was there. They just didn’t have the product to close it.

Finding the right architecture before writing a single translation

The tempting path was to just translate the product. Hire translators, go through the interface, swap the text. Ship it.

We didn’t do that.

Before any translation happened, we needed to understand whether the product was actually ready to be localized. Could strings be extracted cleanly? Were there hardcoded labels buried in the codebase? What happened to the UI when text expanded or contracted in different languages? These questions had to be answered first, otherwise we’d be doing the work twice.

We looked at different localization frameworks and landed on Crowdin. The architecture made sense for what we needed: a structured way to extract labels, manage translations, and push updates without requiring engineering involvement every time a new language was added.

That last part was the key insight. We weren’t just solving for Thai. We were building a system that could scale to any language with minimal engineering effort going forward.

What it actually took to get Thai right

Once the architecture was in place, the real work began. Labels were extracted. The system was prepared for Thai character support. Translations were managed through Crowdin. Edge cases were tested, UI layouts were checked, date formats, currency displays, and input fields all needed to behave correctly in a Thai context.

It wasn’t a small effort. But when it was done, something shifted.

Hotel staff in Thailand could finally operate the system in their own language. A receptionist doing a check-in didn’t need to navigate English menus anymore. A property manager configuring room types could do it without guessing what a label meant. The product worked the way it should have worked for them all along.

The sales team noticed immediately. They had something concrete to show. Not ‘we’re working on Thai support’ but ‘here it is, fully localized, ready to go.’ Conversion rates in that market started moving.

The compounding effect

Here’s what made the investment worthwhile beyond Thailand: once the architecture was in place, adding a new language stopped being an engineering project.

Spanish, Italian, German, Portuguese. Each one came significantly faster than Thai did. In some cases, new languages were integrated without any meaningful engineering effort at all. The system handled it. The localization infrastructure we’d built became a growth lever that the sales team could pull repeatedly, going into new markets with a localized product ready to go.

What started as a response to lost deals in one market became a systematic capability for entering any market.

What localization actually is

Most teams think of localization as translation. Get the text into another language, ship it, done.

That’s the surface. Underneath it is architecture, cultural context, regulatory awareness, and a clear understanding of who actually uses your product and how. A hotel receptionist in Bangkok and a hotel manager in Berlin have different needs, different workflows, and different expectations of what the software should do.

Localization done right isn’t a feature. It’s a commitment to those users. And when you make that commitment seriously, they notice.

The sales team in Thailand noticed. So did their customers.