-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme.txt
281 lines (211 loc) · 14.3 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
=== Convert PT AO90 for GlotPress ===
Contributors: pedromendonca
Donate link: https://github.com/sponsors/pedro-mendonca
Tags: localization, translation, glotpress, ao90, portuguese
Requires at least: 5.3
Tested up to: 6.7
Requires PHP: 7.4
Requires Plugins: glotpress
Stable tag: 1.5.0
License: GPLv2
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Language tool for GlotPress to convert text according to the Portuguese Language Orthographic Agreement of 1990 (PT AO90).
== 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](https://meta.trac.wordpress.org/ticket/5471) solution for transliteration of Serbian Cyrillic locale from [translate.wordpress.org](https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-customizations/inc/locales/class-serbian-latin.php?rev=10360).
The language conversion uses the open source tool [Convert PT AO90](https://github.com/pedro-mendonca/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.
* 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 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.4](https://github.com/GlotPress/GlotPress/releases/tag/3.0.0-alpha.4) with Variants support.
* [GlotPress 4.0.0](https://github.com/GlotPress/GlotPress/releases/tag/4.0.0) without Variants support.
* Translation set (root): `Portuguese (Portugal)`
* Locale = `pt`;
* Slug = `default`;
* Translation set (variant): `Portuguese (Portugal, AO90)`
* Locale = `pt-ao90`;
* Slug = `default`;
== Frequently Asked Questions ==
= 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](https://wordpress.org/plugins/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](https://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](https://github.com/GlotPress/GlotPress/releases/tag/3.0.0-alpha.4).
Later, on [GlotPress 3.0.0-beta](https://github.com/GlotPress/GlotPress/releases/tag/3.0.0-beta.1) the Variants feature [was removed temporarily](https://github.com/GlotPress/GlotPress/pull/1327), 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 translated strings of both locales don't match, can I force convert the translated 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.
= Can I contribute to this plugin? =
Sure! You are welcome to report any issues or add feature suggestions on the [GitHub repository](https://github.com/pedro-mendonca/GP-Convert-PT-AO90).
== Screenshots ==
1. Translation table with gray root translations and green automatically converted strings, with highlighted conversion diffs
2. Variant translation table only with green automatically converted strings, with highlighted conversion diffs
3. Sync button to force convert the complete translation from root set to variant set
== Changelog ==
= 1.5.0 =
* 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.
= 1.4.10 =
* 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.
= 1.4.9 =
* Tested up to WP 6.6.
* Update dependencies.
* Fix text domains in GlotPress custom template.
* Include maps for minified assets.
= 1.4.8 =
* Tested up to WP 6.5.
* Update dependencies.
* Add license file.
= 1.4.7 =
* 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.
= 1.4.6 =
* 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.
= 1.4.5 =
* Fix: Build the minified JS.
= 1.4.4 =
* 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.
= 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](https://github.com/pedro-mendonca/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](https://github.com/pedro-mendonca/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](https://github.com/pedro-mendonca/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](https://github.com/pedro-mendonca/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.