Convert PT AO90 for GlotPress

Description

This plugin for GlotPress customizes the default behavior of the Portuguese (Portugal) Locales, allowing you to automatically convert the approved/current strings in Portuguese (Portugal) to its variant of Portuguese (Portugal, AO90).

It keeps the Portuguese (Portugal) root translations automatically converted and synced with its Portuguese (Portugal, AO90) variant translations within your GlotPress install.

Optionally it’s possible to disable the Portuguese (Portugal, AO90) variant translations editing, approval and importing, making it read-only.

The only translations added to the Portuguese (Portugal, AO90) variant translation set are those which are different from the Portuguese (Portugal) root translation.

The strings that don’t need any conversion remain untranslated on the variant, falling back to the root Locale.

This plugin was heavily inspired by the Serbian Latin solution for transliteration of Serbian Cyrillic locale from translate.wordpress.org.

The language conversion uses the open source tool Convert PT AO90 to replace entire words from a prebuilt list.

Features

  • Check for active GlotPress.
  • Check for existent pt root and pt-ao90 variant translation sets.
  • Convert current Portuguese (Portugal) root translations and add to the Portuguese (Portugal, AO90) variant translations.
  • Delete variant unused translations instead of keeping as rejected, fuzzy, old.
  • Delete current variant translation if a new root translation (same original_id) is added and doesn’t need conversion.
  • Highlight the differences in the automatically converted texts.
  • Read-only mode: Use the filter gp_convert_pt_ao90_edit to disable editing, approval and importing translations in the pt-ao90 variant.
  • Optionally you can always save the translations to the Variant, this overrides the fallback to the root Locale. Return true in the new filter gp_convert_pt_ao90_always_create_variant_translation.
  • Conversion highlight: Use the filter gp_convert_pt_ao90_showdiff to optionally disable the conversion diff highlight.
  • Supports GlotPress 3.0.0-alpha.4, with the real variants and fallback feature.
  • Supports GlotPress 4.0.0 (current development), without the real variants and fallback feature.
  • Supports Traduttore for also schedule the language-pack build for the converted variant.

Requirements

  • GlotPress 3.0.0-alpha with Variants support.
  • GlotPress 4.0.0-alpha without Variants support.

  • Translation set (root): Portuguese (Portugal)

    • Locale = pt;
    • Slug = default;
  • Translation set (variant): Portuguese (Portugal, AO90)

    • Locale = pt-ao90;
    • Slug = default;

Screenshots

  • Translation table with gray root translations and green automatically converted strings, with highlighted conversion diffs
  • Variant translation table only with green automatically converted strings, with highlighted conversion diffs

FAQ

Is it possible to make the variant Portuguese (Portugal, AO90) read-only?

As translations are automatically converted from the root Locale Portuguese (Portugal), you can make the variant read-only by disabling users to edit, approve and import translations into the variant.
To make the Variant PT AO90 read-only, you can use the filter as follows:
/**
* Disable editing translations for PT AO90.
*/
add_filter( 'gp_convert_pt_ao90_edit', '__return_false' );

Can I always save the translation to the Variant, even if is the same as the Root translation?

Short anwser: yes!
The Variants feature with fallback isn’t released yet. The current Variants code is not ready to production, the fallback to the Root Locale isn’t quite stable.
If you need a fully independent translation set, for more accurate stats or to build complete and independent Language Packs of the Variant, you can use the filter as follows:
/**
* Always create the Variant translation.
*/
add_filter( 'gp_convert_pt_ao90_always_create_variant_translation', '__return_true' );

Can I disable the conversion diff highlight?

Sure!
The highlight of the conversion differences are usefull if you want to keep track of what changed.
If you want to disable it, you can use the filter as follows:
php
/**
* Always create the Variant translation.
*/
add_filter( 'gp_convert_pt_ao90_showdiff', '__return_false' );

I want my WordPress in Portuguese (Portugal, AO90), does this plugin help?

No! To use your WordPress in Portuguese (Portugal AO90) you must go to your Settings and select it in the Language field.
You can also use the plugin PT AO90 to make sure your site falls back to Portuguese (Portugal) instead of English if there is no translation to Portuguese (Portugal, AO90) for your theme or plugins.

So what does this plugin really do, after all?

It extends the translation platform GlotPress used to translate WordPress projects.
Since GlotPress 3.x there is a new Variants feature, enabling some Locales to be a variant of a root Locale. With this, comes fallback.
If a translation doesn’t exist on the variant, it assumes its root translation.
This plugin links both Portuguese Locales in a way that you only need to focus in translating and manage consistency on the root Portuguese (Portugal), knowing that the variant Portuguese (Portugal, AO90) is being automatically converted and synced with no human action needed.
With this tool, the translators can continue to provide both Locales with the minimum effort.

Does this means that translations are now converted automatically on translate.wp.org?

No(t yet). This is a working proof of concept, it works on any GlotPress 3.x, but isn’t running on translate.wp.org (GlotPress based) at the moment.
Hopefully it will, or at least a clone of this, as this is an open source tool.

Should this feature be a part of GlotPress itself?

No. And yes.
The relationship between root/variant depend on each team that uses GlotPress.
Depending on how the translation team decides to work. It’s useful if automatic conversion is wanted.
For teams that want a root/variant to work automatically, than yes, GlotPress could integrate this optional feature of setting a specific pair of root/variant automatically converted with some custom hookable process, and turning the variant read-only.
This is not an exclusive need of the Portuguese Locales, this is surely useful for other Locales as well.
What should not be a part of GlotPress core is the actual Portuguese conversion, that is plugin territory.
This plugin is intended to be a proof of concept to use and test this workflow.

What versions of GlotPress are compatible with this plugin?

The Variants feature was introduced in GlotPress 3.0.0-alpha.
Later, on GlotPress 3.0.0-beta the Variants feature was removed temporarily, so for now the GlotPress alpha version is the only Variants compatible version, and you must install it for this plugin to do its magic.

Can I contribute to this plugin?

Sure! You are welcome to report any issues or add feature suggestions on the GitHub repository.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Convert PT AO90 for GlotPress” is open source software. The following people have contributed to this plugin.

Contributors

“Convert PT AO90 for GlotPress” has been translated into 5 locales. Thank you to the translators for their contributions.

Translate “Convert PT AO90 for GlotPress” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.4.3

  • Fix missing JavaScript translation.

1.4.2

  • New: A Sync button for GlotPress administrators to force convert the complete translation from root set to variant set.
  • Fix: Keep variant below root translation set while sorting in GlotPress 3.x with variants support.

1.4.1

  • Update the actual Convert-PT-AO90 tool to v1.3.3.
  • Fix: Strings with trailing spaces converted to null, fixed on the package Convert-PT-AO90.
  • Fix: Warnings on paginated translation tables, on rows with highlighted diffs.

1.4.0

  • New: Supports the current GlotPress 4.0.0, without the real variants and fallback feature.
  • New filter: Use gp_convert_pt_ao90_showdiff to optionally disable the conversion diff highlight.
  • Fix: Schedule Traduttore language-pack build for the converted variant.

1.3.3

  • New filter: Use gp_convert_pt_ao90_always_create_variant_translation to optionally always create Variant translations, making it independent of any Root fallback.
  • Fix Dashicons enqueue.
  • Fix multiple translations being added to the Variant.
  • Move filter gp_convert_pt_ao90_edit to wp_loaded.

1.3.2

  • Improve CSS loading.

1.3.1

  • Add Lock icon in to the Variant name in it’s read-only.
  • Fix error on Constant setup.
  • Remove dotfiles and rulesets from release.

1.3.0

  • New read-only mode: Use the new filter gp_convert_pt_ao90_edit to optionally disable editing, approval and importing translations in the pt-ao90 variant.
  • Tested up to WP 6.4.

1.2.5

  • Use own CSS that is still missing on GlotPress 3.0.0-alpha.4
  • Update the actual Convert-PT-AO90 tool to v1.3.2.
  • Add some more replace pairs.
  • Update dependencies.
  • Tested up to WP 6.1.
  • Tested only on supported PHP versions (7.4+).

1.2.4

  • Fix HTML escaping.

1.2.3

  • Add plurals to original text in the translation row preview.
  • Add plural forms labels.

1.2.2

  • Add prepare to print out to root translation preview row.

1.2.1

  • Fix missing version number.

1.2.0

  • Highlight the differences in the automatically converted texts.

1.1.1

  • Update the actual Convert-PT-AO90 tool to v1.3.1.
  • Fix matching for words with exact case on the replace pairs.

1.1.0

  • Update the actual Convert-PT-AO90 tool to v1.3.
  • Rebuild replace pairs with half the size.
  • Improve performance by using only lowercase replace pairs.
  • Fix matching words starting with an accented vowel.
  • Remove wrong replace pairs about cardinal points (lowercased since 1945).
  • Add some more replace pairs.
  • Update dependencies.
  • Tested up to WP 6.0.

1.0.0

  • Initial release.
  • Check for active GlotPress.
  • Check for existent pt root and pt-ao90 variant translation sets.
  • Convert current Portuguese (Portugal) root translations and add to the Portuguese (Portugal, AO90) variant translations.
  • Delete unused variant translations instead of keeping as old. As the variant is intended to be read-only, all the translation work and history is kept on the root set.