{"enrichment":{"faq":[{"a":"internationalization enables multi-language support through a structured i18n/l10n architecture. Start by separating your translation strings into locale-specific files (e.g., en.json, es.json), then use a framework library like react-i18next, vue-i18n, or Next.js built-in i18n routing. Define translation keys with clear naming conventions, load the appropriate locale based on user preference or browser detection, and render translated content dynamically. This approach keeps your codebase clean and makes adding new languages straightforward.","q":"How do I add multiple languages to my app using internationalization?"},{"a":"internationalization (i18n) refers to designing your application architecture to support multiple languages and regions\u2014extracting strings, organizing translation files, and implementing locale switching. Localization (l10n) is the actual process of translating content and adapting it culturally for specific locales, including date/number/currency formatting, RTL language support, and regional conventions. i18n is the technical foundation; l10n is the cultural customization built on top of it.","q":"What's the difference between i18n and l10n in internationalization?"},{"a":"internationalization leverages the Intl API for locale-aware formatting without manual conversion logic. Use Intl.DateTimeFormat for dates, Intl.NumberFormat for numbers, and Intl.NumberFormat with currency style for currency values. Pass your active locale as the first argument: `new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(1234.56)`. This ensures dates, numbers, and currencies automatically respect regional conventions\u2014separators, symbols, and ordering\u2014without hardcoding locale-specific rules.","q":"How should I handle date, currency, and number formatting across locales?"},{"a":"internationalization best practices include: use consistent, hierarchical translation key naming (e.g., `common.button.submit`); store translations in version-controlled JSON or YAML files; detect hardcoded strings with ESLint rules; implement pseudo-localization for testing coverage; use tools like Crowdin or Lokalise for collaborative translation workflows; validate missing keys before deployment; and organize locale files by feature or domain. Separate translation logic from UI components, keep keys descriptive, and establish clear naming conventions across your team.","q":"What are internationalization best practices for translation management workflow?"},{"a":"internationalization supports RTL languages like Arabic and Hebrew by setting the `dir` attribute on your root element based on locale (`dir=\"rtl\"` for RTL locales, `dir=\"ltr\"` for LTR). Use CSS logical properties (margin-inline, padding-block) instead of directional ones (margin-left, margin-right) so styles flip automatically. Adjust text alignment, icon positioning, and layout direction conditionally. Test with actual RTL content, ensure form inputs and navigation work correctly in reverse direction, and validate date/number formatting respects cultural conventions.","q":"How do I implement RTL language support and cultural adaptation?"},{"a":"internationalization optimization involves lazy-loading translation files per locale to reduce initial bundle size, caching translations in localStorage or service workers, and using code splitting for large translation sets. For quality assurance, implement automated checks for missing translation keys, use pseudo-localization to catch untranslated strings, run visual regression tests across locales, and validate Intl formatting output. Monitor translation completeness in your CI/CD pipeline and integrate with translation management platforms for collaborative review before deployment.","q":"How can I optimize translation loading and ensure quality assurance?"}],"shadow_tags":["multi-language-apps","locale-management","translation-workflow","global-ux","language-detection","rtl-support","formatting-standards","translation-platforms"],"summary_rewrite":"Master the distinction between internationalization (i18n) and localization (l10n) to build globally-ready applications. This skill covers architecture patterns for organizing translation files, naming conventions for translation keys, and implementation examples across React, Vue, and Next.js frameworks. You'll also learn to handle complex scenarios like pluralization, date/number/currency formatting using the Intl API, and support for right-to-left languages."},"files":[{"bytes":16595,"path":"software-engineering/internationalization/SKILL.md","sha256":"e0370b5a3ea169d626f68c1aaf2320bf7b6f15afae7da9e877c89d36b5f2fbda","url":"https://skillfed.io/files/miles990/claude-software-skills/internationalization/46d4e378/SKILL.md"}],"id":"miles990/claude-software-skills/internationalization","links":{"html":"https://skillfed.io/miles990/claude-software-skills/internationalization","md":"https://skillfed.io/miles990/claude-software-skills/internationalization.md","repo":"https://github.com/miles990/claude-software-skills"},"meta":{"agents_supported":[],"first_seen":"2026-07-28","forks":5,"language":"TypeScript","last_updated":"2026-01-20","license":"MIT","name":"internationalization","publisher":"miles990","stars":19},"relations":{"similar":[{"id":"proffesor-for-testing/agentic-qe/qe-localization-testing"},{"id":"proffesor-for-testing/agentic-qe/localization-testing"},{"id":"daffy0208/ai-dev-standards/localization-engineer"},{"id":"OpenClaudia/openclaudia-skills/i18n"},{"id":"Mindrally/skills/localization-l10n"},{"id":"itzzritik/OrderWorder/i18n-localization"},{"id":"vudovn/ag-kit/i18n-localization"},{"id":"yonatangross/orchestkit/i18n-date-patterns"},{"id":"patricio0312rev/skills/i18n-frontend-implementer"},{"id":"noartem/skills/laravel-internationalization-and-translation"}]},"slug":{"owner":"miles990","repo":"claude-software-skills","skill":"internationalization"},"version":"46d4e378"}
