All of Cartavera’s text can be translated, including the headings and labels in templates. Right-to-left languages such as Arabic and Hebrew work without any extra stylesheet.
What comes from where
Your storefront’s text comes from four places, each translated separately:
| Text | Translated by |
|---|---|
| Theme text: headings, labels, pattern text (“About this item”, “Today’s deals”…) | Cartavera’s text domain, cartavera |
| Plugin text: search, badges, purchase notes, quick view, the starter importer… | Cartavera Blocks’ text domain, cartavera-blocks |
| Cart, checkout, account, product tabs, filters, prices | WooCommerce’s own translation |
| WordPress text (search, comments, dates) | WordPress’s translation |
WordPress and WooCommerce download their translations for you when you change the site language (Settings → General → Site Language), under Dashboard → Updates → Translations. Cartavera and Cartavera Blocks don’t ship translations yet, so you add those yourself.
Translate Cartavera
The template files you need are in the theme:
cartavera/languages/cartavera.pot(theme)cartavera-blocks/languages/cartavera-blocks.pot(plugin, inwp-content/plugins/)
With a translation plugin
A translation plugin such as Loco Translate lets you translate from the WordPress admin. Choose Cartavera (theme) and Cartavera Blocks (plugin), start a new translation for your language, and save it in the System or Custom location rather than inside the theme or plugin folder. Files inside the theme folder are deleted when the theme updates.
With Poedit or another editor
- Open the
.potfile in Poedit (or any gettext editor) and create a translation for your language. - Save it. You get a
.pofile (your work) and a.mofile (what WordPress reads). - Name and upload the
.mofiles like this, replacingfr_FRwith your locale:
| File | Upload to |
|---|---|
| Theme | wp-content/languages/themes/cartavera-fr_FR.mo |
| Plugin | wp-content/languages/plugins/cartavera-blocks-fr_FR.mo |
Files in wp-content/languages survive theme and plugin updates.
The plugin’s block settings in the editor are JavaScript, which WordPress translates from .json files instead of the .mo file. Loco Translate creates them for you. With Poedit, generate them with WP-CLI’s wp i18n make-json and upload them next to the plugin’s .mo file.
When a new version adds text
Each release updates the .pot files. In Poedit, open your .po file and use Translation → Update from POT file; in Loco Translate, click Sync. Only new and changed text needs translating.
Text in templates
WordPress templates are HTML, and HTML can’t be translated. So Cartavera’s templates contain no text of their own: every heading and label comes from a small PHP pattern that uses the cartavera text domain. That’s why “About this item” on the product page follows your site language.
There’s one catch. When you edit and save a template in the Site Editor, WordPress saves the text as it is at that moment. From then on that template’s text no longer follows the site language or your translation updates. If you change language later, or a translation improves, open the template in Appearance → Editor → Templates, click ⋮ and choose Reset (or Clear customizations) to get the translated version back. Make your layout changes again after that.
The same goes for patterns you insert into pages: once saved, their text is fixed, and you can edit it like any other text.
Translating products and pages
Cartavera translates its own text. To translate your products, categories and pages, use a multilingual plugin. Cartavera has been tested with:
| Plugin | Version tested | Notes |
|---|---|---|
| Polylang | 3.9.1 | English and French site, language switcher block, both pass. Translating products needs Polylang for WooCommerce (paid), which hasn’t been tested |
| WooCommerce Multilingual & Multicurrency | 5.6.3, without WPML | Currency switching (USD and EUR) on the product page and in the cart. WPML itself hasn’t been tested |
With Polylang, a page that has no translation is hidden in that language. For example, the header’s “Today’s Deals” link disappears from French pages until you translate the Deals page.
Right-to-left languages
When the site language is right-to-left, WordPress adds dir="rtl" and Cartavera mirrors on its own:
- The layout, menus and the purchase panel are mirrored.
- Carousels scroll the other way, and their arrows point the other way.
- The category drawer opens from the right.
- Prices keep the currency symbol on the correct side.
There’s no separate RTL stylesheet to keep in sync: Cartavera’s CSS uses direction-aware properties throughout. This was tested in Arabic, in Chromium, Firefox and WebKit, through the full journey from a category page to the order confirmation.
If you add your own CSS, use direction-aware properties too, for example margin-inline-start instead of margin-left, so it works in both directions.
Fonts and other alphabets
Cartavera’s font, Manrope, covers Latin (including extended Latin and Vietnamese), Greek and Cyrillic. For other alphabets, such as Arabic, Hebrew, Chinese or Thai, choose a font that supports them in Appearance → Editor → Styles → Typography; see Styles.