openspec(localize-i18n-ru): propose — русская локализация UI (i18n/ru.toml)

This commit is contained in:
2026-09-12 17:11:03 +00:00
parent 0f4d6da3c5
commit f07bffe838
5 changed files with 99 additions and 0 deletions
@@ -0,0 +1,39 @@
## Purpose
Обеспечивает русскоязычный интерфейс сайта dedinit.ru: все UI-строки темы (навигация, время чтения, код, пагинация) отображаются на русском языке для аудитории ru-ru.
## ADDED Requirements
### Requirement: Русские UI-строки в i18n/ru.toml
Система SHALL предоставлять файл `i18n/ru.toml`, содержащий русские переводы всех ключей интерфейса, используемых темой rDedInit (PaperMod): `home`, `next_page`, `prev_page`, `read_time`, `words`, `toc`, `code_copy`, `code_copied`, `edit_post`, `translations`, `search`, `page_not_found` и стандартные ключи PaperMod.
#### Scenario: Главная страница
- **WHEN** пользователь открывает главную страницу сайта
- **THEN** строка навигации «Home» отображается как «Главная»
#### Scenario: Время чтения статьи
- **WHEN** пользователь открывает статью с временем чтения
- **THEN** строка «X min read» отображается как «X мин чтения» (или эквивалент на русском)
#### Scenario: Оглавление
- **WHEN** статья содержит оглавление
- **THEN** заголовок оглавления отображается как «Содержание», а не «Table of Contents»
#### Scenario: Кнопки копирования кода
- **WHEN** пользователь наводит на блок кода
- **THEN** подсказка отображается как «Копировать код»; после копирования — «Скопировано»
#### Scenario: Пагинация
- **WHEN** пользователь видит пагинацию списка постов
- **THEN** ссылки отображаются как «Следующая» / «Предыдущая», а не «Next» / «Prev»
#### Scenario: Отсутствующий ключ
- **WHEN** в теме используется ключ, отсутствующий в `i18n/ru.toml`
- **THEN** сайт продолжает работать, отображая ключ по умолчанию из темы (Hugo fallback) — поведение не ломается
### Requirement: Фолбэк на английский при отсутствии перевода
Система SHALL сохранять работоспособность сайта при отсутствии какого-либо ключа: Hugo отображает строку по умолчанию темы (английскую), сайт не падает и не ломает разметку.
#### Scenario: Нет ключа в ru.toml
- **WHEN** в ru.toml отсутствует конкретный ключ
- **THEN** Hugo использует значение по умолчанию из темы (английское) и сборка проходит без ошибок