LINE / Airbnb / Change.org / KakaoTalk

Συμβουλευτική Διεθνοποίησης: Διορθώστε ό,τι δεν λειτουργεί, σχεδιάστε το επόμενο βήμα

Ξέρετε ήδη ότι το i18n είναι δύσκολο. Έχω δει τα συμπτώματα: διατάξεις RTL που καταρρέουν, γερμανικά κείμενα που ξεχειλίζουν από τα κουμπιά, απαντήσεις API σε λάθος γλώσσα και μεταφράσεις που αποσυγχρονίζονται μέσα σε εβδομάδες από την κυκλοφορία. Δεν πουλάω θαυματουργές λύσεις. Σας βοηθάω να ξεμπλέξετε το συγκεκριμένο χάος στο οποίο βρίσκεται η ομάδα σας—και να χτίσετε συστήματα που δεν θα χαλάσουν με τον ίδιο τρόπο ξανά.

«Έπρεπε να το είχαμε σχεδιάσει νωρίτερα»

Ο αρχιτεκτονικός φόρος που πληρώνετε τώρα

Ξεκινήσατε στα αγγλικά. Δούλεψε. Μετά προσθέσατε γαλλικά «μόνο για τη landing page». Τώρα είστε εδώ επειδή:

Η βάση κώδικά σας έχει ελέγχους lang= διασκορπισμένους σε 47 αρχεία

Οι διαχειριστές προϊόντων ρωτούν «μπορούμε να κάνουμε A/B τεστ στο κείμενο;» και η ομάδα ανάπτυξης απαντά «όχι χωρίς να ξαναγράψουμε»

Έχετε τρεις διαφορετικές ροές εργασιών μετάφρασης και καμία από αυτές δεν λειτουργεί αξιόπιστα

Τι έχω δει να σπάει:

  • Ομάδες που σπαταλούν 6+ μήνες για να ενσωματώσουν το i18n σε μια εφαρμογή Next.js, επειδή τα strings ήταν hardcoded στα components.
  • Αρχεία μετάφρασης που χάνουν τον συγχρονισμό τους επειδή οι προγραμματιστές δεν γνωρίζουν ποιο αρχείο να ενημερώσουν
  • Περίοδοι «παγώματος τοπικοποίησης» πριν από τις κυκλοφορίες, επειδή κανείς δεν εμπιστεύεται τη διαδικασία μετάφρασης
  • Αντίσταση στην αλλαγή οποιουδήποτε μεταφρασμένου περιεχομένου γιατί η διαδικασία είναι τόσο επίπονη

Σε τι βοηθάω:

  • Στρατηγικές αναδιάρθρωσης που σας επιτρέπουν να υιοθετήσετε σταδιακά το i18n (δεν απαιτώ να «σταματήσετε τα πάντα και να ξαναγράψετε»)
  • Σχεδιασμός διαδικασίας για τη διατήρηση των μεταφράσεων σε συγχρονισμό χωρίς να εμποδίζεται η ανάπτυξη
  • Επισκοπήσεις αρχιτεκτονικής για να εντοπιστούν τα σημεία όπου η τρέχουσα προσέγγισή σας θα καταρρεύσει σε 10+ γλώσσες

Το i18n είναι αρχιτεκτονική, όχι λειτουργία. Το να προσπαθήσετε να το προσθέσετε αργότερα είναι σαν να αποφασίσετε ότι το σπίτι σας χρειάζεται υπόγειο αφού το έχετε ήδη χτίσει.

Σας βοηθάω να σκάψετε το υπόγειο—ή να αποφασίσετε αν όντως το χρειάζεστε.

Το RTL σπάει τα πάντα

Η διεπαφή σας δεν σχεδιάστηκε για Αραβικά, Εβραϊκά ή Ουρντού

Αλλάξατε το dir="rtl" και είδατε τη διάταξή σας να καταρρέει:

Τα αναπτυσσόμενα μενού ανοίγουν προς λάθος κατεύθυνση
Τα εικονίδια δείχνουν προς τη λανθασμένη κατεύθυνση
Διατάξεις Flexbox που καταρρέουν ή δημιουργούν περίεργες επικαλύψεις
Τα tooltips εμφανίζονται εκτός οθόνης
Τα αιωρούμενα στοιχεία αγνοούν πλήρως την κατεύθυνση του κειμένου

Τι έχω δει:

  • Συστήματα σχεδιασμού με 200+ στοιχεία, όπου μόνο 12 χειρίζονται σωστά το RTL.
  • Ομάδες που χρησιμοποιούν float: left αντί για λογικές ιδιότητες, δημιουργώντας σφάλματα RTL σε κάθε νέα λειτουργία.
  • Αναδυόμενα παράθυρα και modals που απαιτούν ξεχωριστές παρακάμψεις RTL για κάθε στοιχείο.
  • Frameworks που ισχυρίζονται ότι «υποστηρίζουν RTL», αλλά απλώς αντιστρέφουν την κατεύθυνση της διάταξης, σπάζοντας τη λογική τοποθέτησης

Σε τι βοηθάω:

  • Μετάβαση σε λογικές ιδιότητες CSS (margin-inline-start αντί για margin-left)
  • Έλεγχοι συστημάτων σχεδιασμού για να εντοπιστούν νάρκες RTL πριν κυκλοφορήσουν.
  • Οδηγίες ειδικά για κάθε framework (Tailwind, shadcn, MUI) για styling με προτεραιότητα στο RTL.

Η χειροκίνητη διόρθωση σφαλμάτων RTL σε κάθε στοιχείο δεν είναι βιώσιμη. Κάνω την υποστήριξη RTL συστηματική, όχι συνεχή πυρόσβεση.

«Το γερμανικό κείμενο έσπασε το κουμπί μας»

UI που δεν χτίστηκε για μετάφραση

Τα Αγγλικά χωράνε. Τα Γερμανικά όχι. Ο σχεδιασμός σας υπέθεσε:

Οι ετικέτες κουμπιών είναι περίπου 10 χαρακτήρεςΤα ονόματα χρηστών χωράνε σε στήλη 200pxΤα μηνύματα σφάλματος είναι σε μία γραμμή

Μετά μεταφράσατε στα Γερμανικά, τα Φινλανδικά ή τα Ταϊλανδικά και ανακαλύψατε:

Κουμπιά που κόβουν τις λέξεις στη μέση

Πίνακες με οριζόντια κύλιση σε κάθε σειρά

Κείμενο που αναδιπλώνεται σε μη αναγνώσιμα τμήματα

Το μη λατινικό κείμενο περικόπτεται επειδή τα containers έχουν σταθερό πλάτος

Σε τι βοηθάω:

  • Ελαστικά μοτίβα UI που προσαρμόζονται στο μήκος του περιεχομένου
  • Σχεδιασμός προϋπολογισμού χαρακτήρων (λαμβάνοντας υπόψη ότι τα Γερμανικά επεκτείνονται κατά 30%, τα Ταϊλανδικά δεν χρησιμοποιούν κενά)
  • Συστήματα τυπογραφίας που χειρίζονται CJK, Αραβικά και Ντεβανάγκαρι χωρίς να προκαλούν προβλήματα

Σας βοηθάω να φτιάξετε UI που αντέχει στη μετάφραση—πριν πληρώσετε για 10.000 λέξεις που δεν χωρούν.

Δεν χρειάζεστε διάλεξη για τη σημασία του i18n. Χρειάζεστε κάποιον που έχει κάνει debug σε RTL popovers στις 2 τα ξημερώματα, έχει τσακωθεί με την ομάδα προϊόντος για όρια χαρακτήρων και έχει σχεδιάσει ροές μετάφρασης που πραγματικά δουλεύουν.

Οι παγίδες που κανείς δεν σας προειδοποίησε

Εμπειρίες από ομάδες που το έχουν ζήσει

Αυτά δεν είναι θεωρητικά. Είναι πράγματα που έσπασαν στην παραγωγή:

Η κόλαση του πληθυντικού

Αγγλικά: «1 item» έναντι «2 items»

Πολωνικά: «1 przedmiot» / «2 przedmioty» / «5 przedmiotów» (3 πληθυντικοί τύποι)

Αραβικά: 6 πληθυντικοί τύποι

Η λογική σας count === 1 ? 'item' : 'items' δεν λειτουργεί πλέον.

Χάος με ημερομηνίες και ώρες

Διαμορφώσατε τις ημερομηνίες με toLocaleDateString(). Στη συνέχεια, οι χρήστες στην Ιαπωνία είδαν «2025年2月9日» στις εξαγωγές CSV σας και το Excel μπλόκαρε.

Αναντιστοιχία γλώσσας API

Το frontend σας ζητά γαλλικά. Το API σας επιστρέφει αγγλικά επειδή το auth token δεν περιλαμβάνει το locale. Τώρα έχετε UI με ανάμεικτες γλώσσες και οι χρήστες νομίζουν ότι είναι σφάλμα.

Δοκιμή Pseudo-Locale

Δεν κάνατε δοκιμή με [Ţĥîś îś ţéśţ ţéẋţ ţĥàţ éẋþàñðś 30%] πριν βγείτε στην παραγωγή. Τώρα ο πολωνικός σας ιστότοπος είναι άχρηστος.

Η αόρατη παραδοχή

Υποθέσατε ότι οι συμβολοσειρές είναι το μόνο πράγμα που χρειάζεται μετάφραση. Μετά συναντήσατε ημερομηνίες, αριθμούς, νομίσματα, ταξινόμηση, αναζήτηση - τα πάντα έχουν συμπεριφορά που εξαρτάται από το locale.

Σε τι βοηθάω:

  • Υλοποίηση ICU MessageFormat (διαχειρίζεται πληθυντικούς, γένος, πλαίσιο)
  • Μοτίβα i18n για API (διαπραγμάτευση γλώσσας, εναλλακτικές στρατηγικές)
  • Διαδικασίες QA που εντοπίζουν αυτά τα ζητήματα πριν το κάνουν οι μεταφραστικές εταιρείες

Η ροή εργασίας είναι το δύσκολο κομμάτι

Πώς διατηρείτε 8 γλώσσες συγχρονισμένες όταν κάνετε παράδοση καθημερινά;

Με την τεχνολογία τα καταφέρατε. Τώρα έχετε κολλήσει στη διαδικασία:

1

Οι προγραμματιστές συγχωνεύουν κώδικα με νέες αγγλικές συμβολοσειρές. Οι μεταφράσεις καθυστερούν κατά 2 εβδομάδες. Οι χρήστες βλέπουν μισομεταφρασμένο UI.

2

Δεν ξέρετε ποιες συμβολοσειρές μπορείτε να διαγράψετε με ασφάλεια (χρησιμοποιούνται; μεταφράστηκαν; βρίσκονται σε εκκρεμότητα σε κάποιο γραφείο μεταφράσεων;)

3

Το τμήμα προϊόντος θέλει να ενημερώσει το κείμενο. Κανείς δεν ξέρει αν η αλλαγή του «Υποβολή» σε «Αποστολή» θα δημιουργήσει προβλήματα σε 12 γλώσσες.

4

Τα αρχεία μετάφρασης παραμένουν ασυγχρόνιστα με την παραγωγή για εβδομάδες συνεχόμενα

Ερωτήσεις που μου κάνουν οι ομάδες:

«Πρέπει το API μας να επιστρέφει μεταφρασμένο περιεχόμενο ή να αφήσει το frontend να το χειριστεί;»
«Πώς διαχειριζόμαστε τις εκδόσεις των μεταφράσεων;»
«Ποια είναι η αξιόπιστη πηγή δεδομένων: το Figma, ο κώδικας ή το εργαλείο μετάφρασης;»
«Πώς αποτρέπουμε τους προγραμματιστές από το να κυκλοφορούν λειτουργίες μόνο στα αγγλικά;»

Τι έχω δει να σπάει:

  • Αρχεία μετάφρασης καταχωρημένα στο git που αποκλίνουν από τα κείμενα της παραγωγής
  • Προειδοποιήσεις «Μην αγγίζετε το ισπανικό αρχείο» γιατί κανείς δεν ξέρει τι είναι ασφαλές να αλλάξει
  • Λειτουργίες που κυκλοφόρησαν στα Αγγλικά και μεταφράστηκαν 6 μήνες αργότερα (αν μεταφράστηκαν ποτέ)

Σε τι βοηθάω:

  • Σχεδιασμός pipeline μετάφρασης (πότε να χρησιμοποιούμε βιβλιοθήκες i18n, πότε TMS, πότε AI)
  • Ροές εργασίας Git για τον συγχρονισμό αρχικών κειμένων και μεταφράσεων
  • Αυτοματοποίηση που μπλοκάρει τα PRs αν οι νέες συμβολοσειρές δεν έχουν επισημανθεί για μετάφραση

Η τεχνολογία μπορεί να λυθεί. Η ροή εργασίας είναι το εμπόδιο. Σχεδιάζω ροές εργασίας που δεν απαιτούν υπεράνθρωπες προσπάθειες για να διατηρηθούν.

Ομάδες με τις οποίες έχω συνεργαστεί

Παγκόσμια προϊόντα, περιφερειακή εξειδίκευση

LINE (Ιαπωνία, Ταϊβάν, Ταϊλάνδη) logo

LINE (Ιαπωνία, Ταϊβάν, Ταϊλάνδη)

Πλατφόρμα ανταλλαγής μηνυμάτων που δραστηριοποιείται σε 3 κύριες αγορές της Ανατολικής Ασίας. Δούλεψα σε προκλήσεις που σχετίζονται με τη διαχείριση χαρακτήρων CJK, την ενσωμάτωση στο οικοσύστημα της πλατφόρμας και τις διαφορετικές προσδοκίες των χρηστών σε Ιαπωνία, Ταϊβάν και Ταϊλάνδη.

KakaoTalk (Νότια Κορέα) logo

KakaoTalk (Νότια Κορέα)

Η κυρίαρχη πλατφόρμα μηνυμάτων της Κορέας. Αντιμετώπισα απαιτήσεις προϊόντος ειδικές για την κορεατική αγορά, όπως προσδοκίες τυπικότητας γλώσσας στο UI και ανάγκες ενσωμάτωσης πλατφόρμας.

Change.org (196 χώρες, 20+ γλώσσες προτεραιότητας) logo

Change.org (196 χώρες, 20+ γλώσσες προτεραιότητας)

Παγκόσμια πλατφόρμα υπογραφοσυλλογής, όπου η ταχύτητα και η ποιότητα του περιεχομένου μετράνε εξίσου. Βοήθησα στη διαμόρφωση της ροής εργασίας μετάφρασης για πολιτικό και κοινωνικό περιεχόμενο που δημιουργείται από χρήστες σε διαφορετικές αγορές.

Airbnb (220+ χώρες, 60+ γλώσσες) logo

Airbnb (220+ χώρες, 60+ γλώσσες)

Παγκόσμια αγορά με πολύπλοκες απαιτήσεις i18n. Παρείχα συμβουλευτική σε θέματα εμπιστοσύνης/ασφάλειας σε πολλές γλώσσες, καθώς και πολιτισμικής προσαρμογής εννοιών της πλατφόρμας σε διάφορες αγορές.

Intercom (30+ γλώσσες, παγκόσμιο B2B SaaS) logo

Intercom (30+ γλώσσες, παγκόσμιο B2B SaaS)

Πλατφόρμα επικοινωνίας πελατών που εξυπηρετεί παγκόσμιους εταιρικούς πελάτες. Δούλεψα στη διεθνοποίηση προϊόντων για εργαλεία υποστήριξης σε πραγματικό χρόνο και στην τοπική προσαρμογή βάσεων γνώσης.

Lilith Games (Κίνα, Ιαπωνία, Κορέα, ΗΠΑ, ΕΕ) logo

Lilith Games (Κίνα, Ιαπωνία, Κορέα, ΗΠΑ, ΕΕ)

Εκδότης mobile games με τίτλους που διανέμονται παγκοσμίως. Αντιμετώπισα προκλήσεις ειδικές για κάθε αγορά σχετικά με την τοπικοποίηση περιεχομένου και τις περιφερειακές απαιτήσεις των πλατφορμών.

Αγορές στις οποίες έχω κάνει λανσάρισμα:

Ανατολική Ασία (Ιαπωνία, Κορέα, Κίνα):

Τυπογραφία CJK, ενσωμάτωση στο οικοσύστημα πλατφόρμας, υποστήριξη κάθετου κειμένου

Νοτιοανατολική Ασία (Ταϊλάνδη, Βιετνάμ, Ινδονησία):

Υποστήριξη πολλαπλών γραφών, προσδοκίες χρηστών με έμφαση στο κινητό

MENA (αραβόφωνες περιοχές):

Απαιτήσεις διάταξης RTL, προσδοκίες για επίσημη έναντι καθομιλουμένης γλώσσας, πολιτισμική προσαρμογή περιεχομένου

Ευρώπη:

24 επίσημες γλώσσες, λανσαρίσματα προϊόντων σε πολλές χώρες

Αμερικές:

Περιφερειακές γλωσσικές παραλλαγές (Ισπανικά Λατινικής Αμερικής έναντι Ισπανίας, Βραζιλιάνικα Πορτογαλικά), δίγλωσσες αγορές

Έχω δει τι λειτουργεί και τι αποτυγχάνει σε αυτές τις αγορές—όχι από θεωρία, αλλά από την παράδοση προϊόντων στα οποία βασίζονται πραγματικοί χρήστες.

Ας διορθώσουμε ό,τι χαλάει

Δεν χρειάζεστε διάλεξη για τη σημασία του i18n. Χρειάζεστε κάποιον που έχει κάνει debug σε RTL popovers στις 2 τα ξημερώματα, έχει τσακωθεί με την ομάδα προϊόντος για όρια χαρακτήρων και έχει σχεδιάσει ροές μετάφρασης που πραγματικά δουλεύουν.

Επισκόπηση αρχιτεκτονικής και στρατηγικής (1-2 εβδομάδες):

Σας λέω τι θα χαλάσει όταν προσθέσετε τις επόμενες 3 γλώσσες και πόσο θα κοστίσει η επιδιόρθωση

Υποστήριξη για λανσάρισμα στην αγορά (4-8 εβδομάδες):

Ξεκινάτε στην Ιαπωνία, τη Μέση Ανατολή/Βόρεια Αφρική ή την ΕΕ και χρειάζεστε ειδικούς που το έχουν ξανακάνει.

Συνεχής Συνεργασία:

Ενσωματωμένη συμβουλευτική καθώς κλιμακώνεστε από 2 γλώσσες σε 20

Δεν ασχολούμαι με θεωρίες. Κάνω triage, σχεδιάζω roadmaps και παραδίδω.