一键导入
i18n
Manage translation entries in fr-FR.json and en-US.json. Use when adding, modifying, or reviewing i18n keys for pages, components, or images.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Manage translation entries in fr-FR.json and en-US.json. Use when adding, modifying, or reviewing i18n keys for pages, components, or images.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
i18n management for Mellumine: key structure, naming conventions, both-locale rule, and translation quality guidelines. Use when adding or modifying translation entries.
Vue 3 + Nuxt 4 best practices for Mellumine: Composition API, auto-imports, TypeScript, SCSS, CSS custom properties, and component conventions.
Add a new plushie to the Mellumine collection: update data.ts and both locale files. Use when adding any new plushie to the site.
Vue 3 + Nuxt 4 conventions for this project: SFC structure, auto-imports, TypeScript, SCSS, CSS custom properties, components, and composables. Use when writing or reviewing any .vue file.
Add a new plushie entry to data.ts and both locale files. Use when the user provides a new plushie to add to the collection.
Reference and checklist for SEO metadata on any page. Use when writing, reviewing, or debugging useHead() and useSeoMeta() on any page.
| name | i18n |
| description | Manage translation entries in fr-FR.json and en-US.json. Use when adding, modifying, or reviewing i18n keys for pages, components, or images. |
| disable-model-invocation | true |
| argument-hint | <section or key to add/update> |
You are managing i18n translations for: $ARGUMENTS
The project has two locale files that must always be kept in sync.
Read existing entries in i18n/locales/fr-FR.json and i18n/locales/en-US.json before editing.
Every change to fr-FR.json MUST have a matching change in en-US.json in the same edit.
Never add a key to one file without the other. Never leave a key untranslated.
app.* — app name, global meta description
miscellaneous.* — shared UI labels and SEO keywords
navigation.* — nav link labels (home, about, plushies, contact)
pages.* — page-specific content and SEO metadata
pages.home.*
pages.about.*
pages.plushies.*
pages.contact.*
components.* — component-specific labels
components.site_header.*
components.language_switcher.*
components.plushie_card.*
components.social_card.*
pictures.* — image alt texts and titles
pictures.{image_key}.title
pictures.{image_key}.alt
pictures.plushies.{plushie_id}.title
pictures.plushies.{plushie_id}.alt
"pages": {
"{page}": {
"tab_name": "Browser tab title",
"meta": {
"content": "SEO meta description ≤160 chars, must mention Mellumine"
},
"title": "Page heading",
"subtitle": "Page subheading or tagline"
}
}
"pictures": {
"plushies": {
"{plushie_id}": {
"title": "Descriptive name of the plushie",
"alt": "Short accessible description of the plushie image"
}
}
}
{plushie_id} matches the i18nKey field in app/utils/data.tsalt concise: 5–12 words"components": {
"{component_snake_case}": {
"{key}": "label text"
}
}
Example:
"components": {
"plushie_card": {
"view_all_angles": "Voir toutes les vues"
}
}
miscellaneous.* holds shared UI labels and SEO keywords.
Before adding a new miscellaneous key, search both locale files to check it doesn't already exist.
Existing keyword keys (non-exhaustive):
vtuber, creator, handmade, plushies, streaming, polar_fox, stars, mascot,
loading, menu, close, back_to_top, follow_me, support_me, view_more, view_less
| Field | FR guideline | EN guideline |
|---|---|---|
tab_name | Short, natural French label | Short, natural English label |
meta.content | ≤160 chars, starts with "Découvrez…" or "Bienvenue…", mentions Mellumine | ≤160 chars, natural English, mentions Mellumine |
title / subtitle | Natural French | Natural English adaptation |
pictures.*.alt | Describes what is depicted — 5–12 words | Same, translated |
pictures.*.title | Plushie name or description | Same |
.editorconfig)snake_case — never camelCase or kebab-case