diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5d81e86..1b0abbb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,23 @@ All notable changes to **Tiger Core** (`webtigers/tiger-core`). Format follows
## [Unreleased]
+## [1.0.2] — 2026-08-24
+
+### Fixed
+- **The admin chrome was still hardcoded English.** The platform ships six locales, but the shared
+ PUMA chrome rendered its own labels as literals — so **My Profile**, **Lock Screen**, **Sign Out**,
+ **Alerts**, **View all**, **Activity**, the agent aside, the theme/skin/language switchers, the
+ consent banner, and the cron + schedule setup screens all stayed English no matter the locale.
+ Even `Skip to content` — an accessibility affordance — was untranslated. 93 keys added to
+ `themes/puma/languages/*/theme.php`, all six locales at 133 with identical key sets.
+- Time-ago strings ("15 minutes ago") became `sprintf` keys rather than baked-in English, and the
+ inline-JS `'User'` fallback now reads a translated `data-fallback` attribute.
+
+### Note
+Third-party UI labels are deliberately NOT translated: the cron setup walks you through **cPanel's
+and Plesk's own English screens**, so control names like *Add New Cron Job* stay verbatim in every
+locale — translating them would send people hunting for a button that doesn't exist.
+
## [1.0.1] — 2026-08-24
### Fixed
diff --git a/library/Tiger/Version.php b/library/Tiger/Version.php
index 8954761..4e19b47 100644
--- a/library/Tiger/Version.php
+++ b/library/Tiger/Version.php
@@ -9,5 +9,5 @@
class Tiger_Version
{
/** Current Tiger Core version. Keep in lockstep with the git tag cut for a release. */
- const VERSION = '1.0.1';
+ const VERSION = '1.0.2';
}
diff --git a/themes/puma/languages/de/theme.php b/themes/puma/languages/de/theme.php
index 4203aa1..1ed0dca 100644
--- a/themes/puma/languages/de/theme.php
+++ b/themes/puma/languages/de/theme.php
@@ -48,4 +48,115 @@
'theme.footer.terms' => 'Nutzungsbedingungen',
'theme.footer.github' => 'GitHub',
'theme.footer.home' => 'Startseite',
+
+ // ------------------------------------------------------------------
+ // Admin-Oberfläche (gemeinsame Shell) — Siezen, wie im Backend üblich
+ // ------------------------------------------------------------------
+
+ 'theme.a11y.skip_to_content' => 'Zum Inhalt springen',
+ 'theme.a11y.toggle_nav' => 'Navigation ein- oder ausblenden',
+ 'theme.a11y.main_nav' => 'Hauptnavigation',
+ 'theme.a11y.sidebar_nav' => 'Seitenleistennavigation',
+ 'theme.a11y.primary_nav' => 'Hauptnavigation',
+
+ 'theme.action.save' => 'Speichern',
+ 'theme.action.copy' => 'Kopieren',
+
+ 'theme.admin.title' => 'Tiger-Verwaltung',
+ 'theme.admin.navigation' => 'Navigation',
+ 'theme.admin.guest' => 'Gast',
+ 'theme.admin.user_fallback' => 'Benutzer',
+ 'theme.search.label' => 'Suchen',
+
+ 'theme.admin.alerts' => 'Meldungen',
+ 'theme.admin.alert.user_locked' => 'Benutzer gesperrt',
+ 'theme.admin.alert.connection_restored' => 'Verbindung wiederhergestellt',
+ 'theme.admin.time.minutes_ago' => 'vor %d Minuten',
+ 'theme.admin.time.hour_ago' => 'vor %d Stunde',
+ 'theme.admin.view_all' => 'Alle ansehen',
+
+ 'theme.admin.menu.profile' => 'Mein Profil',
+ 'theme.admin.menu.two_factor' => 'Zwei-Faktor-Authentifizierung',
+ 'theme.admin.menu.lock_screen' => 'Bildschirm sperren',
+ 'theme.admin.menu.sign_out' => 'Abmelden',
+
+ 'theme.aside.label' => 'Assistenzbereich',
+ 'theme.aside.activity' => 'Aktivität',
+ 'theme.aside.placeholder' => 'Diese optionale Leiste erscheint, sobald eine View %s setzt. Platzieren Sie hier kontextbezogene Widgets: letzte Aktivitäten, Inline-Hilfe, Filter.',
+
+ 'theme.agent.label' => 'KI-Agent',
+ 'theme.agent.title' => 'Agent',
+ 'theme.agent.model' => 'Modell',
+ 'theme.agent.new_chat' => 'Neuer Chat',
+ 'theme.agent.drop_files' => 'Dateien hier ablegen, um sie anzuhängen',
+ 'theme.agent.empty' => 'Beginnen Sie ein Gespräch — der Agent handelt mit Ihren Berechtigungen.',
+ 'theme.agent.input_placeholder' => 'Bitten Sie den Agenten, etwas zu bauen, zu ändern oder zu erklären…',
+ 'theme.agent.attach' => 'Datei anhängen',
+ 'theme.agent.mode_title' => 'Automatisierungsgrad',
+ 'theme.agent.send' => 'Senden',
+ 'theme.agent.open' => 'KI-Agenten öffnen',
+
+ 'theme.switcher.language' => 'Sprache',
+ 'theme.switcher.theme' => 'Erscheinungsbild',
+ 'theme.switcher.browser' => 'Browser',
+ 'theme.switcher.light' => 'Hell',
+ 'theme.switcher.dark' => 'Dunkel',
+ 'theme.switcher.skin' => 'Skin',
+ 'theme.switcher.skin_title' => 'Skin (Live-Vorschau)',
+ 'theme.switcher.skin_header' => 'Skin — Live-Vorschau',
+ 'theme.switcher.custom' => 'Eigenes',
+
+ 'theme.consent.label' => 'Cookie-Einwilligung',
+ 'theme.consent.learn_more' => 'Mehr erfahren',
+ 'theme.consent.gpc' => 'Global Privacy Control erkannt — Sie sind von Analyse und Datenweitergabe ausgenommen.',
+
+ 'theme.auth.title_default' => 'Anmelden — Tiger',
+
+ // Die Bezeichnungen der Bedienelemente von cPanel / Plesk bleiben ABSICHTLICH auf Englisch:
+ // genau so stehen sie auf dem cPanel- bzw. Plesk-Bildschirm, den der Nutzer vor sich hat.
+ 'theme.cron.title' => 'So richten Sie Cron ein',
+ 'theme.cron.status.real.title' => 'Ein echter Cron läuft.',
+ 'theme.cron.status.real.body' => 'Tiger hat in den letzten Minuten vom Cron Ihres Servers gehört — die Zeitpläne laufen pünktlich.',
+ 'theme.cron.status.pseudo.title' => 'Der Pseudo-Cron nach WordPress-Art ist aktiv.',
+ 'theme.cron.status.pseudo.body' => 'Es wurde kein echter Cron erkannt, deshalb laufen geplante Aufgaben über den Website-Traffic — für den Anfang in Ordnung, aber auf einer ruhigen Website können Aufgaben zu spät laufen. Richten Sie unten einen echten Cron ein, damit alles zuverlässig und pünktlich läuft.',
+ 'theme.cron.status.none.title' => 'Es läuft kein Cron.',
+ 'theme.cron.status.none.body' => 'Sowohl der echte Cron als auch die Traffic-gesteuerte Notlösung sind aus — geplante Aufgaben laufen erst, wenn Sie unten einen Cron einrichten.',
+ 'theme.cron.command_label' => 'Ihr Cron-Befehl',
+ 'theme.cron.every_minute_note' => 'Führen Sie ihn jede Minute aus (* * * * *) — Tiger entscheidet intern, welche Aufgaben tatsächlich fällig sind. Ein minütlicher Cron ist also günstig und hält alles pünktlich.',
+ 'theme.cron.tab.cli' => 'Kommandozeile',
+ 'theme.cron.tab.claude' => 'Claude Code machen lassen',
+ 'theme.cron.cpanel.step1' => 'Öffnen Sie in cPanel Advanced → Cron Jobs.',
+ 'theme.cron.cpanel.step2' => 'Setzen Sie unter Add New Cron Job die Common Settings auf Once Per Minute (* * * * *).',
+ 'theme.cron.cpanel.step3' => 'Fügen Sie den Befehl von oben in Command ein.',
+ 'theme.cron.cpanel.step4' => 'Klicken Sie auf Add New Cron Job. Fertig — diese Karte wird innerhalb von ein bis zwei Minuten grün.',
+ 'theme.cron.cpanel.php_path' => 'Wird php nicht gefunden, verwenden Sie statt php den vollständigen PHP-Pfad Ihres Hosters (z. B. /usr/local/bin/ea-php82).',
+ 'theme.cron.plesk.step1' => 'Öffnen Sie in Plesk Websites & Domains → Scheduled Tasks für Ihre Domain.',
+ 'theme.cron.plesk.step2' => 'Klicken Sie auf Add Task und wählen Sie Run a command.',
+ 'theme.cron.plesk.step3' => 'Stellen Sie Run auf Cron style und tragen Sie * * * * * ein.',
+ 'theme.cron.plesk.step4' => 'Fügen Sie den Befehl von oben ein und klicken Sie zum Testen auf OK / Run Now.',
+ 'theme.cron.cli.intro' => 'Verbinden Sie sich per SSH mit dem Server und bearbeiten Sie die Crontab:',
+ 'theme.cron.cli.add' => 'Fügen Sie diese Zeile hinzu und speichern Sie:',
+ 'theme.cron.claude.intro' => 'Lassen Sie es Claude Code (oder einen beliebigen Shell-Zugang zu diesem Server) für Sie erledigen — fragen Sie einfach:',
+ 'theme.cron.claude.prompt' => 'Richte einen minütlichen Cron ein, der Folgendes ausführt:',
+ 'theme.cron.claude.note' => 'Claude Code trägt den Crontab-Eintrag ein und bestätigt ihn. Bis dahin hält der Traffic-gesteuerte Pseudo-Cron den Betrieb am Laufen.',
+
+ 'theme.schedule.frequency' => 'Häufigkeit',
+ 'theme.schedule.time' => 'Uhrzeit',
+ 'theme.schedule.day_of_week' => 'Wochentag',
+ 'theme.schedule.day_of_month' => 'Tag des Monats',
+ 'theme.schedule.enabled' => 'Aktiviert',
+ 'theme.schedule.freq.every_minute' => 'Jede Minute',
+ 'theme.schedule.freq.every_5_min' => 'Alle 5 Minuten',
+ 'theme.schedule.freq.every_15_min' => 'Alle 15 Minuten',
+ 'theme.schedule.freq.hourly' => 'Stündlich',
+ 'theme.schedule.freq.daily' => 'Täglich',
+ 'theme.schedule.freq.weekly' => 'Wöchentlich',
+ 'theme.schedule.freq.monthly' => 'Monatlich',
+ 'theme.schedule.day.sunday' => 'Sonntag',
+ 'theme.schedule.day.monday' => 'Montag',
+ 'theme.schedule.day.tuesday' => 'Dienstag',
+ 'theme.schedule.day.wednesday' => 'Mittwoch',
+ 'theme.schedule.day.thursday' => 'Donnerstag',
+ 'theme.schedule.day.friday' => 'Freitag',
+ 'theme.schedule.day.saturday' => 'Samstag',
];
diff --git a/themes/puma/languages/en/theme.php b/themes/puma/languages/en/theme.php
index b6aa8e3..2af2391 100644
--- a/themes/puma/languages/en/theme.php
+++ b/themes/puma/languages/en/theme.php
@@ -57,4 +57,131 @@
'theme.footer.terms' => 'Terms',
'theme.footer.github' => 'GitHub',
'theme.footer.home' => 'Home',
+
+ // ------------------------------------------------------------------
+ // Admin chrome (the shared shell: layout, header, sidebars, asides)
+ // ------------------------------------------------------------------
+
+ // Accessibility labels (skip links, landmark + control names)
+ 'theme.a11y.skip_to_content' => 'Skip to content',
+ 'theme.a11y.toggle_nav' => 'Toggle navigation',
+ 'theme.a11y.main_nav' => 'Main navigation',
+ 'theme.a11y.sidebar_nav' => 'Sidebar navigation',
+ 'theme.a11y.primary_nav' => 'Primary navigation',
+
+ // Shared actions
+ 'theme.action.save' => 'Save',
+ 'theme.action.copy' => 'Copy',
+
+ // Admin shell
+ 'theme.admin.title' => 'Tiger Admin',
+ 'theme.admin.navigation' => 'Navigation',
+ 'theme.admin.guest' => 'Guest',
+ 'theme.admin.user_fallback' => 'User',
+ 'theme.search.label' => 'Search',
+
+ // Header notifications
+ 'theme.admin.alerts' => 'Alerts',
+ 'theme.admin.alert.user_locked' => 'User locked',
+ 'theme.admin.alert.connection_restored' => 'Connection restored',
+ 'theme.admin.time.minutes_ago' => '%d minutes ago',
+ 'theme.admin.time.hour_ago' => '%d hour ago',
+ 'theme.admin.view_all' => 'View all',
+
+ // Header user menu
+ 'theme.admin.menu.profile' => 'My Profile',
+ 'theme.admin.menu.two_factor' => 'Two-Factor Auth',
+ 'theme.admin.menu.lock_screen' => 'Lock Screen',
+ 'theme.admin.menu.sign_out' => 'Sign Out',
+
+ // Right aside (contextual rail)
+ 'theme.aside.label' => 'Assistant panel',
+ 'theme.aside.activity' => 'Activity',
+ 'theme.aside.placeholder' => 'This optional rail appears when a view sets %s. Drop contextual widgets here — recent activity, inline help, filters.',
+
+ // TigerAgent aside
+ 'theme.agent.label' => 'AI Agent',
+ 'theme.agent.title' => 'Agent',
+ 'theme.agent.model' => 'Model',
+ 'theme.agent.new_chat' => 'New chat',
+ 'theme.agent.drop_files' => 'Drop files to attach',
+ 'theme.agent.empty' => 'Start a conversation — the agent acts with your permissions.',
+ 'theme.agent.input_placeholder' => 'Ask the agent to build, change, or explain something…',
+ 'theme.agent.attach' => 'Attach a file',
+ 'theme.agent.mode_title' => 'Automation level',
+ 'theme.agent.send' => 'Send',
+ 'theme.agent.open' => 'Open the AI agent',
+
+ // Language / theme / skin switchers
+ 'theme.switcher.language' => 'Language',
+ 'theme.switcher.theme' => 'Theme',
+ 'theme.switcher.browser' => 'Browser',
+ 'theme.switcher.light' => 'Light',
+ 'theme.switcher.dark' => 'Dark',
+ 'theme.switcher.skin' => 'Skin',
+ 'theme.switcher.skin_title' => 'Skin (live preview)',
+ 'theme.switcher.skin_header' => 'Skin — live preview',
+ 'theme.switcher.custom' => 'Custom',
+
+ // Cookie-consent banner ("Global Privacy Control" is the standard's own name — kept verbatim)
+ 'theme.consent.label' => 'Cookie consent',
+ 'theme.consent.learn_more' => 'Learn more',
+ 'theme.consent.gpc' => "Global Privacy Control detected — you're opted out of analytics & sharing.",
+
+ // Auth layout
+ 'theme.auth.title_default' => 'Sign in — Tiger',
+
+ // ------------------------------------------------------------------
+ // Cron setup card. NOTE: the names of controls in cPanel's / Plesk's OWN
+ // interface ("Add New Cron Job", "Common Settings", "Once Per Minute",
+ // "Command", "Add Task", "Run a command", "Cron style", …) MUST stay in
+ // English in every locale — the user is looking for them on an English
+ // cPanel/Plesk screen. Translate the prose around them only.
+ // ------------------------------------------------------------------
+ 'theme.cron.title' => 'How to set up Cron',
+ 'theme.cron.status.real.title' => 'A real cron is running.',
+ 'theme.cron.status.real.body' => 'Tiger heard from your server cron in the last couple of minutes — schedules run on time.',
+ 'theme.cron.status.pseudo.title' => 'WordPress-style pseudo-cron is active.',
+ 'theme.cron.status.pseudo.body' => 'No real cron detected, so scheduled jobs run on site traffic — fine to start, but a quiet site can run jobs late. Add a real cron below for reliable, on-time scheduling.',
+ 'theme.cron.status.none.title' => 'No cron is running.',
+ 'theme.cron.status.none.body' => 'Both real cron and the traffic-driven fallback are off — scheduled jobs will not run until you set one up below.',
+ 'theme.cron.command_label' => 'Your cron command',
+ 'theme.cron.every_minute_note' => 'Run it every minute (* * * * *) — Tiger decides internally which jobs are actually due, so a per-minute cron is cheap and keeps everything on time.',
+ 'theme.cron.tab.cli' => 'Command line',
+ 'theme.cron.tab.claude' => 'Let Claude Code do it',
+ 'theme.cron.cpanel.step1' => 'In cPanel, open Advanced → Cron Jobs.',
+ 'theme.cron.cpanel.step2' => 'Under Add New Cron Job, set Common Settings to Once Per Minute (* * * * *).',
+ 'theme.cron.cpanel.step3' => 'Paste the command above into Command.',
+ 'theme.cron.cpanel.step4' => 'Click Add New Cron Job. Done — this card flips to green within a minute or two.',
+ 'theme.cron.cpanel.php_path' => "If php isn't found, use your host's full PHP path (e.g. /usr/local/bin/ea-php82) in place of php.",
+ 'theme.cron.plesk.step1' => 'In Plesk, open Websites & Domains → Scheduled Tasks for your domain.',
+ 'theme.cron.plesk.step2' => 'Click Add Task, choose Run a command.',
+ 'theme.cron.plesk.step3' => 'Set Run to Cron style and enter * * * * *.',
+ 'theme.cron.plesk.step4' => 'Paste the command above, then OK / Run Now to test.',
+ 'theme.cron.cli.intro' => 'SSH into the server and edit the crontab:',
+ 'theme.cron.cli.add' => 'Add this line, then save:',
+ 'theme.cron.claude.intro' => 'Have Claude Code (or any shell access to this server) do it for you — just ask:',
+ 'theme.cron.claude.prompt' => 'Add a per-minute cron that runs:',
+ 'theme.cron.claude.note' => 'Claude Code will add the crontab entry and confirm it. Until then, the traffic-driven pseudo-cron keeps things moving.',
+
+ // Schedule control (values posted to the API stay the English keys; only the labels localize)
+ 'theme.schedule.frequency' => 'Frequency',
+ 'theme.schedule.time' => 'Time',
+ 'theme.schedule.day_of_week' => 'Day of week',
+ 'theme.schedule.day_of_month' => 'Day of month',
+ 'theme.schedule.enabled' => 'Enabled',
+ 'theme.schedule.freq.every_minute' => 'Every minute',
+ 'theme.schedule.freq.every_5_min' => 'Every 5 minutes',
+ 'theme.schedule.freq.every_15_min' => 'Every 15 minutes',
+ 'theme.schedule.freq.hourly' => 'Hourly',
+ 'theme.schedule.freq.daily' => 'Daily',
+ 'theme.schedule.freq.weekly' => 'Weekly',
+ 'theme.schedule.freq.monthly' => 'Monthly',
+ 'theme.schedule.day.sunday' => 'Sunday',
+ 'theme.schedule.day.monday' => 'Monday',
+ 'theme.schedule.day.tuesday' => 'Tuesday',
+ 'theme.schedule.day.wednesday' => 'Wednesday',
+ 'theme.schedule.day.thursday' => 'Thursday',
+ 'theme.schedule.day.friday' => 'Friday',
+ 'theme.schedule.day.saturday' => 'Saturday',
];
diff --git a/themes/puma/languages/es/theme.php b/themes/puma/languages/es/theme.php
index 9e743a0..0509aa3 100644
--- a/themes/puma/languages/es/theme.php
+++ b/themes/puma/languages/es/theme.php
@@ -48,4 +48,115 @@
'theme.footer.terms' => 'Términos',
'theme.footer.github' => 'GitHub',
'theme.footer.home' => 'Inicio',
+
+ // ------------------------------------------------------------------
+ // Interfaz del panel de administración (shell compartido)
+ // ------------------------------------------------------------------
+
+ 'theme.a11y.skip_to_content' => 'Ir al contenido',
+ 'theme.a11y.toggle_nav' => 'Mostrar u ocultar la navegación',
+ 'theme.a11y.main_nav' => 'Navegación principal',
+ 'theme.a11y.sidebar_nav' => 'Navegación lateral',
+ 'theme.a11y.primary_nav' => 'Navegación principal',
+
+ 'theme.action.save' => 'Guardar',
+ 'theme.action.copy' => 'Copiar',
+
+ 'theme.admin.title' => 'Administración de Tiger',
+ 'theme.admin.navigation' => 'Navegación',
+ 'theme.admin.guest' => 'Invitado',
+ 'theme.admin.user_fallback' => 'Usuario',
+ 'theme.search.label' => 'Buscar',
+
+ 'theme.admin.alerts' => 'Alertas',
+ 'theme.admin.alert.user_locked' => 'Usuario bloqueado',
+ 'theme.admin.alert.connection_restored' => 'Conexión restablecida',
+ 'theme.admin.time.minutes_ago' => 'hace %d minutos',
+ 'theme.admin.time.hour_ago' => 'hace %d hora',
+ 'theme.admin.view_all' => 'Ver todo',
+
+ 'theme.admin.menu.profile' => 'Mi perfil',
+ 'theme.admin.menu.two_factor' => 'Verificación en dos pasos',
+ 'theme.admin.menu.lock_screen' => 'Bloquear pantalla',
+ 'theme.admin.menu.sign_out' => 'Cerrar sesión',
+
+ 'theme.aside.label' => 'Panel del asistente',
+ 'theme.aside.activity' => 'Actividad',
+ 'theme.aside.placeholder' => 'Este panel opcional aparece cuando una vista define %s. Coloca aquí widgets contextuales: actividad reciente, ayuda en línea, filtros.',
+
+ 'theme.agent.label' => 'Agente de IA',
+ 'theme.agent.title' => 'Agente',
+ 'theme.agent.model' => 'Modelo',
+ 'theme.agent.new_chat' => 'Nueva conversación',
+ 'theme.agent.drop_files' => 'Suelta los archivos para adjuntarlos',
+ 'theme.agent.empty' => 'Inicia una conversación: el agente actúa con tus permisos.',
+ 'theme.agent.input_placeholder' => 'Pide al agente que construya, cambie o explique algo…',
+ 'theme.agent.attach' => 'Adjuntar un archivo',
+ 'theme.agent.mode_title' => 'Nivel de automatización',
+ 'theme.agent.send' => 'Enviar',
+ 'theme.agent.open' => 'Abrir el agente de IA',
+
+ 'theme.switcher.language' => 'Idioma',
+ 'theme.switcher.theme' => 'Tema',
+ 'theme.switcher.browser' => 'Navegador',
+ 'theme.switcher.light' => 'Claro',
+ 'theme.switcher.dark' => 'Oscuro',
+ 'theme.switcher.skin' => 'Skin',
+ 'theme.switcher.skin_title' => 'Skin (vista previa en vivo)',
+ 'theme.switcher.skin_header' => 'Skin — vista previa en vivo',
+ 'theme.switcher.custom' => 'Personalizado',
+
+ 'theme.consent.label' => 'Consentimiento de cookies',
+ 'theme.consent.learn_more' => 'Más información',
+ 'theme.consent.gpc' => 'Se ha detectado Global Privacy Control: estás excluido de la analítica y del intercambio de datos.',
+
+ 'theme.auth.title_default' => 'Iniciar sesión — Tiger',
+
+ // Los nombres de los controles de cPanel / Plesk se dejan EN INGLÉS a propósito: el usuario los
+ // busca tal cual en una pantalla de cPanel o Plesk en inglés.
+ 'theme.cron.title' => 'Cómo configurar Cron',
+ 'theme.cron.status.real.title' => 'Hay un cron real en marcha.',
+ 'theme.cron.status.real.body' => 'Tiger recibió señal del cron de tu servidor en los últimos minutos: las tareas se ejecutan a tiempo.',
+ 'theme.cron.status.pseudo.title' => 'El pseudo-cron al estilo de WordPress está activo.',
+ 'theme.cron.status.pseudo.body' => 'No se detectó un cron real, así que las tareas programadas dependen del tráfico del sitio: sirve para empezar, pero en un sitio con poco tráfico pueden ejecutarse tarde. Añade abajo un cron real para una programación fiable y puntual.',
+ 'theme.cron.status.none.title' => 'No hay ningún cron en marcha.',
+ 'theme.cron.status.none.body' => 'Tanto el cron real como el respaldo por tráfico están desactivados: las tareas programadas no se ejecutarán hasta que configures uno abajo.',
+ 'theme.cron.command_label' => 'Tu comando de cron',
+ 'theme.cron.every_minute_note' => 'Ejecútalo cada minuto (* * * * *): Tiger decide internamente qué tareas tocan, así que un cron por minuto es barato y lo mantiene todo puntual.',
+ 'theme.cron.tab.cli' => 'Línea de comandos',
+ 'theme.cron.tab.claude' => 'Que lo haga Claude Code',
+ 'theme.cron.cpanel.step1' => 'En cPanel, abre Advanced → Cron Jobs.',
+ 'theme.cron.cpanel.step2' => 'En Add New Cron Job, pon Common Settings en Once Per Minute (* * * * *).',
+ 'theme.cron.cpanel.step3' => 'Pega el comando de arriba en Command.',
+ 'theme.cron.cpanel.step4' => 'Haz clic en Add New Cron Job. Listo: esta tarjeta se pondrá verde en uno o dos minutos.',
+ 'theme.cron.cpanel.php_path' => 'Si no se encuentra php, usa la ruta completa de PHP de tu proveedor (por ejemplo /usr/local/bin/ea-php82) en lugar de php.',
+ 'theme.cron.plesk.step1' => 'En Plesk, abre Websites & Domains → Scheduled Tasks para tu dominio.',
+ 'theme.cron.plesk.step2' => 'Haz clic en Add Task y elige Run a command.',
+ 'theme.cron.plesk.step3' => 'Pon Run en Cron style e introduce * * * * *.',
+ 'theme.cron.plesk.step4' => 'Pega el comando de arriba y luego pulsa OK / Run Now para probarlo.',
+ 'theme.cron.cli.intro' => 'Conéctate por SSH al servidor y edita el crontab:',
+ 'theme.cron.cli.add' => 'Añade esta línea y guarda:',
+ 'theme.cron.claude.intro' => 'Deja que Claude Code (o cualquier acceso por shell a este servidor) lo haga por ti; basta con pedírselo:',
+ 'theme.cron.claude.prompt' => 'Añade un cron por minuto que ejecute:',
+ 'theme.cron.claude.note' => 'Claude Code añadirá la entrada del crontab y lo confirmará. Mientras tanto, el pseudo-cron por tráfico mantiene todo en marcha.',
+
+ 'theme.schedule.frequency' => 'Frecuencia',
+ 'theme.schedule.time' => 'Hora',
+ 'theme.schedule.day_of_week' => 'Día de la semana',
+ 'theme.schedule.day_of_month' => 'Día del mes',
+ 'theme.schedule.enabled' => 'Activado',
+ 'theme.schedule.freq.every_minute' => 'Cada minuto',
+ 'theme.schedule.freq.every_5_min' => 'Cada 5 minutos',
+ 'theme.schedule.freq.every_15_min' => 'Cada 15 minutos',
+ 'theme.schedule.freq.hourly' => 'Cada hora',
+ 'theme.schedule.freq.daily' => 'Cada día',
+ 'theme.schedule.freq.weekly' => 'Cada semana',
+ 'theme.schedule.freq.monthly' => 'Cada mes',
+ 'theme.schedule.day.sunday' => 'Domingo',
+ 'theme.schedule.day.monday' => 'Lunes',
+ 'theme.schedule.day.tuesday' => 'Martes',
+ 'theme.schedule.day.wednesday' => 'Miércoles',
+ 'theme.schedule.day.thursday' => 'Jueves',
+ 'theme.schedule.day.friday' => 'Viernes',
+ 'theme.schedule.day.saturday' => 'Sábado',
];
diff --git a/themes/puma/languages/fr/theme.php b/themes/puma/languages/fr/theme.php
index 76c2573..11274a0 100644
--- a/themes/puma/languages/fr/theme.php
+++ b/themes/puma/languages/fr/theme.php
@@ -48,4 +48,115 @@
'theme.footer.terms' => 'Conditions',
'theme.footer.github' => 'GitHub',
'theme.footer.home' => 'Accueil',
+
+ // ------------------------------------------------------------------
+ // Interface d'administration (shell partagé)
+ // ------------------------------------------------------------------
+
+ 'theme.a11y.skip_to_content' => 'Aller au contenu',
+ 'theme.a11y.toggle_nav' => 'Afficher ou masquer la navigation',
+ 'theme.a11y.main_nav' => 'Navigation principale',
+ 'theme.a11y.sidebar_nav' => 'Navigation latérale',
+ 'theme.a11y.primary_nav' => 'Navigation principale',
+
+ 'theme.action.save' => 'Enregistrer',
+ 'theme.action.copy' => 'Copier',
+
+ 'theme.admin.title' => 'Administration Tiger',
+ 'theme.admin.navigation' => 'Navigation',
+ 'theme.admin.guest' => 'Invité',
+ 'theme.admin.user_fallback' => 'Utilisateur',
+ 'theme.search.label' => 'Rechercher',
+
+ 'theme.admin.alerts' => 'Alertes',
+ 'theme.admin.alert.user_locked' => 'Utilisateur verrouillé',
+ 'theme.admin.alert.connection_restored' => 'Connexion rétablie',
+ 'theme.admin.time.minutes_ago' => 'il y a %d minutes',
+ 'theme.admin.time.hour_ago' => 'il y a %d heure',
+ 'theme.admin.view_all' => 'Tout voir',
+
+ 'theme.admin.menu.profile' => 'Mon profil',
+ 'theme.admin.menu.two_factor' => 'Authentification à deux facteurs',
+ 'theme.admin.menu.lock_screen' => "Verrouiller l'écran",
+ 'theme.admin.menu.sign_out' => 'Se déconnecter',
+
+ 'theme.aside.label' => 'Panneau assistant',
+ 'theme.aside.activity' => 'Activité',
+ 'theme.aside.placeholder' => 'Ce panneau optionnel apparaît quand une vue définit %s. Placez-y des widgets contextuels : activité récente, aide en ligne, filtres.',
+
+ 'theme.agent.label' => 'Agent IA',
+ 'theme.agent.title' => 'Agent',
+ 'theme.agent.model' => 'Modèle',
+ 'theme.agent.new_chat' => 'Nouvelle conversation',
+ 'theme.agent.drop_files' => 'Déposez des fichiers pour les joindre',
+ 'theme.agent.empty' => 'Démarrez une conversation — l’agent agit avec vos permissions.',
+ 'theme.agent.input_placeholder' => 'Demandez à l’agent de créer, modifier ou expliquer quelque chose…',
+ 'theme.agent.attach' => 'Joindre un fichier',
+ 'theme.agent.mode_title' => "Niveau d'automatisation",
+ 'theme.agent.send' => 'Envoyer',
+ 'theme.agent.open' => "Ouvrir l'agent IA",
+
+ 'theme.switcher.language' => 'Langue',
+ 'theme.switcher.theme' => 'Thème',
+ 'theme.switcher.browser' => 'Navigateur',
+ 'theme.switcher.light' => 'Clair',
+ 'theme.switcher.dark' => 'Sombre',
+ 'theme.switcher.skin' => 'Skin',
+ 'theme.switcher.skin_title' => 'Skin (aperçu en direct)',
+ 'theme.switcher.skin_header' => 'Skin — aperçu en direct',
+ 'theme.switcher.custom' => 'Personnalisé',
+
+ 'theme.consent.label' => 'Consentement aux cookies',
+ 'theme.consent.learn_more' => 'En savoir plus',
+ 'theme.consent.gpc' => 'Global Privacy Control détecté — vous êtes exclu de la mesure d’audience et du partage de données.',
+
+ 'theme.auth.title_default' => 'Connexion — Tiger',
+
+ // Les libellés des contrôles de cPanel / Plesk restent VOLONTAIREMENT en anglais : c'est sous ce
+ // nom que l'utilisateur les trouve sur l'écran cPanel ou Plesk qu'il a sous les yeux.
+ 'theme.cron.title' => 'Comment configurer Cron',
+ 'theme.cron.status.real.title' => 'Un vrai cron tourne.',
+ 'theme.cron.status.real.body' => 'Tiger a reçu un signal du cron de votre serveur ces dernières minutes — les tâches planifiées partent à l’heure.',
+ 'theme.cron.status.pseudo.title' => 'Le pseudo-cron façon WordPress est actif.',
+ 'theme.cron.status.pseudo.body' => 'Aucun vrai cron détecté : les tâches planifiées dépendent du trafic du site — acceptable pour démarrer, mais un site peu visité peut les exécuter en retard. Ajoutez un vrai cron ci-dessous pour une planification fiable et ponctuelle.',
+ 'theme.cron.status.none.title' => 'Aucun cron ne tourne.',
+ 'theme.cron.status.none.body' => 'Le vrai cron et la solution de repli pilotée par le trafic sont tous deux désactivés — les tâches planifiées ne partiront pas tant que vous n’en aurez pas configuré un ci-dessous.',
+ 'theme.cron.command_label' => 'Votre commande cron',
+ 'theme.cron.every_minute_note' => 'Lancez-la toutes les minutes (* * * * *) — Tiger décide en interne quelles tâches sont réellement dues, donc un cron à la minute coûte peu et garde tout à l’heure.',
+ 'theme.cron.tab.cli' => 'Ligne de commande',
+ 'theme.cron.tab.claude' => 'Laisser faire Claude Code',
+ 'theme.cron.cpanel.step1' => 'Dans cPanel, ouvrez Advanced → Cron Jobs.',
+ 'theme.cron.cpanel.step2' => 'Sous Add New Cron Job, réglez Common Settings sur Once Per Minute (* * * * *).',
+ 'theme.cron.cpanel.step3' => 'Collez la commande ci-dessus dans Command.',
+ 'theme.cron.cpanel.step4' => 'Cliquez sur Add New Cron Job. C’est fait — cette carte passe au vert d’ici une à deux minutes.',
+ 'theme.cron.cpanel.php_path' => 'Si php est introuvable, utilisez le chemin PHP complet de votre hébergeur (par exemple /usr/local/bin/ea-php82) à la place de php.',
+ 'theme.cron.plesk.step1' => 'Dans Plesk, ouvrez Websites & Domains → Scheduled Tasks pour votre domaine.',
+ 'theme.cron.plesk.step2' => 'Cliquez sur Add Task, puis choisissez Run a command.',
+ 'theme.cron.plesk.step3' => 'Réglez Run sur Cron style et saisissez * * * * *.',
+ 'theme.cron.plesk.step4' => 'Collez la commande ci-dessus, puis OK / Run Now pour tester.',
+ 'theme.cron.cli.intro' => 'Connectez-vous au serveur en SSH et éditez la crontab :',
+ 'theme.cron.cli.add' => 'Ajoutez cette ligne, puis enregistrez :',
+ 'theme.cron.claude.intro' => 'Laissez Claude Code (ou n’importe quel accès shell à ce serveur) le faire pour vous — demandez-lui simplement :',
+ 'theme.cron.claude.prompt' => 'Ajoute un cron à la minute qui exécute :',
+ 'theme.cron.claude.note' => 'Claude Code ajoutera l’entrée crontab et la confirmera. En attendant, le pseudo-cron piloté par le trafic garde les choses en mouvement.',
+
+ 'theme.schedule.frequency' => 'Fréquence',
+ 'theme.schedule.time' => 'Heure',
+ 'theme.schedule.day_of_week' => 'Jour de la semaine',
+ 'theme.schedule.day_of_month' => 'Jour du mois',
+ 'theme.schedule.enabled' => 'Activé',
+ 'theme.schedule.freq.every_minute' => 'Toutes les minutes',
+ 'theme.schedule.freq.every_5_min' => 'Toutes les 5 minutes',
+ 'theme.schedule.freq.every_15_min' => 'Toutes les 15 minutes',
+ 'theme.schedule.freq.hourly' => 'Toutes les heures',
+ 'theme.schedule.freq.daily' => 'Tous les jours',
+ 'theme.schedule.freq.weekly' => 'Toutes les semaines',
+ 'theme.schedule.freq.monthly' => 'Tous les mois',
+ 'theme.schedule.day.sunday' => 'Dimanche',
+ 'theme.schedule.day.monday' => 'Lundi',
+ 'theme.schedule.day.tuesday' => 'Mardi',
+ 'theme.schedule.day.wednesday' => 'Mercredi',
+ 'theme.schedule.day.thursday' => 'Jeudi',
+ 'theme.schedule.day.friday' => 'Vendredi',
+ 'theme.schedule.day.saturday' => 'Samedi',
];
diff --git a/themes/puma/languages/hi/theme.php b/themes/puma/languages/hi/theme.php
index 5347617..eccacb4 100644
--- a/themes/puma/languages/hi/theme.php
+++ b/themes/puma/languages/hi/theme.php
@@ -48,4 +48,114 @@
'theme.footer.terms' => 'शर्तें',
'theme.footer.github' => 'GitHub',
'theme.footer.home' => 'होम',
+
+ // ------------------------------------------------------------------
+ // एडमिन क्रोम (साझा शेल) — तकनीकी शब्द (Cron, cPanel, Skin) ज्यों के त्यों
+ // ------------------------------------------------------------------
+
+ 'theme.a11y.skip_to_content' => 'कॉन्टेंट पर जाएँ',
+ 'theme.a11y.toggle_nav' => 'नेविगेशन दिखाएँ या छिपाएँ',
+ 'theme.a11y.main_nav' => 'मुख्य नेविगेशन',
+ 'theme.a11y.sidebar_nav' => 'साइडबार नेविगेशन',
+ 'theme.a11y.primary_nav' => 'मुख्य नेविगेशन',
+
+ 'theme.action.save' => 'सेव करें',
+ 'theme.action.copy' => 'कॉपी करें',
+
+ 'theme.admin.title' => 'Tiger एडमिन',
+ 'theme.admin.navigation' => 'नेविगेशन',
+ 'theme.admin.guest' => 'अतिथि',
+ 'theme.admin.user_fallback' => 'यूज़र',
+ 'theme.search.label' => 'खोजें',
+
+ 'theme.admin.alerts' => 'अलर्ट',
+ 'theme.admin.alert.user_locked' => 'यूज़र लॉक हो गया',
+ 'theme.admin.alert.connection_restored' => 'कनेक्शन बहाल हुआ',
+ 'theme.admin.time.minutes_ago' => '%d मिनट पहले',
+ 'theme.admin.time.hour_ago' => '%d घंटा पहले',
+ 'theme.admin.view_all' => 'सभी देखें',
+
+ 'theme.admin.menu.profile' => 'मेरी प्रोफ़ाइल',
+ 'theme.admin.menu.two_factor' => 'टू-फ़ैक्टर ऑथेंटिकेशन',
+ 'theme.admin.menu.lock_screen' => 'स्क्रीन लॉक करें',
+ 'theme.admin.menu.sign_out' => 'साइन आउट',
+
+ 'theme.aside.label' => 'सहायक पैनल',
+ 'theme.aside.activity' => 'गतिविधि',
+ 'theme.aside.placeholder' => 'यह वैकल्पिक पट्टी तब दिखती है जब कोई व्यू %s सेट करता है। यहाँ संदर्भ-आधारित विजेट रखें — हाल की गतिविधि, इनलाइन मदद, फ़िल्टर।',
+
+ 'theme.agent.label' => 'AI एजेंट',
+ 'theme.agent.title' => 'एजेंट',
+ 'theme.agent.model' => 'मॉडल',
+ 'theme.agent.new_chat' => 'नई चैट',
+ 'theme.agent.drop_files' => 'अटैच करने के लिए फ़ाइलें यहाँ छोड़ें',
+ 'theme.agent.empty' => 'बातचीत शुरू करें — एजेंट आपकी ही अनुमतियों के साथ काम करता है।',
+ 'theme.agent.input_placeholder' => 'एजेंट से कुछ बनाने, बदलने या समझाने के लिए कहें…',
+ 'theme.agent.attach' => 'फ़ाइल अटैच करें',
+ 'theme.agent.mode_title' => 'ऑटोमेशन स्तर',
+ 'theme.agent.send' => 'भेजें',
+ 'theme.agent.open' => 'AI एजेंट खोलें',
+
+ 'theme.switcher.language' => 'भाषा',
+ 'theme.switcher.theme' => 'थीम',
+ 'theme.switcher.browser' => 'ब्राउज़र',
+ 'theme.switcher.light' => 'लाइट',
+ 'theme.switcher.dark' => 'डार्क',
+ 'theme.switcher.skin' => 'Skin',
+ 'theme.switcher.skin_title' => 'Skin (लाइव प्रीव्यू)',
+ 'theme.switcher.skin_header' => 'Skin — लाइव प्रीव्यू',
+ 'theme.switcher.custom' => 'कस्टम',
+
+ 'theme.consent.label' => 'कुकी सहमति',
+ 'theme.consent.learn_more' => 'और जानें',
+ 'theme.consent.gpc' => 'Global Privacy Control का पता चला — आप एनालिटिक्स और डेटा साझाकरण से बाहर हैं।',
+
+ 'theme.auth.title_default' => 'साइन इन — Tiger',
+
+ // cPanel / Plesk के अपने कंट्रोल के नाम जानबूझकर अंग्रेज़ी में रखे गए हैं — स्क्रीन पर वे इसी रूप में दिखते हैं।
+ 'theme.cron.title' => 'Cron कैसे सेट करें',
+ 'theme.cron.status.real.title' => 'असली cron चल रहा है।',
+ 'theme.cron.status.real.body' => 'पिछले कुछ मिनटों में Tiger को आपके सर्वर के cron से संकेत मिला — शेड्यूल समय पर चल रहे हैं।',
+ 'theme.cron.status.pseudo.title' => 'WordPress-शैली का pseudo-cron सक्रिय है।',
+ 'theme.cron.status.pseudo.body' => 'कोई असली cron नहीं मिला, इसलिए शेड्यूल किए गए जॉब साइट ट्रैफ़िक पर चलते हैं — शुरुआत के लिए ठीक है, पर कम ट्रैफ़िक वाली साइट पर जॉब देर से चल सकते हैं। भरोसेमंद और समय पर शेड्यूलिंग के लिए नीचे असली cron जोड़ें।',
+ 'theme.cron.status.none.title' => 'कोई cron नहीं चल रहा।',
+ 'theme.cron.status.none.body' => 'असली cron और ट्रैफ़िक-आधारित विकल्प, दोनों बंद हैं — जब तक आप नीचे एक सेट नहीं करते, शेड्यूल किए गए जॉब नहीं चलेंगे।',
+ 'theme.cron.command_label' => 'आपका cron कमांड',
+ 'theme.cron.every_minute_note' => 'इसे हर मिनट चलाएँ (* * * * *) — कौन-सा जॉब वाकई देय है, यह Tiger अंदर ही तय करता है, इसलिए हर मिनट का cron सस्ता है और सब कुछ समय पर रखता है।',
+ 'theme.cron.tab.cli' => 'कमांड लाइन',
+ 'theme.cron.tab.claude' => 'Claude Code से करवाएँ',
+ 'theme.cron.cpanel.step1' => 'cPanel में Advanced → Cron Jobs खोलें।',
+ 'theme.cron.cpanel.step2' => 'Add New Cron Job के नीचे Common Settings को Once Per Minute (* * * * *) पर सेट करें।',
+ 'theme.cron.cpanel.step3' => 'ऊपर दिया कमांड Command में पेस्ट करें।',
+ 'theme.cron.cpanel.step4' => 'Add New Cron Job पर क्लिक करें। हो गया — यह कार्ड एक-दो मिनट में हरा हो जाएगा।',
+ 'theme.cron.cpanel.php_path' => 'यदि php न मिले, तो php की जगह अपने होस्ट का पूरा PHP पाथ इस्तेमाल करें (जैसे /usr/local/bin/ea-php82)।',
+ 'theme.cron.plesk.step1' => 'Plesk में अपने डोमेन के लिए Websites & Domains → Scheduled Tasks खोलें।',
+ 'theme.cron.plesk.step2' => 'Add Task पर क्लिक करें और Run a command चुनें।',
+ 'theme.cron.plesk.step3' => 'Run को Cron style पर सेट करें और * * * * * दर्ज करें।',
+ 'theme.cron.plesk.step4' => 'ऊपर दिया कमांड पेस्ट करें, फिर जाँचने के लिए OK / Run Now दबाएँ।',
+ 'theme.cron.cli.intro' => 'सर्वर पर SSH से जुड़ें और crontab संपादित करें:',
+ 'theme.cron.cli.add' => 'यह लाइन जोड़ें और सेव करें:',
+ 'theme.cron.claude.intro' => 'यह काम Claude Code (या इस सर्वर पर किसी भी शेल एक्सेस) से करवा लें — बस इतना कहें:',
+ 'theme.cron.claude.prompt' => 'हर मिनट चलने वाला एक cron जोड़ो जो यह चलाए:',
+ 'theme.cron.claude.note' => 'Claude Code crontab एंट्री जोड़ देगा और उसकी पुष्टि करेगा। तब तक ट्रैफ़िक-आधारित pseudo-cron काम चलाता रहेगा।',
+
+ 'theme.schedule.frequency' => 'आवृत्ति',
+ 'theme.schedule.time' => 'समय',
+ 'theme.schedule.day_of_week' => 'सप्ताह का दिन',
+ 'theme.schedule.day_of_month' => 'महीने का दिन',
+ 'theme.schedule.enabled' => 'सक्रिय',
+ 'theme.schedule.freq.every_minute' => 'हर मिनट',
+ 'theme.schedule.freq.every_5_min' => 'हर 5 मिनट',
+ 'theme.schedule.freq.every_15_min' => 'हर 15 मिनट',
+ 'theme.schedule.freq.hourly' => 'हर घंटे',
+ 'theme.schedule.freq.daily' => 'रोज़',
+ 'theme.schedule.freq.weekly' => 'हर सप्ताह',
+ 'theme.schedule.freq.monthly' => 'हर महीने',
+ 'theme.schedule.day.sunday' => 'रविवार',
+ 'theme.schedule.day.monday' => 'सोमवार',
+ 'theme.schedule.day.tuesday' => 'मंगलवार',
+ 'theme.schedule.day.wednesday' => 'बुधवार',
+ 'theme.schedule.day.thursday' => 'गुरुवार',
+ 'theme.schedule.day.friday' => 'शुक्रवार',
+ 'theme.schedule.day.saturday' => 'शनिवार',
];
diff --git a/themes/puma/languages/pt/theme.php b/themes/puma/languages/pt/theme.php
index 5ff5836..05b6c38 100644
--- a/themes/puma/languages/pt/theme.php
+++ b/themes/puma/languages/pt/theme.php
@@ -48,4 +48,115 @@
'theme.footer.terms' => 'Termos',
'theme.footer.github' => 'GitHub',
'theme.footer.home' => 'Início',
+
+ // ------------------------------------------------------------------
+ // Interface do painel administrativo (shell compartilhado)
+ // ------------------------------------------------------------------
+
+ 'theme.a11y.skip_to_content' => 'Ir para o conteúdo',
+ 'theme.a11y.toggle_nav' => 'Mostrar ou ocultar a navegação',
+ 'theme.a11y.main_nav' => 'Navegação principal',
+ 'theme.a11y.sidebar_nav' => 'Navegação lateral',
+ 'theme.a11y.primary_nav' => 'Navegação principal',
+
+ 'theme.action.save' => 'Salvar',
+ 'theme.action.copy' => 'Copiar',
+
+ 'theme.admin.title' => 'Administração do Tiger',
+ 'theme.admin.navigation' => 'Navegação',
+ 'theme.admin.guest' => 'Visitante',
+ 'theme.admin.user_fallback' => 'Usuário',
+ 'theme.search.label' => 'Pesquisar',
+
+ 'theme.admin.alerts' => 'Alertas',
+ 'theme.admin.alert.user_locked' => 'Usuário bloqueado',
+ 'theme.admin.alert.connection_restored' => 'Conexão restabelecida',
+ 'theme.admin.time.minutes_ago' => 'há %d minutos',
+ 'theme.admin.time.hour_ago' => 'há %d hora',
+ 'theme.admin.view_all' => 'Ver tudo',
+
+ 'theme.admin.menu.profile' => 'Meu perfil',
+ 'theme.admin.menu.two_factor' => 'Autenticação em duas etapas',
+ 'theme.admin.menu.lock_screen' => 'Bloquear a tela',
+ 'theme.admin.menu.sign_out' => 'Sair',
+
+ 'theme.aside.label' => 'Painel do assistente',
+ 'theme.aside.activity' => 'Atividade',
+ 'theme.aside.placeholder' => 'Este painel opcional aparece quando uma view define %s. Coloque aqui widgets contextuais: atividade recente, ajuda embutida, filtros.',
+
+ 'theme.agent.label' => 'Agente de IA',
+ 'theme.agent.title' => 'Agente',
+ 'theme.agent.model' => 'Modelo',
+ 'theme.agent.new_chat' => 'Nova conversa',
+ 'theme.agent.drop_files' => 'Solte os arquivos para anexar',
+ 'theme.agent.empty' => 'Comece uma conversa — o agente age com as suas permissões.',
+ 'theme.agent.input_placeholder' => 'Peça ao agente para criar, alterar ou explicar alguma coisa…',
+ 'theme.agent.attach' => 'Anexar um arquivo',
+ 'theme.agent.mode_title' => 'Nível de automação',
+ 'theme.agent.send' => 'Enviar',
+ 'theme.agent.open' => 'Abrir o agente de IA',
+
+ 'theme.switcher.language' => 'Idioma',
+ 'theme.switcher.theme' => 'Tema',
+ 'theme.switcher.browser' => 'Navegador',
+ 'theme.switcher.light' => 'Claro',
+ 'theme.switcher.dark' => 'Escuro',
+ 'theme.switcher.skin' => 'Skin',
+ 'theme.switcher.skin_title' => 'Skin (prévia ao vivo)',
+ 'theme.switcher.skin_header' => 'Skin — prévia ao vivo',
+ 'theme.switcher.custom' => 'Personalizado',
+
+ 'theme.consent.label' => 'Consentimento de cookies',
+ 'theme.consent.learn_more' => 'Saiba mais',
+ 'theme.consent.gpc' => 'Global Privacy Control detectado — você está fora da análise de dados e do compartilhamento.',
+
+ 'theme.auth.title_default' => 'Entrar — Tiger',
+
+ // Os nomes dos controles do cPanel / Plesk ficam EM INGLÊS de propósito: é assim que o usuário
+ // os encontra na tela do cPanel ou do Plesk.
+ 'theme.cron.title' => 'Como configurar o Cron',
+ 'theme.cron.status.real.title' => 'Há um cron real em execução.',
+ 'theme.cron.status.real.body' => 'O Tiger recebeu sinal do cron do seu servidor nos últimos minutos — os agendamentos rodam na hora certa.',
+ 'theme.cron.status.pseudo.title' => 'O pseudo-cron no estilo do WordPress está ativo.',
+ 'theme.cron.status.pseudo.body' => 'Nenhum cron real foi detectado, então as tarefas agendadas dependem do tráfego do site — serve para começar, mas um site parado pode rodar as tarefas atrasadas. Adicione um cron real abaixo para um agendamento confiável e pontual.',
+ 'theme.cron.status.none.title' => 'Nenhum cron está em execução.',
+ 'theme.cron.status.none.body' => 'Tanto o cron real quanto a alternativa movida a tráfego estão desligados — as tarefas agendadas não vão rodar até você configurar um abaixo.',
+ 'theme.cron.command_label' => 'Seu comando de cron',
+ 'theme.cron.every_minute_note' => 'Rode-o a cada minuto (* * * * *) — o Tiger decide internamente quais tarefas estão vencidas, então um cron por minuto é barato e mantém tudo em dia.',
+ 'theme.cron.tab.cli' => 'Linha de comando',
+ 'theme.cron.tab.claude' => 'Deixe o Claude Code fazer',
+ 'theme.cron.cpanel.step1' => 'No cPanel, abra Advanced → Cron Jobs.',
+ 'theme.cron.cpanel.step2' => 'Em Add New Cron Job, defina Common Settings como Once Per Minute (* * * * *).',
+ 'theme.cron.cpanel.step3' => 'Cole o comando acima em Command.',
+ 'theme.cron.cpanel.step4' => 'Clique em Add New Cron Job. Pronto — este cartão fica verde em um ou dois minutos.',
+ 'theme.cron.cpanel.php_path' => 'Se o php não for encontrado, use o caminho completo do PHP da sua hospedagem (por exemplo /usr/local/bin/ea-php82) no lugar de php.',
+ 'theme.cron.plesk.step1' => 'No Plesk, abra Websites & Domains → Scheduled Tasks para o seu domínio.',
+ 'theme.cron.plesk.step2' => 'Clique em Add Task e escolha Run a command.',
+ 'theme.cron.plesk.step3' => 'Defina Run como Cron style e informe * * * * *.',
+ 'theme.cron.plesk.step4' => 'Cole o comando acima e então clique em OK / Run Now para testar.',
+ 'theme.cron.cli.intro' => 'Conecte-se ao servidor por SSH e edite o crontab:',
+ 'theme.cron.cli.add' => 'Adicione esta linha e salve:',
+ 'theme.cron.claude.intro' => 'Deixe o Claude Code (ou qualquer acesso shell a este servidor) fazer isso por você — é só pedir:',
+ 'theme.cron.claude.prompt' => 'Adicione um cron por minuto que execute:',
+ 'theme.cron.claude.note' => 'O Claude Code vai adicionar a entrada no crontab e confirmar. Até lá, o pseudo-cron movido a tráfego mantém as coisas andando.',
+
+ 'theme.schedule.frequency' => 'Frequência',
+ 'theme.schedule.time' => 'Horário',
+ 'theme.schedule.day_of_week' => 'Dia da semana',
+ 'theme.schedule.day_of_month' => 'Dia do mês',
+ 'theme.schedule.enabled' => 'Ativado',
+ 'theme.schedule.freq.every_minute' => 'A cada minuto',
+ 'theme.schedule.freq.every_5_min' => 'A cada 5 minutos',
+ 'theme.schedule.freq.every_15_min' => 'A cada 15 minutos',
+ 'theme.schedule.freq.hourly' => 'A cada hora',
+ 'theme.schedule.freq.daily' => 'Todo dia',
+ 'theme.schedule.freq.weekly' => 'Toda semana',
+ 'theme.schedule.freq.monthly' => 'Todo mês',
+ 'theme.schedule.day.sunday' => 'Domingo',
+ 'theme.schedule.day.monday' => 'Segunda-feira',
+ 'theme.schedule.day.tuesday' => 'Terça-feira',
+ 'theme.schedule.day.wednesday' => 'Quarta-feira',
+ 'theme.schedule.day.thursday' => 'Quinta-feira',
+ 'theme.schedule.day.friday' => 'Sexta-feira',
+ 'theme.schedule.day.saturday' => 'Sábado',
];
diff --git a/themes/puma/layouts/scripts/admin.phtml b/themes/puma/layouts/scripts/admin.phtml
index b48b5d8..5d28329 100644
--- a/themes/puma/layouts/scripts/admin.phtml
+++ b/themes/puma/layouts/scripts/admin.phtml
@@ -56,7 +56,7 @@ $_dtLang = [