# Tolgee lets you edit strings inside production, and its release bot translates the platform itself on every release

> tolgee/tolgee-platform is an open-source localization platform whose distinguishing feature is in-context editing: holding a modifier key and clicking an element opens a dialog on the running application. Around that sit translation memory with visible similarity percentages, four named machine translation services, an AI translator that is given context from key layout and told which reading it chose, an MCP server so coding assistants can edit translations, and a release pipeline with three channels that commits the platform's own translation files.

**tolgee/tolgee-platform** — Developer & translator friendly web-based localization platform

- Repository: https://github.com/tolgee/tolgee-platform
- Website: https://tolgee.io
- Stars: 4,119 · Forks: 372
- Language: TypeScript
- License: NOASSERTION
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/tolgee-tolgee-platform

## Three release channels, and a bot that edits the platform's own strings

The repository publishes from three branches with three channels: the default branch produces stable releases on the latest channel, a branch named beta produces pre-releases, and a branch with a version suffix produces alphas. The release tool is driven by a root manifest whose only scripts are release-related, including a dry-run variant and a debug variant of the same, so the frontend and backend are not built from this manifest at all. The plugin order is the interesting part. After computing the version, the tool commits two things: the change log and the web application's own translation directory. Then it uploads the built application archive renamed with the version, without a success comment, and finally writes the version number into its own file. So every release of the platform also commits changes to the platform's translations, which is a project eating its own dog food in the most literal way available.

## In-context editing is designed to work against production

The feature that distinguishes this platform from a file-syncing service is described in operational terms rather than aspirational ones. You hold the modifier key and click an element in your application, and a dialog opens where you can change the string. The point the documentation keeps returning to is that this works against a deployed application, not only a development one, and that the tooling is a browser plugin where you paste an API key. That single decision explains the rest of the design, including the screenshot feature, where holding the modifier key and clicking a string and then pressing a camera button produces a screenshot of your application with the translatable phrases highlighted. The screenshots are not a marketing feature; they are the input to the next feature. A translator who cannot see the phrase in context has the same problem the platform is trying to solve.

## The AI translator is required to say which reading it picked

The distinction this project draws is between conventional machine translation, which sees one string at a time, and its own AI translator, which sees the situation around it. The inputs are enumerated: screenshots of the phrase inside the application, the key, project descriptions, your language notes, matches from the translation memory, and a context object the software development kit gathers from how keys are laid out in the application. The example given is a one-word string, and the point is that the word can be a button, a status, or a menu item depending on where it sits. The translator picks based on that and then reports which reading it went with, specifically so a reviewer can disagree at a glance. That last clause is the design decision worth copying: showing the reasoning turns a suggestion into something a person can check, and it is the difference between an opaque score and a reviewable artefact.

## Context is collected from your code layout, not from a form

The context object is the part of the feature that will decide whether the AI translator works for you. It is not something a translator types into a field, and the documentation does not describe it as such. It is gathered by the software development kit from how keys are actually laid out in your application, which means the quality of the context depends on your key naming and your component structure rather than on discipline. A key called settings.button.open and a key called open are the same string to a machine translator and completely different strings to something reading your layout. The platform also lets you shape the output further by describing the project and the languages, or by editing the translation prompt itself, which is the escape hatch for the cases where the automatic context is wrong in a consistent way rather than a random one. Both levers are worth understanding before you decide the feature is inaccurate.

## Four named machine translation services, and memory that shows its confidence

Two automation features sit under the AI translator, and they are described separately because they fail differently. Machine translation support is four named services, chosen in settings: one European service, one Google service, one Amazon service and one Microsoft service. Auto translation applies either translation memory or a machine translation service to new keys the moment they are created, and you choose which. Translation memory is the older feature and the one with the better transparency: a suggestion shows the similarity percentage, the key, and the original text, so a maintainer can judge the match rather than accept it. The three together are a sensible escalation ladder, with memory first because it is free and human-written, machine translation second because it is fast and inconsistent, and the AI translator last because it is the one that needs the context to be any good.

## Three auditing features answer different questions about a string

The platform separates three things people usually conflate. The activity log answers who touched a phrase: it records who modified, who reviewed, and who commented, per project. Comments answer the reviewer question: you can leave a note on any translation saying what you would change, without touching the string. Translation history answers the regression question: the changes to one key in one language over time, so when a string turns out wrong in production you can see which change introduced it. Splitting them this way is more work to build and less work to use, and it is the difference between a log you can search and a log you read once. For a project with many translators who are not all on the team, those are the three questions that come up constantly, and none of the three requires a translator to open the platform's database.

## An MCP server puts translation management inside the editor

The platform exposes a Model Context Protocol server, and the readme is specific about what it is for: letting coding assistants manage translations directly, including searching keys, creating and updating translations, managing languages and triggering machine translation, without leaving the editor. Setup instructions are not in the readme itself but in the development document, which is a small signal about where this feature sits relative to the rest of the product. The capability list matters because it is a write path with a service behind it: an assistant can change production-facing strings, so the same review question applies as for a human translator, and the activity log is what makes those changes attributable. Given that the repository also ships contributor guidelines for a specific coding assistant in a hidden directory, the project is clearly being used by assistants internally as well as offered to its users.

## A JVM backend, a TypeScript front end, and an enterprise directory

The repository is two projects and a business model. The back end is built with Gradle, has a wrapper for two platforms, and pins a Java version in its own file. The front end is a directory of its own with its own manifest and its own hook setup, which is why the project's primary language is reported as TypeScript even though the server is not. Between them sit directories that explain the rest: one named for enterprise editions, one named for mail, one for tests that drive a browser, one for documentation, one for containers, one for a component explorer addon, and a template configuration file for tunnelling local development to the outside. Four animated images sit at the root as documentation assets. The licence field on the repository could not be determined automatically even though a licence file exists, which is worth knowing if you are scanning for licence compatibility rather than reading it.

## Conclusion

Tolgee fits a product with a user interface whose strings are still moving, because the argument for in-context editing is that a translator who cannot see the button does not know what the button says, and the argument for translation memory with a visible similarity percentage is that a reviewer can see how confident the suggestion is. It does not fit a team that wants translations handled entirely outside the running application, since the whole loop depends on clicking the real interface. Two things to check before adopting it. Which channels your release process consumes, because the repository publishes three, one stable, one pre-release and one alpha from a separate branch, so a script that assumes one artefact per version will break on the others. And which translation files you let the tooling write, since the in-context editing path works against a deployed application and that is a decision about your production environment, not only about your build.

## FAQ

### What is the Tolgee platform?

It is an open-source, web-based localization platform aimed at developers and translators, presented as an open-source alternative to Crowdin, Phrase and Lokalise. Its distinguishing feature is in-context editing: holding a modifier key and clicking an element in your running application opens a dialog for editing that string, and it is designed to work against a deployed production environment rather than only a development one.

### What is the best free translation platform?

The readme makes no comparison against other platforms beyond naming three commercial ones as alternatives, so it does not support a claim about which is best. What it states about itself is that it is open source and can be self-hosted, that it works in context inside your own application, and that it supports DeepL, Google Translate, AWS Translate and Azure Translator for machine translation alongside its own translation memory and AI translator.

### Does Tolgee use machine translation or an AI translator?

Both, and the readme draws the line explicitly. Conventional machine translation sees one string at a time and is provided by four named external services. The AI translator also sees screenshots of the phrase in your app, the key, project descriptions, your language notes and translation memory matches, plus a context object the SDK gathers from key layout, and it reports which reading of an ambiguous string it chose so a reviewer can check it.

### How do I install Tolgee?

The readme describes the hosted route: sign up, create a project, then follow a guide in the project's integration section. It also states you can access a self-hosted instance instead, and links a container image repository. The integration guides and the command-line tool and JavaScript SDK are documented separately on the documentation site.

## Sources

- [Issues](https://github.com/tolgee/tolgee-platform/issues)
- [Project website](https://tolgee.io)
- [README](https://github.com/tolgee/tolgee-platform/blob/main/README.md)
- [Releases](https://github.com/tolgee/tolgee-platform/releases)
- [tolgee/tolgee-platform on GitHub](https://github.com/tolgee/tolgee-platform)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/tolgee-tolgee-platform
