AI-powered tool / Localization

I built a tool that stress-tests every locale before a screen ships

Most teams write in English, ship the design, then send strings out and hope the result still fits. I designed and built an AI-powered stress-tester that renders eight locales live on the real screen, so I can catch breakage in design, not in QA.

Manual review
90% automated
Locales
8 / LTR + RTL
Project Localization stress-tester
Company OKX
Role Content Designer
Year 2026
In 60 seconds
The problem

Localization was the last step. English copy went out as a string list and came back days later. I met the breakage in QA, not in design.

What I did

I built an AI tool that renders eight locales live on the real screen, so layout strain shows up the moment a word lands.

The impact

The tool now handles 90% of manual localization review, freeing two content designers for higher-impact work.

01 Problem

Why was localization always cleanup, never design?

The old loop treated localization as the final chore. I wrote English copy, exported a string list, sent it out, and pasted the result back. By the time I saw a translation in context, the design was three sprints old.

So breakage surfaced in QA. A German compound word overflowed a button. Cyrillic pushed a label onto two lines. An Arabic screen needed mirroring no one had checked. None of it was a translation error. It was a design problem that nobody could see until it was expensive to fix.

02 The idea

Move every locale into the design, not after it.

I stopped translating finished screens. Instead I built a tool that renders all eight locales live on the real component, so I transcreate the screen rather than translate a spreadsheet. Layout pressure becomes a design decision again.

Before

A string list, sent out, returned days later.

Strings exported to a CMS, emailed to vendors, pasted back. I saw the breakage in QA. Tone, density and direction got patched, never designed.

After

One screen, eight locales, live.

I paste a screen and fan it out across LTR and RTL locales. Overflow and fit flags appear the moment a word lands, while the design is still mine to change.

03 The build

Stress-test preview: eight locales, one screen.

Paste a screen, fan it out, watch the layout react. The locales that strain flag themselves before anything reaches QA.

Localization stress-tester / 8 locales in scope
Preview
Source
English (EN)9:41
Search
Recurring buy
Trigger orders
Type / Status / Date
Pending order
Deposit USD+$152.21
Withdraw ETH-$3000.00
Transfer
Buy and sell
Fits
Spanish (ES)9:41
Buscar
Compra recurrente
Orden activada
Tipo / Estado / Fecha
Orden pendiente
Depositar USD+$152.21
Retirar ETH-$3000.00
Transferir
Comprar y vender
Fits
Portugues (BR)9:41
Buscar
Compra recorrente
Ordem gatilho
Tipo / Status / Data
Ordem pendente
Depositar USD+$152.21
Retirar ETH-$3000.00
Transferir
Comprar e vender
Cyrillic +35%
Russian (RU)9:41
Поиск
Регулярная покупка
Триггер-ордер
Тип / Статус
Ожидающий ордер
Пополнение USD+$152.21
Вывод ETH-$3000.00
Перевод
Купить и продать
Compact
Chinese (ZH)9:41
搜索
定期购买
触发订单
类型 / 状态
待处理订单
存入美元+$152.21
提现ETH-$3000.00
转账
买入和卖出
RTL mirrored
Arabic (AR)9:41
بحث
شراء متكرر
أمر مشروط
النوع / الحالة
أوامر معلقة
إيداع دولار+$152.21
سحب ETH-$3000.00
تحويل
الشراء والبيع
Compound +45%
German (DE)9:41
Suche
Dauerauftrag
Trigger-Order
Typ / Status
Ausstehende Order
USD einzahlen+$152.21
ETH abheben-$3000.00
Uebertragen
Kaufen & Verkaufen

Try it: tap Highlight overflow above to flag the locales the design system cannot hold.

04 Editing in context

The AI proposes. I decide. Every change is traceable.

Every field and locale sits in one grid. The AI handles the literal pass; I keep the judgment. Tap any green cell to see the original suggestion and why I changed it.

Translation editor / 8 locales
Filter All sections
Tap a green cell to reveal the AI original and the reason for the override. Green marks a decision I made.
Field ENESPTRU ZHARTRDE
Cards
Card 1 label Recurring buyCompra recurrenteCompra recorrente Регулярная покупка 定期购买 شراء متكرر Yinelenen alimDauerauftrag
Card 2 label Trigger ordersOrden activadaOrdem gatilho Триггер-ордер 触发订单 أمر مشروط Tetik emriTrigger-Order
Card 3 label Trading botsBots de tradingBots de trading Торговые боты 交易机器人 روبوتات التداول Ticaret botlariTrading-Bots
Pending
Item 1 title Deposit USDDepositar USDDepositar USD Пополнение USD 存入美元 إيداع دولار USD YatirUSD einzahlen
Item 2 title Withdraw ETHRetirar ETHRetirar ETH Вывод ETH 提现ETH سحب ETH ETH CekETH abheben
Buttons
Transfer button TransferTransferirTransferir Перевод 转账 تحويل TransferUebertragen
Buy & sell button Buy and sellComprar y venderComprar e vender Купить и продать 买入和卖出 شراء وبيع Al ve sat
Nav
Nav: Home Home Inicio Главная 首页 الرئيسية Ana SayfaStartseite
Nav: Portfolio PortfolioPortafolioPortfolio Портфель 投资组合 المحفظة PortfoyPortfolio

Try it: tap any cell marked edited to see the AI's first pass and my reasoning.

05 One word, eight shapes

"Buy and sell" does not translate. It reshapes.

Watch one button change weight, width and direction across eight locales. This is the reason localization cannot live in a spreadsheet.

ENbase
Buy and sell
ES+33%
Comprar y vender
PT+30%
Comprar e vender
RU+58%
Купить и продать
ZH-42%
买入和卖出
AR-12%
شراء وبيع
TR-25%
Al ve sat
DE+45%
Kaufen & Verkaufen
06 AI workflow

I designed the prompts, so the AI carries the manual load.

The tool is only as good as what it is told. I treated the prompt as a content brief: tone, audience and product context, written once and reused on every run.

/ 01

Map the screen

Every label, button and status is pulled from the source UI into a structured field grid, so nothing gets lost between design and copy.

/ 02

Brief the model with intent

I give the AI tone, audience and product context up front. It transcreates for meaning and fit, not a literal word-for-word swap.

/ 03

Render the pressure

Each locale pours back into the live component. Overflow and fit flags appear instantly across LTR and RTL.

/ 04

Review only the exceptions

The AI clears the routine 90%. I spend my time on the flagged cells, the cultural judgment calls and the layout decisions that need a human.

Impact

The tool now does the review I used to do by hand.

0%

of manual localization review is now automated, freeing two content designers to focus on higher-impact work while the tool handles the routine pass.

2
Content designers freed from manual review for higher-impact work.
8
Locales checked live on the real screen, across LTR and RTL.
In design
Where breakage now surfaces, instead of late in QA.
Localization is a design problem.
/ The principle behind the build
08 Reflection

What I learned, and what I would pressure-test next.

What worked

Treating the prompt as a content brief was the unlock. The quality of the output tracked the quality of the context I gave it, not the model.

The judgment stays human

Automating 90% only works because the last 10% is visible. The override trail keeps every AI suggestion accountable to a content designer.

What I would test next

Wiring the tool into the design system tokens directly, so overflow flags reflect the exact component a screen will ship in.