feat: status translation overrides via YAML config
report.status_translation in YAML config overrides/extends the builtin
STATUS_TRANSLATION dictionary; without the section behavior is unchanged.
- AppConfig.report_status_translation + _resolve_str_dict (warns and
skips non-scalar values, resolves ${VAR} references)
- Config.get_status_translation() returns merged copy (lazy import,
builtin dict never mutated)
- build_grouped_report() accepts optional status_translation parameter
- --init-config template gains commented example, docs/CONFIG.md updated
Closes #65
This commit is contained in:
@@ -330,6 +330,7 @@ email:
|
||||
| Поле | Тип | По умолчанию | Описание |
|
||||
|---|---|---|---|
|
||||
| `no_time` | bool | `false` | Не включать затраченное время в файл отчёта |
|
||||
| `status_translation` | map[str,str] | `{}` | Переопределение/дополнение перевода статусов |
|
||||
|
||||
`report.no_time` применяется только в автоматических режимах (`--commit`, `--send`).
|
||||
При ручном `--output` YAML-настройка игнорируется — там работает только CLI-флаг `--no-time`.
|
||||
@@ -353,6 +354,22 @@ redmine-reporter --output report.odt
|
||||
redmine-reporter --output report.odt --no-time
|
||||
```
|
||||
|
||||
### `report.status_translation` — перевод статусов
|
||||
|
||||
По умолчанию статусы Redmine переводятся встроенным словарём
|
||||
(`New` → `В работе`, `Closed` → `Закрыто` и т.д.). Секция
|
||||
`report.status_translation` переопределяет отдельные переводы и/или
|
||||
добавляет новые статусы; не указанные здесь статусы переводятся
|
||||
встроенным словарём, а совсем неизвестные выводятся как есть.
|
||||
|
||||
```yaml
|
||||
report:
|
||||
status_translation:
|
||||
"New": "Новая"
|
||||
"Wait Release": "Ожидает релиза"
|
||||
"Custom Status": "Кастомный статус"
|
||||
```
|
||||
|
||||
## Разрешение выходного пути
|
||||
|
||||
Функция `resolve_output_path()` определяет итоговый путь к файлу:
|
||||
|
||||
Reference in New Issue
Block a user