feat(virtues): scaffold i18n columns (#218) - #223
Conversation
Add empty _en/_ru/_pt columns to Argumentum Virtues - Taxonomy.csv (family/subfamily/subsubfamily/title/description/remark/link × 3 langs = 21 new columns) and matching Optional() ClassMap entries in ArgumentVirtue entity. No data is populated — this is a schema scaffold so the DatasetUpdater translation pipeline (unblocked by #183/PR #210) can write multilingual fields without further code changes. Complements the LocalizationConfig scaffold merged in #216 which was no-op until these columns existed. Validated: dotnet build + 88 tests pass (1 skip Freeplane GUI). CSV: 223 rows × 38 columns (was 17). Refs #218 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Post-commit blind-spot audit — fix addedTracing
Commit Without this fix, activating Build + 88 tests still pass on the new HEAD. |
…ompletion fix(virtues): extend i18n scaffold to Virtue entity (follow-up to #223)
|
Post-hoc review — PR #223 Verdict: ✅ LGTM — with a note on dead code Well-executed scaffold for Virtues i18n. CSV gets 21 new empty columns (7 fields × 3 languages), entity gets matching Concerns:
CSV structure is consistent with the Fallacies i18n pattern. No data populated, no regressions. |
Summary
Scaffolds multilingual support for Virtues (issue #218) by adding empty
_en/_ru/_ptcolumns to the CSV and matchingOptional()ClassMap entries on the entity. No data is populated — this is a schema-only change so the DatasetUpdater translation pipeline (unblocked by #183/PR #210) can write multilingual fields without further code changes.Scope
Cards/Fallacies/Argumentum Virtues - Taxonomy.csv— header + 222 data rows get 21 trailing empty fields (7 cols × 3 langs):family_en, subfamily_en, subsubfamily_en, title_en, description_en, remark_en, link_en_ru+ same for_pt.Entities/ArgumentVirtue.cs— 21 newstringproperties (FamilyEn…LinkPt, Ru, Pt) + 21.Name("…").Optional()ClassMap entries. FR fields stay non-optional.What this is NOT
Why
Complements the #216 rendering-side scaffold so the full i18n chain (CSV → entity → localization → templates) is now wired. Once PR #222's model migration lands and
DatasetUpdaterRootConfig.VirtuesTaxonomy.Enabled = true, Virtues become fully translatable without touching code.Test plan
dotnet build— no errors, only pre-existing warningsdotnet test— 88 pass / 0 fail / 1 skip (Freeplane GUI, expected)Import-Csvreports 223 rows × 38 columns, was 17)Refs #218
Depends on: none (scaffold only, no runtime coupling to #222)
🤖 Generated with Claude Code