Skip to content

Allt om WordPress, webbutveckling — och mer därtill

🚀 Massöversättning av .po-filer i Lokalise via webbläsarkonsolen

🚀 Massöversättning av .po-filer i Lokalise via webbläsarkonsolen

När ett WordPress-tema eller tillägg levereras utan svensk översättning och .po-filen innehåller tusen strängar eller fler, blir manuell översättning av varje sträng via Poedit ett flera dagar långt slitgöra. För många kunder är maskinöversättning fullt acceptabelt: Google Translate ger hyfsade resultat för gränssnittssträngar, och bara ett par dussin ställen behöver finslipas manuellt.

Problemet är att Lokalise, en kraftfull plattform för översättningshantering, inte erbjuder en "översätt allt på en gång"-knapp direkt. Du måste klicka på Google Translates autoknapp separat för varje enskild sträng. Den begränsningen är precis vad vi ska kringgå: ett litet skript som körs i webbläsarens konsol simulerar klick på den knappen för hela listan med strängar. Metoden har testats på projekt med allt från 200 till över 3000 strängar.

💡 Snabb översikt:

  • Förbered en PO-fil från en POT-mall i Poedit med engelska platshållaröversättningar.
  • Skapa ett projekt i Lokalise, ladda upp källfilen och lägg till ett målspråk.
  • Kopiera nycklarna till målspråket och kör skriptet i webbläsarens konsol.
  • Ta hänsyn till AJAX-lat laddning: kör skriptet lika många gånger som Lokalise laddar nya omgångar med strängar.

Vad Lokalise är och varför använda det för att översätta.po-filer

Lokalise är ett Translation Management System (TMS) som stöder .po/.pot-filer direkt. Plattformen integrerar med Google Translate, DeepL och sin egen AI-motor, vilket låter dig få en maskinöversättning för vilken sträng som helst med ett enda klick. Haken är att ett klick per projekt inte räcker: du måste trycka på autoknappen för varje sträng individuellt.

För små filer på 50 till 100 strängar är detta hanterbart. Men en riktig .pot från ett tillägg eller tema innehåller sällan färre än 500 strängar, och stora produkter (WooCommerce, teman med sidbyggare) överskrider lätt 2000. jQuery-skriptet i denna artikel skrevs just för de fallen: det "klickar" på översättningsknappen för varje sträng som för tillfället är synlig på skärmen.

Steg 1: skapa en.po-fil från en.pot i Poedit

Innan du arbetar med Lokalise behöver du en engelsk .po-fil genererad från en .pot-mall. Ladda ner och installera Poedit, en gratis översättningsredigerare för Windows, macOS och Linux.

Öppna temats eller tilläggets .pot-fil i Poedit och klicka på knappen "Skapa ny översättning":

Knapp för att skapa ny översättning i Poedit

I dialogrutan som öppnas, välj engelska; det blir källspråket för Lokalise:

Välja engelska som översättningsspråk i Poedit-dialogen

Klicka på "Spara som" och spara filen med filändelsen .po. Det faktiska innehållet i strängarna spelar ingen roll i detta skede; vi kommer inte att översätta något i Poedit, och alla strängar förblir på engelska som platshållare.

Spara en PO-fil via Spara som-knappen i Poedit

Du har nu en .po-fil med de ursprungliga engelska strängarna. Låt oss gå vidare till själva Lokalise.

Steg 2: skapa ett översättningsprojekt i Lokalise

Registrera dig på lokalise.com; den kostnadsfria provperioden räcker för en engångsöversättning. Efter inloggning, klicka på "Lägga till ett projekt" i mitten av skärmen:

Knapp för att lägga till projekt på Lokalises startsida

Fyll i fälten: projektnamn (vad du vill, till exempel "Tema X översättning") och välj Engelska som basspråk. Lokalise kommer att använda det som källa för automatisk översättning till andra språk. Klicka på "Skapa".

Nytt projektformulär i Lokalise med val av basspråk

Steg 3: ladda upp den förberedda.po-filen

I det nyskapade projektet, klicka på den gröna knappen med en uppåtpil för att ladda upp en fil:

Grön filuppladdningsknapp i ett Lokalise-projekt

En uppladdningsdialog visas. Dra och släpp .po-filen i den, eller klicka på ytan för att välja en fil via Utforskaren:

Dialog för PO-filuppladdning med dra-och-släpp-stöd i Lokalise-gränssnittet

Viktigt: ställ in filspråket till English. Om filspråket inte matchar projektets basspråk kommer Googles automatiska översättningsknapp inte att visas eftersom plattformen inte kan fastställa källspråket.

Klicka på "Import the files":

Importera filer-knappen med engelska valt före import

När importen är klar klickar du på "Go to project" för att komma till arbetsytan med listan över strängar.

Steg 4: lägg till målspråket för översättning

Klicka på plusikonen i språkpanelen för att lägga till språket du vill översätta till:

Knapp för att lägga till nytt översättningsspråk i ett Lokalise-projekt

Välj språket i rullgardinsmenyn. För ryska, välj Russian:

Välja ryska från rullgardinslistan i Lokalise

Steg 5: kopiera nycklar till målspråket

Just nu har du en kolumn med engelska strängar, men den ryska kolumnen är tom. Du måste kopiera nycklarna (originalsträngarna) dit; automatöversättningen kommer att tillämpas på dem.

Markera alla strängar (Ctrl+A), klicka på åtgärdsknappen som visas och välj "Copy keys to translations…". I dialogrutan väljer du Russian och klickar på "Copy":

Dialog för att kopiera översättningsnycklar till ryska med ryska valt

Den ryska kolumnen innehåller nu engelska platshållarsträngar som kan ta emot automatöversättning.

Steg 6: massöversätt automatiskt via webbläsarkonsolen

Öppna utvecklarkonsolen: Ctrl+Shift+I (Windows/Linux) eller Cmd+Option+I (macOS). Nedan är knappen som vårt skript simulerar ett klick på. I det nuvarande Lokalise-gränssnittet ser den ut som en Google-ikon:

Uppdaterad knapp för Google maskinöversättning i Lokalise-gränssnittet

Här är skriptet som "klickar" på den här knappen för alla synliga strängar:

1/* Bulk Google Translate auto-translation in Lokalise */
2jQuery(document).ready(function ($) {
3 $('span.key-function-button.machine-all.fontello-google-circle').trigger('click');
4});

Kopiera koden, klistra in den i konsolen och tryck på Enter. Strängarna börjar översättas en efter en.

Viktigt: Lokalise använder AJAX-latyladdning och visar strängar i omgångar. När skriptet har bearbetat de synliga strängarna, scrolla ner på sidan för att ladda nya, ännu oöversatta strängar. Klistra in skriptet i konsolen igen och tryck på Enter. Upprepa tills alla strängar är översatta.

För den gamla gränssnittsversionen (om automatöversättningsknappen ser annorlunda ut), använd den här varianten:

Gammal version av Googles automatiska översättningsknapp i Lokalise-gränssnittet
1/* Simulated click on the Google translate button (old interface) */
2jQuery(document).ready(function ($) {
3 $('a.key-function-button.machine-all').trigger('click');
4});

När alla strängar är översatta, se till att scrolla genom hela projektet till slutet och visuellt kontrollera att varje sträng i översättningskolumnen är ifylld. Missade strängar laddades antingen inte (scrolla igen) eller så misslyckades automatöversättningen för dem (klicka på knappen manuellt).

Resultat av massöversättning av strängar i ett Lokalise-projekt via webbläsarkonsolen

Den färdiga översättningen kan laddas ner med hjälp av Ladda ner-knappen i projektgränssnittet. Du får en .po-fil som är redo att laddas upp till WordPress.

Här nedan är en kort video som visar hela arbetsflödet med .po-filer i Lokalise, från uppladdning till export:

⁉️🤔 Vanliga frågor

Skriptet översätter inte strängarna. Vad är fel?

Kontrollera först att källfilens språk vid importen matchar projektets basspråk. Om projektet är inställt på engelska men filen laddades upp som ryska kommer inte Google Translate-knappen att visas. Öppna sedan konsolen (F12) och leta efter fel. Om jQuery är odefinierat har Lokalise ändrat sin struktur och selektorerna i skriptet behöver uppdateras. Se för det tredje till att du kopierade nycklarna till målspråket (steg 5), annars finns det inget att översätta.

Kan jag översätta med DeepL istället för Google Translate?

Ja, om DeepL är aktiverat i ditt projekt. Principen är densamma: knappen för automatisk översättning ändras, men du kan anpassa skriptet till en annan CSS-selektor. Hitta DeepL-knappens element via inspektören (Ctrl+Shift+C), kopiera dess klass eller attribut och ersätt det i selektorn $('button-selector').trigger('click').

Hur många strängar översätts vid en enda skriptkörning?

Exakt så många som för närvarande visas på skärmen. Lokalise laddar strängar i omgångar (vanligtvis 50 till 100), så efter varje skrollning måste du köra skriptet igen. I ett projekt med 2000 strängar kan du räkna med 5 till 7 körningar.

Är det säkert att klistra in kod i konsolen på någon annans webbplats?

Skriptet gör exakt en sak: det klickar programmatiskt på en knapp som du annars skulle klicka på manuellt. Ingen data skickas någonstans; koden körs bara i din webbläsare och endast på den öppna Lokalise-sidan. Med det sagt är en bra tumregel att alltid läsa koden innan du klistrar in den i konsolen, särskilt om den inte kommer från officiell dokumentation.

Vad händer om vissa strängar förblir på engelska efter översättningen?

Troligtvis skrollade du inte sidan ända ner och missade en av AJAX-inladdningarna. Skrolla projektet till botten, vänta tills alla strängomgångar har laddats klart och kör skriptet igen. Om enskilda strängar fortfarande inte översätts, klicka på knappen för automatisk översättning manuellt för dem (detta kan hända om Google Translate API returnerade ett fel för en specifik fras).

När konsolöversättning slår inbyggd automatisering

Konsolmetoden är inte en ersättning för ett fullständigt TMS-arbetsflöde. Om du arbetar professionellt med lokalisering erbjuder Lokalise inbyggd batchbearbetning (föröversättning), integrationer med CAT-verktyg och kontextmedveten AI-översättning. Men för den typiska uppgiften att översätta ett enskilt WordPress-tema och sedan gå vidare levererar konsolmetoden resultat på 5 till 10 minuter utan att du behöver djupdyka i plattformens dokumentation.

Hela processen, från installation av Poedit till den slutliga .po-filen, ryms i tre steg: förbered filen, ladda upp den till Lokalise, kör skriptet. Om volymen överstiger 500 strängar uppgår tidsbesparingen jämfört med att manuellt klicka på knappen för varje sträng till tiotals minuter. Med 2000+ strängar är det skillnaden mellan "klart över en kopp kaffe" och "tog halva dagen".