Code repositories

Connect GitHub

Install the transglot GitHub App so a push to your default branch extracts new strings and comes back as a pull request with the translations.

The transglot GitHub App gives you continuous localization with no CI setup. When you push a change to your source locale file on the default branch, transglot extracts the new strings into your project, translates them, and opens a pull request with the translated files. You review and merge it like any other pull request.

The direction is repository to project to pull request. transglot never commits to your branches: it writes only to its own transglot/sync branch and proposes the change from there.

Requirements

  • Plan: Team or above. On a lower plan the GitHub App card offers Upgrade plan instead of Install on GitHub.
  • Role: Admin of the transglot workspace, or an Owner of its account.
  • On GitHub: permission to install a GitHub App on the account or organization that owns the repository.
  • Your files: one source locale file per repository, at a path that contains the locale code, for example locales/en.json.

What the App can access

On the repositories you grant it, the App asks GitHub for:

PermissionWhy
Contents: read and writeRead your source locale file, and write the translated files to the transglot/sync branch
Pull requests: read and writeOpen and update the translation pull request
Metadata: readRequired by GitHub for every App

The App authenticates as itself, so there is no token for you to create, paste or rotate.

Connect a repository

Install the App

In your workspace, open Integrations and select Install on GitHub on the GitHub App card, then Install on GitHub again on the GitHub App page. GitHub asks which account to install on and which repositories to grant. Grant only the repositories you want to localize.

When GitHub sends you back, transglot confirms "GitHub App connected. Map a repository to a project below."

Choose the repository and project

Under Repositories, pick the Repository and the Project it should feed. Each repository feeds one project.

Describe your files

FieldWhat to enter
Source pathWhere your locale files live, with {locale} in place of the locale code, for example locales/{locale}.json
FormatThe file format, for example json_nested or android_xml. See file formats
Source localeThe locale your team writes in, for example en
Target locales (comma-separated, blank = all)The locales to deliver, for example fr, de, es. Leave it blank to deliver every target language in the project
Minimum stateWhich translations go into the pull request. Any includes every translation; Human edited or Reviewed leaves out translations that have not reached that state

Select Link repository. transglot confirms it with the repository name, for example "acme/web linked.", and the repository appears in the list with its project, last run and pull request.

What happens on a push

  1. You push to the repository's default branch, and the push changes the source locale file (the Source path with your Source locale filled in).
  2. transglot extracts the strings from that file into the project. New and changed strings become ordinary keys, so translation memory, the glossary and quality checks apply to them like any other content.
  3. If the project has automatic translation on, the new strings are translated. A string your team has edited or reviewed is never overwritten by AI.
  4. When the translation finishes, transglot opens a pull request from the transglot/sync branch with one file per target locale, written to the same path pattern. If a transglot pull request is already open, it is updated in place instead of a second one being opened.

Pushes to other branches, and pushes that do not touch the source locale file, do nothing. If nothing new needed translating, or automatic translation is off, no pull request is opened.

Translating new strings uses your plan's monthly AI translation allowance, as it does anywhere else in transglot.

Check what happened

The GitHub App page lists Recent deliveries: every push transglot acted on, with its commit, its pull request and a status.

StatusMeaning
ReceivedThe push matched your source file and extraction started
TranslatingNew strings are being translated; the pull request follows
PR openedA new pull request was opened on transglot/sync
PR updatedThe open pull request was refreshed with the latest translations
Nothing to doNothing new to translate, so no pull request. The detail says why, for example "No new source strings to translate."
FailedSomething went wrong; the detail gives the reason
BlockedThe run was held because of the workspace's account status; the detail says why

To stop syncing one repository, select Unlink on its row and confirm. No new pull requests are opened for it; anything already open stays open, and the GitHub App stays installed.

To remove the App entirely, uninstall it from the account or organization's settings on GitHub.

Troubleshooting

For a step-by-step diagnosis, see Why is my repository sync not running?.

On this page