Manual
CLI
API
Log in Get started free

Commands

Everything ct push, pull, status, merge, init and snippet do.

CommandWhat it does
ct pushSends the source file
ct pullWrites the translation files
ct statusShows how complete each language is on the branch
ct merge <branch>Merges a Continuous Translations branch into main
ct init, ct snippet <github|gitlab>Create ct.yml, print a CI job

ct push #

Sends the source file. New and changed strings are updated, and a changed string sends its translations back to draft. Other Git branches become Continuous Translations branches of the same name, created from main.

OptionEffect
--translationsAlso uploads the existing translation files (first import)
--pruneRemoves keys that left the file
--dry-runOnly reports what would change

push never overwrites existing translations, unless the project allows import overwrites. Pushing twice changes nothing, so a pipeline that commits pulled files won’t loop.

ct pull #

Writes the translations files for every active language, in the order of the source file. Only approved translations are written, unless you pass --drafts.

OptionEffect
--draftsInclude translations that are not approved yet
--fallbackFill gaps with the source text
--language deLimit the pull to one language
--require-complete 100Fail before writing when a language is behind
--checkWrite nothing and exit 1 if a file is out of date

pull replaces the translation files.

ct status #

Shows how complete each language is on the branch.

ct merge #

Merges a Continuous Translations branch into main, for example from the default-branch pipeline after a pull request was merged:

SH
ct merge feature/checkout-v2

Which branch #

The branch comes from, in order: --branch, CT_BRANCH, the CI variables of GitHub and GitLab (pull request branches first), or git.