AACsearch
Справочник

Политика резервного языка (fallback) по локалям

Как docs AACSearch обрабатывают отсутствующие переводы между en, de, es, fr и ru. Описывает пол EN, правило RU-паритета и пометку stub-страниц.

AACSearch поставляет docs в пяти локалях: en, de, es, fr, ru. Переключатель локали всегда ведёт на реальную страницу — он не отдаёт 404. Эта страница объясняет, как это гарантируется и что видит читатель, когда перевод ещё не готов.

Три tier'а

TierЛокальПолитика
1enИсточник истины. Каждая страница сначала появляется здесь.
1ruПол политики (Invariant 10). Каждая страница /en/** ДОЛЖНА существовать по тому же пути в /ru/**. CI ломается при разрыве.
2de, es, frBest-effort. Отсутствующие файлы автостабятся из EN с [TODO i18n — see issue #76] в description, в CI это warning.

Разделение намеренное. RU — крупнейшая не-английская аудитория продукта и единственная локаль с письменной compliance/billing-поверхностью, которая требует точности. de/es/fr — это SEO и удобство чтения; fallback на EN-копию для них допустим до прохода перевода.

Как выглядит stub

Когда de/es/fr не имеет перевода, файл по тому же пути идёт с EN-телом и токеном [TODO i18n — see issue #76] в description. Тело на английском, но страница достижима: переключатель локали резолвится, поиск индексирует канонический URL, а TODO-маркер легко grep'нуть для будущих проходов перевода.

---
title: Streaming responses
description: [TODO i18n — see issue #76] How to stream long-running…
---

Все stub'ы видны командой:

rg -l '\[TODO i18n' apps/docs/content/docs/{de,es,fr}

Что мы НЕ делаем

  • 404 при переключении локали. Переключатель — это навигационный контракт. Локаль никогда не должна ломать рабочий URL.
  • Прячем stub-страницы. Они участвуют в сайдбаре, sitemap и поисковом индексе. TODO-маркер — единственный сигнал необходимости перевода.
  • Переводим slug URL. Пути стабильны между локалями — варьируется только текст тела. Английский slug остаётся. /ru/security/api-keys и /en/security/api-keys ведут к одной концепции.

Когда пол сдвигается

Добавление RU обязательно для любой новой EN-страницы. Если PR добавляет apps/docs/content/docs/en/foo/bar.mdx, тот же PR должен добавить apps/docs/content/docs/ru/foo/bar.mdx. CI-гейт (apps/docs/scripts/check-locale-parity.py) это обеспечивает — он считает отсутствующие RU-файлы ошибкой, а de/es/fr — warning'ом.

Если не можете написать RU-перевод сами: stub'аем RU-файл из EN с [TODO i18n — see issue #76] и заводим follow-up задачу с тегом i18n. Страница всё равно реальна, просто с явным маркером долга.

Внутренние ссылки в docs

Все внутренние ссылки используют locale-relative пути (/reference/feature-status, не /en/reference/feature-status). Слой Fumadocs MDX переписывает их в активную локаль при рендере — один и тот же источник работает из любой из пяти локалей без поломок при переключении.

В сомнениях — ссылайтесь на EN-slug, Fumadocs разрулит.

Issues, отслеживающие политику

  • #76 — Enforce RU/EN docs parity and locale-safe links (эта политика)
  • #74 — Глоссарий и канонические переводы терминов
  • #64 / #67 — Docs quality gates и CI

On this page