Multilingual sites without plugins: a header and footer per language
No WPML, no Polylang: in Element Node multilingual sites are built with theme block display conditions. One Italian header, one English one — the CMS picks the right one by itself.

If you come from WordPress you know the drill: multilingual means buying WPML or configuring Polylang, then living with duplicated tables, strings to translate by hand and plugins fighting each other. In Element Node multilingual is a property of the architecture, not a plugin.
How it works
Each language's pages live under a prefix: the main site at the root, the English one under /en. Standard so far. The elegant part is theme blocks with display conditions:
- You create a header and footer in your main language, valid site-wide
- You create an English version and give it the condition "show only under /en", with higher priority
- The CMS picks the right block for every page on its own: under /en the English header wins, everywhere else the main one
No global language configuration, no mapping tables: the conditions mechanism — the same one you can use per page, homepage, role or device — covers multilingual for free.
Everything else follows
- The language switcher is a regular link in each header's menu
- Forms can have an English version with their own copy
- The cookie banner automatically shows its English variants under /en
- SEO and sitemap respect the prefix structure too
The advantage of not having a plugin
A multilingual system made of composable primitives means there is nothing to break on update: the case "the translation plugin is not compatible with the new version" simply does not exist. It's the same rendering engine, with one extra condition.