Expand Name Mappings
When to Use
- •Adding names for a new country or language
- •Looking up popular names by region/culture
- •Checking language, script, or category for a name
- •Validating mappings before commit
Quick Workflow
- •Identify target — Which language/region? (e.g. Polish, Greek, Dutch)
- •Look up names — Use
docs/NAME_LOOKUP_GUIDE.mdand Wikipedia "List of most popular given names" - •Pick category — Use reference.md for language → category mapping
- •Add mappings — Follow format in
src/data/nameMapping.ts, avoid duplicate keys - •Validate — Run
npm run build, check slugs exist
Key Files
- •Mappings:
src/data/nameMapping.ts—christianToMuslimNameMapping, categories,westernNameVariants,chineseCharToPinyin - •Slugs:
src/data/names.ts—namesDatabase,findNameBySlug - •Aliases:
src/data/slugAliases.ts - •Guide:
docs/NAME_LOOKUP_GUIDE.md - •UI:
src/pages/WesternNamesPage.tsx— add new categories to filter/stats if adding a language group
Entry Format
ts
"keyname": {
muslimNames: ["slug1", "slug2"],
meaning: "Original meaning",
connection: "Bridge to Islamic tradition",
originalScript?: "字", // CJK only
category: "language-male" | "language-female"
}
- •Keys: lowercase, no diacritics (normalize José → jose)
- •No duplicate keys in the object
- •Prefer
muslimNamesslugs that exist innamesDatabase
Language & Script Checks
| Language | Key format | Script / notes |
|---|---|---|
| Chinese | Pinyin (wei, ming) | Add originalScript and chineseCharToPinyin entry |
| Korean | Romanized, no hyphen (minjun not min-jun) | |
| Japanese | Romanized (hiroshi, sakura) | |
| Portuguese/Spanish | Add diacritic variant if common (joão, josé) | normalizeDiacritics handles lookup |
| Russian | Transliteration (aleksandr, dmitry) | |
| Hebrew | Use hebrewOrigin if biblical |
New Language Group
- •Add category to
NameMappingCategoryin nameMapping.ts - •Add names with new category
- •Add category to
WesternNamesPage.tsxcategories array and stats - •Add badge emoji in Badge replace chain if desired
Validation
- •
npm run build— must pass, no duplicate key errors - •
findNameBySlug(slug)— muslimNames should resolve where possible - •New categories must exist in
NameMappingCategorytype