Translating CartPops
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.
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
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 |
If your language isn’t listed, CartPops shows English. You can add your own translation; see 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.
Fix or improve a translation with Loco Translate
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.
Install and activate Loco Translate.

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

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.

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.

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.

Reload your store to see the result. WordPress uses your custom file instead of the bundled one for that language.
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 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.poandcartpops-de_DE.mo - French (Canada):
cartpops-fr_CA.poandcartpops-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.
- 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.