See autonomous localization in action. Fork this repo, add your API key, change a string, and watch translations appear automatically.
Click the Fork button above.
- Get a free API key at shipi18n.com (takes 30 seconds)
- In your forked repo, go to Settings > Secrets and variables > Actions
- Click New repository secret
- Name:
SHIPI18N_API_KEY - Value: Your API key from shipi18n.com
Edit locales/en/home.json - change any text:
{
"hero": {
"title": "Build something amazing"
}
}Change "Build something amazing" to anything you want.
Commit your change. Within a minute, a Pull Request will appear with Spanish, French, and German translations.
That's it.
When you pushed a change to locales/en/, the GitHub Action:
- Detected the changed files
- Called Shipi18n API to translate them
- Created
locales/es/,locales/fr/,locales/de/folders - Opened a PR with all the translations
This is autonomous localization. Set it up once, never think about translations again.
Live demo: https://shipi18n.github.io/shipi18n-demo/
Or open index.html locally in your browser to see the translations in action. Click the language buttons to switch.
shipi18n-demo/
├── index.html # Demo page with language switcher
├── locales/
│ ├── en/ # You edit these (source of truth)
│ │ ├── common.json
│ │ └── home.json
│ ├── es/ # Auto-generated
│ ├── fr/ # Auto-generated
│ └── de/ # Auto-generated
└── .github/
└── workflows/
└── translate.yml # GitHub Action config
Edit .github/workflows/translate.yml:
target-languages: 'es,fr,de,ja,zh,pt,ko' # Add any of 100+ languagesJust create new JSON files in locales/en/. The action will pick them up automatically.
create-pr: 'false' # Translations commit directly to your branch- Shipi18n Documentation
- GitHub Action Reference
- Pricing - Free tier: 100 keys, 3 languages
This demo uses 2 files x ~15 keys = ~30 keys, well within the free tier (100 keys).
Your free tier includes:
- 100 translation keys
- 3 target languages
- Unlimited API calls (keys cached for 90 days)
Upgrade when you need more.
Copy .github/workflows/translate.yml to your project and update the paths:
source-dir: 'src/locales/en' # Your English folder
output-dir: 'src/locales' # Where translations go
target-languages: 'es,fr,de' # Languages you needThat's all it takes.
Built with Shipi18n - Autonomous localization for developers.