25 języków LIVE — kamień milowy
cutty.dev mówi teraz dwudziestoma pięcioma językami. Krótka opowieść o tym co to znaczy, dlaczego te konkretne języki, i jak to zostało zrobione bez wysyłania danych na zewnątrz.
- Tyle języków dorzuciliśmy w kilka tygodni. Start był skromny: polski i angielski, dwa, koniec listy. Dziś cutty.dev wita cię w dwudziestu pięciu. Liczba ładna, ale sama w sobie nic nie znaczy. Znaczenie jest w tym, kto stoi za tymi słupkami.
Policz na szybko. Arabski to grubo ponad 400 milionów ludzi. Hindi kolejne kilkaset. Chiński, jeśli liczyć mandaryński, przekracza miliard. Dorzuć hiszpański (Hiszpania plus prawie cała Ameryka Łacińska) i portugalski (głównie dzięki Brazylii). Sumując te rynki, robi się z tego kilka miliardów osób, które mogą zobaczyć narzędzie od razu w swoim języku. Od pierwszej sekundy.
Czemu akurat te 25
Pełna lista, dla porządku. Polski, angielski, niemiecki, francuski, hiszpański, włoski, czeski, rumuński, węgierski, grecki, niderlandzki, szwedzki, fiński, ukraiński, turecki. Do tego arabski i hebrajski (oba pisane od prawej do lewej). Chiński, japoński, koreański. Hindi, tajski, wietnamski, indonezyjski. I portugalski.
Nic tu nie wpadło z kapelusza. Pierwsza warstwa to po prostu Europa, rynek po rynku. Druga to miejsca, których europejski startup zwykle nie rusza, dopóki "nie pojawi się ruch": Bliski Wschód i Afryka Północna, Izrael, Azja Wschodnia, subkontynent indyjski, Azja Południowo-Wschodnia.
Francuski jest tu dobrym przykładem, jak jeden locale ciągnie za sobą pół świata. Francja, owszem, ale też Belgia, Quebec i spory kawałek Afryki Zachodniej. Jeden plik tłumaczeń, kilkanaście krajów.
Skąd się wzięły te tłumaczenia
Tu jest część, z której jestem chyba najbardziej zadowolony. Nie poszło to przez żadne zewnętrzne API. Tłumaczył lokalny model AI, odpalony na naszym własnym sprzęcie, w naszej sieci.
Co z tego wynika, po ludzku:
- Ani jedno zdanie z interfejsu nie wyjechało na zewnątrz. Żaden dostawca AI nie dostał naszych tekstów do "przetworzenia". Nie dlatego, że mamy coś do ukrycia w przycisku "Skróć". Po prostu tak ustawiamy ten projekt od początku i nie robimy wyjątków, bo wyjątki potem rosną.
- Wychodzi to lepiej niż tłumaczenie słowo w słowo. Model trzyma kontekst, ton, czasem żart. "Short link" w trzech językach potrafi mieć trzy różne sensowne odpowiedniki, nie jedną kalkę.
- Zero kosztu za zapytanie. Chcę poprawić jedno zdanie w dwudziestu pięciu wersjach? Robię to i nie patrzę na licznik faktury.
Po pierwszym przejściu i tak siadałem do każdej wersji okiem. Czy layout się trzyma, czy niemiecki (te jego cudowne długie rzeczowniki) nie wypycha tekstu poza przycisk, czy arabski faktycznie płynie w dobrą stronę.
Odbicie strony, czyli arabski i hebrajski
To była osobna robota, nie "zmiana flagi". Cała strona dla tych dwóch języków jest odbita w poziomie. Nawigacja siada po prawej, strzałki patrzą w drugą stronę, nawet gradient w hero leci odwrotnie.
Można było odpuścić. Wiele serwisów odpuszcza i wtedy arabska wersja wygląda jak zachodnia strona, którą ktoś częściowo wywrócił i zostawił. Widać to od razu. Chcieliśmy, żeby Egipcjanin czy Izraelczyk miał wrażenie, że strona została zrobiona u niego, a nie dla niego przetłumaczona po godzinach.
Fonty, czyli problem, o którym nikt nie myśli, dopóki nie pęknie
Chiński, japoński, koreański. Znaki CJK, których zwykły webowy font po prostu nie ma w środku. Gdyby zostawić to tak, użytkownik dostałby kwadraciki zamiast tekstu (ten klasyczny widok zepsutej strony). Więc doładowujemy dodatkowe fonty, ale tylko na tych wersjach. Reszta dwudziestu kilku locali jedzie na naszym lekkim, standardowym kroju i nie dźwiga niczego niepotrzebnego. Tajski, hindi i pozostałe pisma dostały dokładnie to samo podejście.
Odwrotna kolejność
Schemat jest znany: odpalasz produkt po angielsku, a resztę języków "kiedyś, jak będzie ruch". Tylko że ruchu po hiszpańsku nie będzie, dopóki Hiszpan trafiający z Google widzi angielski i wychodzi.
Poszliśmy odwrotnie. 25 języków na dzień dobry. Ktoś z Czech, Tajwanu, Wietnamu albo Egiptu wpada z wyszukiwarki i od pierwszego ekranu jest u siebie.
Jest w tym też zwykła uprzejmość. Sieć domyślnie zakłada, że dogadasz się po angielsku. Małe narzędzie z Europy, które mówi do ciebie po koreańsku albo po tajsku, mówi przy okazji coś jeszcze: że zrobiono je dla wszystkich, nie tylko dla anglojęzycznego środka.
A jak twojego nie ma
Lista jest długa, ale nie domknięta na amen. Nie widzisz swojego języka? Napisz. Dorzucenie kolejnego to u nas kwestia dni, naprawdę, nie kwartałów.
A jeśli już się dogadujemy, no to wiesz co robić. Skróć jakiś link i zobacz, czy faktycznie wygląda jak u siebie. Jak coś zgrzyta, też daj znać.