name
i18n-localization
description
Internationalization and localization patterns. Detecting hardcoded strings, managing translations, locale files, RTL support.
risk
safe
source
community
date_added
2026-02-27
Internationalization (i18n) and Localization (L10n) best practices.
Term
Meaning
i18n
Internationalization - making app translatable
L10n
Localization - actual translations
Locale
Language + Region (en-US, tr-TR)
RTL
Right-to-left languages (Arabic, Hebrew)
Project Type
i18n Needed?
Public web app
✅ Yes
SaaS product
✅ Yes
Internal tool
⚠️ Maybe
Single-region app
⚠️ Consider future
Personal project
❌ Optional
3. Implementation Patterns
import { useTranslation } from 'react-i18next' ;
function Welcome ( ) {
const { t } = useTranslation ( ) ;
return < h1 > { t ( 'welcome.title' ) } </ h1 > ;
}
import { useTranslations } from 'next-intl' ;
export default function Page ( ) {
const t = useTranslations ( 'Home' ) ;
return < h1 > { t ( 'title' ) } </ h1 > ;
}
from gettext import gettext as _
print (_ ("Welcome to our app" ))
locales/
├── en/
│ ├── common.json
│ ├── auth.json
│ └── errors.json
├── tr/
│ ├── common.json
│ ├── auth.json
│ └── errors.json
└── ar/ # RTL
└── ...
Use translation keys, not raw text
Namespace translations by feature
Support pluralization
Handle date/number formats per locale
Plan for RTL from the start
Use ICU message format for complex strings
Hardcode strings in components
Concatenate translated strings
Assume text length (German is 30% longer)
Forget about RTL layout
Mix languages in same file
Issue
Solution
Missing translation
Fallback to default language
Hardcoded strings
Use linter/checker script
Date format
Use Intl.DateTimeFormat
Number format
Use Intl.NumberFormat
Pluralization
Use ICU message format
/* CSS Logical Properties */
.container {
margin-inline-start : 1rem ; /* Not margin-left */
padding-inline-end : 1rem ; /* Not padding-right */
}
[dir = "rtl" ] .icon {
transform : scaleX (-1 );
}
Before shipping:
Script
Purpose
Command
scripts/i18n_checker.py
Detect hardcoded strings & missing translations
python scripts/i18n_checker.py <project_path>
This skill is applicable to execute the workflow or actions described in the overview.