MERCHANT GUIDE · TRANSLATION
CodeOn Multilingual — setup
Use this guide to go from a fresh install to a site that works in every language you need: each language at its own address, pages, products and menus translated, a language switcher in your menus, and a shop that sells in the visitor's language. Moving from another multilingual plugin? Read the migration section before you activate anything.
Before you begin
- WordPress 6.5+ and PHP 8.1+.
- WooCommerce is optional. For a shop: WooCommerce 8.9 or newer (tested up to 11.2).
- A CodeOn Multilingual licence for the site's domain.
- A recent database backup — essential before migrating from another multilingual plugin.
- For automatic translation: an API key from your own Gemini (Google), GPT (OpenAI) or Claude (Anthropic) account.
Setup sequence
- Buy the CodeOn Multilingual licence, download the ZIP from your codeon.ge account, upload it under Plugins → Add New → Upload Plugin and activate it.
- Open CodeOn → CodeOn Multilingual and enter the licence key.
- The setup wizard opens. Choose the default language — the one your content is written in — and then the languages to translate into. If data from another multilingual plugin, such as WPML or Polylang, is found, the wizard offers to import it instead (see below).
- Open Multilingual → Overview to see how much is translated in each language, then Multilingual → Translations to translate what is left.
- Choose where the language switcher shows under Multilingual → Settings → Language switcher.
Languages and addresses
- Add a language
- Multilingual → Languages → Add language. Languages can be added at any time, and the setup wizard can be run again from the same screen.
- Prepare a language before visitors see it
- Edit the language and set its status to Hidden. Translate into it in wp-admin and browse it while logged in; visitors and search engines see no links, addresses or hreflang for it until you set it to Active.
- Translated address parts
- Multilingual → Settings → URLs translates the fixed parts of addresses for each language — for example WooCommerce's /product/.
- Search engines
- hreflang, og:locale alternates and <html lang> are added to every page; untranslated pages point at the original, and each language's home page is in the sitemap. Yoast SEO and Rank Math addresses follow the language too.
Translating content
Multilingual → Translations is the translation dashboard for the whole site. It works in two steps:
- Select what to translate: the source language, the languages to translate into, the post status and the translation status (not completed, needs updating, in progress, waiting for review, complete). Each content type has its own section with filters.
- Translate the selection: for each language choose Translate automatically, Translate myself (a draft to translate), Duplicate, or nothing. The work runs in small batches with a progress bar while the page stays open.
- The side-by-side editor
- Click a language's state in Translations to open it: the original beside the translation, segment by segment — the title, the excerpt, every block's text, Elementor texts. Save a draft, submit it for review or publish; the block layout stays exactly as it is.
- Translation memory
- Every segment a person confirms is offered again wherever the same text appears.
- When the original changes
- Only the segments that changed are marked "needs update", so a small edit never means translating the whole page again.
Automatic translation
- Open Multilingual → Settings → Automatic translation, choose Gemini (Google), GPT (OpenAI) or Claude (Anthropic) and paste an API key from your own account. The service bills you directly.
- The Model list shows the models that key can use, with a fast, inexpensive one recommended.
- Turn on Translate new translations automatically to have new translations created already translated. In the editor, Translate automatically from the original refills one translation; Strings translates the catalog in batches.
Strings, menus and the language switcher
- Theme and plugin texts
- Multilingual → Strings → Find strings scans your theme and plugins; their buttons, labels and messages appear in a searchable catalog to translate, plurals included. Payment and shipping method names, order statuses, widget titles and media texts join it too.
- Menus
- Multilingual → Translations → Menus shows every menu in every language. A menu's copy follows its links into the copy's language, with translated page titles as labels.
- Language switcher in menus
- Multilingual → Settings → Language switcher → In menus: add a switcher to each menu, at its start or end, as a dropdown or a list of names, short names, flags or both. The preview follows your choices; classic menus and block-theme Navigation menus both work.
- Elsewhere on the page
- The switcher is also a floating button, a block, a widget and the [cml_language_switcher] shortcode.
WooCommerce
Migrating from another multilingual plugin
- Deactivate WPML (with WooCommerce Multilingual and its other add-ons) or Polylang. Their data stays in the database for the import.
- Activate CodeOn Multilingual: the setup wizard finds the data and offers the import. Later, Multilingual → Tools → Import from WPML or Polylang does the same, with a dry run first.
- Languages, post and term translations, WooCommerce Multilingual data and strings are imported. A progress bar shows each step, and a result page lists the counts, the rollback snapshot and the next steps.
- A language the other plugin stored under a regional code is imported under this plugin's standard code for it, so it never appears twice; its old addresses redirect.
Translators and agencies
- Multilingual → Settings → Translators gives people the Translator role, each with their own languages. Translators see only Translations and the editor; they save drafts and submit their work for review instead of publishing.
- For an agency, Multilingual → Tools → XLIFF files exports a content type as an XLIFF 1.2 file. Upload the translated file in the same place: missing translations are created and existing ones updated.
Licence and updates
When something does not work
- A screen says a licence is needed
- Enter or renew the key under CodeOn → CodeOn Multilingual. The site keeps working meanwhile; only new translation work waits.
- Something looks wrong
- Open Multilingual → Tools → Status. Its health report checks the multilingual data, and Repair the plugin's data fixes the plugin's own records — your posts and terms are never deleted.
- Content shows in the wrong language
- If the plugin was activated before the default language was chosen, Tools → Repair → Change the language of untranslated content moves it.
- Changes made outside WordPress do not show
- Tools → Repair → Clear the plugin's caches reads languages, translation links and string translations again from the database.
- Requests fail under a language prefix
- REST requests also arrive under a language prefix (/<language code>/wp-json/). Server, firewall or cache rules written for /wp-json/ must cover those addresses too.