GH GambleHub

Πολυγλωσσικές διεπαφές και εντοπισμός

1) Αρχές

1. Η γλώσσα δεν είναι επιδερμίδα. Τα κείμενα, οι μορφές, η κατεύθυνση της γραφής, οι εικονογραφήσεις, τα νομικά μπλοκ, ακόμη και η πλοήγηση αλλάζουν.
2. Πρώτα τα κλειδιά, μετά τα κείμενα. Δομή σημασιολογικών κλειδιών και παραμέτρων - μεταφράσεις έρχονται αργότερα.
3. Ψευδοαποικιοποίηση - πριν την έξοδο. Αλιεύονται υπερχείλιση, «σκληρές» γραμμές και κρυμμένοι αγγλικισμοί.
4. Τα folbacks είναι προβλέψιμα. «ru-UA → ru → en». Καμία «ήσυχη» αποτυχία.
5. Ασφάλεια. Δεν υπάρχει HTML από τη μετάφραση σε DOM χωρίς απολύμανση. οι κάτοχοι θέσης έχουν μόνο θέση/ονοματεπώνυμο.
6. . Alt κείμενα, aria ετικέτες, συντομογραφίες - όλα είναι τοπικά.


2) Στρατηγική σε τοπικό επίπεδο

Κωδικοί συστήματος: «ΓΛΩΣΣΙΚΗ ΠΕΡΙΦΕΡΕΙΑ» (για παράδειγμα, «pt-BR», «en-GB»).
Επιλογή τόπου: ρύθμιση προφίλ χρήστη. εφεδρική - αυτόματη ανίχνευση από περιηγητή/γεω (με επιβεβαίωση).
Πολυπεριφέρεια: διάκριση γλώσσας από το νόμο: «es-ES» ≠ «es-MX» (διαφορετικοί νόμοι/πληρωμές/όρια).
Αλυσίδα Folback: UI είναι η πλησιέστερη γλώσσα. νομικά κείμενα - αυστηρά περιφερειακή έκδοση, διαφορετικά μπλοκάρισμα και αίτηση επιβεβαίωσης.


3) Αρχιτεκτονική και περιεχόμενο πληροφοριών

Βασικά πεδία: πλοήγηση, CTA, σφάλματα, έντυπα, κίνητρα, κοινοποιήσεις, γράμματα, PDF/πανό.
Επέκταση κειμένου: + αποθεματικό πλάτους 30-40% (γερμανικά/φινλανδικά). Διάταξη - ελαστική (ευέλικτη/πλέγμα).
Τόνος/στυλ: λεξικό μάρκας (όροι, χωρίς «αργκό μετάφραση» σε κρίσιμα σημεία).
Εικόνες/εικονίδια: αποφυγή κειμένου σε εικόνες. εάν χρειάζεται, διατηρήστε τις τοπικές εκδόσεις.


4) i18n αρχιτεκτονική

Κλειδιά: 'domain. τμήμα. πρόθεση πληρωμής «→». αποσύρεται. σφάλμα. .
Κάτοχοι θέσεων: ονομάζονται ('{ποσό}', '{λεπτά}'), μορφοποιημένα εκτός γραμμής.
Μορφή μηνύματος ICU: πολλαπλότητα, φύλο, συμφωνία.
Αρχεία: από τοπικό και domains ('/i18n/{ locale }/{ domain} .json '), τα κομμάτια φορτώνονται τεμπέλικα.
Εξυπηρετητής/πελάτης: universal render, locale in cookie + HTTP-Vary.

Παράδειγμα κλειδιού (ICU):
json
{
"betslip": {
"placed": "Ставка на сумму {amount} {currency} принята",
"timeout": "Ожидаем подтверждение… ~{seconds, plural, one {# сек} few {# сек} many {# сек} other {# сек}}"
}
}

5) Διαμόρφωση: αριθμοί, ημερομηνίες, νομίσματα, μονάδες

Χρήση 'Intl. ':
js const nf = new Intl.NumberFormat('uk-UA', { style:'currency', currency:'UAH' });
nf.format(2000); // 2 000,00 ₴

const df = new Intl.DateTimeFormat('tr-TR', { dateStyle:'medium', timeStyle:'short' });
df.format(new Date());

const pl = new Intl.PluralRules('ru-RU');

Μονάδες ήσσονος σημασίας: Διατήρηση ποσών σε λεπτά/kopecks. Μορφότυπος για τον πελάτη.
Σχετικός χρόνος: 'Intl. TimeFormat '.
Μονάδες: 'Intl. NumberFormat ({style: 'unit', unit: 'meter'}) '.
Ημερολόγιο/εβδομάδα: 1η ημέρα της εβδομάδας και μορφή ημερομηνίας - ανά τόπο.


6) RTL και κατεύθυνση γραφής

Υποστήριξη 'dir = «rtl»' για 'ar', 'he', 'fa'; χρήση 'dir = «auto»' για προσαρμοσμένο περιεχόμενο.
Ανεστραμμένα εικονίδια/ακίδες. Καθρέφτες καρουζέλ και στέπας.
Αριθμοί/σύμβολα νομίσματος - παράθυρα LTR (αποφυγή μεικτού χάους BiDi).
Ιδιότητες CSS Boolean ('inline-start/end') αντί αριστερά/δεξιά.


7) Έντυπα και εισροές

Ονόματα/διευθύνσεις: να επιτραπούν απόστροφοι/διακριτικά/διπλά επώνυμα.
Τηλέφωνα: αποθήκευση E.164. μάσκες - μαλακές, με ένθετο.
Μορφότυποι διευθύνσεων: επιτόπια εντολή ανά χώρα. ο δείκτης/κατάσταση μπορεί να λείπει.
Πληκτρολόγια: 'inputmode', 'autocplete' σωστά για τοπική χρήση.
Κάτοχοι θέσεων: παραδείγματα σε τοπική γλώσσα/μορφή.


8) Ψευδοεντοπισμός και δοκιμές

Να αντικατασταθούν αυτόματα οι γραμμές με '【 】 "+ επέκταση' + + + '(~ 35%).
Συμπεριλάβετε το ψευδοεστιακό στη συναρμολόγηση dev ως 'qps-ploc'.
Στιγμιότυπα οθόνης με πλαίσιο για μεταφραστές: ανάδειξη των κατόχων θέσεων και μακρά κείμενα.
Δοκιμή: στολίδια, υφαινώσεις, υπερχείλιση, «σκληρές» συμβολοσειρές, RTL.


9) Κοινοποιήσεις, επιστολές, υποδείγματα

Υπόδειγμα γράμματος και αντικειμένου - για κάθε τόπο· χωριστά κείμενα και διάταξη.
Ημερομηνίες/ποσά του θέματος - μορφοποιημένα ανά τόπο.
Οι σύνδεσμοι ειδοποιήσεων ρυθμίσεων είναι πάντα στη γλώσσα του γράμματος.
SMS: σύντομες, χωρίς τιμές πολλαπλών γραμμών· UTM - καμία τοπικοποίηση.


10) Ασφάλεια και αξιοπιστία

Ποτέ μην ερμηνεύετε τη μετάφραση ως HTML, χρησιμοποιήστε ασφαλή ένθετα.
Κάτοχοι θέσεων - μόνο δεδομένα, όχι σήμανση.
Τα αρχεία καταγραφής/μέτρησης δεν ταξινομούνται, αλλά έχουν τοπικό χαρακτήρα για την ανίχνευση προβλημάτων.
Folback όταν το αρχείο μετάφρασης δεν είναι διαθέσιμο - «quiet» (show english + telemetry).


11) Επιδόσεις

Κομμάτια μεταφορών ανά διαδρομές/τομείς. Προφορτώσεις για συχνές.
CDN 'ETag '/' Cache-Control'.
Αποφυγή επαναπροσδιορισμών όταν αλλάζει τοπικό πλαίσιο - i18n με απομνημόνευση.


12) Οι ιδιαιτερότητες του iGaming

Αποκηρύκτες και υπεύθυνοι: η διατύπωση εξαρτάται από τη χώρα (18 +/21 +, ρυθμιστικές αρχές, γραμμές βοήθειας).
KYC/AML: νομικά ορθοί όροι (για παράδειγμα, «Πηγή Ταμείων», «Πραγματικός Δικαιούχος»), επιλογές περίπτωσης/γέννησης.
Μέθοδοι πληρωμής: τοπικές ονομασίες (PIX, Papara, SEPA) και όροι (ETA/προμήθειες) - αυστηρά ανά περιφέρεια.
Συντελεστές και μορφότυπος: 'δεκαδικά/κλασματικά/αμερικανικά' - τοπικές εξηγήσεις και παράδειγμα.
Νομικά κείμενα: αμετάβλητες περιφερειακές εκδόσεις· απαγόρευση του λαϊκού βιβλίου από άλλη δικαιοδοσία.


13) Μάρκες συστήματος σχεδιασμού (παράδειγμα)

json
{
"i18n": {
"fallback": ["en"],
"rtl": ["ar", "he", "fa"],
"textExpansionPct": 0.35,
"screenshotHints": true
},
"typography": {
"lineHeight": { "ui": 1.4, "dense": 1.3 },
"hyphens": "auto",
"tabularNums": true
},
"layout": {
"minLabelWidth": 96,
"gap": { "sm": 8, "md": 12, "lg": 16 }
},
"a11y": {
"ariaMirroring": true,
"altTranslate": true,
"contrastAA": true
}
}

14) Snippets

Αντίδραση + i18next (τεμπέλης εκκίνησης, ICU):
ts import i18n from 'i18next';
import ICU from 'i18next-icu';
import { initReactI18next } from 'react-i18next';

i18n.use(ICU).use(initReactI18next).init({
lng: 'uk-UA',
fallbackLng: ['ru', 'en'],
load: 'languageOnly',
interpolation: { escapeValue: false },
resources: {} // пусто — грузим лениво
});

export async function loadNamespace(ns: string, lng = i18n.language){
const mod = await import(`/i18n/${lng}/${ns}.json`);
i18n.addResourceBundle(lng, ns, mod.default, true, true);
}
Πολυφωνία της ICU (rus/ukr):
json
{
"notifications": "{count, plural, one {# уведомление} few {# уведомления} many {# уведомлений} other {# уведомления}}"
}
Intl για νομίσματα/ημερομηνίες:
js const money = (v, c, l) => new Intl.NumberFormat(l, {style:'currency', currency:c}).format(v/100);
const rel = (v, unit, l) => new Intl.RelativeTimeFormat(l, {numeric:'auto'}).format(v, unit);
// money(250000,'EUR','de-DE') → 2.500,00 €
Κατηγορία RTL στη ρίζα:
js const rtl = new Set(['ar','he','fa']);
document.documentElement.dir = rtl.has(locale.split('-')[0])? 'rtl': 'ltr';
Pseudolocal (dev):
js const pseudo = s => s.replace(/[aAeEiIoOuU]/g, m => ({a:'à',e:'ê',i:'ï',o:'ô',u:'û'}[m.toLowerCase()]        m)).replace(/([^\s])/g,'$1\u0301');

15) Κενό/σφάλμα/γκρίζα υποβάθμιση

Δεν υπάρχει μετάφραση κλειδιού: δείχνουμε αγγλικά + ημερολόγιο 'λείπει _ κλειδί'.
Δεν υπάρχει τοπικό αρχείο: folback και banner «Μέρος της διεπαφής στα αγγλικά».
Κείμενο υπερβολικά μακρύ: εφαρμογή πολλαπλών γραμμών, «σφιγκτήρας γραμμής», εργαλειοθήκη με πλήρες κείμενο.


16) Μετρήσεις και ποιοτικός έλεγχος

Κάλυψη% ανά κλειδί/τοποθεσία (στόχος ≥ 98%).
Time-to-Translate (TTT) για νέες κυκλοφορίες.
Ρυθμός L10n: οπτικά αποκόμματα, ελαττώματα RTL, εσφαλμένες μορφές.
Ευκολία ανάγνωσης (υποκειμενική έρευνα) και NPS ανά τόπο.
Νομική επικύρωση ανά περιφέρεια (κατάλογος ελέγχου συμμόρφωσης).


17) Αντιπατερίδια

Συγχώνευση συμβολοσειρών σε κωδικό («Κέρδισες» + ποσό + «!») - σπάει η γραμματική.
Κείμενο σε εικόνες/εικονίδια χωρίς τοπικές εκδόσεις.
Σκληρό πλάτος για τα αγγλικά.
Αντικατάσταση του εθνικού δικαίου με τη γλώσσα (χρήση του «es-ES» για το Μεξικό).
Μετάφραση HTML από το CMS χωρίς αποχέτευση.
Το ίδιο κλειδί με διαφορετικές έννοιες σε διαφορετικά μέρη.


18) Κατάλογος ελέγχου QA

Γραμμές και κλειδιά

  • Κατονομαζόμενοι κάτοχοι θέσεων, καμία συγχώνευση.
  • πλουραλισμός/γένος ICU όπου απαιτείται.
  • Η αλυσίδα folback λειτουργεί.

Διάταξη και διαθεσιμότητα

  • Περιθώριο πλάτους + 30-40%· 'line-clamp', περιτύλιγμα λέξεων.
  • Οι ετικέτες alt/aria είναι εντοπισμένες.
  • Τα κάτοπτρα RTL εικονίδια/πλοήγηση. οι αριθμοί είναι αναγνώσιμοι.

Μορφότυποι

  • Ημερομηνίες/νομίσματα μέσω 'Intl. '; ποσά από μονάδες ήσσονος σημασίας.
  • Διεύθυνση/τηλέφωνο/όνομα - Ευέλικτοι κανόνες χώρας.

Ασφάλεια/επιδόσεις

  • Οι μεταφράσεις δεν εκτελούν HTML. Δεν περιλαμβάνεται το XSS.
  • Τεμπέλικα κομμάτια, CDN cache, χωρίς περιττές επαναλήψεις.

Ιδιαιτερότητες iGaming

  • Disclaimers/18 +/γραμμές βοήθειας - κατά δικαιοδοσία.
  • Τα κείμενα KYC/AML συμφιλιώνονται νομικά.
  • Ονόματα πληρωμής/ETA/τέλη - τοπικά.

19) Τεκμηρίωση στο σύστημα σχεδιασμού

: i18n Tokens, Guides (ICU/Plural/RTL), μοτίβα (Emails/SMS/Toasts), Νομικές χορδές ανά Περιφέρεια.
Εργαλεία: ψευδοεστιακό, στιγμιότυπο οθόνης, αναφορά κάλυψης, βασικό χιτώνιο.
Διαδικασία: γλωσσάριο, μνήμη μετάφρασης, στιγμιότυπα οθόνης πλαισίου, αξιολόγηση από μητρικό ομιλητή.


Σύντομη περίληψη

Η πολύγλωσση ΚΠΕ είναι ένα συστηματικό έργο σε επίπεδο αρχιτεκτονικής, σχεδιασμού, περιεχομένου και δικαίου. Οργανώστε κλειδιά και folbacks, χρησιμοποιήστε ICU και 'Intl', υποστηρίξτε RTL, εκτελέστε ένα ψευδο-τοπικό εκ των προτέρων και εξασφαλίστε τη νομική ορθότητα της περιφερειακής διατύπωσης. Στη συνέχεια, το προϊόν θα αισθάνεται ντόπιο - από τους συντελεστές και τις πληρωμές μέχρι τα γράμματα και τη βοήθεια - σε κάθε χώρα και για κάθε χρήστη.

Contact

Επικοινωνήστε μαζί μας

Επικοινωνήστε για οποιαδήποτε βοήθεια ή πληροφορία.Είμαστε πάντα στη διάθεσή σας.

Έναρξη ολοκλήρωσης

Το Email είναι υποχρεωτικό. Telegram ή WhatsApp — προαιρετικά.

Το όνομά σας προαιρετικό
Email προαιρετικό
Θέμα προαιρετικό
Μήνυμα προαιρετικό
Telegram προαιρετικό
@
Αν εισαγάγετε Telegram — θα απαντήσουμε και εκεί.
WhatsApp προαιρετικό
Μορφή: κωδικός χώρας + αριθμός (π.χ. +30XXXXXXXXX).

Πατώντας «Αποστολή» συμφωνείτε με την επεξεργασία δεδομένων.