FunktionerPluginPrissättningResurser
Ändra språk
ResurserHur man översätter .po-filer utan att förstöra kodvariabler (%s, HTML)

Hur man översätter .po-filer utan att förstöra kodvariabler (%s, HTML)

SimplePoTranslate Team25 november 2025
Hur man översätter .po-filer utan att förstöra kodvariabler (%s, HTML)

Det börjar med en enkel uppgift: du översätter ditt WordPress-tema till spanska. Du laddar upp .mo-filen, uppdaterar din webbplats och...

Fatal error: Uncaught ArgumentCountError: Too few arguments to function sprintf()...

Eller så kanske din webbplats laddas, men layouten är trasig eftersom en avslutande </div>-tagg översattes till </ div>.

Detta är den största rädslan för alla utvecklare som arbetar med lokalisering. När du använder generiska översättningsverktyg (som Google Translate eller enkla AI-wrappers) på tekniska .po-filer, behandlar de inte kod annorlunda än text. De försöker "översätta" dina variabler, och därmed förstör de din webbplats.

I den här guiden förklarar vi exakt varför detta händer och hur du säkerställer 100 % kodsäkerhet i dina automatiska översättningar.

Katastrofens anatomi: Varför %s förstör webbplatser

WordPress använder Gettext-systemet och PHP-funktioner som sprintf() för att hantera dynamisk text.

Till exempel kan du ha en sträng som denna: msgid "Search results for %s"

%s är en platshållarvariabel där PHP infogar användarens sökfråga.

Hur generisk AI gör fel

När du matar in den här strängen i en standard Large Language Model (LLM) eller ett översättnings-API, ser den %s som bara ett annat konstigt ord. Den kan försöka fixa grammatiken eller interpunktionen runt den.

Här är de vanligaste syntaxfelen vi ser:

  1. Det extra mellanslaget:

    • Original: Hello %s
    • Dålig översättning: Hola % s
    • Resultat: PHP letar efter %s, men ser % s. Variabeln kan inte läsas in, vilket ofta orsakar ett fatalt fel.
  2. HTML-hallucinationen:

    • Original: Click <strong>here</strong> to login.
    • Dålig översättning: Haga clic <strong>aquí</ strong> para iniciar sesión.
    • Resultat: AI:n lade till ett mellanslag inuti den avslutande taggen </ strong>. Din CSS går sönder och resten av sidan blir fetstil.
  3. Argumentbytet:

    • Original: Page %1$s of %2$s
    • Dålig översättning: Página %2$s de %1$s
    • Resultat: AI:n bestämde att meningen lät bättre om siffrorna byttes. Nu säger din sidnumrering "Sida 10 av 1".

Fällan med "manuell fix"

De flesta utvecklare försöker lösa detta genom att manuellt granska filen. Om du har ett litet plugin med 50 strängar är det bra. Men om du översätter en WooCommerce-butik med 5 000 strängar?

Att skanna 5 000 kodrader efter ett enda saknat semikolon eller ett extra mellanslag inuti en %s-variabel är omöjligt. Det tar timmar, och mänskliga ögon kommer oundvikligen att missa något.

Regex-skript (Regular Expressions) kan hjälpa till att verifiera närvaro, men de fångar sällan kontextspecifika omordningsproblem eller subtila HTML-attributkorruptioner.

Lösningen: "Syntaxlåsning"

Det enda sättet att säkert översätta en .po-fil är att förhindra att AI:n någonsin berör koden. Detta kräver en process som kallas Syntaxlåsning.

Detta är kärnteknologin bakom SimplePoTranslate.

Till skillnad från generiska verktyg dumpar vi inte bara text i en AI. Vi tolkar Gettext-strukturen först. Så här fungerar vårt "Säkert läge":

  1. Analys: Vi skannar din .po-fil och identifierar varje variabel (%s, %d), varje positionsargument (%1$s) och varje HTML-tagg (<br/>, <span>).
  2. Extrahering och låsning: Vi tar tillfälligt bort dessa element från strängen och ersätter dem med oföränderliga tokens.
    • Inmatning: Hello <strong>%s</strong>
    • Vad AI:n ser: Hello [TOKEN_1][TOKEN_2]
  3. Översättning: AI:n översätter texten "Hello" till "Hola", men den kan inte fysiskt ändra [TOKEN_1] eller [TOKEN_2] eftersom de är låsta.
  4. Återuppbyggnad: Vi sätter tillbaka den ursprungliga koden i den översatta strängen exakt där den hör hemma.

Resultatet: Noll trasiga webbplatser

Eftersom AI:n aldrig interagerar med de faktiska %s- eller HTML-tecknen, är det matematiskt omöjligt för översättningsmotorn att lägga till ett mellanslag inuti en variabel eller förstöra en tagg.

Vi hanterar till och med komplexa pluraliseringsregler (msgid_plural) för språk som ryska eller polska, vilket säkerställer att rätt variabel används för rätt antal.

Sluta spela hasard med din kod

Du ska inte behöva korsa fingrarna varje gång du laddar upp en språkfil. Lokalisering ska handla om att nå nya kunder, inte om att felsöka PHP-fel.

SimplePoTranslate är det säkraste och mest avancerade molnbaserade verktyget för utvecklare som bryr sig om kodintegritet.

  • Molnbaserat: Inga plugins att installera.
  • Kontextmedveten: Använder Gemini/GPT-4-klass AI för naturlig formulering.
  • Syntaxlåst: Garanterat skydd för dina variabler.

Redo att översätta utan huvudvärk? Börja gratis på SimplePoTranslate.com