AI-vertalingen Vergeleken: Gemini vs GPT-4 vs DeepSeek voor .po

Je hebt drie van de krachtigste AI-modellen in de geschiedenis tot je beschikking. Je plakt een WordPress .po-string in elk model. Twee ervan beschadigen je site.
Dit is geen hypothetisch scenario. Het gebeurt dagelijks met ontwikkelaars die ervan uitgaan dat "goed in Engels" betekent "goed in Gettext". De waarheid is dat het vertalen van WordPress-lokalisatiebestanden een gespecialiseerde taak is, en elk groot taalmodel behandelt dit heel anders.
We hebben dezelfde set .po-strings uitgevoerd via Gemini 2.0 Flash, GPT-4 en DeepSeek om te ontdekken welk model de meest accurate, code-veilige vertalingen produceert. De resultaten waren verrassend.
De testopstelling: Wat we hebben vertaald
We hebben 200 realistische strings geselecteerd uit een productie WooCommerce-winkel en een populair WordPress-thema. De testset was opzettelijk lastig en omvatte:
- Simpele UI-strings ("Toevoegen aan winkelwagen", "Zoekresultaten")
- Strings met printf-variabelen (
%s,%d,%1$s van %2$s) - Strings met HTML-markup (
<strong>,<a href>,<br/>) - Meervoudsvormen (
msgid_plural) gericht op Pools (3 vormen) en Arabisch (6 vormen) - Strings met context (
msgctxt) waarbij "Post" een blogpost kan betekenen of het werkwoord "to post"
Elk model kreeg dezelfde prompt: vertaal deze Gettext-entries van Engels naar Turks, waarbij alle variabelen en HTML-tags exact worden behouden zoals ze in de bron voorkomen.
We hebben vervolgens elke output uitgevoerd via een validatiesuite die controleert op de integriteit van placeholders, HTML-structuur, aantal meervoudsvormen en tekencodering.
Ronde 1: Simpele UI-strings
Alle drie de modellen verwerkten basisstrings goed. "Add to Cart" werd "Sepete Ekle" over de hele linie. "Log In" werd correct weergegeven. Geen verrassingen hier.
Maar zelfs in deze eenvoudige categorie zagen we een patroon. GPT-4 voegde af en toe beleefdheidsmarkeringen toe die niet in de bron stonden. Een kort "Delete" werd het meer formele equivalent, waarbij 3-4 extra tekens werden toegevoegd. Geen bug, maar wel een punt van zorg voor UI-lay-outs waarbij de knopbreedte vaststaat.
DeepSeek produceerde iets meer letterlijke vertalingen, wat eigenlijk de voorkeur heeft voor UI-elementen waar beknoptheid belangrijk is.
Gemini vond een balans en stemde het register en de lengte van de bronstring het meest consistent af.
Oordeel: Simpele Strings
Alle drie geslaagd. Alleen kleine stilistische verschillen.
Ronde 2: Printf-variabelen en positionele argumenten
Hier komen de echte verschillen naar voren. Beschouw deze veel voorkomende WordPress-string:
msgid "Page %1$s of %2$s"
msgstr ""
Hier is wat elk model produceerde bij het vertalen naar Turks:
# Gemini 2.0 Flash
msgstr "Sayfa %1$s / %2$s"
# GPT-4
msgstr "Sayfa %1$s / %2$s"
# DeepSeek
msgstr "%1$s / %2$s. Sayfa"
Alle drie hebben de variabelen technisch intact gehouden. Maar DeepSeek herschikte de zinsstructuur en verplaatste "Sayfa" naar het einde. Hoewel grammaticaal creatief, verandert dit de betekenis: de gebruiker leest nu "1 / 10. Page" in plaats van "Page 1 of 10."
Kijk nu naar een gevaarlijker voorbeeld:
msgid "Hello %s, you have %d new messages"
msgstr ""
# Gemini 2.0 Flash
msgstr "Merhaba %s, %d yeni mesajiniz var"
# GPT-4
msgstr "Merhaba %s, %d yeni mesajınız var"
# DeepSeek
msgstr "Merhaba % s, % d yeni mesajınız var"
Daar is het. DeepSeek heeft spaties toegevoegd in %s en %d, waardoor ze % s en % d zijn geworden. PHP's sprintf() herkent deze niet. Je site geeft een fatale fout of toont de ruwe variabele string aan je gebruikers.
Dit is de meest voorkomende bug die vertalingen breekt die we hebben gedocumenteerd. Als je precies wilt begrijpen waarom een enkele spatie in een placeholder je site vernietigt, lees dan onze diepgaande analyse over het breken van codevariabelen.
Oordeel: Variabelen
Gemini en GPT-4 zijn betrouwbaar. DeepSeek is gevaarlijk zonder nabewerking.
Ronde 3: HTML-markup behouden
WordPress-strings bevatten vaak inline HTML. Hier is een echt voorbeeld:
msgid "Click <a href=\"%s\">here</a> to view your <strong>order</strong>."
msgstr ""
# Gemini 2.0 Flash
msgstr "<a href=\"%s\">Buraya</a> tıklayarak <strong>siparişinizi</strong> görüntüleyin."
# GPT-4
msgstr "Siparişinizi görüntülemek için <a href=\"%s\">buraya</a> tıklayın.</strong>"
# DeepSeek
msgstr "<a href=\"%s\">buraya</a> tıklayarak <strong>siparişinizi</strong> görüntüleyin."
GPT-4 maakte een subtiele maar cruciale fout. Het verplaatste de sluitende </strong>-tag naar het einde van de zin, ver van zijn openende <strong>-tegenhanger. Het resultaat: alles na "order" op de pagina wordt vet weergegeven, wat mogelijk de hele lay-out eronder beïnvloedt.
Gemini en DeepSeek behielden in dit geval beide de HTML-structuur correct. In onze volledige test van 200 strings voegde DeepSeek echter in 3 gevallen spaties toe in zelfsluitende tags (<br /> werd <br / >).
Oordeel: HTML
Gemini is het meest consistent. GPT-4 en DeepSeek introduceren beide structurele HTML-fouten onder bepaalde omstandigheden.
Ronde 4: Meervoudsvormen
Het verwerken van meervoudsvormen is waar de meeste vertaaltools volledig uit elkaar vallen. Het Engels heeft 2 meervoudsvormen. Het Turks heeft er ook 2. Maar het Pools heeft er 3 en het Arabisch heeft er 6.
We hebben deze string getest op Pools (nplurals=3):
msgid "%d item in your cart"
msgid_plural "%d items in your cart"
Gemini produceerde correct drie msgstr-entries, elk vervoegd voor het juiste numerieke bereik. GPT-4 produceerde ook drie vormen, maar liet af en toe vormen 1 en 2 samenvallen in identieke tekst, wat grammaticaal onjuist is voor het Pools. DeepSeek produceerde slechts twee vormen, waarbij de nplurals=3-vereiste volledig werd genegeerd.
Voor een diepere uitleg over waarom dit belangrijk is en hoe WordPress de Plural-Forms-header gebruikt, zie onze handleiding over Gettext-meervoudsvormen.
Oordeel: Meervoudsvormen
Gemini leidt. GPT-4 is acceptabel met beoordeling. DeepSeek faalt voor talen met meer dan 2 meervoudsvormen.
Ronde 5: Context disambiguatie
Het msgctxt-veld in Gettext vertelt de vertaler hoe een woord wordt gebruikt. Het woord "Post" kan betekenen:
- Een blogpost (zelfstandig naamwoord)
- Een reactie plaatsen (werkwoord)
- Post (zelfstandig naamwoord)
msgctxt "verb: to publish"
msgid "Post"
msgstr ""
msgctxt "noun: blog entry"
msgid "Post"
msgstr ""
Gemini maakte correct onderscheid tussen de twee en produceerde "Yayinla" (publiceren) voor het werkwoord en "Yazi" (artikel/item) voor het zelfstandig naamwoord. GPT-4 heeft dit ook correct afgehandeld. DeepSeek vertaalde beide als "Gonderi" (een generiek zelfstandig naamwoord), waarbij de msgctxt-hint werd genegeerd.
Contextbewustzijn is geen luxe functie. Als je "Post"-knop een opmerking publiceert, maar de vertaling zegt "Artikel", zullen je gebruikers aarzelen om erop te klikken. We hebben besproken waarom AI-veiligheid in WordPress-lokalisatie precies afhangt van dit soort contextueel begrip.
Oordeel: Context
Gemini en GPT-4 verwerken msgctxt goed. DeepSeek negeert het.
De scorekaart
| Categorie | Gemini 2.0 Flash | GPT-4 | DeepSeek |
|---|---|---|---|
| Simpele Strings | Geslaagd | Geslaagd | Geslaagd |
| Printf Variabelen | Geslaagd | Geslaagd | Fout |
| HTML Behoud | Geslaagd | Gedeeltelijk | Gedeeltelijk |
| Meervoudsvormen | Geslaagd | Gedeeltelijk | Fout |
| Context (msgctxt) | Geslaagd | Geslaagd | Fout |
| Totaal | 5/5 | 3.5/5 | 1/5 |
Waarom ruwe modeluitvoer nooit genoeg is
Zelfs Gemini, de best presterende in onze tests, is niet onfeilbaar. Over 200 strings introduceerde het in 2 gevallen spatieproblemen en voegde het eenmaal een onnodige punt toe aan een string die er geen in de bron had.
Daarom is validatie na verwerking essentieel. Ongeacht welk model je gebruikt, de output moet worden uitgevoerd via:
- Placeholder-normalisatie om
% sterug te zetten naar%s - Punctuation matching om ervoor te zorgen dat de vertaalde string eindigt met hetzelfde teken als de bron
- Meervoudsvormhandhaving om het juiste aantal
msgstr-entries te verifiëren - Variabelentellingvalidatie om te bevestigen dat elke
%sen%duit de bron in het doel voorkomen
Dit is het principe achter Syntax Locking, de validatielaag die zich tussen het AI-model en je uiteindelijke .po-bestand bevindt. Het vangt elke fout op die zelfs het beste model af en toe maakt.
Als je tools evalueert voor je workflow, behandelt ons overzicht van de top 5 gratis tools om PO-bestanden te bewerken en te vertalen het landschap buiten AI-only oplossingen.
De kern van de zaak
Gemini 2.0 Flash is momenteel het meest betrouwbare model voor WordPress .po-bestandsvertaling. Het verwerkt variabelen, HTML, meervoudsvormen en context beter dan de concurrentie. GPT-4 is een solide tweede keuze, maar vereist een zorgvuldige beoordeling van HTML-uitvoer en meervoudsvormen. DeepSeek is, ondanks zijn sterke punten in algemene coderingstaken, niet geschikt voor Gettext-vertaling zonder zware nabewerking.
Maar hier is het belangrijkste inzicht: het model alleen is niet genoeg. Zelfs Gemini heeft een validatielaag nodig om edge cases op te vangen. Het verschil tussen een professionele lokalisatietool en een ruwe API-aanroep is niet het AI-model. Het is alles wat er voor en na het uitvoeren van het model gebeurt.
SimplePoTranslate gebruikt Gemini als zijn primaire engine, verpakt in een Context-Aware AI-pipeline met Syntax Locking die elke variabele, tag en meervoudsvorm automatisch opvangt en corrigeert. Je krijgt het beste model gecombineerd met het vangnet dat het productieklaar maakt.
Wil je zelf het verschil zien? Upload je .po-bestand en vertaal gratis tot 100 strings op SimplePoTranslate.com