Skip to content
Docs
Start free

Xodia Languages: translate your site

Xodia Languages shows your site in more than one language. Add languages in Project settings, translate on the canvas by hand or with your own AI, and every language gets its own addresses, search tags and a switcher your visitors can use, with one shared design.

On this page

Xodia's Project settings on Languages: the languages add-on with Up to 3 extra languages chosen, then the site's languages, English, Spanish, Japanese, Arabic, each in its own script, Arabic marked Right to left, English as the default and how many texts each other language has translated, with Add a language, a row for each language, the site address and Save languages.

Languages work on sites made from the Xodia template, including every Marketplace template. The default language comes with every plan; extra languages are an add-on per site on paid plans. Starter and up An imported site that already has its own way of showing languages keeps it, and Xodia edits its default language.

Set up languagesLink to this section

  1. Open Project settings, Languages

    Open Settings in the rail and choose Languages. On a paid plan, an owner or admin of the workspace picks the languages add-on for this site first. See Plans and billing.

  2. Add your languages

    Choose Add a language and search by name or code. The first language you add is the default. If a language isn't listed, type its code and add it as typed. Each language shows in its own name and script; you can rename it, and Right to left marks languages written that way.

  3. Set up languages

    Choose Set up languages. Xodia adds the languages kit to your site's code: the list of languages, a file of translations for each other language and the language switcher. Like every edit, save it and publish it when you are ready.

Your default language keeps its addresses. Every other language gets its code before each page's path, so /classes is /es/classes in Spanish and /ja/classes in Japanese. Visitors are never sent to another language on their own; they choose one with the switcher.

  • Make default turns another language into the default one.
  • Removing a language takes it off the site. Its translations stay in your code, so adding it back brings them back.
  • When a newer languages kit is out, Update appears under the list. A kit file you changed by hand, such as a restyled switcher, is kept as it is, with Replace with the latest version beside it if you want the new one.

Translate on the canvasLink to this section

The Xodia canvas showing a bakery's home page in Japanese, with the address bar's language menu open: the site's languages, 2 texts on this page still missing a translation and outlined on the page with Show missing on, Translate this page with your AI, Translate all pages with your AI and Language settings.

Once the site has languages, the address bar above the canvas shows the language menu, next to the page. Pick a language and the canvas shows the page in it. Click any text and type: in the default language you edit the text itself, in any other language you edit its translation. Styles, layout and components are shared by every language, so the design stays the same.

  • In another language, the menu counts the texts on this page without a translation, and Show missing outlines each of them on the page.
  • A text without a translation shows your default text, on the canvas and on the live site.
  • When you change a text in the default language, its translations move to the new text, so nothing is lost.
  • Numbers in a text stay as they are in every language, so a year in your footer doesn't need translating again each year.
  • Image alt text, titles and field placeholders are translated the same way as other text.

The language switcherLink to this section

The Xodia canvas showing a bakery's home page in Spanish, with the site's language dropdown open in its header, listing English, Spanish, Japanese, Arabic, each with its code.

Open Add elements and choose Navigation. Language links adds a row of links, one for each language; Language dropdown adds a button that opens a list, for a nav bar. Each link opens the same page in that language.

SettingWhat it does
variantlinks for a row of links, dropdown for a button with a list.
showname shows each language's own name, code its code (such as JA), both the name and the code.

The switcher's links are real links that search engines can follow. The dropdown opens without JavaScript, and with it Escape, the arrow keys and a click outside work as in any menu. Style it in the Style panel like any element on the canvas. A switcher you restyled is kept as it is when Xodia updates the rest of the languages kit. The switcher only shows once the site has a second language.

Page titles and addressesLink to this section

Project settings, Languages, with Spanish open under Each language: Translate all pages with your AI, and page addresses where /classes is /clases and /visit is /visitanos in Spanish while /menu keeps its address after /es, then the site address used for hreflang and the sitemap.

Titles, descriptions and share textLink to this section

Page settings have a language switch. Pick a language to write the page's title, description and share text in it. Anything you leave empty uses the default language's text. See SEO and page settings.

Translated addressesLink to this section

In Languages settings, open a language under Each language and give a page its own address in it, such as /clases for /classes in Spanish. The page then opens at /es/clases, links in Spanish use that address, and the default address in Spanish leads to it. Leave it empty to keep the default address after the language code. Translated addresses are for pages with a fixed address; the home page keeps its own.

CMS by languageLink to this section

Mark a Xodia CMS collection as translatable, and choose which fields are translated. By default these are translated:

  • plain text and rich text
  • the SEO fields
  • image alt text

Everything else is shared by every language: numbers, dates, switches, colours, files and images, options and references. Change one of them once and it changes in every language. You can switch any text field between translated and shared.

Edit items in each languageLink to this section

The Content tab has a language menu above the items and the item editor. In a language other than the default:

  • each translated field shows the default text above it, for reference
  • shared fields show their value, read only, with Same in every language
  • each translation has its own Draft or Published state, and can have its own address (slug) in that language
  • each collection shows how many translations are missing, with Translate with your AI

Item pages and listsLink to this section

  • A published translation is a page of its own at the language's address, such as /es/journal/horario-de-primavera, with its own search tags, language links and sitemap entry.
  • An item not yet translated still opens in that language with the default text. That page tells search engines not to index it and points them to the default language's page, and it stays out of the language links and the sitemap, so search engines never see the same text twice.
  • Collection Lists on pages in another language show every published item, with the default text where a translation is missing. Set a collection to show only translated items in other languages if you prefer.
  • Sorting and filters on shared fields work the same in every language; a filter on a translated text field uses that language's text. References show the referenced item in the page's language.
  • Deleting or renaming an item does the same to its translations.
Note:

Translations don't count toward your plan's CMS items. Only items in the default language do.

What search engines getLink to this section

When your site builds, on Xodia hosting or on your own host, Xodia's languages kit writes:

  • the page's language and direction on <html lang dir>
  • the title and description in that language
  • language links (hreflang) from each page to the same page in your other languages
  • a sitemap.xml with every page and its versions in each language
  • a page file for each language, so crawlers find every language without running your site

Language links and the sitemap need your site's address: add it under Site address in Languages settings, such as https://example.com.

Right-to-left languagesLink to this section

The Xodia canvas showing a bakery's home page in Arabic, laid out right to left: the header, the heading, the text, the button and the menu cards all mirror, while the design stays the same.

Languages written from right to left, such as Arabic, Hebrew, Persian and Urdu, are marked Right to left when you add them. Pages in that language get the right direction, so rows, columns and text mirror while the design stays the same. Switch the canvas to that language to see each page as its visitors will.

Translate with your AILink to this section

Translate with your AI sends the translation work to your own AI, the one you connect to Xodia, as a request it picks up. It comes back as edits you review on the canvas and save. The translating runs on your own AI plan, so Xodia charges nothing for it. You find the button:

  • in the canvas's language menu: Translate this page with your AI, or Translate all pages with your AI
  • in Languages settings, in each language's row: Translate all pages with your AI
  • in the Content tab, on a translatable collection, for its missing translations

Your AI works with these tools over MCP:

ToolWhat it does
list_localesLists the site's languages, their addresses and translated counts, and how many languages the site may have.
get_translationsShows what a page or CMS collection still needs in a language, with each text and its translation.
set_translationsWrites the translations your AI made for a language, page texts and CMS items, for you to review and save.
list_items with localeLists the items in a CMS collection, with search and filters, in any of the site's languages.
get_item with localeReads one CMS item with all its fields, in any of the site's languages.
update_item with localeChanges the fields of a CMS item, or its translation in another language.

A typical pass: list_locales to see the languages and how much is translated, get_translations for a page or a collection in one language, then set_translations with the new text. Each translation is keyed by your default text, for example:

src/i18n/es.json
{
  "Bread baked before sunrise": "Pan horneado antes del amanecer",
  "See the menu": "Ver la carta",
  "© {0} Rise Bakery": "© {0} Rise Bakery"
}

See the MCP reference for every tool.

Plans and billingLink to this section

PlanExtra languages, per site
FreeThe default language only
Starter$5 a month for up to 2 extra languages
Pro$5 a month for up to 3 extra languages, or $12 a month for up to 10 extra languages
Agency1 extra language included. $8 a month for up to 10 extra languages
  • The add-on is chosen per site, in Project settings, Languages, by the workspace's owners and admins, and billed with your plan.
  • Adding it charges the rest of the current month straight away (prorated), then it renews with your plan each month. Removing it ends it at once, with no credit for the rest of the month.
  • On Free, Languages settings show the add-on locked, with each paid plan's prices.
  • Project settings, Usage shows how many extra languages a site has against what it allows.

When the add-on ends or you downgradeLink to this section

Nothing is deleted. The languages stay in your site's code and keep working on your live site, because the site is yours. Studio stops editing the languages past what the site now allows. Add the add-on again, or remove some languages, to edit them. See pricing.