---
title: Translating CartPops
description: CartPops ships in 44 languages. Learn how CartPops picks a language, how to fix or improve a translation, and how to translate the text you type into settings.
sidebar:
  label: Translating
  icon: languages
---

CartPops is translated into the 44 most-used WordPress languages, covering almost every non-English store. The translations ship inside the plugin, in both CartPops Free and CartPops Pro, so there is nothing to install or download. Set your site to a supported language and CartPops follows.

## Choose the language

CartPops uses the same language as WordPress:

- **Your storefront** (the cart drawer, launcher and shortcodes) uses the site language. Set it under **Settings** > **General** > **Site Language**.
- **The CartPops settings screens** use the language of the person who is logged in. Each user can choose a language under **Users** > **Profile** > **Language**. Their choice overrides the site language for wp-admin only.

You don't need to configure anything in CartPops itself.

## Supported languages

**All supported languages**

{/* LANGUAGE-LIST:START */}

CartPops includes 44 languages.

| Language | Native name | Code |
| --- | --- | --- |
| Arabic | العربية | `ar` |
| Bulgarian | Български | `bg_BG` |
| Catalan | Català | `ca` |
| Chinese (China) | 简体中文 | `zh_CN` |
| Chinese (Taiwan) | 繁體中文 | `zh_TW` |
| Croatian | Hrvatski | `hr` |
| Czech | Čeština | `cs_CZ` |
| Danish | Dansk | `da_DK` |
| Dutch | Nederlands | `nl_NL` |
| Dutch (Belgium) | Nederlands (België) | `nl_BE` |
| Estonian | Eesti | `et` |
| Finnish | Suomi | `fi` |
| French (Canada) | Français du Canada | `fr_CA` |
| French (France) | Français | `fr_FR` |
| German | Deutsch | `de_DE` |
| German (Formal) | Deutsch (Sie) | `de_DE_formal` |
| German (Switzerland) | Deutsch (Schweiz) | `de_CH` |
| Greek | Ελληνικά | `el` |
| Hebrew | עִבְרִית | `he_IL` |
| Hungarian | Magyar | `hu_HU` |
| Indonesian | Bahasa Indonesia | `id_ID` |
| Italian | Italiano | `it_IT` |
| Japanese | 日本語 | `ja` |
| Korean | 한국어 | `ko_KR` |
| Lithuanian | Lietuvių kalba | `lt_LT` |
| Norwegian (Bokmål) | Norsk bokmål | `nb_NO` |
| Persian | فارسی | `fa_IR` |
| Polish | Polski | `pl_PL` |
| Portuguese (Brazil) | Português do Brasil | `pt_BR` |
| Portuguese (Portugal) | Português | `pt_PT` |
| Romanian | Română | `ro_RO` |
| Russian | Русский | `ru_RU` |
| Slovak | Slovenčina | `sk_SK` |
| Slovenian | Slovenščina | `sl_SI` |
| Spanish (Argentina) | Español de Argentina | `es_AR` |
| Spanish (Chile) | Español de Chile | `es_CL` |
| Spanish (Colombia) | Español de Colombia | `es_CO` |
| Spanish (Mexico) | Español de México | `es_MX` |
| Spanish (Spain) | Español | `es_ES` |
| Swedish | Svenska | `sv_SE` |
| Thai | ไทย | `th` |
| Turkish | Türkçe | `tr_TR` |
| Ukrainian | Українська | `uk` |
| Vietnamese | Tiếng Việt | `vi` |

{/* LANGUAGE-LIST:END */}

If your language isn't listed, CartPops shows English. You can add your own translation; see [Use your own translation files](#use-your-own-translation-files).

## About the translations

The bundled translations are made with AI and checked automatically, so placeholders such as product names and prices always stay intact. They use standard WooCommerce terms for your language, but some wording may not read the way a native speaker would write it.

If a word or sentence sounds wrong, you have two options:

- **Fix it on your own store** with Loco Translate. See the steps below.
- **Tell us,** so everyone gets the fix in the next update. Send the language, the original English text and your suggested translation to [CartPops support](https://cartpops.com/support).

## Fix or improve a translation with Loco Translate

[Loco Translate](https://wordpress.org/plugins/loco-translate/) is a free plugin for editing translations from wp-admin. Your changes are saved outside the CartPops folder, so they survive plugin updates.

1. Install and activate Loco Translate.

    ![Install Loco Translate from the WordPress plugin repository](/blume-assets/content/content/03-guides/img/loco-translate-install-repository-wp.png)

2. In the Loco Translate menu, open **Plugins** and click **CartPops**.

    ![Open CartPops in the Loco Translate plugin list](/blume-assets/content/content/03-guides/img/loco-translate-plugin-menu-1.png)

3. On the overview, find your language. Its bundled file is listed with the **Author** location, which means it sits inside the CartPops folder and is replaced on every update.

    Loco can also list files that start with `freemius`. They belong to the licensing library bundled with CartPops, and you can ignore them.

    ![The Loco Translate overview for CartPops](/blume-assets/content/content/03-guides/img/loco-translate-plugin-overview-cartpops-1536x636.png)

4. Click **New language** and choose your language. As the location, choose **Custom**, not **Author**, so your copy is saved outside the CartPops folder where updates can't touch it. If Loco offers to copy the existing translations, keep that turned on, so you only change what you need.

    ![Choose a language and a save location in Loco Translate](/blume-assets/content/content/03-guides/img/loco-translate-init-new-translation-1024x554.png)

5. Open the copy, find the string you want to change, type your version and click **Save**.

    Keep placeholders such as `%s`, `%1$s` and `{{amount}}` exactly as they are. They stand for text CartPops fills in, such as a product name or a price. You may move them within the sentence, but don't change or remove them.

    ![Edit and save a translation in Loco Translate](/blume-assets/content/content/03-guides/img/loco-translate-translation-view-dutch-1536x681.png)

Reload your store to see the result. WordPress uses your custom file instead of the bundled one for that language.

:::note[If Loco says the bundle isn't configured]
Open the **Setup** tab, choose **Advanced configuration**, and check that the text domain and file prefix are `cartpops` and the template is `languages/cartpops.pot`. Then click **Save config**.

![Loco Translate advanced configuration for CartPops](/blume-assets/content/content/03-guides/img/cartpops-advanced-configuration-settings.png)
:::

### Settings screens use separate files

CartPops' settings screens and block editor panels are built with JavaScript. WordPress translates that text from JSON files (named like `cartpops-de_DE-<code>.json`), not from the `.mo` file. If you change a string that appears in the settings screens and nothing happens there, the JSON files weren't regenerated. Re-save the translation in Loco Translate. If the text still doesn't change, [contact support](https://cartpops.com/support) and include the string.

The drawer and launcher on your storefront don't use JSON files, so storefront fixes always apply.

## Use your own translation files

If you translate outside Loco, for example in Poedit, upload the `.po` and `.mo` files to `wp-content/languages/plugins/`. Name them with the text domain and the language code, with this capitalization:

- German: `cartpops-de_DE.po` and `cartpops-de_DE.mo`
- French (Canada): `cartpops-fr_CA.po` and `cartpops-fr_CA.mo`

WordPress checks `wp-content/languages/plugins/` first and only falls back to the files bundled with CartPops when it finds nothing there. It uses one file per language and doesn't combine them. Start from the bundled `.po` for your language, in the plugin's `languages` folder, so your file contains every string and not only the ones you changed. For a new language, start from `languages/cartpops.pot`.

Don't edit the files inside the plugin's own `languages` folder. A plugin update overwrites them.

## Text you type into settings

Some text comes from you, not from the plugin. Examples are the **Cart title** or **Coupon button text** in the drawer settings, and the messages in the shipping meter. Translation files don't cover this text.

- **Drawer text fields** (**Cart title**, coupon text, labels and empty-cart text) show CartPops' built-in, translated text when you leave them blank. If you type your own text, it replaces the translation in every language. On a multilingual store, leave them blank, or translate them with WPML or Polylang. See [Cart drawer settings](/guides/cart-drawer).
- **WPML and Polylang** can translate these settings fields: **Checkout Button Text**, the shipping meter **Progress Message** and **Qualified Message**, the recommendations **Heading**, the Shipping Protection **Label** and **Description**, and the bundle builder **Flyout Heading**. CartPops also registers the messages of your shipping meter reward tiers and your Smart Bar rules for translation.

For steps, see [Troubleshooting WPML](/troubleshooting/wpml).
