Tuloy-tuloy na lokalizasyon: bawat wika, sa bawat merge.
Ang tuloy-tuloy na lokalizasyon ay nagsasalin ng mga bagong at binagong string habang nagbabago ang iyong code, sa halip na sa hiwalay na yugto bago ang bawat release. Handa nang i-release ang bawat wika kasama ang code na kailangan nito.
Ano ang tuloy-tuloy na lokalizasyon?
Ang tuloy-tuloy na lokalizasyon ay isang paraan ng pagtatrabaho kung saan ang mga bagong at binagong string ay ipapasa sa pagsasalin nang awtomatiko pagka-bago nila, at ibabalik ang translated text sa produkto nang walang kinakailangang iskedyul.
Walang translation phase dahil hindi tumitigil ang pagsasalin. Kapag nag-merge ang developer ng isang string, susundan ito ng mga translation sa parehong daloy ng code, at hindi nakadepende ang release sa file ng sinuman.
Ito ang kalahati ng continuous delivery na tungkol sa lokalizasyon. Ang team na nagme-merge araw-araw at nagpapa-translate tuwing ilang linggo ay may mga wikang laging huli sa code sa karamihan ng buwan. Pinapaliit ng tuloy-tuloy na lokalizasyon ang agwat na ito hanggang sa haba ng isang takbo.
Hindi ibig sabihin nito ay ilalabas nang hindi binabasa ang output ng machine. Ikaw ang magdedesisyon kung aling mga string ang kailangan ng tao, at maaaring isama sa release lamang ang mga nasuri na.
Ang pagkakaiba ay kung kailan ginagawa ang pagsasalin, hindi kung sino ang gumagawa nito.
| Ano ang magbabago | Batch na paglipat | Tuloy-tuloy |
|---|---|---|
| Magkatabi | ||
| Kailan ginagawa ang pagsasalin | Sa isang yugto bago ang bawat release | Habang nagbabago ang bawat string |
| Ano ang nagpapagsimula nito | May nag-e-export ng file | Isang push, merge, o pagbabago ng nilalaman |
| Ang laki ng bawat bahagi | Mga linggong halaga ng strings nang sabay-sabay | Ang mga string sa isang pagbabago |
| Hinihintay ng isang release | Ang file na ibabalik | Rebyu, sa mga string na minarkahan mo para dito |
| Isang huling pagbabago ng copy | Isa pang round trip | Pagpatakbo muli ng iisang key na iyon |
| Ginagamit ng tagasalin bilang batayan | Isang spreadsheet ng mga string | Ang row, kasama ang mga termino ng glosaryo, tugma sa memorya, at mga screenshot |
| Mga wika sa paglulunsad | Naka-istagger, isa-isa ang alon | Sabay, kasama ang feature |
- Kailan ginagawa ang pagsasalin
- Sa isang yugto bago ang bawat release
- Ano ang nagpapagsimula nito
- May nag-e-export ng file
- Ang laki ng bawat bahagi
- Mga linggong halaga ng strings nang sabay-sabay
- Hinihintay ng isang release
- Ang file na ibabalik
- Isang huling pagbabago ng copy
- Isa pang round trip
- Ginagamit ng tagasalin bilang batayan
- Isang spreadsheet ng mga string
- Mga wika sa paglulunsad
- Naka-istagger, isa-isa ang alon
- Kailan ginagawa ang pagsasalin
- Habang nagbabago ang bawat string
- Ano ang nagpapagsimula nito
- Isang push, merge, o pagbabago ng nilalaman
- Ang laki ng bawat bahagi
- Ang mga string sa isang pagbabago
- Hinihintay ng isang release
- Rebyu, sa mga string na minarkahan mo para dito
- Isang huling pagbabago ng copy
- Pagpatakbo muli ng iisang key na iyon
- Ginagamit ng tagasalin bilang batayan
- Ang row, kasama ang mga termino ng glosaryo, tugma sa memorya, at mga screenshot
- Mga wika sa paglulunsad
- Sabay, kasama ang feature
Paano gumagana ang tuloy-tuloy na lokalizasyon
Sundan ang isang bagong string sa loob ng loop. Ipakikita ng bawat hakbang kung ano ang makikita mo talaga.
Dumadaloy ang pagbabago sa Transglot sa pamamagitan ng CLI, GitHub Action, o app sa iyong Git host. Pinaparse ang mga source file sa isa sa 20 katutubong format, at ihahambing ang bawat string sa kung ano ang mayroon na ng proyekto. Ang mga bagong at binagong string lamang ang magpapatuloy.
Ang eksaktong tugma mula sa translation memory ay puno ang row at walang bayad na salita. Ang natitira ay ipinapasa sa Glossa kasama ang iyong glossary, style guide, at konteksto ng key na iyon.
Ang mga placeholder, plural forms, termino sa glossary, at haba ay sinusuri sa bawat row ng bawat takbo. Ang sirang placeholder, nawawalang plural form, o ipinagbabawal na termino sa glossary ay inaaayos nang isang beses at sinusuri muli, at kung ito ay mabibigo sa ikalawang pagkakataon, ito ay tinatanggihan at hindi ipinapadala. Ang row na lumampas lamang sa haba nito ay isinusulat, at mula sa Team plan, ang auto-approve o QA run ay nagmamarka nito para sa pagsusuri.
Hindi kailanman sumusulat ang isang takbo sa ibabaw ng row na na-edit o nasuri ng tao. Kung magbago ang source nito sa kalaunan, mananatili ang teksto, bibilangin ng takbo ang row at ipapaalam sa iyo, at mula sa Team plan, ang iminumungkahi na update ay naghihintay sa tabi nito para tanggapin ng isa.
Ang Git apps ay nagco-commit ng locale files sa isang sync branch at pinapanatiling updated ang isang pull request. Sa GitHub, mag-comment ng /translate sa isang pull request at ilalagay ang mga file sa sariling branch ng pull request na iyon. O i-publish sa CDN, at babasahin ng tumatakbo na produkto ang pagbabago nang walang anumang release.
Anim na paraan kung paano nagkakaroon ng problema ang continuous localization, at kung ano ang humihinto sa bawat isa
Sinusupercede ng takbo ang gawa ng tao
Bawat writer ay unang suriin ang estado ng row: isang takbo, tugma sa memorya, at push. Ang row na na-edit o nasuri ng tao ay nananatili, at iniuulat ito ng takbo.
→fr, nasuri, kamakailan lang nabago ang source
✓pinanatili, binilang, iniulat
Ang sira na string ay umaabot sa produksyon
Bawat token na ipinasok ay dapat lumabas. Sa isang ICU project, ang mensaheng magdudulot ng error sa oras ng render ay hindi isinasama sa pull, connector, at CDN bundle, at pinangalanan ito ng run.
→{count, plural, one {# article}
✓hindi isinama sa file, pinangalanan sa run
Napupuno ang repository ng mga bot pull request
Isang sync branch at isang pull request bawat repository. Dalawang mabilis na push ay nagkakaisa dito sa halip na magbukas ng ikalawa.
→#812 #815 #819 #823 l10n update
✓#812 transglot/sync, na-update in place
Ang edit sa source ay nag-iiwan ng lumang translation
Bawat target row ay nagsusumite ng source kung saan ito isinulat, kaya ang string na nabago ay alam na outdated sa bawat wika nang sabay-sabay, at tanging key na iyon lamang ang tumatakbo muli.
→Naging Save draft ang Save. Ang fr, de, ja ay nanatiling Save
✓fr, de, ja tumatakbo muli sa iisang key na iyon
Bawat run ay bumibilling muli sa buong project
Ang sukat ng run ay base sa mga pagbabago. Ang hindi nabagong string ay hindi ipinapadala, ang eksaktong memory match ay walang bayad sa mga salita, at ang row na may tagapagmamay-ari ay tinatanggi bago gumastos.
→ang file ay naglalaman ng 48,000 salita
✓run na ito: 60 salita
Ang kalahating tapos na pull ay nagbubura ng locale file
Kung ang server ay nag-uulat ng walang entries para sa isang locale, ang pull ay tumatangging sumulat sa file na may content, at exit code 1 upang huminto ang pipeline doon.
→pull: 0 entries para sa ja, ang file ay naglalaman ng 1,204
✓tinatangging palitan ang locales/ja.json ng empty bundle
- run 4182 fr: kulang ang placeholder sa draft, naayos sa retry
- run 4182 de: 3 rows na pinanatili, may tagapagmamay-ari sila
- run 4182 ja: 41 rows mula sa memory, 0 salita
- run 4183 ar: kulang ang plural form pagkatapos ng retry, tinanggihan ang row
- pull isinulat ang locales/pt-BR.json
- sync na-update ang transglot/sync, pull request #812
Lahat ng tatlo ay konektado sa iyong repository. Ang pagkakaiba ay nasa mangyayari kapag nag-merge ka.
Binasa mula sa sariling mga page ng bawat kumpanya noong 5 Nobyembre 2026. Ang hanay ng presyo ay galing sa aming mga comparison page, naka-link sa ibaba, na nagpapakita ng plano at kalkulasyon. Nagbabago ang mga presyo at plano, kaya suriin ang mga ito bago magdesisyon.
| Ano ang nangyayari | Transglot | Lokalise | Crowdin |
|---|---|---|---|
| Isang bagong string ay naka-merge | Naisalin sa default Ang push ay nagsisimula ng run. Ang isang setting ng proyekto ang nag-o-off nito. | Naisalin kapag na-set up mo na ito Ang mga automation ay naka-off sa default sa paglikha ng key at pag-import ng file. Tumatakbo ang workflow na may AI step sa sarili nitong schedule. | Naisalin kapag i-on mo ito Sa ilalim ng Settings, Auto-Translate, tumatakbo ito sa bawat upload. Ang Git sync ay tumatakbo kada oras sa default. |
| Ang isang translation ay nabigo sa check | Isang beses na inayos, pagkatapos ay tinanggihan Para sa sira na placeholder, plural form o forbidden term, sa bawat row ng bawat run. Isinusulat ang length overrun. Sa ICU project, mananatiling wala sa pull, connectors at CDN ang sirang row. | Ang Error-level check ay humihinto sa save sa editor Ang bawat check ay naka-set sa Off, Warning o Error. | Ang Error-level check ay humihinto sa save Ang bawat check ay naka-set sa Warning o Error. |
| May tao nang nag-edit ng row | Tinatanggihan ng run na isulat ito Ganoon din ang memory match at push. Kung magbago ang source mamaya, ire-report ng run ang row. | Pinupunan ng mga automation ang mga walang laman na value sa default Ang force option at clear action ay sumusulat sa ibabaw ng mga napunang value. | Pinapanatili ng mga option ang human at approved rows Mayroon ding replace-all option. |
| Mga pull request sa abalang repository | Isang branch, isang pull request Ina-update in place sa bawat push. | Bagong branch para sa bawat pull request Pinangalan gamit ang timestamp. | Service branch, naka-sync kada oras Kada oras ang default, at maaaring baguhin ang interval. |
| Ang binibilang ng plano | Mga salitang naisalin, isang beses bawat wika Walang bayad ang eksaktong memory match. Walang bayad ang pag-iimbak ng string. | Mga pinrosesong salita Bilangin ang base language at target. | Mga naka-host na salita Mga salitang isasalin, times target languages. |
| Sino ang nagbabayad para sa AI | Mga salita ng plan Hindi ito binibilling hiwalay. | AI word allowances ayon sa plan Ang Standard AI at Pro AI words ay sariling linya ng plan. | Hiwalay na balance, o sarili mong key Ang managed AI ng Crowdin ay binabayaran gamit ang credits, hiwalay sa subscription. |
| Parehong trabaho: 5,000 strings sa 10 wika | $39 bawat buwan Team, kasama ang translation | $1,049 bawat buwan Advanced (billed yearly) | $138 bawat buwan Pro with 560K hosted words (billed monthly), dagdag ang AI |
| GitHub, GitLab, Bitbucket, Azure Repos, CLI at MCP server | Lahat ng mga ito Nagsisimula ang Git apps sa Team at sakop ang cloud editions. | Lahat ng mga ito Kasama ang integrations sa bawat plan. | Lahat ng mga ito Sakop din nito ang Bitbucket Server. |
- Isang bagong string ay naka-merge
- Naisalin sa defaultAng push ay nagsisimula ng run. Ang isang setting ng proyekto ang nag-o-off nito.
- Ang isang translation ay nabigo sa check
- Isang beses na inayos, pagkatapos ay tinanggihanPara sa sira na placeholder, plural form o forbidden term, sa bawat row ng bawat run. Isinusulat ang length overrun. Sa ICU project, mananatiling wala sa pull, connectors at CDN ang sirang row.
- May tao nang nag-edit ng row
- Tinatanggihan ng run na isulat itoGanoon din ang memory match at push. Kung magbago ang source mamaya, ire-report ng run ang row.
- Mga pull request sa abalang repository
- Isang branch, isang pull requestIna-update in place sa bawat push.
- Ang binibilang ng plano
- Mga salitang naisalin, isang beses bawat wikaWalang bayad ang eksaktong memory match. Walang bayad ang pag-iimbak ng string.
- Sino ang nagbabayad para sa AI
- Mga salita ng planHindi ito binibilling hiwalay.
- Parehong trabaho: 5,000 strings sa 10 wika
- $39 bawat buwanTeam, kasama ang translation
- GitHub, GitLab, Bitbucket, Azure Repos, CLI at MCP server
- Lahat ng mga itoNagsisimula ang Git apps sa Team at sakop ang cloud editions.
- Isang bagong string ay naka-merge
- Naisalin kapag na-set up mo na itoAng mga automation ay naka-off sa default sa paglikha ng key at pag-import ng file. Tumatakbo ang workflow na may AI step sa sarili nitong schedule.
- Ang isang translation ay nabigo sa check
- Ang Error-level check ay humihinto sa save sa editorAng bawat check ay naka-set sa Off, Warning o Error.
- May tao nang nag-edit ng row
- Pinupunan ng mga automation ang mga walang laman na value sa defaultAng force option at clear action ay sumusulat sa ibabaw ng mga napunang value.
- Mga pull request sa abalang repository
- Bagong branch para sa bawat pull requestPinangalan gamit ang timestamp.
- Ang binibilang ng plano
- Mga pinrosesong salitaBilangin ang base language at target.
- Sino ang nagbabayad para sa AI
- AI word allowances ayon sa planAng Standard AI at Pro AI words ay sariling linya ng plan.
- Parehong trabaho: 5,000 strings sa 10 wika
- $1,049 bawat buwanAdvanced (billed yearly)
- GitHub, GitLab, Bitbucket, Azure Repos, CLI at MCP server
- Lahat ng mga itoKasama ang integrations sa bawat plan.
- Isang bagong string ay naka-merge
- Naisalin kapag i-on mo itoSa ilalim ng Settings, Auto-Translate, tumatakbo ito sa bawat upload. Ang Git sync ay tumatakbo kada oras sa default.
- Ang isang translation ay nabigo sa check
- Ang Error-level check ay humihinto sa saveAng bawat check ay naka-set sa Warning o Error.
- May tao nang nag-edit ng row
- Pinapanatili ng mga option ang human at approved rowsMayroon ding replace-all option.
- Mga pull request sa abalang repository
- Service branch, naka-sync kada orasKada oras ang default, at maaaring baguhin ang interval.
- Ang binibilang ng plano
- Mga naka-host na salitaMga salitang isasalin, times target languages.
- Sino ang nagbabayad para sa AI
- Hiwalay na balance, o sarili mong keyAng managed AI ng Crowdin ay binabayaran gamit ang credits, hiwalay sa subscription.
- Parehong trabaho: 5,000 strings sa 10 wika
- $138 bawat buwanPro with 560K hosted words (billed monthly), dagdag ang AI
- GitHub, GitLab, Bitbucket, Azure Repos, CLI at MCP server
- Lahat ng mga itoSakop din nito ang Bitbucket Server.
Simulan ito mula sa kung nasaan ang iyong mga string. Lahat ng daan ay dumadating sa parehong pipeline.
Paano mag-set up ng continuous localization
- 01
Kunin ang mga string mula sa code
Ang bawat string na nakikita ng user ay kailangan ng stable na key sa locale file. Binabasa ng Transglot ang 20 format, kaya gamitin mo lang ang meron ka.
jsonyamlxliffarb - 02
Ikonekta ang repository
Hinahanap ng init command ang iyong mga locale file, ini-sign in ka sa pamamagitan ng browser, ina-upload ang mayroon ka na, at pinatatakbo ang unang translation.
npx transglot@latest init - 03
Patakbuhin ito sa bawat merge
Idagdag ang GitHub Action, tawagin ang CLI mula sa anumang ibang CI, o i-install ang app para sa GitHub, GitLab, Bitbucket o Azure Repos.
transglot push --wait - 04
Desisyunan kung alin ang nangangailangan ng tao
Itakda ang min_state sa reviewed sa pull rule at ang file na iyon ay maglalaman lamang ng mga string na sinuri ng tao. Huwag itakda ito at ang mga draft ay ipapalabas.
min_state: reviewed
Gaano ito nagkakahalaga kapag pinatatakbo sa bawat merge: ang mga salitang nabago.
Ang isang salita ay source word, binibilang nang isang beses bawat target language. Ang isang run ay sinusukat base sa nabago, kaya ang merge na humahawak ng labindalawang salita sa limang wika ay bilang na animnapu, gaano man kalaki ang proyekto.
Pasok sa Starter: $19/mo, 300,000 words buwan-buwan.
Ito ay mga 9% ng allowance.
Binibilang nito ang translation lamang. Ang quality checks, brand voice drafts at repairs ay binibilang din bilang words, at ang exact matches mula sa memorya ay walang bayad. Ang CLI at GitHub Action ay nagsisimula sa Starter, at ang apps para sa GitHub, GitLab, Bitbucket at Azure Repos ay nagsisimula sa Team.
Tatlong bagay na hindi nalulutas ng tuloy-tuloy na lokalizasyon
Mga string na nakakulong pa rin sa code
Ang isang pipeline ay maaari lamang isalin ang kayang basahin nito. Kailangan munang ayusin ang mga hard-coded na string at mga pangungusap na binuo mula sa iba't ibang bahagi, at karaniwan itong dahilan kung bakit napipigilan ang rollout.
Walang may-ari ng mga salita
Ang automation ay naglilipat ng mga string. Hindi ito nagdedesisyon kung ano ang tawag ng iyong produkto sa mga bagay. Kailangang may may-ari ng glossary, o kaya ay dadaan ang isang wika sa pag-drift nang walang napapansin ng sinuman.
Copy na nangangailangan ng husay
Ang legal na teksto, presyo, at mga linya ng brand ay dapat suriin ng tao. Ipadala sila para sa review at panatilihin silang hiwalay sa mga file na ipinapadala hanggang sa aprubahan ng isang tao.
FAQ tungkol sa tuloy-tuloy na lokalizasyon
Mga tanong na itinatanong ng mga team bago nila ito i-activate.
Ano ang tuloy-tuloy na lokalizasyon?
Paano naiiba ang tuloy-tuloy na lokalizasyon sa tradisyonal na lokalizasyon?
Pareho ba ang tuloy-tuloy na lokalizasyon at CI/CD?
Kailangan ko ba ng CI/CD pipeline para sa tuloy-tuloy na lokalizasyon?
Nangangahulugan ba ang tuloy-tuloy na lokalizasyon na walang human review?
Maaari bang mapalitan ng automated run ang edit ng translator?
Sulit ba ang tuloy-tuloy na lokalizasyon para sa maliit na team?
Paano ko maiiwasan ang paggastos ng run nang higit sa inaasahan ko?
Gumagana ba ito sa GitLab, Bitbucket, at Azure DevOps?
Maaari ko bang gawin ang tuloy-tuloy na lokalizasyon nang walang Git?
Maaari bang mag-update ang mga translation nang walang release?
Paano ko ililipat ang umiiral na proyekto?
41 connector, handa na.
Ikonekta ang isang repositoryo. Susunod na merge ang mag-aayos ng natitira.
Isang command ang hahanap sa iyong mga file ng locale, i-sign in ka sa pamamagitan ng browser, at gagawin ang unang pagsasalin.