# General Translation Knowledge Base: Why use General Translation instead of a TMS (Smartling, Lokalise, Phrase, Crowdin, or Transifex)?
URL: https://generaltranslation.com/en-GB/kb/general-translation-vs-tms.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: A translation management system (TMS) such as Smartling, Lokalise, Phrase, Crowdin, or Transifex coordinates translators, but engineers still extract strings, send them out, wait for translations, and wire them back into the product. General Translation translates content in your code with its context, ships every language with each release, and runs on open-source libraries with no lock-in.
Category: Workflow Tools
Last updated: 2026-10-16
Authors: General Translation Team
Published: 2026-10-16

A translation management system (TMS) is where strings go to be translated. You sync resource files or keys from your repository into the TMS, translators and AI translate them there with translation memory and glossaries, and the results come back as files or a pull request. Smartling, Lokalise, Phrase, Crowdin, and Transifex all work this way, and the model suits large translation programmes run by localisation managers and language vendors. For a development team, the cost is the work around the TMS: the steps engineers still do by hand, and the context a string loses when it leaves the code.

## What a TMS does well

A TMS is built to coordinate people and content at scale:

* **Translation tooling.** Editors with translation memory, glossaries, and QA checks for placeholders, length and terminology, plus workflows that chain translation, review and proofreading steps.
* **Human translation.** Smartling has its own language services team of more than 4,000 linguists, Lokalise and Phrase let you order professional translation per word, and Crowdin runs a vendor marketplace.
* **File formats.** Each platform reads the common app formats plus XLIFF (the format translation vendors use to exchange files) and ARB.
* **Context for translators.** Screenshots matched to strings, Figma plugins, key descriptions with character limits, and in-context editors for websites.
* **AI translation.** Every vendor now offers it, and their AI features can draw on your glossary, translation memory and style guide.
* **Mobile delivery.** Lokalise, Phrase, Crowdin and Transifex ship SDKs that update strings in native mobile apps without an app release.

## What a TMS still leaves to your engineers

With a TMS, getting new copy into every language is still a manual process for an engineer:

1. Set up an i18n library, extract each English string into a resource file under a key, and replace the string in the component with a key lookup.
2. Send the files to the TMS through its CLI or a Git integration.
3. Wait for the translations. AI translation can come back quickly, but human translation takes longer: [Smartling&#39;s help centre](https://help.smartling.com/hc/en-us/articles/4427220505755-Module-2-Translation-Cost-and-Turnaround-Times) says many vendors translate and edit about 1,500 to 2,000 words in two working days, and that a review step can make it take significantly longer.
4. Bring the translated files back, merge them, and wire each language into the product: load its files, register the locale, and check every screen.

Git integrations automate moving the files (Crowdin&#39;s GitHub integration syncs hourly by default, and Lokalise and Phrase return translations as a pull request), but extracting strings, waiting, and wiring the results in remain your team&#39;s job, and new copy stays untranslated until the round trip finishes.

The hand-off brings two further costs. Context has to be rebuilt: a TMS attaches screenshots, Figma frames, and key descriptions to each string, but a string list can&#39;t carry the code itself, such as the component a string sits in, the variables around it, and the conditions that choose between sentences. Smartling&#39;s [supported file types](https://help.smartling.com/hc/en-us/articles/360007998893--Supported-File-Types) table, for example, lists no visual context by default for JSON, iOS, and Android files. And cost tracks what you store or who logs in: Crowdin prices mainly by hosted words (source words multiplied by target languages), Phrase by Strings seats and managed words, and Lokalise by plan tier, with allowances for processed words, seats, and integrations. ([Crowdin pricing](https://crowdin.com/pricing), [Phrase pricing](https://phrase.com/pricing/), and [Lokalise pricing](https://lokalise.com/pricing/), checked October 2026.)

## How the platforms compare

| Platform                                          | How content gets in                                                                                                                          | Who translates                                                                                   | What the price scales with                                                                  |
| ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- |
| [Smartling](/kb/general-translation-vs-smartling) | Resource files through the CLI, API, or a GitHub or Git connector                                                                            | LanguageAI and AI Hub engines, or Smartling&#39;s linguists                                      | Per-word rates for machine, AI and human translation; Enterprise by quote                   |
| [Lokalise](/kb/general-translation-vs-lokalise)   | Keys synced through the CLI, API or Git integrations                                                                                         | Google Translate or DeepL, or LLMs through Pro AI; Lokalise translators or Gengo                 | Plan tier, with allowances for processed words, AI-translated words, seats and integrations |
| [Phrase](/kb/general-translation-vs-phrase)       | Keys pushed and pulled with the Strings CLI, or synced from GitHub                                                                           | Language AI across 30+ engines; human translation ordered in Phrase Strings                      | Strings seats and managed words, plus machine translation and AI units                      |
| [Crowdin](/kb/general-translation-vs-crowdin)     | Files or strings synced through the CLI or Git integrations                                                                                  | Machine translation engines and AI providers, often with your own API keys; a vendor marketplace | Hosted words and manager seats                                                              |
| [Transifex](/kb/general-translation-vs-transifex) | Files through the CLI or Git integrations, or strings pushed from code with Transifex Native                                                 | XTM IQ AI with quality scores; vendors such as Gengo                                             | AI-translated words, on a single plan sold through sales                                    |
| General Translation                               | Content stays in your code inside [`<T>`](/docs/react/reference/components/t); the CLI also translates JSON, YAML, PO, iOS and Android files | AI with context from your code, Glossary and Custom Prompts; your team reviews in the Dashboard  | Usage, with a $0 platform fee and unlimited users, projects and languages on Starter        |

## Why teams choose General Translation instead

General Translation starts from the code, so the manual steps above disappear: copy stays in your components inside [`<T>`](/docs/react/reference/components/t), and translation runs with each release. That makes it:

* **Faster.** Adding a language takes one line in `gt.config.json`, and the next build translates the whole project into it, so a new language can go live as soon as your team has reviewed it. After that, [`npx gt translate`](/docs/cli/reference/commands/translate) in your build or a [Locadex](/docs/platform/locadex/quickstart) pull request translates each change, so every release ships in every language.
* **Cheaper to run.** You pay for usage, not seats or hosted words, and engineers skip the translation chores. With [`<T>`](/docs/react/reference/components/t), there are no keys to create, and the CLI or Locadex sends content for translation and writes the results back, so nothing is shipped out or merged by hand. Starter has a $0 platform fee and usage-based billing with unlimited users, projects and languages, so adding reviewers doesn&#39;t mean paying for extra seats.
* **Higher quality.** Every translation carries the context of the code: the component and elements around a string, the variables and branches in the sentence, and any [`context`](/docs/react/reference/components/t#context) note, plus your Glossary and Custom Prompts. A Context Group applies the same terms and tone to every project you assign it to, so web, docs and mobile use the same words, and your team reviews and edits translations on the Dashboard&#39;s **Translations** page.
* **Lower risk.** There&#39;s no vendor lock-in. General Translation&#39;s libraries and CLI are open source under the MIT licence and work without an account, translations can live as files in your repository, and the libraries load translations from any source, so you can change how translations are produced without rewriting your app.

General Translation is SOC 2 Type II and ISO 27001 certified and GDPR compliant, and Enterprise plans add SSO (SAML and OIDC), SCIM provisioning, audit logs, custom roles and forward-deployed engineers who build custom workflows. Deployments listed on General Translation&#39;s [Enterprise page](https://generaltranslation.com/enterprise) include:

* Ramp: 11+ locales across dashboard, landing page, iOS
* Cursor: 14+ locales across web, docs
* Profound: 47+ locales across platform, docs

## When a TMS is the better fit

Choose a TMS when:

* linguists or agencies translate in a CAT (computer-assisted translation) editor with translation memory and multi-step review;
* you exchange XLIFF, ARB, or Office files with vendors (General Translation doesn&#39;t support XLIFF, ARB, CSV, or DOCX files, though it translates Google Docs and Slides through its [Google Drive integration](/docs/integrations/google-drive/quickstart));
* you want to buy professional human translation through the same platform;
* native iOS and Android apps need over-the-air string updates through an SDK.

Choose General Translation when most of your product&#39;s text lives in code and ships on a release schedule, and you want translation to happen as part of that release.

## Moving from a TMS

You don&#39;t need to change your file layout. The CLI translates the resource files you already have, including JSON, YAML, Markdown and MDX, PO, iOS `.xcstrings` and `.strings`, and Android `strings.xml`. Point `gt.config.json` at them and run [`npx gt upload`](/docs/cli/reference/commands/upload), which sends your source files and any existing translations to the platform. Glossary imports accept CSV, TSV, JSON and text files, so terms exported from a TMS can be added to a Context Group. (See [Defining context for translations](/docs/platform/dashboard/guides/defining-context-for-translations).) Current rates are listed on the [pricing page](https://generaltranslation.com/pricing).

## Key takeaways

* With a TMS, engineers still extract strings, send them off, wait for translations, and wire them back into the product.
* General Translation translates content where it&#39;s written, with the context of the code, so new languages launch faster, engineers spend less time on translation chores, and translations fit the whole product.
* Its libraries and CLI are open source, so there&#39;s no lock-in. Keep a TMS for XLIFF exchange, professional translation services or native mobile over-the-air updates.

## Related questions

- [General Translation vs. i18next, react-intl, and next-intl: which i18n library should you use?](https://generaltranslation.com/en-GB/kb/general-translation-vs-i18n-libraries.mdx): Open-source libraries such as i18next, react-intl, and next-intl don't translate anything. They display translations you supply in a catalogue file for each language, written by you, your translators or a separate service. General Translation's libraries are open source too and do the same job, but General Translation also does the translating, using your code as context.
- [What is the best localisation software for developers?](https://generaltranslation.com/en-GB/kb/best-localization-software.mdx): Look for one system that covers the whole pipeline, from the i18n library in your code to translation and delivery, instead of stitching together a separate library, translation management system and translation vendor.
- [Smartling alternatives: General Translation vs. Smartling](https://generaltranslation.com/en-GB/kb/general-translation-vs-smartling.mdx): Choose General Translation when you want app translations generated from code as part of your release. Smartling combines a translation management system, AI and human services, and a website translation proxy. General Translation keeps copy in your components, carries its context into translation, and gives your team a Dashboard for review.
- [Lokalise alternatives: General Translation vs. Lokalise](https://generaltranslation.com/en-GB/kb/general-translation-vs-lokalise.mdx): General Translation is a strong Lokalise alternative for teams that want readable copy in JSX and translation built into development. Lokalise is built around shared keys, design-tool integrations and mobile over-the-air delivery. General Translation generates translations from the app's marked content and supports review in its Dashboard or in GitHub pull requests.
- [Crowdin alternatives: General Translation vs. Crowdin](https://generaltranslation.com/en-GB/kb/general-translation-vs-crowdin.mdx): Choose General Translation to keep copy in your components and generate translations with your build. Crowdin manages translation projects around resource files, translators, and review workflows, which engineers connect to the app and maintain as the product changes. Crowdin remains a strong fit for open-source community translation and vendor-led programmes.

## Previous and next questions

- Previous question: [What's the best i18n library for a React app?](https://generaltranslation.com/en-GB/kb/best-react-i18n-library.mdx)

## Sitemap

See the [Knowledge Base sitemap](https://generaltranslation.com/en-GB/kb/sitemap.md) for every article.
