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