| name | plushie |
| description | Add a new plushie to the Mellumine collection: update data.ts and both locale files. Use when adding any new plushie to the site. |
Plushie Skill
This skill describes how to add a new plushie to the Mellumine collection.
Data Structure
Plushies are defined in app/utils/data.ts in the plushies array:
export const plushies: Plushie[] = [
{
id: 'artikodin',
i18nKey: 'artikodin',
dimensions: '30 × 25 cm',
views: {
front: '/images/plushies/artikodin-front.webp',
back: '/images/plushies/artikodin-back.webp',
left: '/images/plushies/artikodin-left.webp',
right: '/images/plushies/artikodin-right.webp',
},
},
]
Naming Conventions
| Context | Convention | Example |
|---|
id | kebab-case | pink-cat |
i18nKey | snake_case | pink_cat |
| Image folder | public/images/plushies/ | /images/plushies/pink-cat-front.webp |
| i18n key | pictures.plushies.{i18nKey} | pictures.plushies.pink_cat |
Complete Workflow
1. Verify images
Check that public/images/plushies/ contains the expected .webp files:
{name}-front.webp — required
{name}-back.webp — required
{name}-left.webp — optional
{name}-right.webp — optional
Only include view keys for image files that actually exist.
2. Add entry to data.ts
{
id: '{name}',
i18nKey: '{name_snake}',
dimensions: '{width} × {height} cm',
views: {
front: '/images/plushies/{name}-front.webp',
back: '/images/plushies/{name}-back.webp',
},
},
3. Add translations (both files in one edit)
i18n/locales/fr-FR.json — add under pictures.plushies:
{
"{name_snake}": {
"title": "Nom de la peluche en français",
"alt": "Description courte de l'image (5–12 mots)",
"description": "Brève présentation de la peluche (1–2 phrases)"
}
}
i18n/locales/en-US.json — add under pictures.plushies:
{
"{name_snake}": {
"title": "Plushie name in English",
"alt": "Short English description (5–12 words)",
"description": "Brief presentation of the plushie (1–2 sentences)"
}
}
4. Verify
Run yarn lint to confirm no issues.
Translation Quality Rules
| Field | Rule |
|---|
title | The plushie's recognisable name |
alt (FR) | Describes what is shown: e.g., "Peluche Artikodin vu de face, bleu et blanc" |
alt (EN) | Natural English: e.g., "Artikodin plushie front view, blue and white" |
description (FR) | Creative 1–2 sentence presentation of the plushie |
description (EN) | Natural English adaptation of the FR description |
- Keep
alt to 5–12 words
- Never add a key to one locale file without adding it to the other
Checklist before reporting done