Configuration Options
Every input and output of Shipi18n/shipi18n-github-action@v3. The default mode is check, which needs no key.
Check mode (default)
| Input | Default | Description |
|---|
mode | check | check validates locale files; translate translates with your own key |
locales | ./locales | Locale root: flat, nested, Rails, ARB, .xcstrings, Android, gettext or XLIFF |
source-language | en | Source language the translations are compared against |
severity | — | Per-rule levels, e.g. missing-key=off,untranslated=off,orphan-key=off to report only runtime breakage (error, warning, info, off) |
baseline | — | Baseline JSON from npx @shipi18n/cli check --write-baseline: existing findings stop failing the job, new ones still do |
fail-on | error | Fail the job on error, warning or none |
min-coverage | — | Fail any language below this coverage percentage |
ignore-keys | — | Comma-separated * globs of keys to silence (path or ns:path) |
glossary | — | Glossary JSON: do-not-translate and locked terms, checked deterministically |
sarif-file | shipi18n.sarif | Where the SARIF report is written; upload it for PR annotations |
Translate mode (mode: translate, your own key)
| Input | Default | Description |
|---|
provider | anthropic | anthropic or openai |
api-key | — | Your LLM key; falls back to ANTHROPIC_API_KEY / OPENAI_API_KEY. Store it as a secret |
model | — | Override the provider's default model |
source-file | — | Source locale file, e.g. locales/en.json (this or source-dir) |
source-dir | — | Source locale directory; every JSON file in it is translated |
target-languages | — | Required in translate mode: comma-separated codes, e.g. es,fr,de |
output-dir | — | Where translated files go (default: next to the source) |
incremental | true | Only translate keys that changed since the previous commit |
create-pr | false | Open a pull request instead of committing directly |
branch-name | shipi18n-translations | Branch for the PR |
commit-message | chore: update translations [skip ci] | Commit message |
github-token | GITHUB_TOKEN | Token used to push and open PRs |
skip-keys | — | Exact dot-paths to leave untranslated, e.g. brandName,company.name |
skip-paths | — | Glob patterns to skip, e.g. states.*,config.*.secret |
Outputs
| Output | Mode | Description |
|---|
errors | check | Number of errors found |
warnings | check | Number of warnings found |
sarif-file | check | Path of the SARIF report |
files-changed | translate | Number of translation files updated |
files-list | translate | JSON array of translated files |
languages | translate | Languages translated |
verification-errors | translate | Placeholder and key errors found after translating |
verification-warnings | translate | Unusual length ratios found after translating |
skipped-keys-count | translate | Keys skipped via skip-keys / skip-paths |