Implemented full translation infrastructure for researcher.html:
- Added 148 data-i18n attributes across all content sections
- Created 142 translation keys in nested JSON structure
- Translated all keys to German (DE) and French (FR) via DeepL Pro API
- Zero translation errors, all keys validated across 3 languages
Content translated includes:
- Research Context & Scope (4 major paragraphs)
- Theoretical Foundations (Organizational Theory + Values Pluralism accordions)
- Empirical Observations (3 documented failure modes with labels)
- Six-Component Architecture (all services with descriptions)
- Interactive Demonstrations, Resources, Bibliography, Limitations
New scripts:
- translate-researcher-deepl.js: Automated DeepL translation with rate limiting
- validate-researcher-i18n.js: i18n completeness validation tool
Translation quality verified with sample checks. Page ready for multilingual deployment.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create Economist SubmissionTracking package correctly:
* mainArticle = full blog post content
* coverLetter = 216-word SIR— letter
* Links to blog post via blogPostId
- Archive 'Letter to The Economist' from blog posts (it's the cover letter)
- Fix date display on article cards (use published_at)
- Target publication already displaying via blue badge
Database changes:
- Make blogPostId optional in SubmissionTracking model
- Economist package ID: 68fa85ae49d4900e7f2ecd83
- Le Monde package ID: 68fa2abd2e6acd5691932150
Next: Enhanced modal with tabs, validation, export
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>