everjust-website-i18n

Activate languages and translate Odoo 19 website pages via the everjust_agent_mcp server.

3|1|Updated Apr 8, 2026
One-click install
npx skills add https://github.com/ever-just/agentskills --skill everjust-website-i18n-ever-just
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: everjust-website-i18n
Source: https://github.com/ever-just/agentskills/tree/main/skills/everjust-website-i18n
Command: npx skills add https://github.com/ever-just/agentskills --skill everjust-website-i18n-ever-just

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Making an Odoo 19 marketing site multilingual is error-prone: activating a res.lang alone does not expose it on the site, and the generic MCP update/create tools only write the en_US source, so naive attempts either 404 the /fr/ URLs or silently overwrite the English copy. This Skill encodes the exact procedure to activate a language, attach it to website.language_ids, and write per-language JSONB translations correctly. ## Core Features & Use Cases - Language activation and site wiring: Activate a res.lang and add it to website.language_ids so the language selector appears and /<url_code>/ URLs resolve. - Page and SEO translation: Translate page body terms (arch_db via xml_translate) and meta title/description (translate=True fields) using the update_field_translations MCP call with confirm:true. - Diagnostics: Read get_field_translations to find untranslated terms and fix pages showing English under /fr/. - Use Case: You need the pricing page live in French. Follow the recipes to activate fr_FR, add it to the site's language_ids, translate the body terms and SEO metas, then verify https://connectdomain.app/fr/ renders French. ## Quick Start Use the everjust-website-i18n skill to add French to the website and translate the pricing page's content and SEO metadata.

Frequently Asked Questions about everjust-website-i18n

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a language to an Odoo 19 website?▼

Activate the res.lang record with a plain update setting active:true, then add it to the website's language_ids using the m2m command [[4, lang_id]]. Both steps are required: activation alone does not expose the language in the selector or create /<url_code>/ URLs.

How do I translate an Odoo website page via MCP?▼

Call update_field_translations with confirm:true on the page's view record. For arch_db pass {lang: {source_term: translated_term}} keyed by exact English terms; for meta fields like website_meta_title pass {lang: new_value}. Generic update tools only write the en_US source.

Why does my Odoo /fr/ page still show English?▼

Either the language is not in website.language_ids, so /fr/ does not resolve, or the terms have no translation and fall back to the en_US source. Check language_ids first, then read get_field_translations to find untranslated terms and translate them.

Can I translate Odoo pages with the generic update or website_edit_page tools?▼

No. The generic update, create, and website_edit_page tools run write() with no lang context, so every value lands in the en_US JSONB source slot. Non-English values can only be written through call update_field_translations with confirm:true.

Why can't I deactivate a language in Odoo 19?▼

Odoo raises a UserError when deactivating a res.lang still referenced by any website's language_ids. Remove it from language_ids first with the m2m unlink command [[3, id]], then set active:false on the res.lang record.

Does Odoo 19 duplicate pages per language?▼

No. Odoo 19 stores translations as JSONB keyed by language code on each translatable field, with en_US as the source and fallback. You translate terms on the existing page or view record rather than creating per-language page copies.