Բազմալեզու ինտերֆեյսներ և տեղայնացում
1) Սկզբունքներ
1. Լեզուն սկին չէ։ Փոխվում են տեքստերը, հասցեները, նամակի ուղղությունը, նկարագրությունը, իրավաբանական բլոկները և նույնիսկ տարհանումը։
2. Սկզբում բանալիները, հետո տեքստերը։ Կառուցեք իմաստալից բանալիներ և պարամետրեր, թարգմանությունները գալիս են ավելի ուշ։
3. Կեղծ մոլոկալիզացիան մինչև ելքը։ Բռնեք լեփ-լեցուն տողերը և թաքնված անգլիցիզմը։
4. Ֆոլբեքները կանխատեսելի են։ «ru-UA 49ru enten»։ Ոչ մի «հանգիստ» ձախողում։
5. Անվտանգություն։ ՈՉ ՄԻ HTML թարգմանությունից DFC առանց altaize; պլեյշոլդերները միայն դիրքային/անվանված են։
6. A11y-համարժեք։ Alt-տեքստերը, aria-պիտակները, կրճատումները, ամեն ինչ տեղայնացվում է։
2) Լոկալների ռազմավարությունը
Express: «language-REGION» (օրինակ ՝ «pt-III», «en-GB»)։
Լոկալի ընտրությունը 'օգտագործողի պրոֆիլը կարգավորում է. պահեստամասը 'զննարկչի/գեոյի (հաստատմամբ)։
Multi-տարածաշրջանը 'առանձնացրեք լեզուն իրավունքից' «es-ES 'no' es-MX» (տարբեր օրենքներ/վճարումներ/լիմիտներ)։
Ֆոլբեք շղթան 'UI-ը ամենամոտ լեզուն է։ իրավական տեքստերը խիստ բյուջետային տարբերակ են, հակառակ դեպքում բլոկը և հաստատման հարցումը։
3) Տեղեկատվական ճարտարապետությունը և բովանդակությունը
Հիմնական ոլորտները 'ռոտացիա, CTA, սխալներ, ձևեր, հուշումներ, ծանուցումներ, նամակներ, PDA/բաններ։
Տեքստային ընդարձակումներ 'լայնության պահուստ + 30-40 տոկոսը (գերմանացի/ֆիններեն)։ Լեյաուտը առաձգական է (flex/grid)։
Թոն/ոճ 'բրենդի բառարանը (տերմինները, առանց «ժարգոնի թարգմանության» կրիտիկական վայրերում)։
Պատկերներ/պատկերներ 'խուսափեք նկարներում տեքստից։ եթե դա անհրաժեշտ է, պահեք տեղական տարբերակները։
4) i18n ճարտարապետությունը i18n
Բանալիներ ՝ "domain. section. intent` → `payments. withdraw. error. insufficient_funds`.
Plaisholders: Անվանված («com amount =», «+ minutes +»), պատրաստված է տողից դուրս։
ICU Live Corpat 'բազմազանություն, սեռ, ռուսական։
Ֆայլերը ՝ լոկալներով և սուլֆամիններով («/i18n/+ www.ale +/+ domain cod.json »), չանկերը բեռնում են ծովը։
Սերվերը/հաճախորդը 'համընդհանուր ռենդեր, cookie + HTP-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');
Մինորի միավորներ 'պահեք գումարները կենտրոններում/կոպեկներում։ Տեղադրեք տեսահոլովակի վրա։
Հարաբերական ժամանակը '"Intl. RelativeTimeFormat`.
Միավորներ ՝ "Intl. NumberFormat({ style:'unit', unit:'meter' })`.
Օրացույցը/շաբաթ 'շաբաթվա 1-ին օրը և ամսաթիվը' լոկալներով։
6) RTL և նամակի ուղղությունը
Աջակցեք 'dir = «rtl»' «ar», «he», «fa»; օգտագործեք 'dir = «dim»' բովանդակության կոդավորման համար։
Օգտագործեք iconks/chev.ru 'a; հայելիներ և տափաստաններ։
Արժույթների թվերը/խորհրդանիշները LTR պատուհաններն են (խուսափեք խառը BiDi քաոսից)։
CSS տրամաբանական հատկությունները («inme-start/end») left/right փոխարեն։
7) Ձևերն ու շահագործումը
Անուններ/անուններ: Թույլ տվեք ապոստրոֆներ/դիակրիտիկա/կրկնակի անուններ։
Հեռախոսներ ՝ E.64 պահեստավորում; դիմակները փափուկ են, աջակցության հետ։
Հասցեային կոմպոզիցիաները 'երկրի վրա դաշտերի կարգը; / պետությունը կարող է բացակայում։
Ստեղնաշարերը ՝ «inputmode», «autocomplete» ճիշտ են լոկալի համար։
Պլեյշոլդերներ 'օրինակներ տեղական լեզվով/ձևաչափով։
8) Կեղծ մոլոկալիզացիան և փորձարկումը
Ինքնաբերաբար փոխարինեք տողերը 'www.Express wwindw.orld' + + + (3535%)։
Միացրեք կեղծ մոլոկալը dev հավաքածուի մեջ որպես «qps-ploc»։
Սկրինշոտները թարգմանիչների համար համատեքստով 'պլեյշոլդերի լուսավորություն և երկար տեքստեր։
Փորձարկեք 'կտրվածքներ, փոխանցումներ, լցումներ, «կոշտ» տողեր, RTL։
9) Ծանուցումներ, նամակներ, ձևանմուշներ
Նամակներ և թեմաներ 'յուրաքանչյուր մետրոպոլիտենի վրա։ բաժանեք տեքստերը և տակառը։
Թեմայում/գումարները լուծվում են լոկալներով։
«Ծանուցումները» հղումները միշտ նամակի լեզվով են։
SMS 'հակիրճ, առանց բազմաշերտ շապիկների; UTM-ն առանց ռուսական ռուբլիա է։
10) Անվտանգությունն ու անվտանգությունը
Երբեք մի մեկնաբանեք թարգմանությունը որպես HTML, օգտագործեք ապահով ապրանքներ։
Պլեյշոլդերները միայն տվյալներ են, ոչ գծագիր։
Logs/metriks - անսահման, բայց տեղական հետ խնդիրների թրեյսինգի համար։
Թարգմանությունների ֆայլի անհասանելիության դեպքում ֆոլբեքը «հանգիստ» է (ցույց տվեք անգլերեն + հեռաչափություն)։
11) Արտադրողականությունը
Թարգմանությունների չանկերը երթուղիներով/ենթախմբերով։ ծանրաբեռնվածություն հաճախորդների համար։
Кеш CDN с `ETag`/`Cache-Control`.
Խուսափեք ռենենդերներից, երբ լոկալները փոխվում են, i18n համատեքստը մեմոիզացիայի հետ։
12) iGaming հատկությունները
Դիսկլեյմերը և պատասխանատու խաղը 'ձևակերպումները կախված են երկրից (18 +/21 +, կարգավորող օրգաններ, օգնության գծեր)։
KYC/AML: իրավաբանորեն ճիշտ տերմինները (օրինակ «Միջոցների աղբյուրը», «Էքսպորտային սեփականատերը»), դեպքերի/ծննդաբերության տարբերակները։
Հիբրիդային մեթոդներ ՝ տեղական անուններ (PIX, Papara, SEPA) և պայմանները (ET/2019) - խիստ տարածաշրջանով։
Գործակիցները և ձևաչափերը ՝ «decimal/fractional/american» տեղական բացատրություններ և օրինակ։
Իրավաբանական տեքստերը 'անփոփոխ տարածաշրջանային տարբերակներ; ֆոլբեքի արգելքը այլ միգրացիայի վրա։
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) Սնիպետներ
React + 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/ucr)
json
{
"notifications": "{count, plural, one {# уведомление} few {# уведомления} many {# уведомлений} other {# уведомления}}"
}
Intle-ը արժույթների/ամսաթվերի համար
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';
Pissdolocal (dev)
js const pseudo = s => s.replace(/[aAeEiIoOuU]/g, m => ({a:'à',e:'ê',i:'ï',o:'ô',u:'û'}[m.toLowerCase()] m)).replace(/([^\s])/g,'$1\u0301');
15) Դատարկ/սխալներ/գրեյսֆուլ դեգրադացիա
Չկա ստեղնաշարի թարգմանություն, մենք ցույց ենք տալիս անգլերեն + տրամաբանություն «missing _ key»։
Լոկալի ֆայլեր չկան 'ֆոլբեկ և «Մի մասը անգլերենով»։
Չափազանց երկար տեքստ 'բազմաշերտ, «108-clamp» տեղում, tooltip ամբողջական տեքստով։
16) Մետրիկները և որակի վերահսկումը
Coverage տոկոսը բաների/լոկալների վրա (24.98%)։
Time-to-Translate (TTT) նոր ֆորումների համար։
Bug rate L10n: տեսողական կտրվածքներ, RTL թերություններ, սխալներ։
Reading ease (սուբյեկտիվ հետազոտություն) և NPS per delale-ը։
Իրավաբանական վալիդացիա տարածաշրջաններում (checlist complaens)։
17) Անտիպատերնի
Կոդի տողերի առանձնահատկությունը ("Դուք հաղթեցիք" + amount + ") կոտրում է քերականությունը։
Տեքստը պատկերներում/սրբապատկերներում առանց տեղական տարբերակների։
Կոշտ լայնությունները անգլերենի տակ։
Երկրի իրավունքները փոխելը լեզուն (օգտագործել 'es-ES' Ռուսաստանի համար)։
Թարգմանությունը HTML-ից առանց Altaise-ի։
Նույն բանալին տարբեր պատկերներով տարբեր տեղերում։
18) QA-chek-թերթ
Տողեր և բանալիներ
- Անվանված պլեյշոլդերներ; ոչ մի առանձնահատկություն չկա։
- ICU պլուրալիզացիա/սեռ որտեղ պետք է։
- Ֆոլբեք շղթան աշխատում է։
Լեյաուտը և հասանելիությունը
- Լայնության պլանավորումը + 30-40%; «07-clamp», բառերի փոխանցումը։
- Alt/aria պիտակները տեղայնացված են։
- RTL հայելիտ/ռոտացիա; թվերը կարդացված են։
Մոսկվան
- Ամսաթվերը/արժույթը «Intl.»; մինորական միավորներից գումարներ։
- Հասցեն/հեռախոսը/անունը երկրում ճկուն կանոններ են։
Անվտանգություն/պերֆորմացիա
- Թարգմանությունները չեն կատարում HTML; XIV-ը բացառված է։
- Ծույլ չանկերը, քեշ CDN, առանց ավելորդ ռենտենդերների։
Igaming հատկություն
- Դիսկլեյմեր/18 +/օգնության գծեր 'իրավասությամբ։
- KYC/AML տեքստերը իրավաբանորեն նշված են։
- Հիբրիդային անունները/ETA/2019 տեղական են։
19) Մոսկվա դիզայնի համակարգում
Գործիքներ ՝ կեղծ մոլոկալ, էկրանների սկրինշոթեր, coverage, ոսպնյակների զեկույց։
Разделы: i18n Tokens, Guides (ICU/Plural/RTL), Patterns (Emails/SMS/Toasts), Legal Strings per Region.
Գործընթացը 'գլոսարիա, Translation Memory, կոնտեքստային սկրինշոտներ, լեզվի նախանձը։
Ռուսական ռեզյումե
Բազմալեզու UI-ն ճարտարապետության, դիզայնի, բովանդակության և իրավունքի մակարդակում համակարգային աշխատանք է։ Կազմակերպեք բանալիներ և ֆոլբեկներ, օգտագործեք ICU և «Intl», աջակցեք RTL-ին, նախօրոք գայթակղեք կեղծ-մոլոկալը և ապահովեք տարածաշրջանային ձևակերպումների իրավաբանական ճիշտ։ Այդ ժամանակ ապրանքը կլսվի, գործակիցներից և վճարումներից մինչև նամակներ և վկայագրեր, յուրաքանչյուր երկրում և յուրաքանչյուր օգտագործողի համար։