Add comprehensive internationalization (i18n) with Spanish language support
This major feature introduces complete internationalization architecture with Spanish (Mexico) as the first additional language: ## New Features: - **I18n Architecture**: Complete client-side and server-side internationalization system - **Spanish (Mexico) Support**: Full es-MX translations for all user-facing text - **Language Selector**: Dynamic language switching UI component in header - **API Endpoints**: RESTful endpoints for serving translations (/api/i18n) - **Progressive Enhancement**: Language detection via Accept-Language header and cookies ## Technical Implementation: - **Frontend**: Client-side i18n.js with automatic DOM translation and language selector - **Backend**: Server-side i18n service with locale detection middleware - **Build Process**: Automated copying of translation files to dist/ directory - **Responsive Design**: Language selector integrated into header controls layout ## Files Added: - public/i18n.js - Client-side internationalization library - src/i18n/index.ts - Server-side i18n service - src/i18n/locales/en.json - English translations - src/i18n/locales/es-MX.json - Spanish (Mexico) translations - src/routes/i18n.ts - API endpoints for translations ## Files Modified: - package.json - Updated build process to include i18n files - public/index.html - Added i18n attributes and language selector - public/app.js - Integrated dynamic translation updates - src/server.ts - Added locale detection middleware - src/scss/pages/_index.scss - Language selector styling This implementation supports easy addition of future languages and maintains backward compatibility while providing a seamless multilingual experience. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
9b7325a9dd
commit
8b1787ec47
10 changed files with 1006 additions and 17 deletions
|
@ -13,8 +13,9 @@
|
|||
"watch-css": "sass src/scss/main.scss public/style.css --watch --style=expanded --source-map",
|
||||
"dev-with-css": "concurrently \"npm run watch-css\" \"npm run dev\"",
|
||||
"dev-with-css:ts": "concurrently \"npm run watch-css\" \"npm run dev:ts\"",
|
||||
"build": "npm run build:ts && npm run build-css",
|
||||
"build": "npm run build:ts && npm run build-css && npm run copy-i18n",
|
||||
"build:ts": "tsc",
|
||||
"copy-i18n": "mkdir -p dist/i18n/locales && cp -r src/i18n/locales/* dist/i18n/locales/",
|
||||
"test": "jest --runInBand --forceExit",
|
||||
"test:coverage": "jest --coverage",
|
||||
"lint": "eslint src/ tests/",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue