diff --git a/.env.example b/.env.example index b749caef..4c1c9cce 100644 --- a/.env.example +++ b/.env.example @@ -47,10 +47,12 @@ NUXT_PUBLIC_STATINATOR_ENABLED=true # Set to empty in dev to make the cookie host-only. NUXT_PUBLIC_STATINATOR_COOKIE_DOMAIN=.doxa.life -# DeepL (used by the CMS "Translate from English" workflow on /admin/pages/:id) -# Pro endpoint: https://api.deepl.com | Free-tier endpoint: https://api-free.deepl.com -DEEPL_API_KEY=your-deepl-api-key -DEEPL_API_URL=https://api.deepl.com +# OpenRouter (used by the CMS "Auto-translate" workflow on /admin/pages/:id +# and the translate_text / translate_page MCP tools) +OPENROUTER_API_KEY=your-openrouter-api-key +# Optional model override. Admins can also set it at /admin/settings, which wins +# over this. Defaults to anthropic/claude-opus-5 when both are unset. +TRANSLATION_MODEL= # Cloudflare cache purge on deploy (server/plugins/cloudflare-purge.ts). # On container boot the edge cache is purged so stale prerendered HTML can't diff --git a/app/components/admin/RichTextEditor.vue b/app/components/admin/RichTextEditor.vue index 8d11392f..a6d29932 100644 --- a/app/components/admin/RichTextEditor.vue +++ b/app/components/admin/RichTextEditor.vue @@ -89,7 +89,7 @@ const editor = useEditor({ } }) -// External updates (DeepL translation refresh, locale tab switch) — +// External updates (auto-translation refresh, locale tab switch) — // replace editor content when the prop drifts from the editor state. watch( () => props.modelValue, diff --git a/app/pages/admin/pages/[id].vue b/app/pages/admin/pages/[id].vue index 34046688..a81d988b 100644 --- a/app/pages/admin/pages/[id].vue +++ b/app/pages/admin/pages/[id].vue @@ -1,8 +1,8 @@