Translating ClassicPress

Translating ClassicPress is being done on Crowdin. Because ClassicPress and WordPress share many strings, you don’t have to start from scratch. For each locale the I18n Team imports translations from WordPress to reduce the strings that need to be translated. So a big thank you to all translators over at WordPress!

This document helps you getting started with translating ClassicPress. For advanced documentation about using Crowdin visit the Crowdin Docs.

First StepsLink to this section

If you want to contribute to ClassicPress localization, the very first step is requesting access to Crowdin as a translator.
To request access you can:

  • Create a topic at the Localization forum page
  • Drop a line in the i18n Zulip channel
  • Send Elisabetta or Matthew (Matt) a private message (at the forum or in Zulip)

You will then be asked for an email address to send your invitation for the project. After accepting the invitation you will be able to login and start translating in Crowdin at classicpress.crowdin.com.

If your locale (language) is not listed yet, let us know via one of the options above.

How to use CrowdinLink to this section

After logging in to Crowdin click the “Go to console” button on top and this screen opens:

Crowdin - Workspace screen

Click on VIEW PROJECT to access the screen allowing you to select the locale you want to translate.

Crowdin - Languages screen

Your dashboard shows all the (available) locales, with warnings and a translated/approved bar with the completion percentage.

When clicking the down arrow of your locale you will see this:

Crowdin - Language details

Crowdsourcing is used for translating strings and Proofreading is used for checking and approving of (pre-)translated strings.

You can decide to translate strings only and leave Proofreading up to other translators. Or do both. By default a translator can do both (for their own locale).

Clicking on your locale brings you here:

Crowdin - Language screen

As you can see there are language packs (files) for both ClassicPress v1 and v2. Because ClassicPress v1 is not under active development anymore, you can (should) ignore those strings. Starting with v2.5 each MINOR release will get its own language pack.

Pre-translation makes it possible to speed up your translating process. Crowdin offers pre-translation by Translation Memory (TM) or Machine Translation (MT). For more info about this feature see the Crowdin Docs. Pre-translation only works on strings that are not translated yet.
Note: only use this feature if you know what you’re doing.
Strings translated with pre-translation require good Proofreading, because there’s more chance of mistakes compared to manual translated strings.
TM and MT suggestions are also displayed in the editor, while translating.

You can open the editor with the selector on the right.
Tip: clicking Crowdsourcing or Proofreading next to “i18n-core-crowdin / v2” will list the ClassicPress v2 strings from all individial files. Don’t use the “All Strings” button, because that one also selects the ClassicPress v1 strings.

As mentioned before:
Crowdsourcing is used for translating strings and Proofreading is used for checking and approving of (pre-)translated strings.

CrowdsourcingLink to this section

Selecting Crowdsourcing brings you to the screen below.

By default all strings are displayed (untranslated strings first), but you can change this with the filter button above the source strings. This way you can display specific strings only.

Crowdin Crowdsourcing Screen

To suggest a translation, select a string from the list and enter your suggestion in the field next to the original text. You can also select the TM or MT suggestion on the right. When you’re done, click Save. Your suggestion will be added to the Proofreading list, and you’ll automatically move on to the next string. To save all or a couple of the strings at once, check the boxes on the left and then click Save. If you edit the wrong string by accident, you can abort by clicking the Cancel button.

Note: in the top right corner of the Crowdsourcing and Proofreading screen there are settings to configure the editor view to your liking.

For advanced documentation about using the editor visit the Crowdin Docs.

ProofreadingLink to this section

The Proofreading screen is and works similar.

By default only not-approved strings are displayed, but you can change this with the filter button above the source strings. This way you can display specific strings only.

Crowdin Proofreading Screen

Review the translations to make sure they are ready for export, and click the Approve icon next to the suggestion to approve each translation separately. To approve all or a couple of the strings at once, check the boxes on the left and then click Approve (the checkmark on top).

As you can see above several strings return a warning. Please see the About Tags and Warnings section below to find out how to take care of this.

About Tags and WarningsLink to this section

What are Tags?
Tags are the way Crowdin recognizes formatting, special characters, functions, links and other notable elements inside the strings. There is a Start Tag and End Tag that affect what is placed within them. For example a word wrapped in the HTML strong tag, to make it bold. Or a placeholder to display a variable. CAT (Computer-Assisted Translation) Tools like Crowdin use tags, generally they are “universal” so that files sourced from one software can be uploaded to another, translated and re-uploaded back with no issue or data loss.

What are Warnings and why do they happen?
Sometimes the destination string (especially when pre-translated) has missing, misplaced or mismatched tags, a problem with HTML entities encoding, or another type of mismatch between the source string and the destination string. Or a typo in the translation.

Crowdin uses quality assurance (QA) checks to help you efficiently handle different language-specific aspects in translations and ensure they are formatted the same way as the source strings.

How to correct them?
Each Warning comes with an explanation, highlighted in color under the destination string. The explanation will point you towards the correct way to solve the issue for your specific locale.

Crowdin - String issues

But sometimes you can ignore the warning and approve the string. As you can see above the right single quotation mark in the first and second source string is added as a HTML entity. This will avoid the string causing an error. But for translations it’s allowed to use the right single quotation mark instead. And the translation of the first string doesn’t even require one.

You can also filter strings on mismatch type, with the filter button above the source strings. This way you can display and fix all strings with the same mismatch type.

Having doubt or questions on how to correct a string, don’t proceed, until you know what to do. Or simply skip it and leave it up to others.

Translate locallyLink to this section

Note: if multiple translators are working on the same locale this is not the recommended way of translating ClassicPress. Importing translations may overwrite recent translations from other translators. The I18n Team is working on fixing this.

You can also translate ClassicPress locally with software like Poedit. In order to do this you need to download the source file(s).

Instead of opening the editor, stay at the page that lists the translation files of your locale.

Crowdin - Language screen

As mentioned before:
As you can see there are language packs (files) for both ClassicPress v1 and v2. Because ClassicPress v1 is not under active development anymore, you can (should) ignore those strings. Starting with v2.5 each MINOR release will get its own language pack.

As you can see above, the translation of ClassicPress consists of multiple files.
You can choose between downloading single files or 1 file that contains all strings.

  • Click “Download” or “Export as XLIFF” via the selector on the right to download a single .po or .xliff file to your device.
  • Click “Export as XLIFF” next to “i18n-core-crowdin / v2” to download 1 .xliff file that contains all v2 strings.

Open the file in your translation editor and start translating. Because the I18n Team imports translations from WordPress and other translators may already have been working on it, many strings are already translated. You should focus on the ones that aren’t translated yet and the ones with errors.

Crowdin - translate in Poedit

As soon as a file is fully translated (and saved) it’s time to upload the file to Crowdin again.
Go to the page that lists the translation files of your locale.

  • Click “Upload translations” via the selector on the right to upload the single matching .po or .xliff file from your device.
  • Click “Upload XLIFF translations” next to “i18n-core-crowdin / v2” to upload the .xliff file that contains all v2 strings.

This or a similar modal opens:

Crowdin - select translation file

  • Allow target translation to match source: if you allow a translation to be identical to the source string. Check this box.
  • Approve added translations: translations will be approved as well, so Proofreading is skipped. Check this box.
  • Translate hidden strings: this option is not relevant for the ClassicPress project.

Note: if you forget to check the “Approve added translations” box, already approved translations switch to status Proofreading again. The I18n Team is working on fixing this.

So check the first and second box and select the matching file from your device. Then wait for the upload to finish.

Crowdin - upload translation file

The result of your import is displayed briefly and the translated/approved bar with the completion percentage is also updated.

Thank you for importing translations to ClassicPress!

Having doubt or questions?Link to this section

When having doubt or questions about taking care of certain strings, remember you are not the only one contributing to the localization effort! Strings you leave untranslated or unapproved will be taken over by other translators. You could always ask for support at the Localization forum page or in the i18n Zulip channel.

It’s not a race, it’s not a competition, it’s a joint effort!

Thanks for being part of the I18n Team!

CreditsLink to this section

This document is inspired by a tutorial written by Elisabetta Carrara and posted at the ClassicPress forum.

Last updated on October 19th, 2025 at 11:53 am