Discussion for a proposal for WP.org content translation and localization

The topic was proposed for discussion during the Community Summit but sadly, it wasn’t chosen. Before a formal proposal on a wider translation solution can be written, discussion should continue to gather the issues that need solving before translation can occur. The teams involved at the beginning of this process are polyglots, docs, training & metaMeta Meta 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.. There is a recommendation to involve the community and marketing teams.

Goals

To increase the amount of content in other languages, improve search, site usability and create sitemaps.

What is known from RosettaRosetta The code name of the theme for the local WordPress sites (eg. bg.wordpress.org is a “Rosetta” site). All locale specific WordPress sites are referred to as “Rosetta sites.” The name was inspired from the ancient Rosetta Stone, which contained more or less the same text in three different languages. sites:

  • Site usability, /team/ has been created for most localesLocale Locale = 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 /support/ only if requested, but are overall not used a lot.
  • The “handbook” functionality is enabled for all team sites, but only a handful locales are actually using it.

Which content will be translated?

There are different types of content to be either translated, adapted or localized.

  • Documentation (HelpHub & DevHub)—articles will be translated in full with adaptation of images/videos to the local language
    • wordpress.orgWordPress.org The 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//documentation
    • developer.wordpress.org
  • Training (Learn)—since Learn is using filters, the content (videos/text) can either be translated or adapted (originally written in a different language, e.g. adding the option of captioning in different languages, etc)
    • learn.wordpress.org
  • Local handbooks — Some articles would be translated or adapted/localized versions of corresponding global versions (for instance content related to Community or Marketing, for instance how to find a meeting place for free or how to get a sponsored venue for a MeetupMeetup All local/regional gatherings that are officially a part of the WordPress world but are not WordCamps are organized through https://www.meetup.com/. A meetup is typically a chance for local WordPress users to get together and share new ideas and seek help from one another. Searching for ‘WordPress’ on meetup.com will help you find options in your area., although the rules may differ from country to country.) Other parts, like translation style guide, etc would basically lack corresponding content on global level.

Problems to solve before starting translation

  • Where are we hosting the information? This will depend on the tool used. We have the option to host the information on WordPress and also on GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/. (Currently Docs, Training and some other teams use Github as version and process control system.)
  • There is a need for a notification system that alerts local teams of
    • New articles/posts/videos added
    • Updates to existing posts/articles/videos
      • Find a way to easily identify the line/word/paragraph that was changed to avoid reviewing/retranslating a full document after a small change of the source
  • Use of correct URLs to aid local SEO (see some options in the Documentation Internationalization (1/2) proposal)
  • Handbooks for local teams (see examples below for the Spanish and Catalan handbooks)
  • GlotPressGlotPress GlotPress is the translation management software that powers Translate.WordPress.org. More information is available at glotpress.org. may be a good platform for the translation since we’re already using it; it can handle versioning and help with document comparison. The Playground can be a support tool for translation.
  • Translate text > localize text (when needed) > adapt images

GlotPress

There is currently no out of the box solution for using GlotPress to translate content.

The necessary components are:

  • A way to translate import a WordPress page or post into a GlotPress project. For this a segmentation tool is needed which can split the post according to a predetermined set of rules. A possibly useful approach would be splitting the document by GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ blocks. The preference is splitting by sentences because the blocks will give less translation reuse to the team. This should be done automatically upon update.
  • Ideally, translation reuse should take into consideration stringString A string is a translatable part of the software. A translation consists of a multitude of localized strings. context: if surrounding source segments also are full matches to a previous translation, then the stored translation is more probably correct
  • A way to relate different language WordPress pages or posts to each other, so that we can interlink a post in English to the other language pages/posts “This page is also available in language

Members of the meta team who work on translate.wordpress.orgtranslate.wordpress.org The platform for contributing to the translation of WordPress core, themes and plugins. would help in assisting to create the above components.

Team experiences

Since there will not be a fit-for-all solution, reflecting on experiences other teams have with content translation is necessary to understand if similar processes can be applied or adapted in as many Rosetta sites as possible.

Any team wanting to share their experience, please fill in this form.

References

Props to @courane01 @javiercasares @akirk @tobifjellner for co-authoring this post.

#feedback

Discussions Dashboard for GTEs

We create a new dashboard for the GTEs, so they can get the last feedback comments.

This tool is not available for users without GTEGeneral Translation Editor A 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. profile, or in other languages where the GTE doesn’t have this profile.

In each row you will get this information:

  • Original stringString A string is a translatable part of the software. A translation consists of a multitude of localized strings., with a link to the translation form.
  • The comment, with a link to the comment.
  • The project, with a link to the project.
  • The comment author, with a link to her WordPress.orgWordPress.org The 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/ profile.
  • The timestamp.

At the bottom, you will see a pagination bar.

Improvements

We are aware of some problems and/or improvements, and we are working on this:

  • Large set of comments. We are trying to get some technical solution to hide or mark as read the comments that were read by the user.
  • Filters. @la-geek suggested adding some filters. We are working to decide the new filters: all comments, comments I participated in, comments with no participation, …
#dashboard, #feedback

A new status: changes requested

We have added a new status to GlotPress and to translate.wordpress.org: the “changes requested” status.

Until now, a validatorValidator See translation editor. could not request changes from a translator. Since we have added the feedback tool, a validator can do this, so instead of rejecting a stringString A string is a translatable part of the software. A translation consists of a multitude of localized strings., when a validator gives feedback to a translator, the status changes from “rejected” to “changes requested”, so the translator can update the translation and then the validator can recheck it, to approve it.

Single feedback

When a validator (GTEGeneral Translation Editor A 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., PTEProject Translation Editor A Project Translation Editor (often referred to as PTE) is a person, who has access to validate strings on a specific project (for example BuddyPress, WooCommerce or Twenty Fourteen) for one specific locale. A project translation editor can approve strings that are added by translation contributors. Per project translation, editors are appointed by a general translation editor after a request by the project author or by the contributors themselves. or CLPTECross-locale Project Translation Editor A Cross-Locale Project Translation Editor is an account owned by a plugin or theme author (or the authoring organization), which uses professional translators to localize their product. The cross-locale project translation editor can import/validate strings on a specific project for more than one locale. This role has the same capabilities as a Project Translation Editor over multiple locales instead of one. Cross-Locale Project Translation Editors need to meet a set of criteria before being appointed by General Translation Editors.) is reviewing a suggested translation, she can approve, reject or mark as fuzzy the current translation, as we have been doing so far. But we have added a new element, the “Give feedback” tool.

If you click on the text marked on the next image:

You will see some checkboxes where you can select a feedback type and a comment. Both fields are optional, so you can approve, reject or mark as fuzzy the current translation without adding feedback to this action.

If you select one checkbox and/or write some comment, you will see how the “Reject” button will change to “Request changes”, because if you click in this new button:

  • The translator will receive a notification with the feedback.
  • The translation will be in a new status: “Changes requested”.

Once you click on this button, you will see the translation with this new status (changes requested), and you can see this filterFilter Filters 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. in the top bar.

You can also see this new status in the advanced filter:

This new status has its own color: light blue. You can see it in the next image, in a “changes requested” row and in the legend, at the bottom.

You can add feedback when you approve or mark as fuzzy one string.

Bulk feedback

As validator, you can also give feedback in a bulk rejection. To do this, you have to:

  • Select the translations to which you want to give feedback.
  • Select the “Reject” status.
  • Click on the “Apply” button.

Once you click on this button, you will see a new form, similar to the one you have in the single feedback tool. If you click on the “Reject” button, you will reject both stringsString A string is a translatable part of the software. A translation consists of a multitude of localized strings., as usual.

But if you select some reason and/or you made some comment, the “Reject” button will change to “Request changes”.

Once you click on the “Request changes” button, you can see these 2 strings in “changes requested” status.

You can’t add feedback when you bulk approve or mark as fuzzy some strings.

#changes-requested, #feedback

The feedback tool

This tool is a working in progress. Some of the functionalities described here could have been changed.

Last months we were working on a new expected functionality, the feedback tool. This tool improves the communication between the translators, developers and validators (GTEGeneral Translation Editor A 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., PTEProject Translation Editor A Project Translation Editor (often referred to as PTE) is a person, who has access to validate strings on a specific project (for example BuddyPress, WooCommerce or Twenty Fourteen) for one specific locale. A project translation editor can approve strings that are added by translation contributors. Per project translation, editors are appointed by a general translation editor after a request by the project author or by the contributors themselves., CLPTECross-locale Project Translation Editor A Cross-Locale Project Translation Editor is an account owned by a plugin or theme author (or the authoring organization), which uses professional translators to localize their product. The cross-locale project translation editor can import/validate strings on a specific project for more than one locale. This role has the same capabilities as a Project Translation Editor over multiple locales instead of one. Cross-Locale Project Translation Editors need to meet a set of criteria before being appointed by General Translation Editors.), so the translation process can be more agile, sending feedback through email to the different people involved in a translation.

In this post, I am going to talk about:

  • Opt-in to receive notifications.
  • Single feedback on approve, reject or fuzzy.
  • Bulk feedback on reject.
  • Discussions.

Opt-in notifications

The tool sends some email notifications. The notifications are opt-in. To receive it, you have to opt-in here.

These are the notifications the system sends:

  • The translator will receive a notification when a validatorValidator See translation editor. makes a bulk rejection or rejects, approves or sets as fuzzy a single stringString A string is a translatable part of the software. A translation consists of a multitude of localized strings. or when a validator replies to one of her comments.
  • The developer receives a notification when someone asks something around a “typo in the English text” or request more context for the translation.
  • The GTE/PTE/CLPTE will receive a notification when someone replies to a notification she made before or when someone asks something related with her language and/or pluginPlugin A 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.

The email subject is “New comment in a translation discussion” and the email content is similar to this one:

Single feedback

When a validator (GTE, PTE or CLPTE) is reviewing a suggested translation, she can approve, reject or mark as fuzzy the current translation, as we have been doing so far. But we have added a new element, the “Give feedback” tool.

If you click on the text marked on the next image:

You will see some checkboxes where you can select a feedback type and a comment. Both fields are optional, so you can approve, reject or mark as fuzzy the current translation without adding feedback to this action.

If you select one checkbox and/or write some comment, you will see how the “Reject” button will change to “Request changes”, because if you click in this new button:

  • The translator will receive a notification with the feedback.
  • The translation will be in a new status: “Changes requested”.

Once you click on this button, you will see the translation with this new status (changes requested), and you can see this filterFilter Filters 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. in the top bar.

You can also see this new status in the advanced filter:

This new status has its own color: light blue. You can see it in the next image, in a “changes requested” row and in the legend, at the bottom.

You can add feedback when you approve or mark as fuzzy one string.

Bulk feedback

As validator, you can also give feedback in a bulk rejection. To do this, you have to:

  • Select the translations to which you want to give feedback.
  • Select the “Reject” status.
  • Click on the “Apply” button.

Once you click on this button, you will see a new form, similar to the one you have in the single feedback tool. If you click on the “Reject” button, you will reject both stringsString A string is a translatable part of the software. A translation consists of a multitude of localized strings., as usual.

But if you select some reason and/or you made some comment, the “Reject” button will change to “Request changes”.

Once you click on the “Request changes” button, you can see these 2 strings in “changes requested” status.

You can’t add feedback when you bulk approve or mark as fuzzy some strings.

Discussions

There is a discussion page for each original where you can find all discussions about it.

To access to the discussions for an original, you have to:

  1. Click on the hamburger icon.
  2. Click on the “Discussion” link to open the discussion page in the same tab.
  3. Click on the arrow image to open the discussion page in a new tab.

In the “Discussions” page, you can get this information for an original string:

  1. A filter.
  2. The feedback comment.
  3. The comment reasons.
  4. A button to reply to this comment.

You can have a lot of comments with replies, similar to a page in a forum.

You have a new tab with the translation history.

And another tab with the translation in other localesLocale Locale = 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/, so you can get some inspiration for your localeLocale Locale = 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/.

At the bottom of the page, you have a form to open a discussion to:

  • Notify developers (if opted-in):
    • A typo in the source.
    • Requesting more context, because the source doesn’t have enough information.
  • Notify validators (if opted-in) with a question related with your language.

And at the bottom of the form, you can:

  • Opt-in/opt-out for the current discussion.
  • Opt-in/opt-out globally in the discussions.

#feedback, #improvements

The new notifications’ system at translate.wordpress.org

We are developing a new feedback plugin to enable the discussions at translate.wordpress.org.

This pluginPlugin A 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 will have a notification system, with different situations, related with the users that will be notified:

  • Typo or context request: a user notify a typo in the original stringString A string is a translatable part of the software. A translation consists of a multitude of localized strings. (usually in English), or request more information about the context.
  • Question in one language: a user requests some explanation to the reviewer about the translation to one language.
  • A reviewer bulk rejects some stringsString A string is a translatable part of the software. A translation consists of a multitude of localized strings..
  • A reviewer rejects one string.

1. translate.wordpress.orgtranslate.wordpress.org The platform for contributing to the translation of WordPress core, themes and plugins.

The users will be opt-out by default, so they have to opt-in to receive notifications, at https://translate.wordpress.org/settings/

The discussions will have a link to the settings at the bottom (something similar to text marked text in the next image) to opt-in/opt-out globally or only for the current discussion.

In the replies to a comment, all the users that write in the thread will receive an email.

1.1. Typo or context request

Here we have 2 different situations:

1.1.1. Plugins and themes

The plugin/theme authors will receive an email (Themes: only one email address. Plugins: all the plugin authors.). In the replies, all the users that write in the thread will receive an email. If none of these users is an author, the other authors will receive an email.

1.1.2. CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., Patterns, metaMeta Meta 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. and apps

Some special users (to be determined, we want to get users from the Polyglots community) will receive an email each time a request of this type is sent in a translation of this type (all translations of projects that are neither themes nor plugins). In the replies, all the users that write in the thread will receive an email. If none of these users is a special user, the other special users will receive an email.

1.2. Question in one language

The GTEGeneral Translation Editor A 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./PTEProject Translation Editor A Project Translation Editor (often referred to as PTE) is a person, who has access to validate strings on a specific project (for example BuddyPress, WooCommerce or Twenty Fourteen) for one specific locale. A project translation editor can approve strings that are added by translation contributors. Per project translation, editors are appointed by a general translation editor after a request by the project author or by the contributors themselves./CLPTECross-locale Project Translation Editor A Cross-Locale Project Translation Editor is an account owned by a plugin or theme author (or the authoring organization), which uses professional translators to localize their product. The cross-locale project translation editor can import/validate strings on a specific project for more than one locale. This role has the same capabilities as a Project Translation Editor over multiple locales instead of one. Cross-Locale Project Translation Editors need to meet a set of criteria before being appointed by General Translation Editors. for this project and localeLocale Locale = 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/ will receive an email. In the replies, if none of these users is a GTE/PTE/CLPTE, all the GTE/PTE/CLPTE for this project and locale will receive an email.

1.3. Bulk rejection

The GTE/PTE/CLPTE can reject all the strings without making any comment, clicking on the “Reject” button on the popover. The translator will receive one email with all the rejected strings and the comment if the GTE/PTE/CLPTE had made a comment.

1.4. Single rejection

The GTE/PTE/CLPTE can reject the string without giving feedback, clicking on the “Reject” button on the sidebarSidebar A 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.. The translator will receive one email with the rejected string and the comment if the GTE/PTE/CLPTE had made a comment.

2. Number of notifications

At translate.wordpress.org, we know that some users will receive (not in the first days/months) an significant amount of notifications. Once we release this new functionality, we want to get feedback from the users to know if this situation is happening, and we’re committed to quickly make adjustments where necessary so that the notifications will be useful. In this case, we will talk about developing a dashboard for the users (GTE/PTE/CLPTE/translators) that would allow to say up to date by checking the dashboard instead of receiving notifications.

3. Opt-in and opt-out

All users will be opt-out by default, and they should opt-in to receive notifications, at https://translate.wordpress.org/settings/

We’re concerned about due to the opt-in, many people will initially miss that conversations are going on because they won’t get notified. We’re thinking about how to make people aware of the opt-in possibility and how they’d benefit from it.

  1. A banner on the top explaining that you can opt in. That banner can be closed and won’t show again.
  2. A one-time full screen opt-in screen that can be closed and will never appear again.
  3. Allow opting in with a checkbox when submitting a translation.
  4. Other ideas?

In the footer of all discussions, the user will have some links to opt-in/opt-out in the whole system or only for the current discussion.

Do you have some comments? Please, write them in the comments.

#feedback

Feedback Wanted: 2020 Polyglots Survey Questions

Update!

The scope for leaving feedback is closed now and the team is currently preparing the 2020 Polyglots Survey. Thanks to everyone for helping us out!

Dear Polyglots,

Hope you are all doing well. As you are aware, in the past few weeks we have been quite active with the ‘Translation Day 2020‘ Mini Events across different localesLocale Locale = 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/. We appreciate the input by the locales who have been posting updates of their activities with the community. As planned earlier we are conducting a survey across the community to gather information on the Translation Day initiative. We have created a draft set of questionnaire thanks to @nao, @evarlese, @devinmaeztri & @psmits1567. The document has suggestion/comment option enabled for all.

We request you all to share your feedback to help finalize the questionnaire for the 2020 Polyglots Survey.

#feedback, #survey