SKILL.md
$2d
// ❌ Avoid nested objects
export default {
alert: { cloud: { action: '...' } },
};
**Patterns:** `{feature}.{context}.{action|status}`
**Parameters:** Use `{{variableName}}` syntax
'alert.cloud.desc': '我们提供 {{credit}} 额度积分',
**Avoid key conflicts:**
// ❌ Conflict
'clientDB.solve': '自助解决',
'clientDB.solve.backup.title': '数据备份',
// ✅ Solution
'clientDB.solve.action': '自助解决',
'clientDB.solve.backup.title': '数据备份',
## Workflow
- Add keys to `src/locales/default/{namespace}.ts`
- Export new namespace in `src/locales/default/index.ts`
- For dev preview: manually translate `locales/zh-CN/{namespace}.json` and `locales/en-US/{namespace}.json`
- Remind the user to run `pnpm i18n` before creating PR — do NOT run it yourself (very slow)
## Usage
import { useTranslation } from 'react-i18next';
const { t } = useTranslation('common');
t('newFeature.title');
t('alert.cloud.desc', { credit: '1000' });
// Multiple namespaces
const { t } = useTranslation(['common', 'chat']);
t('common:save');