Welcome to the official blog of the translator team for the WordPress open sourceOpen SourceOpen Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. project. This is where we discuss all things related to translating WordPress. Follow our progress for general updates, status reports, and debates.
We’d love for you to help out!
You can help translate WordPress to your language by logging in to the translation platform with your WordPress.orgWordPress.orgThe community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ account and suggesting translations (more details).
We have meetings every week on SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. in polyglots (the schedule is on the sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. of this page). You are also welcome to ask questions on the same channel at any time!
First of all let’s take an overview on which kind of users can work on translate.wordpress.orgtranslate.wordpress.orgThe platform for contributing to the translation of WordPress core, themes and plugins..
There are three user roles in translate.wordpress.org: Guest, Contributor, and Translation EditorTranslation EditorTranslation editors can approve translations for projects. The GTE (General Translation Editor) and LM (Locale Manager) roles can add new users with the "Project Translation Editor" role that can approve translations for specific projects. There are two different Translation Editor roles:
General Translation Editor and Project Translation Editor.
Guests are all users who don’t have any account or are not logged into their WordPress.orgWordPress.orgThe community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ account. Guests can see the projects and their translations but can’t suggest translations or add them to the already translated set of stringsStringA string is a translatable part of the software. A translation consists of a multitude of localized strings..
Contributors can suggest translations and see other translations of the same strings, suggested by other users. To become a contributor, you need to register or log in to your WordPress.org account.
Translation EditorsTranslation EditorTranslation editors can approve translations for projects. The GTE (General Translation Editor) and LM (Locale Manager) roles can add new users with the "Project Translation Editor" role that can approve translations for specific projects. There are two different Translation Editor roles:
General Translation Editor and Project Translation Editor can add translations, manage suggestions, and approve or reject suggested translations. If you’d like to become a Translation Editor for a current localizationLocalizationLocalization (sometimes shortened to "l10n") is the process of adapting a product or service to a particular language, culture, and desired local "look-and-feel.", you’ll need to contact the current General Translation Editors requesting access. If you’d like to become the General Translation EditorGeneral Translation EditorA General Translation Editor (often referred to as GTE) is a person, who has global access to validate strings on all projects for a specific locale. of a new localization of WordPress, review the “Requesting a New Locale” page.
So be ready to give your first translation suggestions like a Contributor!
To contribute translations using translate.wordpress.org, simply log in (or register an account) to your WordPress.org account. This automatically gives you the necessary permissions to contribute to any translation projects.
Once logged in, go to https://translate.wordpress.org/, you’ll see a list of localesLocaleLocale = language version, often a combination of a language code and a region code, for instance es_MX denotes Spanish as it’s used in Mexico. A list of all locales supported by WordPress in https://make.wordpress.org/polyglots/teams/. Search your localeLocaleLocale = language version, often a combination of a language code and a region code, for instance es_MX denotes Spanish as it’s used in Mexico. A list of all locales supported by WordPress in https://make.wordpress.org/polyglots/teams/ and click on “Contribute Translation”.
We’ll use Peruvian Spanish (and some others) as an example on this page.
translate.wordpress.org organizes translations in projects and sub-projects so that you could have, for example, the “WordPress” project and a sub-project for every version, as seen in the example below.
If this is your first time translating for the WordPress project, we recommend you start by translating the WordPress project by clicking the “WordPress” tab in the darker gray navigation bar.
Search “Development” and click the “Translate Project” button. You’ll see a list of components (“translation sets”).
Pick a translation set you’d like to translate by clicking on its title. In the screenshots below, we’ll use the “5.4.x – Development” set.
Before going ahead, note that at the beginning projects can be filtered by their translations status like “Percent Completed (Most first)”, “Waiting + fuzzy (Newest first)” , … from the menu “FilterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.” you see above “Search projects…” field. Choose one filter and click on “Apply filter”.
For plugins and themes you can also choose from your favorite ones:
Across the top of that list, you will see links to the filtering (click on “Filter”) and sorting (click on “Sort”) functions which will help you narrow down the strings you want to work on. And some quick filters which allow you to see All strings, only Translated strings, only Untranslated strings, only Waiting strings, only Fuzzy strings, only strings with Warnings.
If you click on “Filter” you can do advanced filtering based on the options that you see in the image below.
If you click on “Sort” you can do advanced sorting based on the options that you see in the image below.
Untranslated: A white background (◼︎) indicates a string that has no suggestion yet
Translated (Current): A green background (◼︎) indicates an approved string, which will be in a future (or current) version of WordPress. These are the only strings that will be used to create the language pack that will be downloaded to your WordPress website.
Waiting: A yellow background (◼︎) indicates a string that was suggested, but not yet approved by a Translation Editor.
Fuzzy: An orange background (◼︎) indicates a “fuzzy” string. A fuzzy string is a previously approved translation of which the original string has been slightly modified. That translation needs to be reviewed for accuracy and edited or approved.
Rejected: A red background (◼︎) indicates a string that was rejected by a Translation Editor
Old: A purple background (◼︎) indicates a string that was obsoleted by a newer, approved translation.
Warning: A red bar to the left of a string, indicates validation warnings, such as mismatched HTMLHTMLHTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites. tags, missing %s placeholders or a large difference in length between the original string and its translation. These translations either need to be corrected or their warnings explicitly discarded by a Translation Editor.
To start translating a string, double-click on the one you want to translate (or click on “Details” in the right column).
As seen below, the string’s line will expand and you’ll be presented with a text box where your translation can be written. In the example below you’ll insert your translation where it says “Enter translation here”.
Let’s take a tour of the box translation interface.
In the headerHeaderThe header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes., the top bar has some useful information and some additional functions in the hamburger menu on its right.
From left to right we have:
a boxed text with the status of the original string (in the example is “untranslated”)
a cross icon to close the details of the string
an up arrow to go to previous string
a down arrow to go to next string
an hamburger menu that shows contextual links that we explain now
Contextual links menu (hamburger menu):
Permalink to original: it opens a page with the standalone string and related translation. You can copy the relative URLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org from the address bar of the browser to refer to that string, for example if you need to point other Polyglots to it
Translation History: it opens a page that shows all the translations that has been inserted for a string, they could be current, old, rejected, or fuzzy translations
View original in consistency tool: it opens a page with the consistency tool for that string, in your locale, for all projects
In the main area of the translation there are additional information for the string, before and after the translation box itself:
Context: a note from developers to explain the context of the string and additional information about the source
Comment: a note from developers to explain for example the meaning of a placeholder or of the entire string
References it links the source code at the line the string is located
Suggestions from Translation Memory: suggestions from other identical or similar strings already translated in that locale
Other Languages: current translations of the original string in other languages
At the right of the main area of this box we have some MetaMetaMeta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. information:
Status: based on the list “Strings StatusColor Key” seen above
Priority of the original: priority for translation
In the translation box the “Copy original” button present in the left bottom corner will do just that – copy the source string to the text box. In some cases and languages, it’s easier to translate from the original string. In both cases, don’t forget to click the “Suggest” button. The “Show help” button in the left bottom corner shows you a help dialog with useful information on translating in translate.wordpress.org.
Type your suggestion for the translation and click the “Suggest” button.
Once your suggestion is sent, the translation area of the next string will be opened.
Suggest as many or as few strings as you want. Be aware that the same string can have any number of different suggestions, from different users. It will be up to the Translation Editors to decide which one fits best.
Some original strings will have one or more plural forms. In this case, you have to insert all the forms by clicking on Singular and Plural tabs.
In some locales we have more than two forms, for instance in Russian:
If your locale doesn’t distinguish singular and plural forms, there won’t be any tabs (like in the example below). Just use the placeholder + translation to represent all forms (e.g. “%s item selected” – %s will display any number including 1).
After a contributor suggests a string, the string gets a status of “suggested” (waiting). In order to transform them into “approved” (current) strings, which are the only ones that are used to create the language pack that will be downloaded to your WordPress website, a Translation Editor needs to approve those suggestions using the “Approve” button that appears in the Meta area of an Editor interface’s screen. An Editor can also reject a string using the “Reject” button. Or give it the status of Fuzzy when there are some doubts on that string.
For more information on the process after translations are suggested, check out the After Your Contribution page.
For more information on the process of validating suggestions as a Translation Editor and to watch a useful video about it, check out the You’re an editor! Now what?page.
If your language is listed in translate.wordpress.org, chances are there is a team localizing WordPress into your language. Visit the list of current localization teams to find your local Translation Editor (then go to the Translation teams page and click the “View Team Page” link of your language).
Any WordPress.org user can import pluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party and theme translation files using the “Import Translations” feature of GlotPressGlotPressGlotPress is the translation management software that powers Translate.WordPress.org. More information is available at glotpress.org. (Note: only GTEs can import into projects other than plugins and themes).
Multiple formats are allowed to be imported (including for example .po and .moMO filesMO, or Machine Object is a binary data file that contains object data referenced by a program. It is typically used to translate program code, and may be loaded or imported into the GNU gettext program. This is the format used in a WordPress install. These files are normally located inside .../wp-content/languages/ formats).
To access the import feature, scroll down on a translation page and click the “Import Translations” link.
GTEs and PTEs can upload translations as “Current” or “Waiting” status. Others can only upload as “Waiting”.
When you import a file, untranslated strings and translations which are different from existing translations will be saved. If the imported file contains original strings not present in the string list of translate.wordpress.org, those will be ignored.
What WordPress.org users can import:
Any WordPress.org user can import plugin and theme translation files, the translations uploaded will have the “Waiting” status
PTEs can also choose to upload the translations with the “Current” status for the projects they are Translation Editor
GTEs can also import translation files for WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. and projects other than plugins and themes, and can choose to upload with the “Current” status for all projects
If you while validating suggested strings get a warning message that says “Error setting status!” then something is disturbing the communication between your browser and the server. In some cases this has happened if the URL of the translation project contained the word “ad” and the user had an ad-blocker activated.
GlotPress is the open-source engine that powers translate.wordpress.org – the translation platform of WordPress and related projects.
GlotPress is an open-source project, just like WordPress. If you’d like to help improve GlotPress please visit the GlotPress blog or the GlotPress Trac. Contributions to GlotPress will be used by hundreds of people who translate WordPress for millions of people around the world.