Repository navigation
docs(kb): add comparison articles for i18n libraries, Google Translate, and TMS vendors - #644
Merged
Merged
Conversation
…e, and TMS vendors Add three Knowledge Base articles that answer "Why use General Translation instead of X?" questions: - general-translation-vs-i18n-libraries: i18next, react-intl, next-intl, Lingui, and vue-i18n compared with General Translation's libraries, plus how to keep an existing library and use the CLI. - general-translation-vs-google-translate: browser translation, the Website Translator widget, and the Cloud Translation API compared with context-aware translation in the build. - general-translation-vs-tms: Smartling, Lokalise, Phrase, Crowdin, and Transifex compared with General Translation's code-first workflow, including when a TMS is the better fit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Google Translate: open the General Translation section with the two differences that matter (it understands each string's whole context, and it automates the whole localization workflow), then the code. - i18n libraries: state upfront that General Translation's libraries do the same job as i18next, react-intl, and next-intl, and also generate the translations. - TMS: spell out the manual steps a TMS still leaves to engineers (extract, send, wait, wire back in), with Smartling's published vendor turnaround, and add a benefits section: faster, cheaper, higher quality, and lower risk with open-source libraries and CLI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Remove "inexpensive" from the Google Translate article's summary and "at a per-character price" from its use-when line, following the earlier removal of the Cloud Translation price from the intro. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- i18n libraries: the summary, intro, General Translation section, comparison table (new "Translates your content?" column), and key takeaways now state that i18next, react-intl, next-intl, and the other libraries don't translate anything, while General Translation does the translating. - TMS: name all five platforms in the title and summary: Smartling, Lokalise, Phrase, Crowdin, and Transifex. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kevinwu98
marked this pull request as ready for review
October 16, 2026 21:22
npm's last-week download counts include a day with no recorded downloads, so use the full week of September 29, 2026 (i18next about 28 million, react-i18next about 21 million). The libraries "handle" plurals rather than all handling them "well": vue-i18n 11 needs a custom plural rule for languages such as Polish, now noted in the comparison table. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
react-intl and Lingui generate message IDs from inline source text, so describe catalogs as filled "by key or by extracting inline messages" and call them catalog files. Scope the dependency note to gt-react and gt-next, since gt-react-native uses Intl polyfills. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Removed redundancy in the description of i18next, focusing on its download statistics and capabilities.
…ison (#646) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
pie575
enabled auto-merge (squash)
October 16, 2026 22:43
kevinwu98
added a commit
that referenced
this pull request
Oct 16, 2026
Keep main's versions of the three parent comparisons, including the review fixes made before #644 merged, and re-apply only this branch's cross-links to the nine head-to-head articles. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kevinwu98
added a commit
that referenced
this pull request
Oct 16, 2026
- Drop competitor download counts, matching the edit to the parent libraries article. - Don't claim that translation supplies each language's extra plural forms; say instead that each English form is translated with the block and <Plural> picks a branch with the reader's plural rules. - Point library links at the parent's new "vs." title, and label the TMS benefit "Cheaper to run" as the parent does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Summary
Adds three Knowledge Base articles that answer "Why use General Translation instead of X?" questions, so answer engines have a direct, citable source when someone compares General Translation with the tools they already know.
kb/general-translation-vs-i18n-libraries.mdx, Internationalization)kb/general-translation-vs-google-translate.mdx, Translation)kb/general-translation-vs-tms.mdx, Workflow Tools)Each article answers the question first, credits what the alternatives do well, compares them in one table, gives a "use X when / use General Translation when" rule (including when the alternative is the better fit), and then shows how General Translation solves the problem with the package, command, or Dashboard page. Frontmatter has
title,summary(55–57 words),date,category, andrelated;authorsis omitted so the site shows the General Translation Team byline. The three articles cross-link to each other and to existing KB articles and docs.Revisions after review
<Num>/<Currency>/<DateTime>formatting, ICU variables inuseGT, keyed dictionaries, and a URL per locale ingt-next), then the generation step.generaltranslation/gtrepo) rather than "completely open source", because the Dashboard, API, and Locadex service aren't.How claims were verified
gt translate,gt upload,gt generate,gt validate, keyed metadata, the migration guide,<T>'scontextprop,<Var>,<Plural>, storing translations, Dashboard review, SSO/SCIM, billing), the live pricing, Enterprise, and home pages,/locales.json(132 locales), and the published packages:gt-next/gt-react11.4.12,gt-vue0.1.22,gt-node1.0.39, andgt2.26.5, all MIT.gt-react's installed dependency tree contains no other i18n library.useExtracted, experimental since 4.5.0); Lingui 6; vue-i18n 11.translateTextreference (no field for UI context), the attribution and machine-translation markup requirements, Google Translate Help (Website Translator limited to academic, government, nonprofit, and non-commercial sites), Search Central's multilingual guidance, and Make React resilient to DOM mutations from Google Translate react/react#11538 (closed 2018-08-30).Code examples
gt-react11.4.12<T>/<Plural>/<Num>inbox and the<T context>/<Var>billing toggle:gt validatepasses,gt generatewrites the templates, server rendering works in English and Spanish from local templates (Spanish filled in by hand), andtsc --noEmitis clean.gt.config.jsonwith keyed metadata:npx gt translate --dry-runfinds the source catalog.npx gt translate(no API key was used), so the articles don't show or claim specific General Translation output.translateTextrequest body comes from Google's REST reference and wasn't sent; the Advanced edition requires a service account.Validation
scripts/:npm test(54 passed),validate:unsafe-html,validate:callouts,validate:reference-links,validate:structure,validate:blog-order,validate:kb(8 articles),typecheck, andvalidate-linksall pass, and thejavascript:URL check is clean.pnpm build:contentpasses (581 static pages).apps/contentpreview at desktop and 375px width. Headings, tables, code blocks, and links render, and tables scroll inside their wrapper on mobile without page overflow. They were also compiled through the landing app's MDX pipeline (MDX,remark-gfm,rehype-slug). They weren't rendered in the landing app itself (gt-cloud), so the production byline, category breadcrumb, and related-questions footer weren't checked visually.Editorial notes
dateis 2026-10-16; update it before merge if publication moves to another day.supported-locales.mdxsays 110+, the landing page and style guide say 120+, and/locales.jsonlists 132. The articles use 120+.cli/guides/generating-translations.mdxsays the CLI preserves local edits by default, whilecli/reference/commands/translate.mdxand the style guide say syncing them is opt-in. The articles make no claim either way.next-intl-vs-gt-nextandi18n-without-manual-json-files. Once it merges, add both to the libraries article'srelatedlist; they can't be linked yet because the validator rejects unmerged slugs. docs(kb): add film articles and consolidate localization guides #630 rewrites existing articles and doesn't touch these files.🤖 Generated with Claude Code