Get the status of a batch job (e.g. machine translation) by its ID. Use to poll for completion.
Parameters2
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
jobId
number
required
ID of the batch job
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"jobId": {
"type": "number",
"description": "ID of the batch job"
}
},
"required": [
"jobId"
]
}
machine_translate
Start machine translation for specified keys into target languages. Returns a batch job ID โ use get_batch_job_status to poll for completion.
Parameters5
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
keyNames
array
required
Names of keys to translate
targetLanguageTags
array
required
Language tags to translate into (e.g. ['de', 'fr'])
namespace
string
optional
Optional: namespace of the keys
branch
string
optional
Optional: branch name
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"keyNames": {
"type": "array",
"description": "Names of keys to translate",
"items": {
"type": "string"
}
},
"targetLanguageTags": {
"type": "array",
"description": "Language tags to translate into (e.g. ['de', 'fr'])",
"items": {
"type": "string"
}
},
"namespace": {
"type": "string",
"description": "Optional: namespace of the keys"
},
"branch": {
"type": "string",
"description": "Optional: branch name"
}
},
"required": [
"keyNames",
"targetLanguageTags"
]
}
store_big_meta
Store key relationships so Tolgee can use translations of related keys as context during machine translation, producing more consistent results. Keys that appear near each other in source code (e.g. on the same page or component) should be stored as related.
Parameters3
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
relatedKeysInOrder
array
required
List of related keys in the order they appear together
branch
string
optional
Optional: branch name
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"relatedKeysInOrder": {
"type": "array",
"description": "List of related keys in the order they appear together",
"items": {
"type": "object",
"properties": {
"keyName": {
"type": "string",
"description": "Key name"
},
"namespace": {
"type": "string",
"description": "Optional: key namespace"
}
},
"required": [
"keyName"
]
}
},
"branch": {
"type": "string",
"description": "Optional: branch name"
}
},
"required": [
"relatedKeysInOrder"
]
}
list_branches
List branches in a Tolgee project. Returns up to 100 results per page. Only available for projects with branching enabled (enterprise feature).
Parameters3
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
search
string
optional
Optional: search filter for branch names
page
number
optional
Optional: page number (0-based, default 0)
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"search": {
"type": "string",
"description": "Optional: search filter for branch names"
},
"page": {
"type": "number",
"description": "Optional: page number (0-based, default 0)"
}
},
"required": []
}
create_branch
Create a new branch in a Tolgee project by forking from an existing branch. Only available for projects with branching enabled (enterprise feature).
Parameters3
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
name
string
required
Name of the new branch
originBranchId
number
required
ID of the branch to fork from
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"name": {
"type": "string",
"description": "Name of the new branch"
},
"originBranchId": {
"type": "number",
"description": "ID of the branch to fork from"
}
},
"required": [
"name",
"originBranchId"
]
}
delete_branch
Delete a branch from a Tolgee project. IMPORTANT: This is a destructive operation. The AI assistant should always confirm with the user before calling this tool.
Parameters2
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
branchName
string
required
Name of the branch to delete
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"branchName": {
"type": "string",
"description": "Name of the branch to delete"
}
},
"required": [
"branchName"
]
}
list_keys
List translation keys in a Tolgee project. Returns up to 100 keys per page. Use search_keys to find specific keys by name or translation text.
Parameters3
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
branch
string
optional
Optional: branch name
page
number
optional
Optional: page number (0-based, default 0)
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"branch": {
"type": "string",
"description": "Optional: branch name"
},
"page": {
"type": "number",
"description": "Optional: page number (0-based, default 0)"
}
},
"required": []
}
search_keys
Search for translation keys in a Tolgee project by name or translation text. Returns up to 50 matching keys per page. Note: namespace and tags filtering is not yet supported โ filter results client-side if needed.
Parameters5
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
query
string
required
Search query (matches key name or translation text)
languageTag
string
optional
Optional: language tag to search translations in
branch
string
optional
Optional: branch name
page
number
optional
Optional: page number (0-based, default 0)
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"query": {
"type": "string",
"description": "Search query (matches key name or translation text)"
},
"languageTag": {
"type": "string",
"description": "Optional: language tag to search translations in"
},
"branch": {
"type": "string",
"description": "Optional: branch name"
},
"page": {
"type": "number",
"description": "Optional: page number (0-based, default 0)"
}
},
"required": [
"query"
]
}
create_keys
Create translation keys in a Tolgee project with optional translations and tags. Keys that already exist are silently skipped โ their translations and tags are not updated. Use update_key and set_translation to modify existing keys.
Parameters4
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
keys
array
required
List of keys to create
namespace
string
optional
Optional: default namespace for all keys (individual keys can override)
branch
string
optional
Optional: branch name
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"keys": {
"type": "array",
"description": "List of keys to create",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Key name (e.g. 'home.welcome_message')"
},
"namespace": {
"type": "string",
"description": "Optional: namespace for the key (overrides top-level namespace)"
},
"translations": {
"type": "object",
"description": "Optional: translations as {languageTag: text} map",
"additionalProperties": {
"type": "string"
}
},
"tags": {
"type": "array",
"description": "Optional: tags to assign to the key",
"items": {
"type": "string"
}
},
"description": {
"type": "string",
"description": "Optional: description / developer context for the key"
}
},
"required": [
"name"
]
}
},
"namespace": {
"type": "string",
"description": "Optional: default namespace for all keys (individual keys can override)"
},
"branch": {
"type": "string",
"description": "Optional: branch name"
}
},
"required": [
"keys"
]
}
get_key
Get a translation key's metadata (name, namespace, description) by its name. To get the key's translations, use get_translations.
Parameters4
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
keyName
string
required
The translation key name
namespace
string
optional
Optional: namespace of the key
branch
string
optional
Optional: branch name
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"keyName": {
"type": "string",
"description": "The translation key name"
},
"namespace": {
"type": "string",
"description": "Optional: namespace of the key"
},
"branch": {
"type": "string",
"description": "Optional: branch name"
}
},
"required": [
"keyName"
]
}
update_key
Update an existing translation key's name, namespace, or description
Parameters7
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
keyName
string
required
Current key name (used to find the key)
keyNamespace
string
optional
Optional: current namespace of the key (used to find the key)
keyBranch
string
optional
Optional: branch name (used to find the key, for branching projects)
newName
string
required
New key name (provide the current name if unchanged)
newNamespace
string
optional
Optional: new namespace for the key
newDescription
string
optional
Optional: new description for the key
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"keyName": {
"type": "string",
"description": "Current key name (used to find the key)"
},
"keyNamespace": {
"type": "string",
"description": "Optional: current namespace of the key (used to find the key)"
},
"keyBranch": {
"type": "string",
"description": "Optional: branch name (used to find the key, for branching projects)"
},
"newName": {
"type": "string",
"description": "New key name (provide the current name if unchanged)"
},
"newNamespace": {
"type": "string",
"description": "Optional: new namespace for the key"
},
"newDescription": {
"type": "string",
"description": "Optional: new description for the key"
}
},
"required": [
"keyName",
"newName"
]
}
delete_keys
Delete translation keys from a Tolgee project. IMPORTANT: This is a destructive operation. The AI assistant should always confirm with the user before calling this tool.
Parameters4
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
keyNames
array
required
Names of the keys to delete
namespace
string
optional
Optional: namespace of the keys
branch
string
optional
Optional: branch name
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"keyNames": {
"type": "array",
"description": "Names of the keys to delete",
"items": {
"type": "string"
}
},
"namespace": {
"type": "string",
"description": "Optional: namespace of the keys"
},
"branch": {
"type": "string",
"description": "Optional: branch name"
}
},
"required": [
"keyNames"
]
}
list_languages
List all languages configured for a Tolgee project. Returns up to 1000 results per page.
Parameters2
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
page
number
optional
Optional: page number (0-based, default 0)
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"page": {
"type": "number",
"description": "Optional: page number (0-based, default 0)"
}
},
"required": []
}
create_language
Add a new language to a Tolgee project
Parameters5
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
name
string
required
Language display name (e.g. 'German')
tag
string
required
Language tag / IETF BCP 47 code (e.g. 'de')
originalName
string
optional
Native name of the language (e.g. 'Deutsch')
flagEmoji
string
optional
Flag emoji for this language
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"name": {
"type": "string",
"description": "Language display name (e.g. 'German')"
},
"tag": {
"type": "string",
"description": "Language tag / IETF BCP 47 code (e.g. 'de')"
},
"originalName": {
"type": "string",
"description": "Native name of the language (e.g. 'Deutsch')"
},
"flagEmoji": {
"type": "string",
"description": "Flag emoji for this language"
}
},
"required": [
"name",
"tag"
]
}
list_namespaces
List all namespaces in a Tolgee project. Namespaces organize translation keys into logical groups (e.g. by feature, page, or module).
Parameters1
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
}
},
"required": []
}
list_projects
List Tolgee projects accessible to the current user. Returns up to 100 results per page.
Create a new Tolgee project with initial languages
Parameters4
name
string
required
Project name
organizationId
number
required
ID of the organization to create the project in
languages
array
required
Initial languages for the project
baseLanguageTag
string
optional
Tag of the base language (default: first language)
Raw schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Project name"
},
"organizationId": {
"type": "number",
"description": "ID of the organization to create the project in"
},
"languages": {
"type": "array",
"description": "Initial languages for the project",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Language name (e.g. 'English')"
},
"tag": {
"type": "string",
"description": "Language tag (e.g. 'en')"
},
"originalName": {
"type": "string",
"description": "Original name of the language"
},
"flagEmoji": {
"type": "string",
"description": "Flag emoji for the language"
}
},
"required": [
"name",
"tag"
]
}
},
"baseLanguageTag": {
"type": "string",
"description": "Tag of the base language (default: first language)"
}
},
"required": [
"name",
"organizationId",
"languages"
]
}
get_project_language_statistics
Get translation status and progress for each language in a project. Returns per-language statistics including translated, reviewed, and untranslated percentages.
Parameters1
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
}
},
"required": []
}
list_tags
List all tags used in a Tolgee project. Returns up to 1000 results per page.
Parameters3
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
search
string
optional
Optional: search filter for tag names
page
number
optional
Optional: page number (0-based, default 0)
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"search": {
"type": "string",
"description": "Optional: search filter for tag names"
},
"page": {
"type": "number",
"description": "Optional: page number (0-based, default 0)"
}
},
"required": []
}
tag_keys
Add tags to translation keys. Creates tags if they don't exist.
Parameters5
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
keyNames
array
required
Names of the keys to tag
tags
array
required
Names of the tags to add
namespace
string
optional
Optional: namespace of the keys
branch
string
optional
Optional: branch name
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"keyNames": {
"type": "array",
"description": "Names of the keys to tag",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"description": "Names of the tags to add",
"items": {
"type": "string"
}
},
"namespace": {
"type": "string",
"description": "Optional: namespace of the keys"
},
"branch": {
"type": "string",
"description": "Optional: branch name"
}
},
"required": [
"keyNames",
"tags"
]
}
get_translations
Get translations for a specific key in a Tolgee project. Returns translations in all project languages, or only the specified languages if provided.
Parameters5
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
keyName
string
required
The translation key name
namespace
string
optional
Optional: namespace of the key
branch
string
optional
Optional: branch name
languages
array
optional
Optional: language tags to filter by (e.g. ['en', 'de']). If omitted, returns all languages.
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"keyName": {
"type": "string",
"description": "The translation key name"
},
"namespace": {
"type": "string",
"description": "Optional: namespace of the key"
},
"branch": {
"type": "string",
"description": "Optional: branch name"
},
"languages": {
"type": "array",
"description": "Optional: language tags to filter by (e.g. ['en', 'de']). If omitted, returns all languages.",
"items": {
"type": "string"
}
}
},
"required": [
"keyName"
]
}
set_translation
Set or update translations for a key in one or more languages. The key must already exist โ use create_keys to create it first.
Parameters5
projectId
number
optional
ID of the project (required for PAT, auto-resolved for PAK)
keyName
string
required
The translation key name
namespace
string
optional
Optional: namespace of the key
translations
object
required
Translations as {languageTag: text} map (e.g. {"en": "Hello", "de": "Hallo"})
branch
string
optional
Optional: branch name
Raw schema
{
"type": "object",
"properties": {
"projectId": {
"type": "number",
"description": "ID of the project (required for PAT, auto-resolved for PAK)"
},
"keyName": {
"type": "string",
"description": "The translation key name"
},
"namespace": {
"type": "string",
"description": "Optional: namespace of the key"
},
"translations": {
"type": "object",
"description": "Translations as {languageTag: text} map (e.g. {\"en\": \"Hello\", \"de\": \"Hallo\"})",
"additionalProperties": {
"type": "string"
}
},
"branch": {
"type": "string",
"description": "Optional: branch name"
}
},
"required": [
"keyName",
"translations"
]
}
An open-source alternative to Crowdin, Phrase, or Lokalise
Tolgee
Why use Tolgee?
It saves you valuable time that would otherwise be spent on localization tasks while ensuring your software is flawlessly translated.
Frame 47
In context translating & One click screenshots
Easily add translations to your code and edit them directly within your app using the Tolgee i18n tool. Simply hold the ALT/Option key and click on an element to open a dialog where you can modify your strings effortlesslyโno need to navigate through bulky .json/.po/.whatever files. Plus, in-context translation works seamlessly even in the production environment.
Just one clickโthatโs all it takes to capture a screenshot of your application with highlighted phrases for translation. Simply hold ALT + click on a string, then hit the camera button. Boom! Your screenshot is instantly generated.
Sep-06-2022 16-38-49
Translating on production
In-context translation works seamlessly even in the production environment of your deployed app. With the Tolgee Tools Chrome plugin, simply enter your API key and start translatingโno coding skills required. This makes it easy for anyone to contribute to your appโs translations effortlessly.
True integrations
Tolgee isn't just another localization platform that simply syncs your local data with a backend. Instead, it seamlessly integrates into your app through powerful SDKs, providing a truly embedded translation experience.
Machine translation
We support DeepL, Google Translate, and AWS Translateโsimply choose your preferred services in the settings. With machine translation, the localization process becomes significantly faster, allowing translators to leverage AI-powered suggestions for more efficient and accurate translations.
Translation memory
Tolgee automatically suggests translations based on those you've previously used in the project, ensuring consistency across similar phrases.
Translation memory suggestions include the similarity percentage, the key, and the original text of the translated string, making it easy to maintain accuracy and coherence.
Auto translation
When enabled, Tolgee instantly translates new keys using translation memory or machine translation services, ensuring your strings are translated immediately upon creation. Simply choose whether to use translation memory and select your preferred machine translation service for seamless automation.
Activity log
Easily track who modified, reviewed, or commented on phrases in your projectโall with complete clarity.
Comment on translations
If something seems off, let others know what you'd change. You can leave comments on any translation directly within the Tolgee platform.
Translation history
Easily track changes to specific translations of a particular key in a specific language. If something's amiss, you'll know exactly where to point the finger!
MCP Server
Tolgee exposes an MCP (Model Context Protocol) server that lets AI coding assistants manage translations directly โ search keys, create and update translations, manage languages, trigger machine translation, and more โ all without leaving your editor. See DEVELOPMENT.md for setup instructions.
Documentation
The docs cover all aspects of using Tolgee. Some highlights include:
Get Started. Sign up, Create a project, follow a guide, have fun!
JavaScript SDK. Play around and Let us know what you think #FeedbackWanted โค๏ธ
Tolgee CLI. Make your life easier while using Tolgee