5.1 KiB
5.1 KiB
phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, duration, started, completed
| phase | plan | subsystem | tags | requires | provides | affects | tech-stack | key-files | key-decisions | patterns-established | duration | started | completed | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 19-extras-translations-admin | 01 | i18n |
|
|
|
|
|
|
|
~20min | 2026-04-22 | 2026-04-22 |
Phase 19 Plan 01: Extras translations admin panel — Summary
Panel wp-admin → Rezerwacje → Tłumaczenia extras pozwala administratorowi zarządzać tłumaczeniami dynamicznych nazw opcji dodatkowych zwracanych z Softra API. Auto-collect PL nazw + override EN + fallback do PL. Milestone v0.8 — 100% complete.
Performance
| Metric | Value |
|---|---|
| Duration | ~20min |
| Tasks | 2 auto + 1 human-verify completed |
| Files modified | 2 |
| New options in WP DB | 2 (seen, translations) |
Acceptance Criteria Results
| Criterion | Status | Notes |
|---|---|---|
| AC-1: Auto-collect PL names | Pass | Każdy request /pricelist dopisuje nowe nazwy do carei_extras_seen |
| AC-2: Panel admin zarządza tłumaczeniami | Pass | Submenu, formularz z nonce, sanitize, redirect z komunikatem |
| AC-3: REST pricelist zwraca EN gdy override | Pass | Per-locale replacement z fallbackiem do PL |
Accomplishments
- 2 nowe WP options:
carei_extras_seen(lista PL names) +carei_extras_translations(map PL → EN) - 4 static helpery w
Carei_Admin_Panel— czysta API do używania z innych klas - Submenu admin z pełnym UX: lista alfabetyczna, info placeholder dla pustej listy, komunikaty sukcesu, nonce protection
- REST
/pricelistintegration — runtime auto-collect + per-locale replacement, bez dotykania JS frontendu - Reuse Phase 17
resolve_locale()helper — brak duplikacji logiki
Files Created/Modified
| File | Change | Purpose |
|---|---|---|
includes/class-admin-panel.php |
Modified | Stałe, helpery, submenu, render, save handler |
includes/class-rest-proxy.php |
Modified | get_pricelist() auto-collect + per-locale replacement |
Decisions Made
| Decision | Rationale | Impact |
|---|---|---|
| WP options zamiast custom table | Lista seen i map override są małe (<100 wpisów) — nadmierna inżynieria | Szybki deploy, standardowy WP pattern |
autoload=false dla options |
Lista seen rośnie z czasem — nie ładujemy jej przy każdym request | Zero impact na WP boot performance |
| Fallback do PL dla pustego override | User może nie tłumaczyć wszystkiego — nigdy nie crashujemy | Graceful degradation, spójna z Phase 17 |
| Sortowanie SORT_NATURAL | UX: "Fotelik 1+2" przed "Fotelik 10" w liście | Przyjazna kolejność w panelu admin |
| Zero zmian w JS | Phase 17 ?lang= już działa, frontend nie musi wiedzieć o override |
Minimalna surface area zmian |
Deviations from Plan
Summary
| Type | Count | Impact |
|---|---|---|
| Auto-fixed | 0 | — |
| Scope additions | 0 | — |
| Deferred | 0 | — |
Total impact: Plan wykonany 1:1.
Issues Encountered
None.
Next Phase Readiness
Milestone v0.8 COMPLETE.
System tłumaczeń teraz kompletny:
- Statyczne stringi PHP/JS:
.po/.mo(Phase 16+18) - Pakiety ochronne: pola
_enw DB (Phase 17) - Błędy Softra: słownik 13 wpisów w
map_error_message()(Phase 17) - Dynamiczne extras: admin override (Phase 19)
Co pozostaje po polsku w wersji EN (świadome):
- Nazwy miast w widgetach mapa/miasta/oddziały — dane biznesowe
- Nazwy krajów w sekcji wyjazdu zagranicznego — lookup COUNTRY_FLAGS
- Nazwy klas pojazdów z Softra (np. "Opel Astra Combi") — dane biznesowe
Concerns: None. Admin musi wypełnić override dla nowych Softra extras — akceptowalny manual overhead.
Blockers: None.
Phase: 19-extras-translations-admin, Plan: 01 Completed: 2026-04-22