LINE / Airbnb / Change.org / KakaoTalk

Savjetovanje o internacionalizaciji: Popravite ono što se kvari, isplanirajte što je sljedeće

Već znate da je i18n zahtjevan. Vidio sam simptome: RTL rasporedi koji se urušavaju, njemački tekst koji prelijeva gumbe, API odgovori na pogrešnom jeziku i prijevodi koji izlaze iz sinkronizacije u roku od nekoliko tjedana nakon pokretanja. Ne prodajem čarobna rješenja. Pomažem vam raspetljati konkretni nered u kojem se vaš tim nalazi — i izgraditi sustave koji se neće pokvariti na isti način dvaput.

„Trebali smo ovo ranije isplanirati"

Porez na arhitekturu koji sada plaćate

Pokrenuli ste na engleskom. Radilo je. Onda ste dodali francuski „samo za odredišnu stranicu." Sad ste ovdje jer:

Vaša baza koda ima provjere lang= razbacane po 47 datoteka

Upravitelji proizvoda pitaju „možemo li A/B testirati tekst?" a inženjeri kažu „samo uz prepisivanje"

Imate tri različita tijeka rada za prijevod i nijedan ne radi pouzdano

Što sam vidio da se kvari:

  • Timovi koji troše više od 6 mjeseci na naknadno uvođenje i18n u Next.js aplikaciju jer su stringovi bili ugrađeni izravno u komponente
  • Datoteke prijevoda nisu usklađene jer razvojni programeri ne znaju koju datoteku ažurirati
  • „Zamrzavanja lokalizacije" prije izdanja jer nitko ne vjeruje tijeku prijevoda
  • Otpor prema promjeni bilo kojeg prevedenog sadržaja jer je tijek rada toliko bolan

S čime pomažem:

  • Strategije refaktoriranja koje vam omogućuju postupno uvođenje i18n (ne zahtijevam „stani sa svime i prepiši")
  • Dizajn procesa za održavanje prijevoda usklađenih bez blokiranja razvoja
  • Pregledi arhitekture kako biste utvrdili gdje će se vaš trenutačni pristup pokvariti na 10+ jezika

i18n je arhitektura, a ne značajka. Pokušati ga dodati kasnije isto je kao odlučiti da vaša kuća treba podrum nakon što ste je već izgradili.

Pomažem vam iskopati taj podrum – ili odlučiti trebate li ga uopće.

RTL sve pokvari

Vaše korisničko sučelje nije bilo dizajnirano za arapski, hebrejski ili urdu

Prebacili ste dir=„rtl" i gledali kako vam raspored eksplodira:

Padajući izbornici otvaraju se u pogrešnom smjeru
Ikone pokazuju u pogrešnom smjeru
Flexbox rasporedi se urušavaju ili stvaraju čudna preklapanja
Opisi alata pojavljuju se izvan zaslona
Plutajući elementi u potpunosti ignoriraju smjer teksta

Ono što sam vidio:

  • Sustavi dizajna s više od 200 komponenti, od kojih samo 12 ispravno podržava RTL
  • Timovi koji koriste float: left umjesto logičkih svojstava, stvarajući RTL greške u svakoj novoj značajci
  • Popovers i modali koji zahtijevaju specifična RTL nadjačavanja po komponenti
  • Okviri koji tvrde da imaju „RTL podršku", a samo preokrenu smjer rasporeda, ali pokvare logiku pozicioniranja

S čime pomažem:

  • Migracija na CSS logička svojstva (margin-inline-start umjesto margin-left)
  • Revizije dizajn sustava kako biste pronašli RTL mine prije nego što se isporuče
  • Specifične smjernice za okvir (Tailwind, shadcn, MUI) za stiliziranje s RTL-first pristupom

Ručno ispravljanje RTL grešaka u svakoj komponenti nije održivo. RTL podršku činim sustavnom, a ne stalnim gašenjem požara.

„Njemački tekst nam je pokvario gumb"

Sučelje koje nije prilagođeno za prijevod

Engleski stane. Njemački ne. Vaš dizajn je pretpostavio:

Oznake gumba imaju ~10 znakovaKorisnička imena stanu u stupac od 200 pxPoruke o pogreškama su u jednom retku

Zatim ste preveli na njemački, finski ili tajlandski i otkrili:

Gumbi su odrezani usred riječi

Tablice s vodoravnim pomicanjem u svakom retku

Tekst se prelama u nečitljive blokove

Nelatinični tekst se skraćuje jer spremnici imaju fiksne širine

S čime pomažem:

  • Elastični UI uzorci koji se prilagođavaju duljini sadržaja
  • Planiranje budžeta znakova (znati da se njemački proširuje za 30 %, tajlandski ne koristi razmake)
  • Tipografski sustavi koji rukuju CJK-om, arapskim i devanagarijem bez kvarenja

Pomažem vam izgraditi sučelje koje preživi prijevod – prije nego što platite za 10 000 riječi koje ne stanu.

Ne trebate predavanje o tome zašto je i18n važan. Trebate nekoga tko je otklanjao pogreške u RTL skočnim prozorima u 2 ujutro, raspravljao s proizvodnim timom o ograničenjima broja znakova i dizajnirao tijekove prijevoda koji stvarno rade.

Zamke na koje vas nitko nije upozorio

Ratne priče timova koji su to već prošli

Ovo nije teorija. Ovo su stvari koje su se pokvarile u produkciji:

Pakao množine

Engleski: „1 stavka" naspram „2 stavke"

Poljski: „1 przedmiot" / „2 przedmioty" / „5 przedmiotów" (3 oblika množine)

Arapski: 6 oblika množine

Vaša logika count === 1 ? 'stavka' : 'stavke' više ne radi.

Kaos datuma i vremena

Datume ste formatirali s toLocaleDateString(). Zatim su korisnici u Japanu u vašim CSV izvozima vidjeli „2025年2月9日" i Excel se zagrcnuo.

Neusklađenost jezika API-ja

Vaš frontend traži francuski. Vaš API vraća engleski jer autentifikacijski token ne nosi lokalizaciju. Sada imate UI s miješanim jezicima i korisnici misle da je to greška.

Testiranje pseudo-lokalizacije

Niste testirali s [Ţĥîś îś ţéśţ ţéẋţ ţĥàţ éẋþàñðś 30 %] prije nego što ste otišli u produkciju. Sada je vaša poljska stranica neupotrebljiva.

Nevidljiva pretpostavka

Pretpostavili ste da su stringovi jedino što treba prevesti. Onda naletite na datume, brojeve, valute, sortiranje, pretraživanje – sve ima ponašanje specifično za lokalizaciju.

S čime pomažem:

  • Implementacija ICU MessageFormat (obrađuje množinu, rod i kontekst)
  • API i18n obrasci (pregovaranje o jeziku, strategije rezervnih opcija)
  • QA procesi koji uhvate te probleme prije nego što to učine prevoditeljske agencije

Tijek rada je najteži dio

Kako održavate 8 jezika usklađenih kad isporučujete svaki dan?

Shvatili ste tehnologiju. Sada ste zapeli na procesu:

1

Programeri spajaju kod s novim engleskim stringovima. Prijevodi kasne 2 tjedna. Korisnici vide napola prevedeni UI.

2

Ne znate koje stringove je sigurno izbrisati (koriste li se? prevedeni? u tijeku s agencijom?)

3

Proizvod želi ažurirati tekst. Nitko ne zna hoće li promjena „Submit" u „Send" pokvariti 12 jezika.

4

Datoteke prijevoda nisu usklađene s produkcijom tjednima

Pitanja koja mi timovi postavljaju:

„Treba li naš API vratiti prevedeni sadržaj ili pustiti da frontend time rukuje?"
„Kako verzioniramo prijevode?"
„Koji je izvor istine: Figma, baza koda ili alat za prijevod?"
„Kako spriječiti razvojne programere da isporučuju značajke samo na engleskom?"

Što sam vidio da se kvari:

  • Datoteke prijevoda commitane u git koje se razilaze sa stringovima u produkciji
  • Upozorenja „Ne dirajte španjolsku datoteku" jer nitko ne zna što je sigurno promijeniti
  • Značajke pokrenute na engleskom, a zatim prevedene 6 mjeseci kasnije (ako ikad)

S čime pomažem:

  • Dizajn prevoditeljskog pipelinea (kada koristiti i18n biblioteke, kada TMS, a kada AI)
  • Git tijekovi rada za održavanje izvornih stringova i prijevoda u sinkronizaciji
  • Automatizacija koja blokira PR-ove ako novi stringovi nisu označeni za prijevod

Tehnologija je rješiva. Tijek rada je prepreka. Dizajniram tijekove rada koji ne zahtijevaju herojske napore za održavanje.

Timovi s kojima sam surađivao

Globalni proizvodi, regionalna stručnost

LINE (Japan, Tajvan, Tajland) logo

LINE (Japan, Tajvan, Tajland)

Platforma za razmjenu poruka koja posluje na 3 primarna istočnoazijska tržišta. Radio sam na izazovima specifičnima za rukovanje CJK znakovima, integraciju ekosustava platforme i očekivanja korisničkog iskustva koja se razlikuju između Japana, Tajvana i Tajlanda.

KakaoTalk (Južna Koreja) logo

KakaoTalk (Južna Koreja)

Dominantna korejska platforma za razmjenu poruka. Radio sam na zahtjevima proizvoda specifičnima za korejsko tržište, uključujući očekivanja o razini formalnosti jezika u sučelju i potrebe integracije platforme.

Change.org (196 zemlje, 20+ prioritetnih jezika) logo

Change.org (196 zemlje, 20+ prioritetnih jezika)

Globalna platforma za peticije gdje su važni i brzina sadržaja i kvaliteta. Pomogao u snalaženju u tijeku rada prijevoda za politički i društveni sadržaj koji generiraju korisnici na različitim tržištima.

Airbnb (220+ zemalja, 60+ jezika) logo

Airbnb (220+ zemalja, 60+ jezika)

Globalno tržište sa složenim i18n zahtjevima. Savjetovao sam o izazovima oko povjerenja i sigurnosti na više jezika te kulturnoj prilagodbi koncepata platforme na različitim tržištima.

Intercom (više od 30 jezika, globalni B2B SaaS) logo

Intercom (više od 30 jezika, globalni B2B SaaS)

Platforma za komunikaciju s korisnicima koja opslužuje globalne enterprise klijente. Radio sam na internacionalizaciji proizvoda za alate za podršku u stvarnom vremenu i lokalizaciji baze znanja.

Lilith Games (Kina, Japan, Koreja, SAD, EU) logo

Lilith Games (Kina, Japan, Koreja, SAD, EU)

Izdavač mobilnih igara s naslovima distribuiranima globalno. Radio sam na tržišno specifičnim izazovima lokalizacije sadržaja i regionalnim zahtjevima platformi.

Tržišta na kojima sam pokrenuo:

Istočna Azija (Japan, Koreja, Kina):

CJK tipografija, integracija ekosustava platforme, podrška za okomiti tekst

Jugoistočna Azija (Tajland, Vijetnam, Indonezija):

Podrška za više pisama, očekivanja korisnika usmjerena na mobilne uređaje

MENA (regije u kojima se govori arapski):

Zahtjevi za RTL raspored, očekivanja formalnog naspram kolokvijalnog jezika, kulturna prilagodba sadržaja

Europa:

24 službena jezika, pokretanja proizvoda u više zemalja

Amerike:

Regionalne varijacije jezika (LATAM španjolski naspram španjolskog iz Španjolske, brazilski portugalski), dvojezična tržišta

Vidio sam što radi i što ne uspijeva na tim tržištima – ne iz teorije, nego iz isporuke proizvoda o kojima ovise stvarni korisnici.

Popravimo ono što se kvari

Ne trebate predavanje o tome zašto je i18n važan. Trebate nekoga tko je otklanjao pogreške u RTL skočnim prozorima u 2 ujutro, raspravljao s proizvodnim timom o ograničenjima broja znakova i dizajnirao tijekove prijevoda koji stvarno rade.

Pregled arhitekture i strategije (1–2 tjedna):

Kažem vam što će se pokvariti kad dodate sljedeća tri jezika i koliko će to koštati popraviti

Podrška za pokretanje na tržištu (4–8 tjedana):

Pokrećete se u Japanu/MENA/EU i trebaju vam stručnjaci koji su to već prije radili

Partnerstvo u tijeku:

Ugrađeno savjetovanje dok skalirate s 2 jezika na 20

Ne bavim se teorijom. Bavim se trijažom, planovima puta i isporukom.