一键导入
cacomi-i18n
Reactive Translation (i18n) and hardcoded text standards for Cacomi.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Reactive Translation (i18n) and hardcoded text standards for Cacomi.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Reglas para generar imágenes de la marca Cacomi, asegurando la inclusión del logo oficial.
Convención para el uso de la carpeta archivos_locales_no_git, destinada a archivos de trabajo, datos exportados y recursos temporales que no deben subirse al repositorio.
Protocol for daily updates to the recommended menu and other periodic content. Trigger: When the user requests a "daily menu update" or modifies `astro_src/constants/recommendedMenu.ts`.
Standards and strategies for offline capabilities, network detection, and caching fallback in Cacomi.
Ensures application changes comply with Terms & Conditions, Privacy Policy (GDPR/ARCO), and data protection standards. Trigger: Before merging PRs, when modifying data storage (db/cookies), or adding user-facing disclaimers.
Estándares y patrones de seguridad, integración con Koyeb, Recharts y moderación para el Panel de Administrador.
| name | cacomi-i18n |
| description | Reactive Translation (i18n) and hardcoded text standards for Cacomi. |
Cacomi supports multiple languages and uses a reactive t object provided by a Zustand store via React Context.
SettingsContext.jsx file rather than hardcoding it in the component.useSettings hook to load translations.SettingsContext.jsx immediately.context/SettingsContext.jsx.S object).es (Spanish), en (English), and fr (French), add the new translation key logically grouped (e.g., inside common, auth, feed, settings, etc.).import { useSettings } from '@context/SettingsContext';
export function ExampleComponent() {
const { t } = useSettings();
// GOOD: Reactive and safe fallback
return (
<button>{t.common?.save || 'Guardar'}</button>
);
// BAD: Hardcoded text
// return <button>Guardar</button>;
}
Astro files .astro run on the server and do not directly subscribe to the client-side Zustand store.
If an Astro page must display reactive translation strings (e.g., the 404 page or Policy pages), extract the translated elements into a React Client Component ("use client") and inject it into the Astro page using the client:load directive.
---
import { TranslatedComponent } from '@components/TranslatedComponent';
---
<!-- Ensure it runs reactively on the client -->
<TranslatedComponent client:load />
Toast notifications must also be translated:
import { useSettings } from '@context/SettingsContext';
import { useToast } from '@context/ToastContext';
export function useExampleHook() {
const { t } = useSettings();
const { showToast } = useToast();
const doAction = () => {
showToast(t.common?.success || 'Operación exitosa', 'success');
};
}