---
title: "Translation and right-to-left languages"
description: "Translate Cartavera and Cartavera Blocks, where translation files go, and right-to-left support."
url: "https://wpruby.com/knowledgebase/cartavera-translation/"
updated: "2026-11-04"
category: WPRuby Themes / Cartavera
---

# Translation and right-to-left languages

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.

Table of Contents

 [Toggle](#)

- [What comes from where](#What_comes_from_where)
- [Translate Cartavera](#Translate_Cartavera)
  - [With a translation plugin](#With_a_translation_plugin)
  - [With Poedit or another editor](#With_Poedit_or_another_editor)
  - [When a new version adds text](#When_a_new_version_adds_text)
- [Text in templates](#Text_in_templates)
- [Translating products and pages](#Translating_products_and_pages)
- [Right-to-left languages](#Right-to-left_languages)
- [Fonts and other alphabets](#Fonts_and_other_alphabets)

## 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, in `wp-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

1. Open the `.pot` file in Poedit (or any gettext editor) and create a translation for your language.
2. Save it. You get a `.po` file (your work) and a `.mo` file (what WordPress reads).
3. Name and upload the `.mo` files like this, replacing `fr_FR` with 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](https://wpruby.com/knowledgebase/cartavera-styles/#change-fonts).
