Перейти к содержимому

Переводы и поведение языка

Как DWE разрешает активную локаль, где на диске лежат переведённые длинные документы и как проверка устаревания по контент-хешу поддерживает переводы в актуальном состоянии.

DWE выбирает активную локаль по цепочке приоритетов:

  1. Флаг --lang (на docs show / docs export / docs list; в рамках одного запуска)
  2. Переменная окружения DWE_LANGUAGE
  3. Параметр language в пользовательской конфигурации (~/.config/dwe/config или .dwe/config)
  4. Системная переменная $LANG (разбирается до 2-буквенного кода)
  5. По умолчанию: en (английский)

Пофайловый fallback: если markdown-файл не переведён на разрешённую локаль, DWE автоматически использует английскую версию и показывает информационную плашку.

Полные сведения о двух namespace-ах i18n и раскладке файлов переводов см. в Локализация (i18n) — переводы длинной документации.

Переводы длинной документации находятся в отдельном namespace от строк команд/UI:

docs/
reference/ # английские встроенные доки
config/
workspace.md
...
internals/
architecture.md
...
i18n/
ru/ # русские переводы
reference/
config/
workspace.md # переведённая версия
internals/
...
de/ # немецкие переводы
...

Переводы опциональны; отсутствие перевода даёт fallback на английский с информационной плашкой.

Каждый переведённый markdown-файл содержит строку-заголовок, фиксирующую SHA256-хеш английской версии на момент перевода:

> Translated from: config/workspace @ bdd3b80ecdd1
# DWE Configuration
...

Когда вы открываете перевод, DWE сравнивает этот хеш с встроенным манифестом (генерируемым на этапе сборки). Если хеши различаются, перевод помечается как устаревший и появляется предупреждение:

⚠ This translation is outdated (last synced at previous version, current is newer). Press `e` to view the English version.

Переводчики могут обновить хеш в рамках своего pull request; DWE перегенерирует манифест при следующем make build.