Sådan oversætter du RTL-sprog i WordPress: Arabisk, hebraisk, persisk

Du er lige blevet færdig med at oversætte dit WordPress-tema til arabisk. Du uploader .mo-filen, skifter sproget på siden, og resultatet er ulæseligt. Teksten flyder over til venstre, knapper overlapper hinanden, og dit omhyggeligt designede layout ser ud som om, det er blevet kørt gennem en makulator.
Velkommen til verden af Right-to-Left (RTL)-sprog – hvor oversættelse kun er halvdelen af kampen.
Arabisk, hebraisk og persisk (farsi) er blandt de mest udbredte sprog på jorden. Arabisk alene har over 400 millioner indfødte talere. Hvis dit WordPress-site ignorerer disse målgrupper, går du glip af seriøse penge. Men at betjene dem kræver mere end bare at udskifte engelske ord med arabiske. Det kræver, at du nytænker hele din layoutretning.
Denne guide dækker alt, hvad du har brug for at vide: hvordan RTL fungerer i WordPress, hvordan du retter din CSS, hvordan du håndterer .po-filer med RTL-strenge, og hvordan du undgår de mest almindelige faldgruber.
Hvordan RTL fungerer i WordPress
WordPress har indbygget RTL-support. Når du indstiller dit sprog på siden til arabisk (ar), hebraisk (he) eller persisk (fa), tilføjer WordPress automatisk dir="rtl" til <html>-tagget og indlæser et rtl.css-stylesheet, hvis dit tema har et.
Dette er teorien. I praksis leveres de fleste temaer med minimal eller ødelagt RTL-support.
Hvad ændrer sig rent faktisk
Når RTL-tilstand aktiveres, spejler browseren hele sidelayoutet:
- Teksten flyder fra højre mod venstre.
- Sidebjælkerne bytter side.
- Navigationsmenuerne vender rækkefølgen.
- Padding- og margin-værdier vendes (venstre bliver højre).
- Ikoner med retningsbestemt betydning (pile, vinkler) skal spejles.
Hvis dit temas CSS kun er skrevet til LTR, kæmper hver margin-left, padding-right, float: left og text-align: left-deklaration nu mod browserens RTL-motor.
Sådan retter du din CSS til RTL: En praktisk guide
Den reneste tilgang er at bruge CSS Logical Properties, som automatisk tilpasser sig dokumentets skriveretning. I stedet for left og right bruger du inline-start og inline-end.
Før: Fysiske egenskaber (bryder i RTL)
/* LTR-only CSS -- breaks in Arabic */
.sidebar {
float: left;
margin-right: 20px;
}
.nav-arrow {
padding-left: 10px;
text-align: left;
}
.card {
border-left: 3px solid #0073aa;
}
Efter: Logiske egenskaber (fungerer i begge retninger)
/* Direction-agnostic CSS -- works in both LTR and RTL */
.sidebar {
float: inline-start;
margin-inline-end: 20px;
}
.nav-arrow {
padding-inline-start: 10px;
text-align: start;
}
.card {
border-inline-start: 3px solid #0073aa;
}
Med logiske egenskaber skriver du din CSS én gang, og den fungerer korrekt på både engelsk og arabisk uden nogen tilsidesættelser.
Metoden [dir="rtl"]-tilsidesættelse
Hvis du ikke kan refaktorere hele dit stylesheet, kan du målrette RTL specifikt ved hjælp af attributvælgere:
[dir="rtl"] .sidebar {
float: right;
margin-left: 20px;
margin-right: 0;
}
[dir="rtl"] .nav-arrow {
padding-left: 0;
padding-right: 10px;
text-align: right;
}
Dette fungerer, men det fordobler din vedligeholdelsesbyrde. Hver gang du opdaterer dine LTR-stile, skal du også opdatere RTL-tilsidesættelserne.
Oversættelse af PO-filer med RTL-strenge
Selve oversættelsen introducerer udfordringer, der går ud over layoutet. RTL-sprog har unikke karakteristika, der får de fleste automatiserede værktøjer til at snuble.
Tovejs tekst (Bidi) i PO-filer
Den virkelige kompleksitet opstår, når RTL- og LTR-tekst blandes i en enkelt streng. Overvej dette almindelige WordPress-mønster:
msgid "Powered by %s"
msgstr "مدعوم بواسطة %s"
%s-pladsholderen erstattes med et engelsk produktnavn som "WooCommerce." I den gengivne output skal browseren vise arabisk tekst, der flyder fra højre mod venstre, derefter skifte til venstre mod højre for det engelske ord og derefter potentielt skifte tilbage.
Dette kaldes tovejs tekst (eller "bidi"), og det håndteres af Unicode Bidirectional Algorithm. For det meste fungerer det automatisk. Men når du har flere pladsholdere eller tal ved siden af RTL-tekst, kan den visuelle rækkefølge blive uforudsigelig.
Almindelige oversættelsesfejl
Generiske oversættelsesværktøjer laver flere RTL-specifikke fejl:
-
Omvendt pladsholder-rækkefølge. En streng som
%1$s ud af %2$skan få pladsholderne byttet, fordi AI'en omordner dem, så de matcher arabisk grammatik. Dette giver forkert output som "10 ud af Side" i stedet for "Side ud af 10." Lær mere om beskyttelse af kodevariabler under oversættelse. -
Ødelagt HTML-retning. Hvis din streng indeholder inline HTML som
<span dir="ltr">, kan en naiv oversætter fjernedir-attributten eller oversætte den. -
Manglende pluralformer. Arabisk har seks pluralformer – nul, én, to, få, mange og andre. Dette er det mest komplekse pluralsystem af alle sprog, som WordPress understøtter. Et værktøj, der kun genererer to former (som engelsk singular/plural), vil efterlade din arabiske
.po-fil ødelagt. For en dybdegående gennemgang af, hvordan Gettext-pluraler fungerer, se vores guide om kompleks pluralisering i WordPress.
Her er, hvordan en korrekt oversat arabisk pluralstreng ser ud i en .po-fil:
# Arabic: nplurals=6
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "لا تعليقات"
msgstr[1] "تعليق واحد"
msgstr[2] "تعليقان"
msgstr[3] "%d تعليقات"
msgstr[4] "%d تعليقًا"
msgstr[5] "%d تعليق"
Hvis nogen af disse seks former er tomme eller forkerte, vil WordPress falde tilbage til den engelske streng for det specifikke antal. Dine brugere vil se "5 comments" på engelsk spredt ud over en ellers fuldt arabisk grænseflade.
Test af din RTL-implementering
Oversættelse og rettelse af CSS er ikke nok. Du skal verificere resultatet i en rigtig browser.
En hurtig test-tjekliste
- Skift WordPress-sproget til arabisk i Indstillinger > Generelt. Du skal ikke bare tilføje
dir="rtl"manuelt – brug den rigtige sprogindstilling, så WordPress indlæser sine egne RTL-tilsidesættelser. - Kontroller navigationsmenuerne. Er de spejlet? Åbnes rullemenuerne i den rigtige retning?
- Inspicer formularfelter. Inputtekst skal flyde fra højre mod venstre. Pladsholdertekst skal være højrejusteret.
- Bekræft indhold med blandet retning. Strenge, der indeholder både arabisk og engelsk (som brandnavne eller webadresser), skal gengives i den korrekte visuelle rækkefølge.
- Test på mobil. RTL-layoutfejl er ofte mere alvorlige på mindre skærme, hvor der er mindre plads til justeringsfejl.
Hvis dine oversættelser ikke vises overhovedet, kan problemet være irrelevant for RTL – kontroller først din .mo-filkompilering og filstier.
Browserudviklerværktøjs-trick
I Chrome DevTools kan du midlertidigt tvinge RTL på en hvilken som helst side uden at ændre WordPress-indstillinger:
/* Paste in DevTools console as: document.documentElement.dir = 'rtl' */
html {
direction: rtl;
}
Dette giver dig et hurtigt eksempel på, hvordan dit tema håndterer RTL, før du overhovedet begynder at oversætte.
Automatisering af RTL-oversættelse på den rigtige måde
Manuel oversættelse af RTL-sprog er dyrt og langsomt. Professionelle arabiske oversættere opkræver premiumpriser, og det er svært at finde nogen, der forstår både sproget og WordPress-specifik Gettext-syntaks.
SimplePoTranslate løser dette med en Context-Aware AI-motor, der forstår RTL-specifikke udfordringer naturligt:
- Alle seks arabiske pluralformer genereres automatisk. Vores motor læser
Plural-Forms-headeren i din.po-fil og producerer præcis det antal former, dit målsprog kræver. Ingen tommemsgstr-slots, ingen engelske fallbacks. - Pladsholdersikkerhed. Variabler som
%s,%dog%1$ser låst under oversættelsen. AI'en kan ikke omordne, slette eller korrumpere dem – selv når arabisk grammatik antyder en anden ordrækkefølge. Læs mere om, hvordan syntakslåsning beskytter din kode. - Tovejs kontekst. AI'en forstår, at strenge med blandet retning kræver særlig håndtering og bevarer HTML-retningsattributter.
Uanset om du lokaliserer et blogtema til et hebraisk publikum eller oversætter en komplet WooCommerce-butik til persisk, er processen den samme: upload din .po-fil, vælg dit målsprog, og download den oversatte fil. Hele arbejdsgangen tager minutter, ikke dage.
For en komplet gennemgang af WordPress-lokaliseringsprocessen, se vores ultimative guide til WordPress-lokalisering.
Stop med at behandle RTL som en eftertanke
Right-to-left-sprog repræsenterer over en milliard potentielle brugere. Arabisk er det femte mest talte sprog i verden. Hebraisk og persisk betjener kritiske markeder i Mellemøsten og Centralasien.
Hvis dit WordPress-site ikke kan betjene disse brugere med en poleret, indfødt følelse, vil de finde en konkurrent, der kan.
Den gode nyhed: WordPress har allerede infrastrukturen. Dit tema har bare brug for korrekt CSS, og dine .po-filer har brug for et oversættelsesværktøj, der respekterer kompleksiteten af RTL-sprog.
Klar til at oversætte dit WordPress-site til arabisk, hebraisk eller persisk? Start gratis på SimplePoTranslate.com