Skip to content

How the Pipeline Works

This is the current localization flow used by Clawdie.

English source content lives in:

  • docs/public/

Translated locale content lives in:

  • docs/public/sl/
  • docs/public/<lang>/

The repo is the editorial source of truth.

Run from the host repo root:

Terminal window
./scripts/crowdin-sync.sh --push

This uploads current source markdown to the Crowdin project so translators can work on it.

Crowdin stores translated strings and reconstructed translated markdown.

Typical timeline:

  • source docs updated in git
  • source pushed to Crowdin
  • translators complete or revise a locale

Run:

Terminal window
./scripts/crowdin-sync.sh --pull

This writes translated files back into locale folders such as:

  • docs/public/sl/
  • docs/public/de/

At this point the repo contains the content that Astro will render.

Inside the cms jail docs project:

Terminal window
cd /usr/home/<tenant>/<tenant>-site
npm run deploy

The deploy flow runs sync-public-docs.mjs, which copies canonical docs content from the host repo into the Astro docs content tree before the build.

The same deploy flow runs:

Terminal window
astro build

Astro/Starlight then:

  • reads the synchronized docs content
  • applies locale routing
  • renders static HTML for each supported locale

The built output is deployed into the cms jail webroot and served through the configured docs surface.

For operators, the important point is:

  • localization does not have its own deploy path
  • it rides on the normal docs deployment path
docs/public/* -> editorial source
Crowdin -> translation workflow
docs/public/<lang>/* -> translated markdown in git
cms jail Astro app -> build + deploy
docs.clawdie.si -> live localized output