Een Arabische boekingssite is geen vertaling

Een reisbureau in Amsterdam zet Arabisch aan, kijkt naar de homepage en vindt het klaar. Twee weken later stuurt een klant een tariefkoppeling via WhatsApp door naar haar zus, en die komt aan als een muur van procenttekens. Iemand anders belt omdat het totaal staat aan wat voor haar de verkeerde kant van de prijs is. Een derde boekt Amsterdam–Dubai op de verkeerde dag, omdat de kalender de week op maandag begint. Geen van drieën is een vertaalfout. Een Arabische boekingssite is een opmaak, een cijfersysteem en een URL-schema voordat het een verzameling teksten is — en de teksten worden eerst gedaan, omdat dat het deel is dat je op een screenshot ziet.
Dit verandert er werkelijk, ruwweg in de volgorde waarin reisbureaus erop stuiten.
RTL is een opmaakbeslissing, geen tekstrichting
Met dir="rtl" spiegelt de pagina: de navigatie schuift naar rechts, de filterkolom naar links, alinea's lijnen rechts uit. Dat deel is bijna gratis. Duur is alles wat juist niet mag spiegelen.
Vluchttijden spiegelen niet: 07:45 blijft 07:45. Een traject dat als AMS–DXB leest, moet ook binnen een alinea die van rechts naar links loopt in die volgorde als route te lezen zijn, want de vertrekluchthaven blijft de vertrekluchthaven welke kant de zin ook op gaat. Airlinecodes, PNR's en e-ticketnummers zijn Latijnse reeksen midden in Arabische zinnen; worden ze niet geïsoleerd, dan herschikt het bidirectionele algoritme van de browser de leestekens eromheen, en een record locator gevolgd door een punt kan met die punt aan de verkeerde kant verschijnen. Voor een klant is dat een typefout in haar boekingsnummer. Je logo spiegelt niet. Een afspeeldriehoek spiegelt niet. Een terugpijl wel.
Dan de dingen die niemand opsomt tot een klant erover begint: de volgorde van valutateken en getal, de stapindicator door de boekingstrechter, de stoelkaart, de richting waarin een carrousel draait, aan welke kant van een resultaatregel het logo van de maatschappij staat, en vanaf welke rand een brede tarieftabel scrollt. Stuk voor stuk een beslissing. Geen ervan een vinkje.
Cijfers, data en de kalender die je klant echt in handen heeft
Arabisch wordt geschreven met twee cijferreeksen die allebei gewoon in gebruik zijn, en reizen bestaat uit cijfers: tarieven, tijden, reisduur, bagagefranchise, kaartvelden, OTP-codes. Welke reeks jouw markt leest, beantwoord je één keer, met je eigen klanten, en pas je daarna zonder uitzondering toe. De zichtbare fout is niet de minder gangbare kiezen. Het is ze mengen — de prijs in de ene en de vertrektijd in de andere op dezelfde resultaatkaart — wat leest als een half afgemaakte site.
Data dragen meer aannames dan cijfers. Een week die op maandag begint klopt niet voor een klant wiens week op zondag begint, en een kalender die op de verkeerde dag opent veroorzaakt precies één soort fout: een boeking één kolom ernaast. Wie de Umrah plant, rekent in een Hijri-maand en niet in een gregoriaanse; de Hijri-datum naast de gregoriaanse tonen in de datumkiezer en op de reisroute kost niets en scheelt een telefoontje. Hem overal tonen, op een zakenreis naar Frankfurt, is ruis.
Wat een Arabische boekingssite goed moet doen
Het gat tussen een vertaalde en een gelokaliseerde site zit per scherm, niet in één knop. Dit is de lijst waarover het de moeite waard is met je ontwikkelaar te ruziën:
| Onderdeel | Alleen vertaald | Echt gelokaliseerd |
|---|---|---|
| Passagiersnaam | Veldlabels in het Arabisch | Invoer in Latijns schrift, gelabeld zoals het in het paspoort staat, want dat is de naam die de maatschappij in de PNR heeft |
| Data | Maandnamen in het Arabisch | De eerste weekdag van de lezer, zijn cijfers, Hijri naast gregoriaans waar de reis erom vraagt |
| Geld | De valutanaam vertaald | De standaardvaluta van de markt, en de lijst waarin je echt verkoopt |
| Telefoon en OTP | Labels in het Arabisch | Landnummer van de markt voorgeselecteerd, Latijnse cijfers in het veld, code in één oogopslag leesbaar |
| Luchthavens en steden | Namen in het Arabisch | Arabische naam met de Latijnse IATA-code er nog bij, want een sub-agent typt DXB en een reiziger leest Arabisch |
| URL's | De titel vertaald | Eén slugbeleid per taal, één keer vastgelegd |
| Typografie | De Arabische systeemfallback | Een Arabisch lettertype gekozen op zijn cijfers en op kleine corpsen, niet een Latijns font met Arabisch erachter geleend |
| Contact | Een vertaalde contactpagina | Een nummer dat een klant in die markt echt kan bellen, op uren dat hij wakker is |
De naamregel kost echt geld, en is de regel die het vaakst fout staat. Een reiziger typt zijn naam in het Arabisch omdat het formulier dat uitnodigde, het ticket wordt op die reeks uitgegeven, en die komt niet overeen met het paspoort dat de maatschappij controleert. Alles stroomafwaarts — de herafgifte, de discussie, de restitutie — landt bij jou en niet bij de vervoerder.
De typografieregel is goedkoper dan hij lijkt. Op dit platform is het thema, inclusief fonts, kleuren en logo, vanuit het beheerpaneel te wisselen zonder nieuwe deploy, dus een ander Arabisch lettertype tegen je eigen tarieftabel proberen is een middag, geen release. De valutaregel is een onderwerp op zich; die namen we door in prijzen in meerdere valuta en waar de marge weglekt.
Slugs, en wat een WhatsApp-plakactie overleeft
Een Arabische slug staat prachtig in de adresbalk en bestaat uit de woorden die mensen echt in een zoekveld typen. Gekopieerd naar een platte-tekstveld wordt hij percent-gecodeerd en meerdere malen zo lang, en wat je klant doorstuurt ziet eruit als machineoutput. Een Latijnse transliteratie plakt netjes en is voor iedereen onleesbaar — hij komt met niets overeen wat een Arabische lezer zoekt en met niets wat een Nederlandse lezer zoekt.
Splits de beslissing naar waar de URL voor dient. Een inhoudspagina leeft van zoekverkeer, dus geef die de slug in Arabisch schrift; de gecodeerde vorm verschijnt alleen als iemand hem kopieert, en de pagina waar hij belandt klopt hoe dan ook. Een boekingsdeeplink — een zoekresultaat, een vastgehouden tarief, een offerte aan een sub-agent — wordt toch nooit mooi, want hij draagt sowieso datums en aantallen passagiers in de query string. Geef die een korte link en laat hem kort.
De regel onder allebei: één canonieke URL per pagina per taal. Hetzelfde artikel publiceren op een Arabische én een getranslitereerde slug splitst alles wat die pagina verdient over twee adressen en laat jou er twee onderhouden.
hreflang, of je Arabische pagina concurreert met je Engelse
Twee taalversies van één pagina zijn geen twee pagina's. Kan een crawler dat niet zien, dan is de gebruikelijke uitkomst geen straf — het is dat één versie wordt gekozen en de andere als bijna-duplicaat stil wordt weggelaten.
Vier dingen houden ze uit elkaar. Elke taal heeft een eigen URL nodig, wat één adres met een JavaScript-schakelaar uitsluit. Elke versie noemt alle talen inclusief zichzelf, want een set die niet naar zichzelf terugwijst wordt in zijn geheel genegeerd. De canonical van elke pagina wijst naar zichzelf, niet naar het Engelse origineel — Arabische pagina's die naar het Engels canonicaliseren is de snelste manier om helemaal geen Arabische pagina's geïndexeerd te krijgen. En x-default gaat naar waar je een lezer zonder match wilt laten landen.
Splits niet in ar-AE en ar-SA tenzij die pagina's echt verschillen: andere valuta, ander telefoonnummer, andere voorraad. Twee regionale varianten van identieke tekst zijn twee pagina's die om dezelfde zoekopdracht strijden, met jouw naam op allebei.
Wat het kost als dit misgaat
De uitval gebeurt niet op de homepage. Hij gebeurt bij de passagiersgegevens, de duurste plek in de trechter om iemand kwijt te raken: ze hebben al gezocht, gekozen, de prijs gezien en geaccepteerd, en jij hebt de zoekopdracht die hen daar bracht al betaald.
De rest van de kosten is stiller. Elke verwarde beller is een personeelsminuut die je online ging om te besparen. Elke naam die niet klopt is een herafgifte en een klant die jou de schuld geeft in plaats van de maatschappij. En een Arabische pagina die nooit geïndexeerd wordt is een artikel dat je hebt betaald en dat niemand kan vinden — de enige soort mislukking die helemaal geen klachten oplevert, en die daarom een jaar kan doorlopen.
Waar te beginnen
Is Arabisch je tweede markt, dan is het werk een retrofit en is de tabel hierboven je oplijst. Is het je eerste, dan draait de volgorde om: kies de cijferreeks en het Arabische lettertype vóór het kleurenschema, bouw het passagiersformulier tegen een echt paspoort, en behandel het Nederlands als de vertaling.
Hoe dan ook is de goedkoopste test een echte etalage voor één echte klant. De wizard op maak een reiswebsite zet vanuit het formulier zelf een site met je eigen merk op een subdomein van het platform klaar en vraagt niet om een kaart; de etalage gaat in 40 talen live, met Arabisch, Farsi, Hebreeuws en Urdu erbij, en je eigen domein kun je later koppelen. Twijfel je nog of je de engine zelf bouwt, dan staat dat argument hier uitgeschreven — maar doe het in het Arabisch voordat je beslist, want het RTL-werk is precies het deel dat interne schattingen weglaten.