Deployment Guide

i18n Deployment Checklist

A battle-tested checklist for deploying internationalized applications to production, covering everything from pre-deployment validation to post-deployment monitoring.

Pre-Deployment Validation

Translation Completeness

  • Run translation coverage report for all target languages
  • Verify all critical user flows have 100% translation coverage
  • Identify and document any intentionally untranslated content
  • Verify fallback translations are in place for incomplete languages
  • Check for empty translation values (should use fallback or source language)
  • Verify all new features added since last deployment are translated
  • Run automated tests to detect missing translation keys

Translation Quality

  • Review translations with native speakers for each language
  • Verify brand terminology is consistent (check against glossary)
  • Check for placeholder/variable substitution errors
  • Verify pluralization rules work correctly for each language
  • Test gender-specific translations (if applicable)
  • Review translations in context (not just in spreadsheet)
  • Check for cultural appropriateness
  • Verify tone and formality match brand voice

File Validation

  • Validate all translation files are valid JSON/YAML/format
  • Check for syntax errors in translation files
  • Verify file encoding is UTF-8
  • Check for BOM (Byte Order Mark) issues
  • Verify no duplicate keys exist
  • Check for trailing commas (if JSON)
  • Verify special characters are properly escaped
  • Run linter on translation files
  • Verify translation files are not corrupted

Code Validation

  • Run TypeScript/type checking on translation keys
  • Verify all translation keys used in code exist in translation files
  • Check for hardcoded strings that should be translated
  • Verify locale detection logic works correctly
  • Test locale switching functionality
  • Verify locale persistence (cookie/localStorage/database)
  • Test fallback locale behavior
  • Run unit tests for i18n utilities
  • Run integration tests for locale switching

Build and Bundle

Build Process

  • Build application with all languages included
  • Verify translation files are included in build output
  • Check bundle size for each language
  • Verify code splitting for translation files (if applicable)
  • Test lazy loading of translation namespaces
  • Verify source maps include translation files (for debugging)
  • Check for build warnings related to i18n
  • Verify environment-specific translations (staging vs production)

Bundle Optimization

  • Minimize translation file size (remove comments, whitespace)
  • Enable compression for translation files (gzip/brotli)
  • Verify CDN caching headers for translation files
  • Set up cache busting for translation files (versioning)
  • Consider splitting large translation files into chunks
  • Verify tree-shaking removes unused translations (if supported)
  • Test bundle size impact of adding new languages

Asset Preparation

  • Prepare locale-specific images (if any)
  • Prepare locale-specific videos (if any)
  • Prepare locale-specific PDFs/documents
  • Verify all assets are uploaded to CDN
  • Test asset loading from CDN
  • Verify asset URLs are correct for each locale

Infrastructure Setup

DNS and Routing

  • Configure DNS for locale-specific URLs
    • Path-based: example.com/en/*, example.com/es/*
    • Subdomain: en.example.com, es.example.com
    • Domain: example.com, example.es
  • Set up SSL certificates for all domains/subdomains
  • Configure CDN for all locale URLs
  • Set up redirects for legacy URLs
  • Configure default locale redirect (e.g., //en)
  • Test locale detection from Accept-Language header (if implemented)

Server Configuration

  • Configure server to serve correct locale based on URL
  • Set up proper HTTP headers (Content-Language, Vary: Accept-Language)
  • Configure caching headers for translation files
  • Set up compression for translation files
  • Configure CORS if translations are served from different domain
  • Set up rate limiting for translation API (if applicable)
  • Configure server-side rendering for all locales (if SSR)

Database

  • Verify database supports UTF-8 encoding (utf8mb4 for MySQL)
  • Check database collation settings
  • Verify user locale preferences are stored correctly
  • Test database queries with non-ASCII characters
  • Set up database indexes for locale-specific queries
  • Verify database backups include all locale data

CDN Configuration

  • Upload translation files to CDN
  • Configure CDN caching rules for translation files
  • Set up cache invalidation for translation updates
  • Configure CDN to serve correct Content-Type headers
  • Test CDN performance from different geographic regions
  • Set up CDN failover to origin server
  • Configure CDN to respect Vary headers

SEO Configuration

URL Structure

  • Verify URL structure is consistent across all locales
  • Test canonical URLs for each locale
  • Verify hreflang tags are implemented correctly
  • Test x-default hreflang for language selector page
  • Verify no duplicate content issues between locales
  • Test URL redirects for locale switching
  • Verify URL structure matches sitemap

Meta Tags

  • Verify html lang attribute is set correctly for each locale
  • Test page titles are translated
  • Test meta descriptions are translated
  • Verify Open Graph tags are translated (og:title, og:description, og:locale)
  • Test Twitter Card tags are translated
  • Verify JSON-LD structured data is translated
  • Test meta robots tags (noindex for duplicate content if needed)

Sitemap

  • Generate sitemap with all locale URLs
  • Include hreflang annotations in sitemap
  • Submit sitemap to Google Search Console
  • Submit sitemap to Bing Webmaster Tools
  • Verify sitemap is accessible and valid
  • Set up automatic sitemap generation on content updates
  • Test sitemap with sitemap validators

Search Console

  • Set up Google Search Console for each locale domain/subdomain
  • Verify ownership for all locale properties
  • Submit sitemaps for each locale
  • Configure international targeting (if using subdomains/domains)
  • Monitor for hreflang errors
  • Set up alerts for crawl errors

Testing in Staging

Functional Testing

  • Test locale detection and switching
  • Test locale persistence across sessions
  • Test all user flows in all languages
  • Test form validation messages in all languages
  • Test error messages in all languages
  • Test success messages in all languages
  • Test email templates in all languages
  • Test push notifications in all languages (if applicable)
  • Test SMS messages in all languages (if applicable)

Visual Testing

  • Take screenshots of all pages in all languages
  • Compare screenshots to design mockups
  • Test with very long translations (German, Finnish)
  • Test with very short translations (Chinese, Japanese)
  • Test button text doesn't overflow
  • Test form labels and inputs
  • Test navigation menus
  • Test modals and dialogs
  • Test tooltips and popovers
  • Test tables and data grids

RTL Testing (if applicable)

  • Test all pages with RTL languages (Arabic, Hebrew)
  • Verify layout flips correctly
  • Test form inputs and validation
  • Test date pickers and calendars
  • Test icons and images
  • Test scrolling behavior
  • Test animations and transitions
  • Test text alignment

Browser/Device Testing

  • Test on Chrome (Windows, Mac, Linux)
  • Test on Firefox (Windows, Mac, Linux)
  • Test on Safari (Mac, iOS)
  • Test on Edge (Windows)
  • Test on iOS Safari (iPhone, iPad)
  • Test on Android Chrome (phone, tablet)
  • Test on different screen sizes (mobile, tablet, desktop)
  • Test with screen readers (NVDA, JAWS, VoiceOver)
  • Test keyboard navigation

Performance Testing

  • Measure page load time for each locale
  • Test translation file load time
  • Test with slow network (3G, throttled)
  • Verify translation files are cached
  • Test lazy loading of translation namespaces
  • Measure Time to Interactive (TTI) for each locale
  • Test Core Web Vitals (LCP, FID, CLS) for each locale
  • Profile JavaScript execution time for i18n code

API Testing

  • Test API responses in all languages (if API returns translated content)
  • Test API error messages in all languages
  • Verify Accept-Language header is respected
  • Test API with different locale formats (en-US vs en_US vs en)
  • Test API rate limiting per locale
  • Test API caching per locale

Security

Input Validation

  • Test for XSS vulnerabilities in translated content
  • Verify user input is sanitized before translation
  • Test for SQL injection with non-ASCII characters
  • Verify translation keys cannot be manipulated by users
  • Test for path traversal vulnerabilities in locale switching
  • Verify locale parameter validation (whitelist allowed locales)

Content Security

  • Verify Content-Security-Policy headers work with all locales
  • Test for mixed content warnings (HTTP/HTTPS)
  • Verify translation files are served over HTTPS
  • Test for clickjacking vulnerabilities in locale switcher
  • Verify no sensitive data is exposed in translation files

Access Control

  • Verify locale switching doesn't bypass authentication
  • Test that user permissions are respected in all locales
  • Verify locale-specific content restrictions (if any)
  • Test that admin interfaces are properly translated and secured

Deployment Process

Pre-Deployment

  • Create deployment checklist for team
  • Schedule deployment during low-traffic period
  • Notify team of deployment window
  • Prepare rollback plan
  • Back up current translation files
  • Back up database
  • Tag release in version control
  • Document changes in changelog

Deployment Steps

  • Deploy backend changes (if any)
  • Deploy translation files to CDN
  • Deploy frontend application
  • Verify deployment succeeded
  • Clear CDN cache for translation files
  • Clear application cache
  • Restart application servers (if needed)
  • Verify all services are running

Smoke Testing

  • Test homepage in all languages
  • Test locale switching
  • Test critical user flows (login, signup, checkout)
  • Test API endpoints
  • Check error logs for issues
  • Verify analytics tracking works
  • Test email sending in all languages
  • Verify no 404 errors for locale URLs

Post-Deployment Monitoring

Immediate Monitoring (First Hour)

  • Monitor error logs for missing translations
  • Monitor error logs for i18n-related errors
  • Check application performance metrics
  • Monitor CDN cache hit rate for translation files
  • Check user reports/support tickets
  • Monitor social media for user feedback
  • Verify analytics tracking is working
  • Check for any 404 errors on locale URLs

Short-Term Monitoring (First 24 Hours)

  • Monitor translation coverage metrics
  • Track locale switching events
  • Monitor user language preferences
  • Check conversion rates per language
  • Monitor page load times per locale
  • Track API error rates per locale
  • Monitor CDN performance
  • Review user feedback and support tickets

Long-Term Monitoring (First Week)

  • Analyze user engagement per language
  • Review translation quality feedback
  • Monitor SEO rankings for locale pages
  • Track organic traffic per language
  • Analyze conversion funnels per language
  • Review heatmaps/session recordings per locale
  • Monitor for translation-related bugs
  • Collect feedback from native speakers

Analytics Setup

  • Set up custom events for locale switching
  • Track user language preferences
  • Set up conversion goals per language
  • Create dashboards for locale metrics
  • Set up alerts for anomalies per locale
  • Track bounce rates per language
  • Monitor time on site per language
  • Track user flows per language

Error Monitoring

  • Set up error tracking for missing translations
  • Monitor for i18n-related JavaScript errors
  • Track translation file load failures
  • Monitor for locale detection failures
  • Set up alerts for critical i18n errors
  • Track error rates per locale
  • Monitor for encoding issues

SEO Monitoring

Search Console

  • Monitor for hreflang errors
  • Check for duplicate content issues
  • Monitor crawl errors per locale
  • Track impressions and clicks per locale
  • Monitor for manual actions
  • Check mobile usability per locale
  • Monitor Core Web Vitals per locale

Rankings

  • Track keyword rankings per locale
  • Monitor organic traffic per language
  • Track backlinks per locale
  • Monitor domain authority per locale (if using separate domains)
  • Track featured snippets per locale
  • Monitor local pack rankings (if applicable)

Indexing

  • Verify all locale pages are indexed
  • Check for indexation issues
  • Monitor index coverage per locale
  • Verify canonical tags are respected
  • Check for soft 404 errors
  • Monitor for duplicate content issues

Rollback Plan

Rollback Triggers

  • Define criteria for rollback (error rate threshold, user complaints, etc.)
  • Assign rollback decision authority
  • Document rollback process
  • Test rollback process in staging

Rollback Steps

  • Revert to previous application version
  • Restore previous translation files from backup
  • Clear CDN cache
  • Clear application cache
  • Verify rollback succeeded
  • Notify team of rollback
  • Document reason for rollback
  • Plan fix and re-deployment

Continuous Improvement

Translation Updates

  • Set up process for updating translations post-launch
  • Configure CI/CD for translation updates
  • Test translation updates in staging before production
  • Document translation update process
  • Set up notifications for translators when new keys are added

Performance Optimization

  • Monitor and optimize translation file size
  • Implement lazy loading for unused translations
  • Optimize CDN caching strategy
  • Consider using translation API instead of static files (for frequently updated content)
  • Implement service worker caching for translations (PWA)

Quality Assurance

  • Schedule regular translation reviews
  • Collect user feedback on translation quality
  • A/B test different translations
  • Monitor user engagement per language
  • Update translations based on user feedback

Scaling

  • Plan for adding new languages
  • Document process for adding new locales
  • Optimize infrastructure for more languages
  • Consider translation memory and glossary
  • Plan for regional variants (en-US vs en-GB, es-ES vs es-MX)

Common Deployment Issues

Missing Translations

Symptom: Users see translation keys instead of translated text Fix:

  • Check translation files are deployed
  • Verify CDN cache is cleared
  • Check for typos in translation keys
  • Verify fallback locale is configured

Broken Layout

Symptom: UI breaks with certain languages Fix:

  • Test with longest translations (German, Finnish)
  • Add CSS overflow handling
  • Use flexible layouts (flexbox, grid)
  • Test with real content, not Lorem Ipsum

SEO Issues

Symptom: Locale pages not indexed or duplicate content warnings Fix:

  • Verify hreflang tags are correct
  • Check canonical URLs
  • Verify sitemap includes all locales
  • Check robots.txt doesn't block locale URLs

Performance Issues

Symptom: Slow page load for certain locales Fix:

  • Optimize translation file size
  • Enable CDN caching
  • Implement lazy loading
  • Check for large locale-specific assets

Encoding Issues

Symptom: Special characters display as � or garbled text Fix:

  • Verify UTF-8 encoding for all files
  • Check database collation
  • Verify HTTP headers specify UTF-8
  • Check for BOM issues

Emergency Contacts

  • Document on-call rotation for i18n issues
  • Create escalation path for critical issues
  • Document contact info for translation team
  • Set up emergency communication channel (Slack, PagerDuty)
  • Document rollback authority and process

Post-Mortem

After deployment, conduct a post-mortem:

  • What went well?
  • What could be improved?
  • Were there any unexpected issues?
  • How long did deployment take?
  • Were there any rollbacks?
  • What lessons were learned?
  • Update deployment checklist based on learnings

Pro Tips:

  1. Deploy during low traffic: Schedule i18n deployments during off-peak hours to minimize impact.

  2. Test in production-like environment: Staging should mirror production as closely as possible.

  3. Monitor closely: Watch error logs and analytics closely for the first 24 hours after deployment.

  4. Have a rollback plan: Always be ready to rollback if something goes wrong.

  5. Communicate with team: Keep team informed of deployment status and any issues.

  6. Document everything: Document deployment process, issues, and resolutions for future reference.

  7. Automate where possible: Use CI/CD to automate deployment and reduce human error.

  8. Test with real users: Beta test with native speakers before full launch.

  9. Plan for growth: Design deployment process to scale to 50+ languages.

  10. Learn from each deployment: Conduct post-mortems and continuously improve the process.