Suggesting translations automatically

In this post, I propose a new functionality to automatically create suggestions for untranslated stringsString A string is a translatable part of the software. A translation consists of a multitude of localized strings..

This new functionality, only available to 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. and 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., will suggest translations automatically, using translations from different sources.

These are the different options:

  • Tool to get the suggestions. The tool will try to get the translations from these tools:
    • The internal translation memory (TM).
    • OpenAI APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. (only available if the user has entered her OpenAI API key in the tool).
    • DeepL API (only available if the user has entered her DeepL API key in the tool).
    • All the available options, in cascade:
      • if the TM has a translation with an accuracy of 100%, it will use it.
      • Then it will try to use OpenAI.
      • And then DeepL.
  • Number of suggestions to generate. We need to limit the number of suggestions in each execution, to avoid timeouts.
  • A checkbox where the user agrees to manually review the automatically generated translations. This checkbox will be mandatory.

These are the different options to get the information:

Once the execution will finish, the 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 have a number of translations (in waiting status) to review for this project. This review may be done by the author or by a different validatorValidator See translation editor. (GTE/PTE/CLPTE).

The checkboxes to select these autosuggestions will be disabled, so I propose to avoid bulk actions, so a GTE won’t be able to request an autosuggestion of 100 strings and then make a bulk approval. I think this is very important to avoid decreasing the translation quality.

Improvements with this new tool

This new tool will allow those languages with few translators, as well as those with many but no work pending validation, to advance much faster in the next translations, without losing quality in the translations, as they commit to validate them manually.

Also, being limited to GTE/PTE/CLPTE only, I think we will not have spam problems or a large amount of translations in the validation queue due to this new system. The validators will be responsible, not using the tool more than the other validators (or herself) can review manually.

Feedback

These mockups (colors, designs, …) are only to try to explain the new functionality. Please, contribute any ideas you may have.

#ideas

Ideas for Locales with Huge Review Queues

If you order the translation stats by the order of waiting stringsString A string is a translatable part of the software. A translation consists of a multitude of localized strings. in the plugins, you can see important languages like pt_BR (200 million speakers), de_DE (75 million speakers), fr_FR (63.5 million speakers),… with hundred of thousand of waiting strings.

It is unlikely that such large queues will ever be reviewed; it is also very discouraging:

  • For translators to continue translating, since these chains will most likely never be reviewed.
  • For the 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.) to continue reviewing the pending strings, given their large number.

To try to improve this situation, I propose two actions, that I will explain below:

  • Automatically validate the strings we have in the TM with a high number of occurrences.
  • In the validation queue, don’t show a discouragingly big queue with hundreds of projects and hundreds of thousands of strings, but a reduced number of important projects instead.

I suggest to opt-out by default to these two actions, so the GTE for each 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/ should opt-in for this new functionality.

Automatic validation

I propose to create a new tool to automatically validate the waiting strings that appear a lot of times (maybe 10 or more times) in the TM with the same original stringString A string is a translatable part of the software. A translation consists of a multitude of localized strings. and with the same translation. Here, I propose to work always with a 100% of accuracy: if the original string from the TM is not full equal to the original string under review, the tool will not use it.

In the next example, we have 3 suggestions from the TM with 100% accuracy. In this example, we’d use the translation “off” since it has more than 10 usages (this is not displayed in the screenshot, but the number is available).

If none of the 100% translations is used more than 10 times, then it won’t be automatically validated.

Reduce the validation queue

The validation queue, only available for the validators, has a list with the projects having some waiting strings. It can be huge for some 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/ (Emoji locale in the next screenshot).

I propose to reduce this queue to a few projects (maybe 12 is a good number), so the validators won’t feel overwhelmed when they review the projects. I suggest sorting the projects by importance: the WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., 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., … Once the project is fully reviewed, another one will appear in this queue.

This new queue will not prevent a validatorValidator See translation editor. from directly accessing a project and validating it if they want to do so.

#ideas

Adding some meta buttons always visible

Currently, when you are translating or validating stringsString A string is a translatable part of the software. A translation consists of a multitude of localized strings. at translate.wordpress.orgtranslate.wordpress.org The platform for contributing to the translation of WordPress core, themes and plugins., you have some buttons in the 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. tab.

If you select another tab in this right 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., you hide these buttons, so if you want to make an action with the meta buttons, you need to change the selected tab another time.

In this post, I am proposing to copy these buttons in another place, so they will always be visible. The current buttons will remain in the same place. This approach is inspired by Magento, an e-commerce CMS, who has some interesting bars with the elements always visible, and by the GlotDict 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.

Magento backend with a fixed top bar.

You can see here the Magento demo.

Waiting translation with the GlotDict browser extension.
Current translation with the GlotDict browser extension.

Proposed solutions

I have made some mockups with different approaches, so we can discuss them.

The first one is to add the meta buttons (2 in this situation) in the sticky bar you can see in each row.

The second one is the same but with more visible colors.

The third one is to add a new sticky bar at the top of the page, just after the main bar. This new option takes up extra space that in the other options is available for translations.

Questions:

  • What do you think about adding these new elements?
  • What is your opinion about these proposals?
  • Do you have another proposal for this?

#ideas

Converting translate.wordpress.org to full width

We are working to bring some new tabs in the GlotPress right sidebar, so we think it is interesting to convert translate.wordpress.orgtranslate.wordpress.org The platform for contributing to the translation of WordPress core, themes and plugins. to full width. Below, you can see some screenshot from the new draft design.

We have added the full-width=true get parameter to be able to test this experiment. Please, take a look at this alpha changes, give us feedback and propose updates, if you think they are needed. To help you with the different URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org, we give a URL list with the current status and the full width:

These screenshots were taken in a screen with a 1920×1080 resolution. You can see the PR here and the trac ticket here. We need your opinion. Please, add your feedback in the trac ticket, so we can have all the feedback in one place.

#ideas