ワンクリックで
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');
};
}