Hoppa till innehåll

Valfri analys, sessionsinspelning och annonsering är inaktiverade om du inte accepterar. Du kan neka dem och ändå använda Transglot. Ändra ditt val när som helst i Cookie-inställningar. Cookiepolicy

för team som mergear varje dag

Kontinuerlig lokalisering: varje språk, vid varje merge.

Kontinuerlig lokalisering översätter nya och ändrade strängar i takt med att koden ändras, istället för i en separat fas före varje release. Varje språk är alltid redo att lanseras tillsammans med den kod som behöver det.

En simulering av de två arbetssätten, inte en mätning. Tryck på Merge a change och läs kolumnen till höger: det är vad användarna av det språket ser.
acme / web
mainAdd a gift cardcheckout.gift_card
frAjouter une carte cadeauöversatt
deGeschenkkarte hinzufügenöversatt
jaギフトカードを追加översatt
arأضف بطاقة هديةöversatt
pt-BRAdicionar vale-presenteöversatt
Språk du kan släppa nu5 av 5
Strängar efter mainingen
det korta svaret

Vad är kontinuerlig lokalisering?

Kontinuerlig lokalisering är ett arbetssätt där nya och ändrade strängar skickas till översättning automatiskt så fort de ändras, och den översatta texten kommer tillbaka in i produkten utan att någon behöver schemalägga det.

Det finns ingen översättningsfas, eftersom översättningen aldrig slutar. En utvecklare mergear en sträng, översättningarna följer i samma flöde som koden, och en release väntar inte på någons fil.

Det är lokaliseringsdelen av continuous delivery. Ett team som mergear varje dag och lämnar över översättning varannan vecka har språk som ligger efter koden under större delen av varje månad. Kontinuerlig lokalisering minskar detta gap till längden av en körning.

Det betyder inte att maskinöversatt innehåll publiceras oläst. Du bestämmer vilka strängar som behöver en person, och en release kan endast innehålla det som har granskats.

kontinuerlig vs traditionell lokalisering

Skillnaden ligger i när översättningen sker, inte vem som gör det.

Översättare, granskare och ordlistor finns i båda kolumnerna. Det som skiljer är när arbetet påbörjas och storleken på varje del.
Sida vid sida
När översättningen sker
I en fas före varje lansering
Vad som startar det
Någon exporterar en fil
Storleken på varje del
Veckor av strängar på en gång
Vad en lansering väntar på
Att filen kommer tillbaka
En sen copy-ändring
Ännu en tur och retur
Vad översättaren utgår från
Ett kalkylblad med strängar
Språk vid lansering
Stegvis, en våg efter en annan
en sträng, från start till mål

Så fungerar kontinuerlig lokalisering

Följ en ny sträng genom loopen. Varje steg visar vad du faktiskt skulle se.

din terminal, eller din CI-logg
+ "checkout.gift_card": "Add a {brand} gift card"
$ git push origin main
$ transglot push --wait
push locales/en.json (en, json_nested)
Batch: #4182
$ transglot pull
written locales/fr.json
written locales/ja.json
checkout.gift_card
källaAdd a {brand} gift card
frAjouter une carte cadeau {brand}Glossa-utkast
de{brand}-Geschenkkarte hinzufügenfrån minne, 0 ord
ja{brand} ギフトカードを追加Glossa-utkast
arأضف بطاقة هدية {brand}Glossa-utkast
de fyra filtren, en körning
Platshållare1 reparerad
Pluralformergodkänd
Ordlistetermergodkänd
Längdgodkänd
ja · platshållare förlorad, reparerad en gång, kontrollerad igenギフトカードを追加{brand} ギフトカードを追加
cart.save
källa ändradSave Save draft
frEnregistrergranskad av en person: behållen, rapporterad till digFöreslagen: Enregistrer le brouillon
deEntwurf speichernmaskinrad: översatt igen
pull requestuppdaterad på plats
Uppdatera översättningartransglot/sync → mainöppen, en per repository
locales/fr.json+3 −1
locales/de.json+3 −1
locales/ja.json+3 −1
eller, på en pull request på GitHub, kommentera/translate

Ändringen når Transglot via CLI:t, GitHub Action eller appen på din Git-värd. Källfiler parsas i ett av 20 inbyggda format, och varje sträng jämförs med det projektet redan har. Endast nya och ändrade strängar går vidare.

En exakt träff från översättningsminnet fyller raden och kostar inga ord. Det som återstår skickas till Glossa med din ordlista, din stilguide och kontexten för den nyckeln.

Platshållare, pluralformer, ordlistetermer och längd kontrolleras på varje rad i varje körning. En trasig platshållare, en saknad pluralform eller en förbjuden ordlisteterm repareras en gång och kontrolleras igen. Om det misslyckas en andra gång nekas det och levereras inte. En rad som bara överskrider sin längd skrivs, och från Team-planen markeras den för granskning via automatiskt godkännande eller en QA-körning.

En körning skriver aldrig över en rad som en person har redigerat eller granskat. Om källtexten ändras senare behålls texten, körningen räknar raden och informerar dig, och från Team-planen väntar en föreslagen uppdatering bredvid för att någon ska acceptera den.

Git-apparna checkar in språkfiler till en synkroniseringsgren och håller en pull request uppdaterad. På GitHub, kommentera /translate på en pull request så hamnar filerna på den pull requestens egen gren. Eller publicera till CDN, så läser den live-produkten ändringen utan någon release alls.

där team blir drabbade

Sex sätt kontinuerlig lokalisering kan gå fel, och vad som stoppar varje ett

En körning skriver över en persons arbete

Varje skrivare kontrollerar radens tillstånd först: en körning, en minnesträff och en push. En rad som en person har redigerat eller granskat står kvar, och körningen rapporterar den.

fr, granskad, källan har just ändrats

behållen, räknad, rapporterad

En trasig sträng når produktion

Varje token som skickas in måste komma tillbaka ut. I ett ICU-projekt hålls ett meddelande som skulle kasta fel vid rendering borta från pull-förfrågan, kopplingen och CDN-bundeln, och körningen namnger det.

{count, plural, one {# article}

utesluten ur filen, namngiven i körningen

Databasen fylls med bot-pullförfrågningar

En synkroniseringsgren och en pullförfrågan per databas. Två snabba pushar konvergerar mot den istället för att öppna en andra.

#812 #815 #819 #823 l10n-uppdatering

#812 transglot/sync, uppdaterad på plats

En källredigering lämnar gamla översättningar efter sig

Varje målrads post registrerar källan den skrevs mot, så en ändrad sträng är känd som utdaterad i alla språk samtidigt, och endast den nyckeln körs igen.

Spara blev Spara utkast. fr, de, ja säger fortfarande Spara

fr, de, ja körs igen för den där nyckeln

Varje körning debiterar hela projektet igen

En körning baseras på vad som ändrades. En oförändrad sträng skickas inte, en exakt minnesträff kostar inga ord, och en rad som en person äger nekas innan något spenderas.

filen innehåller 48 000 ord

denna körning: 60 ord

En halvfärdig pull rensar en lokaliseringsfil

Om servern rapporterar inga poster för ett språk, vägrar pullen att skriva över en fil som har innehåll, och avslutas med kod 1 så att pipelinen stoppar där.

pull: 0 poster för ja, filen innehåller 1 204

vägrar att skriva över locales/ja.json med en tom bundle

  • run 4182 fr: platshållare saknas i utkastet, reparerad vid omförsök
  • run 4182 de: 3 rader behållna, en person äger dem
  • run 4182 ja: 41 rader från minne, 0 ord
  • run 4183 ar: pluralform saknas efter omförsök, raden nekades
  • pull skrivit locales/pt-BR.json
  • sync transglot/sync uppdaterad, pullförfrågan #812
mätt mot de två du jämför

Alla tre ansluter till din databas. Skillnaden ligger i vad som händer när du mergar.

Hämtat från respektive företags egna sidor den 5 november 2026. Prisraden kommer från våra jämförelsesidor, länkade nedan, som visar planen och uträkningen. Priser och planer ändras, så kontrollera dem innan du bestämmer dig.

Transglot
En ny sträng sammanfogas
Översätts som standard
Pushen startar körningen. En projektinställning stänger av den.
En översättning klarar inte en kontroll
Reparerad en gång, sedan nekad
För en trasig platshållare, pluralform eller förbjuden term, på varje rad i varje körning. En längdöverskridning skrivs. I ett ICU-projekt hålls en trasig rad borta från pull, kopplingarna och CDN:n.
En person har redan redigerat raden
Körningen vägrar skriva den
Det gör även en minnesmatchning och en push. Om källan ändras senare rapporterar körningen raden.
Pull-förfrågningar i ett aktivt repository
En gren, en pull-förfrågan
Uppdateras på plats vid varje push.
Vad planen räknar
Översatta ord, en gång per språk
Exakta minnesträffar kostar inget. Att lagra en sträng kostar inget.
Vad som betalar för AI:n
Planens ord
Det faktureras inte separat.
Samma jobb: 5,000 strängar på 10 språk
$39 per månad
Team, översättning ingår
GitHub, GitLab, Bitbucket, Azure Repos, ett CLI och en MCP-server
Alla
Git-apparna börjar på Team-nivå och täcker molnversionerna.
använd det du redan kör

Starta var dina strängar än finns. Varje ingång leder till samma pipeline.

Samma minne, ordlista, spärrar och granskning, oavsett vilken ingång en sträng kom igenom.
.github/workflows/translations.yml
on:
push:
branches: [main]
jobs:
translations:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v7
- uses: transglot/transglot-action@v1
with:
token: ${{ secrets.TRANSGLOT_TOKEN }}
vad du ska göra först

Så här ställer du in kontinuerlig lokalisering

  1. Hämta strängar ur koden

    Varje användarvänlig sträng behöver en stabil nyckel i en lokaliseringsfil. Transglot läser 20 format, så behåll det du har.

  2. Anslut databiblioteket

    Initieringskommandot hittar dina lokaliseringsfiler, loggar in dig via webbläsaren, laddar upp det du redan har och kör den första översättningen.

  3. Kör vid varje sammanslagning

    Lägg till GitHub Action, anropa CLI från valfri annan CI eller installera appen för GitHub, GitLab, Bitbucket eller Azure Repos.

  4. Bestäm vad som kräver manuell hantering

    Ställ in min_state till reviewed på en pull-regel och den filen innehåller endast strängar som en person har granskat. Lämna det avstängt och utkast publiceras.

gör beräkningen med dina egna siffror

Vad det kostar att köra vid varje sammanslagning: orden som ändrades.

Ett ord är ett källord, räknat en gång per målspråk. En körning baseras på vad som ändrades, så en sammanslagning som berör tolv ord på fem språk räknas som sextio, oavsett projektets storlek.

25
40
6
20,000
Ord per månad26,000på dessa siffror · 25 sammanslagningar i veckan, 40 ord vardera, 6 språk

Passar på Starter: $19/mo, 300,000 ord per månad.

Det är cirka 9% av kvoten.

Första körningen, engångsavgift120,000Dina befintliga strängar på alla språk. Översättningar du importerar översätts inte igen.

Detta räknar endast översättning. Kvalitetskontroller, utkast för varumärkesröst och reparationer räknas också som ord, och exakta träffar från minnet kostar inget. CLI:n och GitHub Action börjar på Starter, och apparna för GitHub, GitLab, Bitbucket och Azure Repos börjar på Team.

vad det inte kommer att göra åt dig

Tre saker som kontinuerlig lokalisering inte löser

Strängar som fortfarande sitter fast i koden

En pipeline kan bara översätta det den kan läsa. Hårdkodade strängar och meningar som sätts ihop av delar måste åtgärdas först, och de är den vanligaste anledningen till att en lansering stannar.

Ingen som äger orden

Automatisering flyttar strängar. Den bestämmer inte vad din produkt kallar saker. Någon måste äga ordlistan, annars glider ett språk som ingen läser iväg utan att någon märker det.

Text som kräver omdöme

Juridisk text, prissättning och varumärkesbudskap förtjänar en människa. Skicka dem för granskning och håll dem borta från filerna som levereras tills någon har godkänt dem.

FAQ om kontinuerlig lokalisering

Frågorna teamen ställer innan de slår på det.

Vad är kontinuerlig lokalisering?
Ett arbetssätt där nya och ändrade strängar skickas till översättning automatiskt när de ändras, och översatt text returnerar till produkten utan en schemalagd överlämning. Det ersätter översättningsfasen före en release med en liten körning efter varje ändring.
Traditionell lokalisering samlar strängar i en fil, skickar ut den nära en release och väntar. Kontinuerlig lokalisering flyttar varje ändring när den sker, så bitarna är små, språken lanseras tillsammans och en sen textändring kostar en omkörning av en nyckel snarare än ytterligare en tur-och-retur-resa.
Nej. CI/CD bygger, testar och releasar kod. Kontinuerlig lokalisering håller översättningarna igång parallellt med det. De möts i pipelinen: pushen som kör dina tester kan också skicka strängar för översättning och hämta tillbaka filerna.
Nej. Apparna för GitHub, GitLab, Bitbucket och Azure Repos reagerar på en push utan att något läggs till i din pipeline, och innehållskontakter reagerar på ändringar i ett CMS eller en butik. CLI:t och GitHub Action finns där om du vill ha det i ditt eget arbetsflöde.
Nej. Utkast kan levereras, eller så kan en pull-regel bara ta med det som en person har granskat, fil för fil. Granskare arbetar i editorn med ordlistetermer, minnesmatchningar och skärmdumpar bredvid varje rad.
Nej. En körning, en minnesmatchning och en push kontrollerar alla raden först, och en rad som en person har redigerat eller granskat består. Om dess källa ändras senare står texten kvar, körningen räknar raden och rapporterar den, och från Team-planen fästes en föreslagen uppdatering för någon att acceptera.
Det tenderar att betyda mest för ett litet team, eftersom ingen har som jobb att hantera överlämningar. Om du levererar på ett språk utan plan för ett andra kan det vänta.
En körning storleksbestäms innan den startar. Gratis är ett hårt tak. En betald plan stannar vid sin kvot om du inte slår på mätbar överförbrukning, vilket stoppas vid en utgiftsgräns du anger. I CI avslutas CLI:t med kod 3 när en körning skulle passera gränsen, så att pipelinen kan agera på det.
Ja, på GitLab.com, Bitbucket Cloud och Azure DevOps Services. Apparna täcker inte självhanterad GitLab eller Bitbucket Data Center, men CLI:t körs i vilken CI som helst som har Node 22 och kan nå API:t.
Ja. Innehållskontakter läser från ett CMS, en butik eller ett hjälpcenter, och de tvåvägskontakterna skriver tillbaka det granskade språket. Vissa är endast för import, och varje kontakts sida säger vilka.
Ja. Publicera en språkversion till CDN:n så läser din produkt den vid körning via SDK:erna för körtiden. Den senaste URL:en cachelagras i sextio sekunder, varje publicerad version har sin egen URL och de tjugo senaste versionerna behålls.
Importeraren tar med projekt, nycklar och befintliga översättningar från Lokalise, Phrase, Crowdin, Transifex, Weblate and POEditor. Importerade översättningar räknas som manuellt arbete, så inga körningar skriver över dem. Det är gratis på alla planer och körs en gång.