GH GambleHub

ממשקים רב ־ לשוניים ומיקום

1) עקרונות

1. שפה היא לא עור. טקסטים, פורמטים, כיוון הכתיבה, איורים, בלוקים משפטיים ואפילו ניווט משתנים.
2. קודם המפתחות, אחר כך ההודעות. מפתחות סמנטיים מבנה ופרמטרים - תרגומים לבוא מאוחר יותר.
3. פסאודולוקליזציה לפני היציאה. לתפוס עודף, ”תפור קשה” קווים וזוויות נסתרות.
4. עממיים הם צפויים. ”Ru-UA = ru = en”. אין כישלונות ”שקטים”.
5. אבטחה. אין HTML מתרגום ל-DOM ללא חיטוי; בעלי מקומות הם תנאי/שם בלבד.
6. A11y-equivalence. טקסטים, תוויות אריה, קיצורים - הכל מקומי.


2) אסטרטגיה מקומית

קודי מערכת: ”language-Region” (לדוגמה, ”pt-BR”, ”en-GB”).
בחירת locale: profile ach setting; חילוף - זיהוי אוטומטי על ידי דפדפן/geo (עם אישור).
Multi-region: להבדיל בין שפה לחוק: es-Es' es' es-MX "(חוקים/תשלומים/גבולות שונים).
שרשרת פולבק: UI היא השפה הקרובה ביותר; טקסטים משפטיים - גרסה אזורית בלבד, אחרת חסימה ובקשת אישור.


3) ארכיטקטורת מידע ותוכן

אזורי מפתח: ניווט, CTA, באגים, טפסים, דואר, הודעות, אותיות, PDF/באנרים.
הרחבות טקסט: + 30-40% רוחב שמורה (גרמנית/פינית). פריסה - גמישות (גמישות/רשת).
טון/סגנון: מילון מותג (מונחים, ללא ”תרגום סלנג” במקומות קריטיים).
תמונות/סמלים: הימנעו מטקסט בתמונות; אם צריך, לשמור גרסאות מקומיות.


4) ארכיטקטורה i18n

מפתחות: 'דומיין. סעיף. כוונה ”תשלומים”. לסגת. שגיאה. insufficient_funds'.
בעלי המיקום: (”[סכום]”, ”[דקות]”), פורמט מחוץ לקו.
תבנית טיפול נמרץ: ריבוי, מגדר, קונקורדנציה.
קבצים: על ידי מיקום ותחומים ('/i18n/@ locale/domain '. json'), נתחים נטענים בעצלות.
שרת/לקוח: מעבד אוניברסלי, מיקום בעוגייה + HTTP-Vary.

מפתח לדוגמה (טיפול נמרץ):
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');

יחידות קטנות: שמור סכומים בסנטים/קופקים; תבנית על הלקוח.
זמן יחסי: "Intl. פורמט ” טיים”.
יחידות: "Intl. תבנית Members (סגנון: ”יחידה”, יחידה: ”מטר”).
לוח שנה/שבוע: יום ראשון בשבוע ופורמט תאריך - לפי מקום.


6) RTL וכיוון כתיבה

תמיכה "dir" = "rtl" "עבור" ar "," he "," fa "; השתמש ”dir =” אוטומטי ”” לתוכן מותאם אישית.
סמלים הפוכים/שברונים; קרוסלה ומראות.
מספרי מטבע/סמלים - חלונות LTR (הימנעו מכאוס מעורב של BiDI).
מאפייני CSS Boolean ('inline-start/end') במקום שמאל/ימין.


7) צורות וקלט

שמות/כתובות: אפשר גרשיים/דיאקריטיים/שמות משפחה כפולים.
טלפונים: אחסון E.164; מסכות - רכות, עם תמיכת הכנסת.
פורמטים כתובות: סדר שדה על ידי מדינה; אינדקס/מדינה עשויה להיות חסרה.
מקלדות: 'inputmode', 'אוטומפלט' נכון למקום.
ממלא מקום: דוגמאות בשפה/תבנית מקומית.


8) פסאודולוקליזציה ובדיקה

החלף באופן אוטומטי את השורות ב- ”【 echanger _ 】” + extension ”+ +” (~ 35%).
כלול את הפסאודולוקאל בהרכבת dev כ ”qps-plock”.
צילומי מסך עם הקשר למתרגמים: הדגשת בעלי מקומות וטקסטים ארוכים.
בדיקה: קישוטים, מקפים, עודפים, מחרוזות ”קשיחות”, RTL.


9) הודעות, מכתבים, תבניות

תבנית של אות ונושא - לכל מקום; טקסטים ועריכה נפרדים.
תאריכים/כמויות בנושא - עוצב על ידי מקום.
קישורי ההגדרות הם תמיד בשפת האות.
SMS: קצר, ללא ציטוטים מרובי שורות; אין לוקליזציה.


10) בטיחות ואמינות

לעולם אל תפרש את התרגום כ ־ HTML, השתמש בכניסות בטוחות.
בעלי מקומות - רק נתונים, לא סימון.
יומנים/מדדים הם לא מסווגים, אבל עם מקום להתחקות אחר בעיות.
Folback כאשר קובץ התרגום אינו זמין - ”שקט” (הצג אנגלית + טלמטריה).


11) ביצועים

נתחים של העברות על ידי מסלולים/תחומים; טעינה מראש לתדירות.
CDN תחת השם "ETag "/" Cache-Control'.
הימנע משינויים בעת שינוי מיקום - i18n הקשר עם זיכרון.


12) הפרטים של iGaming

מכרזים ומשחק אחראי: הניסוח תלוי במדינה (18 +/21 +, רשויות רגולטוריות, קווי עזרה).
KYC/AML: מונחים נכונים מבחינה משפטית (לדוגמה, ”מקור הכספים”, ”בעלים מועילים”).
שיטות תשלום: שמות מקומיים (PIX, Papara, SEPA) ותנאים (ETA/comminations) - אך ורק לפי אזור.
מקדמים ופורמט: ”עשרוני/שברי/אמריקאי” - הסברים מקומיים ודוגמה.
טקסטים משפטיים: גרסאות אזוריות ללא שינוי; לגרש פולבק מתחום שיפוט אחר.


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) קטעים

תגובה + i18next (מגף עצלן, טיפול נמרץ):
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);
}
פלורליזציה בטיפול נמרץ (rus/ukr):
json
{
"notifications": "{count, plural, one {# уведомление} few {# уведомления} many {# уведомлений} other {# уведомления}}"
}
אינטל עבור מטבעות/תאריכים:
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';
פסאודולוקאל (dev):
js const pseudo = s => s.replace(/[aAeEiIoOuU]/g, m => ({a:'à',e:'ê',i:'ï',o:'ô',u:'û'}[m.toLowerCase()]        m)).replace(/([^\s])/g,'$1\u0301');

15) ריקה/שגיאה/הידרדרות אפרפר

אין תרגום מפתח: אנו מראים אנגלית + לוג ”חסר _ key”.
אין קובץ מיקום: folback ו-banner ”חלק מהממשק באנגלית”.
טקסט ארוך מדי: רב-קו, ”קו-מלחציים” במקום, כלים עם טקסט מלא.


16) מדדים ובקרת איכות

כיסוי% על ידי מפתח/מיקום (יעד - 98%).
Time to-Translate (TTT) עבור שחרור חדש.
קצב באגים L10n: גזרי ראייה, פגמי RTL, פורמטים שגויים.
קל קריאה (סקר סובייקטיבי) ו-NPS לכל מקום.
אימות חוקי לפי אזור (רשימת ציות).


17) תרופות אנטי ־ פטריות

התמזגות של מחרוזות בקוד (”ניצחת” + כמות + ”!”) - שובר דקדוק.
טקסט בתמונות/סמלים ללא גרסאות מקומיות.
רוחב קשה לאנגלית.
החלפת חוקי המדינה עם השפה (השתמש ב-eS למקסיקו).
תרגום HTML מ-CMS ללא תברואה.
אותו מפתח עם משמעויות שונות במקומות שונים.


18) רשימת QA

שורות ומפתחות

[ ] שמות בעלי מקומות; אין קונסטלציה.
[ ] טיפול נמרץ פלורליזציה/סוג במקום הדרוש.
[ ] שרשרת הפולבק עובדת.

פריסה וזמינות

[ ] מרווח + 30-40%; ”קו-מלחציים”, עטיפת מילים.
[ ] תוויות אלט/אריה הן מקומיות.
[ ] RTL מראות סמלים/ניווט; מספרים ניתנים לקריאה.

תבניות

[ ] תאריכים/מטבעות דרך 'Intl. '; כמויות מיחידות קטנות.
[ כתובת ]/טלפון/שם - כללי מדינה גמישים.

בטיחות/ביצועים

[ תרגומי ] אינם מוציאים לפועל את האצ "ל; אקס-אס לא נכללו.
[ ] נתחים עצלים, מטמון CDN, ללא חוזרים מיותרים.

iGaming-port

[ ] Disclaimers/18 +/קווי עזרה - על פי סמכות שיפוטית.
[ ] טקסטים של KYC/AML מפויסים באופן חוקי.
[ ] שמות תשלום/ETAs/עמלות - מקומי.

19) תיעוד במערכת התכנון

i18n Tokens, מדריכים (טיפול נמרץ/ברבים/RTL), תבניות (מיילים/SMS/טוסט), מחרוזות משפטיות לכל אזור.
כלים: פסאודולוקאלי, צילום מסך של מסכים, סיקור דו "ח, מקש מפתח.
תהליך: גלוסרי, זיכרון תרגום, צילומי מסך קונטקסטואליים, סקירה על ידי דובר ילידי.


סיכום קצר

UI רב-לשוני היא עבודה שיטתית ברמת האדריכלות, העיצוב, התוכן והמשפט. ארגן מפתחות ופולבקים, השתמש בטיפול נמרץ ו-INTL, תמוך ב-RTL, הפעל פסאודו-לוקאל מראש ולהבטיח את התקינות החוקית של הניסוח האזורי. אז המוצר ירגיש מקומי - ממקדמים ותשלומים למכתבים ועזרה - בכל מדינה ובכל משתמש.

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.