Kontinuerlig lokalisering: alle sprog, ved hvert merge.
Kontinuerlig lokalisering oversætter nye og ændrede strenge, efterhånden som din kode ændres, i stedet for i en separat fase før hver release. Alle sprog er klar til at blive shipped sammen med den kode, der havde brug for dem.
Hvad er kontinuerlig lokalisering?
Kontinuerlig lokalisering er en arbejdsmetode, hvor nye og ændrede strenge sendes til oversættelse automatisk, så snart de ændres, og den oversatte tekst returneres til produktet uden, at nogen skal planlægge det.
Der er ingen oversættelsesfase, fordi oversættelsen aldrig stopper. En developer merger en streng, oversættelserne følger med i samme flow som koden, og en release venter ikke på nogens fil.
Det er lokaliseringsdelen af continuous delivery. Et team, der merger hver dag og overleverer oversættelser hver anden uge, har sprog, der hænger bagefter koden det meste af måneden. Kontinuerlig lokalisering reducerer dette gab til længden af én kørsel.
Det betyder ikke, at maskinoversættelser går live uden at blive læst. Du beslutter, hvilke strenge der skal gennemses af en person, og en release kan kun indeholde det, der er blevet gennemset.
Forskellen er, hvornår oversættelsen sker, ikke hvem der gør det.
| Hvad ændres | Batch-overlevering | Kontinuerlig |
|---|---|---|
| Side om side | ||
| Hvornår oversættelsen sker | I en fase før hver udgivelse | Når hver streng ændres |
| Hvad der starter det | Nogen eksporterer en fil | Et push, en merge eller en indholdsændring |
| Størrelsen på hver del | Ugers mængde af strenge ad gangen | Strengene i én ændring |
| Hvad en udgivelse venter på | At filen kommer tilbage | Gennemgang af de strenge, du har markeret til det |
| En sen tekstændring | En ny tur frem og tilbage | En genkørsel af den ene nøgle |
| Hvad oversætteren arbejder ud fra | Et regneark med strenge | Rækken med dens ordlistetermer, hukommelsesmatches og skærmbilleder |
| Sprog ved lancering | Forsinket, én bølge efter en anden | Sammen med funktionen |
- Hvornår oversættelsen sker
- I en fase før hver udgivelse
- Hvad der starter det
- Nogen eksporterer en fil
- Størrelsen på hver del
- Ugers mængde af strenge ad gangen
- Hvad en udgivelse venter på
- At filen kommer tilbage
- En sen tekstændring
- En ny tur frem og tilbage
- Hvad oversætteren arbejder ud fra
- Et regneark med strenge
- Sprog ved lancering
- Forsinket, én bølge efter en anden
- Hvornår oversættelsen sker
- Når hver streng ændres
- Hvad der starter det
- Et push, en merge eller en indholdsændring
- Størrelsen på hver del
- Strengene i én ændring
- Hvad en udgivelse venter på
- Gennemgang af de strenge, du har markeret til det
- En sen tekstændring
- En genkørsel af den ene nøgle
- Hvad oversætteren arbejder ud fra
- Rækken med dens ordlistetermer, hukommelsesmatches og skærmbilleder
- Sprog ved lancering
- Sammen med funktionen
Sådan fungerer kontinuerlig lokalisering
Følg én ny streng gennem løkken. Hvert trin viser, hvad du faktisk ville se.
Ændringen når Transglot via CLI, GitHub Action eller appen på din Git-vært. Kildefiler parses i et af 20 native formater, og hver streng sammenlignes med det, projektet allerede har. Kun nye og ændrede strenge går videre.
En eksakt match fra oversættelseshukommelsen udfylder rækken og koster ingen ord. Resten sendes til Glossa sammen med din ordliste, din stilguide og konteksten for den pågældende nøgle.
Pladsholdere, flertalsformer, ordlistetermer og længde kontrolleres i hver række under hver kørsel. En ødelagt pladsholder, en manglende flertalsform eller en forbudt ordlisteterm repareres én gang og kontrolleres igen. Hvis det fejler anden gang, afvises det og sendes ikke videre. En række, der kun overskrider sin længdegrænse, skrives, og fra Team-planen vil auto-godkendelse eller en QA-kørsel flagge den til gennemgang.
En kørsel overskriver aldrig en række, som en person har redigeret eller gennemgået. Hvis kilden ændres senere, bevares teksten, kørslen tæller rækken og giver dig besked, og fra Team-planen venter en foreslået opdatering ved siden af den, så nogen kan acceptere den.
Git-apps'en committer lokaliseringsfiler til én synkroniseringsgren og holder én pull request opdateret. På GitHub kan du kommentere /translate på en pull request, så lander filerne på den pågældende pull requests egen gren. Eller publicer til CDN'en, så læser det kørende produkt ændringen uden nogen release overhovedet.
Seks måder, hvorpå kontinuert lokalisering går galt, og hvad der stopper hver enkelt
En kørsel overskriver en persons arbejde
Hver writer tjekker først rækkens status: en kørsel, et hukommelsesmatch og et push. En række, som en person har redigeret eller gennemgået, bevares, og kørslen rapporterer den.
→fr, gennemgået, kilde lige ændret
✓bevaret, talt, rapporteret
En ødelagt streng når produktionen
Hvert token, der er gået ind, skal komme ud igen. På et ICU-projekt bliver en besked, der ville kaste en fejl ved rendering, holdt ude af pull-requestet, connectoren og CDN-bundtet, og kørslen navngiver den.
→{count, plural, one {# article}
✓udeladt fra filen, navngivet i kørslen
Repositoryet fyldes op med bot-pull-requests
Én sync-gren og ét pull-request per repository. To hurtige pushes konvergerer mod det i stedet for at åbne et nyt.
→#812 #815 #819 #823 l10n-opdatering
✓#812 transglot/sync, opdateret på stedet
En kildeændring efterlader gamle oversættelser
Hver målpost registrerer den kilde, den blev skrevet imod, så en ændret streng straks kendes som forældet på alle sprog, og kun denne nøgle køres igen.
→Gem blev til Gem kladde. fr, de, ja siger stadig Gem
✓fr, de, ja køres igen for den ene nøgle
Hver kørsel fakturerer hele projektet igen
En kørsel dimensioneres efter det, der er ændret. En uændret streng sendes ikke, en eksakt memory-match koster ingen ord, og en post, en person ejer, afvises, før noget bruges.
→fil indeholder 48.000 ord
✓denne kørsel: 60 ord
Et halvafsluttet pull sletter en lokalitetsfil
Hvis serveren rapporterer ingen poster for en lokalitet, nægter pull-at skrive over en fil, der har indhold, og afslutter med kode 1, så pipelinen stopper der.
→pull: 0 poster for ja, fil indeholder 1.204
✓nægter at overskrive locales/ja.json med et tomt bundle
- run 4182 fr: pladsholder mangler i kladden, repareret ved genforsøg
- run 4182 de: 3 poster bevaret, en person ejer dem
- run 4182 ja: 41 poster fra memory, 0 ord
- run 4183 ar: pluralform mangler efter genforsøg, post afvist
- pull skrevet locales/pt-BR.json
- sync transglot/sync opdateret, pull-request #812
Alle tre forbinder til dit repository. Forskellen er, hvad der sker, når du merger.
Læst fra hvert virksomheds egne sider den 5. november 2026. Prisrækken stammer fra vores sammenligningssider, som er linket nedenfor, og som viser planen og beregningen. Priser og planer ændres, så tjek dem, før du træffer din beslutning.
| Hvad der sker | Transglot | Lokalise | Crowdin |
|---|---|---|---|
| En ny streng flettes | Oversat som standard Pushet starter kørslen. En projektindstilling slår det fra. | Oversat, når du har konfigureret det Automatiseringer er som standard slået fra ved oprettelse af nøgler og import af filer. En workflow med et AI-trin kører efter sin tidsplan. | Oversat, når du slår det til Under Indstillinger, Auto-oversæt, kører det derefter ved hver upload. Git-synkroniseringen kører som standard hver time. |
| En oversættelse består ikke en kontrol | Repareret én gang, derefter afvist For en ødelagt pladsholder, flertalsform eller forbudt term, på hver række i hver kørsel. En længdeoverskridelse logges. På et ICU-projekt holdes en ødelagt række ude af pull'en, connectorne og CDN'et. | En kontrol på fejlniveau forhindrer gemning i editoren Hver kontrol er indstillet til Fra, Advarsel eller Fejl. | En kontrol på fejlniveau forhindrer gemning Hver kontrol er indstillet til Advarsel eller Fejl. |
| En person har allerede redigeret rækken | Kørslen nægter at skrive den Det gør et hukommelsesmatch og et push også. Hvis kilden ændres senere, rapporterer kørslen rækken. | Automatiseringer udfylder tomme værdier som standard En force-indstilling og en ryd-handling overskriver udfyldte værdier. | Indstillinger bevarer menneskelige og godkendte rækker Der findes også en indstilling for erstat alt. |
| Pull-anmodninger i et travlt repository | Én branch, én pull-anmodning Opdateres på stedet ved hvert push. | En ny branch for hver pull-anmodning Navngivet med et tidsstempel. | En service-branch, synkroniseret hver time Hver time er standard, og intervallet kan ændres. |
| Hvad planen tæller | Oversatte ord, én gang pr. sprog Præcise hukommelsesmatches koster ingenting. Lagring af en streng koster ingenting. | Behandlede ord Både kildesproget og målsproget tæller med. | Hostede ord Ord, der skal oversættes, ganget med antallet af målsprog. |
| Hvad der betaler for AI'en | Planens ord Det faktureres ikke separat. | AI-ordkvoter efter plan Standard AI- og Pro AI-ord er separate linjer i planen. | En separat saldo eller din egen nøgle Crowdins administrerede AI betales via credits uden for abonnementet. |
| Den samme opgave: 5,000 strenge på 10 sprog | $39 om måneden Team, oversættelse inkluderet | $1,049 om måneden Advanced (billed yearly) | $138 om måneden Pro with 560K hosted words (billed monthly), plus AI |
| GitHub, GitLab, Bitbucket, Azure Repos, en CLI og en MCP-server | Alle sammen Git-appene starter fra Team-planen og dækker cloud-versionerne. | Alle sammen Integrationer er tilgængelige på alle planer. | Alle sammen Det dækker også Bitbucket Server. |
- En ny streng flettes
- Oversat som standardPushet starter kørslen. En projektindstilling slår det fra.
- En oversættelse består ikke en kontrol
- Repareret én gang, derefter afvistFor en ødelagt pladsholder, flertalsform eller forbudt term, på hver række i hver kørsel. En længdeoverskridelse logges. På et ICU-projekt holdes en ødelagt række ude af pull'en, connectorne og CDN'et.
- En person har allerede redigeret rækken
- Kørslen nægter at skrive denDet gør et hukommelsesmatch og et push også. Hvis kilden ændres senere, rapporterer kørslen rækken.
- Pull-anmodninger i et travlt repository
- Én branch, én pull-anmodningOpdateres på stedet ved hvert push.
- Hvad planen tæller
- Oversatte ord, én gang pr. sprogPræcise hukommelsesmatches koster ingenting. Lagring af en streng koster ingenting.
- Hvad der betaler for AI'en
- Planens ordDet faktureres ikke separat.
- Den samme opgave: 5,000 strenge på 10 sprog
- $39 om månedenTeam, oversættelse inkluderet
- GitHub, GitLab, Bitbucket, Azure Repos, en CLI og en MCP-server
- Alle sammenGit-appene starter fra Team-planen og dækker cloud-versionerne.
- En ny streng flettes
- Oversat, når du har konfigureret detAutomatiseringer er som standard slået fra ved oprettelse af nøgler og import af filer. En workflow med et AI-trin kører efter sin tidsplan.
- En oversættelse består ikke en kontrol
- En kontrol på fejlniveau forhindrer gemning i editorenHver kontrol er indstillet til Fra, Advarsel eller Fejl.
- En person har allerede redigeret rækken
- Automatiseringer udfylder tomme værdier som standardEn force-indstilling og en ryd-handling overskriver udfyldte værdier.
- Pull-anmodninger i et travlt repository
- En ny branch for hver pull-anmodningNavngivet med et tidsstempel.
- Hvad planen tæller
- Behandlede ordBåde kildesproget og målsproget tæller med.
- Hvad der betaler for AI'en
- AI-ordkvoter efter planStandard AI- og Pro AI-ord er separate linjer i planen.
- Den samme opgave: 5,000 strenge på 10 sprog
- $1,049 om månedenAdvanced (billed yearly)
- GitHub, GitLab, Bitbucket, Azure Repos, en CLI og en MCP-server
- Alle sammenIntegrationer er tilgængelige på alle planer.
- En ny streng flettes
- Oversat, når du slår det tilUnder Indstillinger, Auto-oversæt, kører det derefter ved hver upload. Git-synkroniseringen kører som standard hver time.
- En oversættelse består ikke en kontrol
- En kontrol på fejlniveau forhindrer gemningHver kontrol er indstillet til Advarsel eller Fejl.
- En person har allerede redigeret rækken
- Indstillinger bevarer menneskelige og godkendte rækkerDer findes også en indstilling for erstat alt.
- Pull-anmodninger i et travlt repository
- En service-branch, synkroniseret hver timeHver time er standard, og intervallet kan ændres.
- Hvad planen tæller
- Hostede ordOrd, der skal oversættes, ganget med antallet af målsprog.
- Hvad der betaler for AI'en
- En separat saldo eller din egen nøgleCrowdins administrerede AI betales via credits uden for abonnementet.
- Den samme opgave: 5,000 strenge på 10 sprog
- $138 om månedenPro with 560K hosted words (billed monthly), plus AI
- GitHub, GitLab, Bitbucket, Azure Repos, en CLI og en MCP-server
- Alle sammenDet dækker også Bitbucket Server.
Start det derfra, hvor dine strenge befinder sig. Alle døre fører til samme pipeline.
Sådan opsætter du kontinuerlig lokalisering
- 01
Få strenge ud af koden
Alle brugerrettede strenge skal have en stabil nøgle i en lokalitetsfil. Transglot læser 20 formater, så behold det, du har.
jsonyamlxliffarb - 02
Forbind lageret
Init-kommandoen finder dine lokalitetsfiler, logger dig ind via browseren, uploader det, du allerede har, og kører den første oversættelse.
npx transglot@latest init - 03
Kør det ved hver merge
Tilføj GitHub Action, kald CLI'en fra enhver anden CI, eller installer appen til GitHub, GitLab, Bitbucket eller Azure Repos.
transglot push --wait - 04
Beslut, hvad der kræver en person
Indstil min_state til reviewed på en pull-regel, og den fil indeholder kun strenge, som en person har gennemset. Lad være med at slå det til, så sendes kladder.
min_state: reviewed
Hvad det koster at køre ved hver merge: de ord, der er ændret.
Et ord er et kildeord, talt én gang pr. målsprog. En kørsel størrelsesbestemmes ud fra det, der er ændret, så en merge, der berører tolv ord i fem sprog, tæller som tres, uanset hvor stort projektet er.
Passer på Starter: $19/mo, 300,000 ord om måneden.
Det er cirka 9% af tilladelsen.
Dette tæller kun oversættelse. Kvalitetstjek, brand voice-kladder og reparationer tæller også som ord, og eksakte matches fra hukommelsen koster intet. CLI'en og GitHub Action starter på Starter, og appsene til GitHub, GitLab, Bitbucket og Azure Repos starter på Team.
Tre ting, som kontinuerlig lokalisering ikke løser
Strenge, der stadig sidder fast i koden
En pipeline kan kun oversætte det, den kan læse. Hardcodede strenge og sætninger, der er limet sammen af dele, skal rettes først, og de er den sædvanlige årsag til, at en udrulning går i stå.
Ingen ejer ordene
Automatisering flytter strenge. Den beslutter ikke, hvad dit produkt kalder tingene. Nogen skal eje glossaret, ellers vil et sprog, ingen læser, drive væk uden nogens opmærksomhed.
Tekst, der kræver dømmekraft
Juridisk tekst, priser og brandlinjer fortjener et menneske. Send dem til gennemgang, og hold dem ude af de filer, der sendes med, indtil nogen har godkendt dem.
FAQ om kontinuerlig lokalisering
De spørgsmål, teams stiller, før de slår det til.
Hvad er kontinuerlig lokalisering?
Hvordan adskiller kontinuerlig lokalisering sig fra traditionel lokalisering?
Er kontinuerlig lokalisering det samme som CI/CD?
Har jeg brug for en CI/CD-pipeline til kontinuerlig lokalisering?
Betyder kontinuerlig lokalisering, at der ikke er nogen menneskelig gennemgang?
Kan en automatiseret kørsel overskrive en oversætters redigering?
Er kontinuerlig lokalisering det værd for et lille team?
Hvordan undgår jeg, at en kørsel koster mere end forventet?
Virker det med GitLab, Bitbucket og Azure DevOps?
Kan jeg lave kontinuerlig lokalisering uden Git?
Kan oversættelser opdateres uden en udgivelse?
Hvordan flytter jeg et eksisterende projekt over?
41 connectors, allerede bygget.
Forbind et repository. Den næste merge gør resten.
Én kommando finder dine sproglige filer, logger dig ind via browseren og udfører den første oversættelse.