En pseudöversättning ersätter varje sträng med en igenkännbar låtsastext. I ett
språk som skrivs från vänster till höger får varje bokstav en accent och strängen
blir längre inom hakparenteser: Spara ändringar blir ⟦Šáṽé çĥáñĝéš··········⟧. I ett
språk som skrivs från höger till vänster vänds varje sträng med en riktningsöverskrivning, så
sidan läses från höger till vänster även innan arabiska eller hebreiska finns.
På en sida som återges på det här sättet blir tre problem synliga:
- Vanlig text kommer inte från katalogen: den är inskriven i koden eller skapas vid körning.
- Avklippt text har inte lämnats utrymme för längre språk.
- En layout som inte anpassar sig på en sida som skrivs från höger till vänster använder vänster och höger i stället för start och slut.
Fri frakt på alla beställningar
Spara ändringar⟦Šþáŕá äñðŕíñĝáŕ············⟧Priserna inkluderar skatt.⟦Þŕíšéŕñá íñķļúðéŕáŕ šķáţţ.················⟧
Fri frakt på alla beställningar
Spara ändringarSpara ändringarPriserna inkluderar skatt.Priserna inkluderar skatt.
- Text som inte kommer från katalogen/{locale}/ · p#promo · “Fri frakt på alla beställningar” · runtime_text (de-DE, ar-SA)
- Text som klipps av när den blir längre/{locale}/ · button#save · “⟦Šþáŕá äñðŕíñĝáŕ············⟧” · clipped_text (de-DE)
- Layout som inte spegelvänds för höger-till-vänster-skrift/{locale}/ · p#note · “padding-left: 12px” · unmirrored_layout (ar-SA)
Det här visar de pseudolokaliserade sidorna: samma sida på tyska, där alla strängar har accenter och är längre, och på arabiska, spegelvänd från höger till vänster. Testet markerar text som är inskriven i koden, en knapp där texten kapas och en regel som ligger kvar till vänster. Illustrativa data.
I kontrollen Globalisering
När konfigurationsfilen anger hur appen ska startas, kontrollen Globalisering renderar sidorna vid varje ändring som den kontrollerar. Den arbetar med en kopia av ändringen i kontrollens egen sandlåda, så pseudöversättningen når aldrig ditt repo eller andra kontroller:
- Den skriver in pseudöversättningen på ett språk som skrivs från vänster till höger och ett som skrivs från höger till vänster i projektet.
- Den installerar beroendena och startar appen.
- Den öppnar varje sida på båda språken i en webbläsare inställd på respektive språk och läser av det som visas på skärmen.
- Den stoppar appen och tar bort kopian.
Det den hittar blir kontrollens resultat:
| Kod | Det den hittar |
|---|---|
runtime_text | Synlig text utan pseudomarkeringar |
clipped_text | Pseudotext som klipps av sin behållare, med overflow dolt eller en ellips |
unmirrored_layout | På en sida som skrivs från höger till vänster: en sida som inte är höger-till-vänster, text som vänster- eller högerjusteras eller flyter åt vänster eller höger, eller ett element som placeras, får marginal eller utfyllnad från vänster eller höger |
Samma text som hittas på båda språken räknas som ett resultat. Resultaten visas i uppgiftens Hittade problem med sida, element, text och
språk, till exempel /{locale}/ · p#promo · “Free shipping on every order” · runtime_text (de-DE, ar-SA).
De rapporteras och blockerar ingenting förrän du väljer det. Under Kvalitetskontroll → Globalisering, Rendera sidor stänger du av steget, och Problem på sidor som skickar tillbaka en ändring för åtgärd väljer vilka koder som blockerar.
Om en app inte installeras eller startar rapporteras den som ej renderad, tillsammans med utdata, aldrig som en lyckad rendering. Ändringen hålls bara tillbaka om du blockerar problem på sidor.
Konfigurera
Lägg till world.render i .coroid/i18n.json:
{
"world": {
"render": {
"start": "npm run dev",
"pages": ["/{locale}/", "/{locale}/pricing", "/{locale}/checkout"]
}
}
}| Fält | Betydelse |
|---|---|
start | Startar appen. Den måste lyssna på porten i $PORT; HOST är 127.0.0.1 |
pages | Upp till tio sökvägar från appens rot. {locale} blir språktaggen, så /{locale}/pricing öppnar /de-DE/pricing; använd /?lang={locale} om språket är en frågeparameter |
directory | Appens mapp i repot, när den inte ligger i roten |
install | Kommandot som installerar beroenden. Utan det kör Coroid npm när en package.json anger någon |
locales | Upp till tre målspråk att rendera. Utan detta används det första målspråket som skrivs från vänster till höger och det första som skrivs från höger till vänster |
readyTimeoutMs | Hur lång tid appen får på sig att svara, 120 000 som standard |
Webbläsaren skickar också varje språk som föredraget språk, så en app som
väljer språk utifrån webbläsaren fungerar utan {locale}.
Fältet kräver CLI 1.16.0 eller senare i konfigurationens cli pin; en äldre
motor avvisar konfigurationen.
Det här ingår inte
Kontrollen läser bara det som en person ser. Den hoppar över dolda element, kod
(code, pre, kbd, samp), formulärfältens egna värden och element märkta
translate="no", aria-hidden="true", data-i18n-ignore eller med klassen
notranslate. Ord i konfigurationens world.allow -lista, till exempel produktnamn, rapporteras aldrig som vanlig text.
Text från dina egna data, till exempel produktnamn eller användarinnehåll, översätts inte heller av katalogen. Markera dess behållare som translate="no" eller
data-i18n-ignore, vilket också talar om för webbläsarens översättningsverktyg att låta den vara.
Prova själv
Pseudöversättningen ingår i kommandoradsverktyget. Kör den i ett tillfälligt checkout, eftersom den ersätter språkets översättningar:
coroid-i18n pseudo --locale de-DE # accented and longer
coroid-i18n pseudo --locale ar-SA # reversed, right to left
coroid-i18n pseudo --locale de-DE --style rtl # choose the style yourselfStarta sedan appen och öppna dess sidor på det språket. Platshållare, pluralformer och markup förblir intakta, så appen fungerar som vanligt. Markdown- och MDX-sidor lämnas som de är.