Language tool for GlotPress to convert text according to the Portuguese Language Orthographic Agreement of 1990 (PT AO90).
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.
- Check for active GlotPress.
- Check for existent
pt
root andpt-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 (sameoriginal_id
) is added and doesn't need conversion. - Sync button for GlotPress administrators to force convert the complete translation from root set to variant set.
- 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 thept-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 filtergp_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.
-
GlotPress 3.0.0-alpha.4 with Variants support.
-
GlotPress 4.0.0 without Variants support.
-
Translation set (root):
Portuguese (Portugal)
- Locale =
pt
; - Slug =
default
;
- Locale =
-
Translation set (variant):
Portuguese (Portugal, AO90)
- Locale =
pt-ao90
; - Slug =
default
;
- Locale =
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' );
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' );
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:
/**
* Always create the Variant translation.
*/
add_filter( 'gp_convert_pt_ao90_showdiff', '__return_false' );
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.
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.
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.
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.
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.
You can use it with GlotPress 4.0.x without the real variants fallback support, the plugin will convert/sync all the strings.
The conversion process occurs while saving the translation or importing translations. For that both the root and variant locales must exist for a project and the plugin must be active.
If you've added the translations before having the variant locale added to the project, or somehow while this plugin was inactive, the conversion won't happen.
Since version 1.4.2 you can force the conversion anytime. Go to the project page, and on the variant locale you can click on the Sync button.
Sure! You are welcome to report any issues or add feature suggestions on the GitHub repository.
-
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
-
Sync button to force convert the complete translation from root set to variant set
- Improve speed by using the faster translation_set->import() to bulk convert the entire Translation Set on demand.
- Use REST API to convert the entire Translation Set on demand.
- Fix original_id error when changing string status.
- Fix i18n of updated count numbers.
- Stricten code.
- Analyse GP Template with PHPStan.
- Tested up to WP 6.7.
- Improve speed of PT AO90 translation table.
- Remove unnecessary queries causing huge load on variant table.
- Fix diff error on single translation.
- Tested up to WP 6.6.
- Update dependencies.
- Fix text domains in GlotPress custom template.
- Include maps for minified assets.
- Tested up to WP 6.5.
- Update dependencies.
- Add license file.
- Fix: Error of undefined variables on template-row when no root translation exist and variant is edited directly.
- Fix: Change script priority to fix tablesorter conflict with active GP Toolbox.
- New: Hook in GP Toolbox, if available, to update all the projects stats columns highlights and buttons accordingly.
- Fix: Error of undefined variables on template-row when loaded through ajax updating translation.
- Fix: Build the minified JS.
- New: Add, update and remove 90% bubble on AJAX update.
- Fix: Error on project_path sanitization for Syncing subprojects.
- Fix: Saving old translations in the root locale on Sync action.
- Fix: Sync button icon CSS issue.
- Allow converting
current
translations with warnings. - Improve Syncing performance by deleting the existing variant translations with delete_many().
- Set dependency header for GlotPress according WP 6.5.
- Tested up to WP 6.5.
- Test with PHP 8.3.
- Update dependencies.
- Fix missing JavaScript translation.
- 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.
- 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.
- 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 build for the converted variant.
- 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
- Improve CSS loading.
- Add Lock icon in to the Variant name in it's read-only.
- Fix error on Constant setup.
- Remove dotfiles and rulesets from release.
- New read-only mode: Use the new filter
gp_convert_pt_ao90_edit
to optionally disable editing, approval and importing translations in thept-ao90
variant. - Tested up to WP 6.4.
- 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+).
- Fix HTML escaping.
- Add plurals to original text in the translation row preview.
- Add plural forms labels.
- Add prepare to print out to root translation preview row.
- Fix missing version number.
- Highlight the differences in the automatically converted texts.
- Update the actual Convert-PT-AO90 tool to v1.3.1.
- Fix matching for words with exact case on the replace pairs.
- 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.
- Initial release.
- Check for active GlotPress.
- Check for existent
pt
root andpt-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.