con un clic
cacomi-i18n
Reactive Translation (i18n) and hardcoded text standards for Cacomi.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Reactive Translation (i18n) and hardcoded text standards for Cacomi.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional 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');
};
}