From ac71eae03a7b353372a03fc61fbe1fda6ced9d3c Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 8 Jul 2026 15:16:25 +0000 Subject: [PATCH 1/2] Fix documentation CI hard-fails and markdown quality issues Removes stray import statements that violate the MDX import ban, fixes broken/self-inconsistent links, heading-level hierarchy, missing code fence language ids, and a handful of prose/API-signature inaccuracies found during a daily docs quality scan across docs/, blog/, and devlog/. --- authors/archie.mdx | 2 +- blog/en-US/gt-next.mdx | 4 ++-- blog/en-US/i18n-without-translation-files.mdx | 2 -- blog/en-US/multilingual-nextjs-seo.mdx | 4 ++-- blog/en-US/plurals.mdx | 8 ++++---- devlog/en-US/gt-i18n_v0_1_0.mdx | 4 ++-- devlog/en-US/gt-next_v6_3_0.mdx | 2 +- devlog/en-US/gt-react_v10_15_0.mdx | 2 -- devlog/en-US/gt-react_v10_18_0.mdx | 2 +- devlog/en-US/gt-react_v10_19_0.mdx | 2 -- devlog/en-US/react-core-linter_v0_1_0.mdx | 2 -- docs/en-US/cli/generate.mdx | 2 +- docs/en-US/core/index.mdx | 2 -- docs/en-US/core/quickstart.mdx | 2 +- docs/en-US/key-concepts/dynamic-content.mdx | 4 ++-- docs/en-US/locadex/auto-merge.mdx | 2 +- docs/en-US/locadex/next.mdx | 2 -- docs/en-US/next/api/components/tx.mdx | 2 +- .../next/api/middleware/create-next-middleware.mdx | 4 +--- docs/en-US/next/api/strings/tx.mdx | 2 +- .../api/types/dictionary-translation-options.mdx | 2 +- docs/en-US/next/guides/local-tx.mdx | 1 - docs/en-US/next/guides/migration.mdx | 2 +- .../examples/currency-converter/setup.mdx | 1 - docs/en-US/next/tutorials/translating-strings.mdx | 4 ++-- docs/en-US/overview/faqs.mdx | 6 +++--- docs/en-US/overview/index.mdx | 2 +- docs/en-US/python/guides/strings.mdx | 14 +++++++------- docs/en-US/react-core-linter/guides/quickstart.mdx | 2 -- docs/en-US/react-core-linter/index.mdx | 2 -- .../react-core-linter/rules/static-string.mdx | 2 +- docs/en-US/sanity/faqs.mdx | 14 +++++++------- 32 files changed, 44 insertions(+), 64 deletions(-) diff --git a/authors/archie.mdx b/authors/archie.mdx index b64acf16..b4504c22 100644 --- a/authors/archie.mdx +++ b/authors/archie.mdx @@ -4,7 +4,7 @@ avatar: /static/avatars/archie.png occupation: CEO company: General Translation email: archie@generaltranslation.com -twitter: https://x.com/archiemckenzie_/photo +twitter: https://x.com/archiemckenzie_ linkedin: https://www.linkedin.com/in/archie-mckenzie --- diff --git a/blog/en-US/gt-next.mdx b/blog/en-US/gt-next.mdx index 4f30479e..49ca754d 100644 --- a/blog/en-US/gt-next.mdx +++ b/blog/en-US/gt-next.mdx @@ -8,7 +8,7 @@ tags: ['guide', 'internationalization', 'nextjs', 'gt-next'] **Internationalization (i18n) sucks. We're building a Next.js library, gt-next, to make it easier.** Today we're launching it in open beta. -``` copy +```bash copy npm i gt-next ``` @@ -40,7 +40,7 @@ The goal with gt-next is to create an abundance mindset around translations. The - Get an API key 🔐 on our [platform](https://generaltranslation.com) - Read the [docs](https://generaltranslation.com/docs) 📄 -### What you can do with gt-next +## What you can do with gt-next #### Format variables and plurals diff --git a/blog/en-US/i18n-without-translation-files.mdx b/blog/en-US/i18n-without-translation-files.mdx index 0be9ae2d..d7af7a33 100644 --- a/blog/en-US/i18n-without-translation-files.mdx +++ b/blog/en-US/i18n-without-translation-files.mdx @@ -6,8 +6,6 @@ authors: [jackie] tags: ['guide', 'internationalization', 'nextjs', 'i18n', 'gt-next', 'translation-files', 'developer-experience'] --- -import Video from '@/components/Video'; - Everyone who's internationalized a JavaScript app knows the workflow. You install an i18n library, create an `en.json` file, pull every user-facing string out of your components, assign each one a key, and reference the key where the string used to be. Then you duplicate that JSON file for every language you support. `es.json`, `fr.json`, `ja.json`. At first, it's fine. Thirty strings, three languages, 90 entries. diff --git a/blog/en-US/multilingual-nextjs-seo.mdx b/blog/en-US/multilingual-nextjs-seo.mdx index b019428a..1ac2d899 100644 --- a/blog/en-US/multilingual-nextjs-seo.mdx +++ b/blog/en-US/multilingual-nextjs-seo.mdx @@ -33,7 +33,7 @@ Search engines need separate, crawlable URLs to index each language version inde This means **locale-in-the-URL** — not cookies, not query parameters, not `Accept-Language` detection alone. -``` +```text ✅ generaltranslation.com/en/about ✅ generaltranslation.com/fr/about ✅ generaltranslation.com/es/about @@ -46,7 +46,7 @@ This means **locale-in-the-URL** — not cookies, not query parameters, not `Acc First, nest your pages under a `[locale]` dynamic segment: -``` +```text app/ └── [locale]/ ├── layout.tsx diff --git a/blog/en-US/plurals.mdx b/blog/en-US/plurals.mdx index 02b1af42..3f92952b 100644 --- a/blog/en-US/plurals.mdx +++ b/blog/en-US/plurals.mdx @@ -12,7 +12,7 @@ layout: PostLayout We often encounter apps that display awkward messages like: -``` +```text You have 1 new message(s) ``` @@ -87,7 +87,7 @@ pluralize(2, 'child', 'children') // "children" But what if you need more complicated logic, like: -``` +```text "No one is watching" "1 person is watching" "2 people are watching" @@ -168,7 +168,7 @@ languages like Arabic and Polish have more than just these two forms. For example, an English-speaking user might expect: -``` +```text "No one is watching" "1 person is watching" "2 people are watching" @@ -177,7 +177,7 @@ For example, an English-speaking user might expect: Whereas an Arabic-speaking user might expect different expressions for singular, dual (when the count is exactly two things), and small and large plural forms: -``` +```text "لا أحد يشاهد" "1 شخص يشاهد" "2 شخصان يشاهدان" diff --git a/devlog/en-US/gt-i18n_v0_1_0.mdx b/devlog/en-US/gt-i18n_v0_1_0.mdx index 528ab2a2..151a9693 100644 --- a/devlog/en-US/gt-i18n_v0_1_0.mdx +++ b/devlog/en-US/gt-i18n_v0_1_0.mdx @@ -16,8 +16,8 @@ Though `generaltranslation` is also a runtime-agnostic library, it is—by desig ## What's Included -- **[`msg()`](#)** - String registration and variable interpolation -- **[`mFallback()`](#)** and **[`gtFallback()`](#)** - Migration helpers for incremental adoption +- **`msg()`** - String registration and variable interpolation +- **`mFallback()`** and **`gtFallback()`** - Migration helpers for incremental adoption --- diff --git a/devlog/en-US/gt-next_v6_3_0.mdx b/devlog/en-US/gt-next_v6_3_0.mdx index ce7567e9..9ea11079 100644 --- a/devlog/en-US/gt-next_v6_3_0.mdx +++ b/devlog/en-US/gt-next_v6_3_0.mdx @@ -63,7 +63,7 @@ export default function Page() { To support interpolation, the `msg()` function returns an encoded message instead of a plain string. The format looks like this: -``` +```text : ``` diff --git a/devlog/en-US/gt-react_v10_15_0.mdx b/devlog/en-US/gt-react_v10_15_0.mdx index c54b98b2..6fb6daf6 100644 --- a/devlog/en-US/gt-react_v10_15_0.mdx +++ b/devlog/en-US/gt-react_v10_15_0.mdx @@ -5,8 +5,6 @@ authors: [ernest] tags: ['gt-react', 'derive', 'tagged-template', 'i18n'] --- -import Video from '@/components/Video'; - ## The `declareStatic()` → `derive()` rename This release is the first to ship with the new `derive()` name. Previously, this function was called `declareStatic()` and the JSX component was ``. In [PR #1062](https://github.com/generaltranslation/gt/pull/1062), both were renamed to `derive()` and `` for clarity. diff --git a/devlog/en-US/gt-react_v10_18_0.mdx b/devlog/en-US/gt-react_v10_18_0.mdx index 397ef4ab..7fde2e46 100644 --- a/devlog/en-US/gt-react_v10_18_0.mdx +++ b/devlog/en-US/gt-react_v10_18_0.mdx @@ -94,7 +94,7 @@ function StatusMessage({ isMasculine }) { At build time, the CLI sees the `derive()` call and registers two separate source entries, each producing its own translation: -``` +```text "I am tired" ($context: "inflect as masculine") → "Estoy cansado" "I am tired" ($context: "inflect as feminine") → "Estoy cansada" ``` diff --git a/devlog/en-US/gt-react_v10_19_0.mdx b/devlog/en-US/gt-react_v10_19_0.mdx index 398a1267..f7e37e85 100644 --- a/devlog/en-US/gt-react_v10_19_0.mdx +++ b/devlog/en-US/gt-react_v10_19_0.mdx @@ -5,8 +5,6 @@ authors: [ernest] tags: ['gt-react', 'browser', 'hot-reload', 'dev-experience', 'i18n'] --- -import Video from '@/components/Video'; -