A desktop app for managing GitHub repository i18n translations.
Lingoa gives translators a streamlined workflow to browse, edit, and submit translations via GitHub pull requests — without needing to know git or the GitHub API.
- Repository discovery — open any local clone and auto-detect all i18n files (JSON/YAML)
- Side-by-side editor — source text at the top, editable translation at the bottom
- Key status indicators — see at a glance which keys are missing, in review, or done
- PR proposals — view competing translations from open PRs by other contributors
- One-click PR submission — branches, commits, pushes, and creates the PR automatically
- PR review — approve or request changes on other contributors' translation PRs
- Node.js
- Rust toolchain
- Git (must be available on
PATH) - A GitHub personal access token with
reposcope
# Install dependencies
npm install
# Run in development mode (hot reload)
npm run tauri devOn first launch, Lingoa will ask for your GitHub token. It is stored securely in your OS keychain and never written to disk.
# Type-check and bundle frontend
npm run build
# Build the distributable app (creates installer in src-tauri/target/release/bundle/)
npm run tauri build- Open a repo — click "Open folder" and select a local clone of a GitHub repository.
- Select files — Lingoa scans for i18n files and groups them by locale. Pick a source locale and a target locale.
- Translate — edit translations in the right-hand panel. Use
Ctrl+Enterto save and move to the next key, orShift+↓/↑to navigate. - Submit — click "Create PR" to push your changes and open a pull request on GitHub.
- Review — switch to the Review tab to see open translation PRs from others and approve or request changes.
- JSON — flat, nested, or
{ text, context }structured values - YAML — same structure, serialized with 2-space indent
Locale detection works on filenames (en.json, messages.fr.yaml) and directory names (locales/en/strings.json).
MIT