Agenda: Biweekly GlotPress Chat – October 20, 2021 (07:00 UTC)

Here’s the agenda for our weekly chat.

This meeting will be held at Wednesday, October 20, 2021, 07:00 UTC in the #glotpress channel in the Making WordPress Slack.

  • Welcomes.
  • Why we restart the meetings?
  • GlotPress project status.
  • translate.wordpress.org status.
  • Local development software.
  • Open floor / Achievement.

If you have any additions to the agenda, please share them in the comments.

#biweekly-meetings, #meeting, #meetings

New GlotPress meetings

In the last months, there has not been a meeting to talk about GlotPress.

We will restart biweekly meetings, in the #glotpress channel of “Making WordPress” Slack. The first meeting will be on Wednesday, October 20th, 2021, at 07:00 UTC. after the PolyGlots meeting. I hope to see you all there with fresh ideas.

#meeting

GlotPress 3.0 Release Schedule Change

We previously targeted the GlotPress 3.0 release with the following dates:

However that was before some other small project decided to do a 5.0 release on the same day as our beta 😉

To avoid conflicts with that release and the holidays, we’ve decided to move the GlotPress 3.0 release to the new year to make sure we deliver the best release we can.

So, the new dates will be as follows:

Meeting Time Change for DST

Maybe one day we won’t have to do this, but until then we’re updated out meeting time for daylight savings time.

The weekly meeting will now be every Thursday at 17:00 UTC (noon EST).

Meeting Time Change

As of this week we’ll have our GlotPres meeting every Thursday at 16:00 UTC in the #glotpress channel on Slack.

And a quick reminder that it will be changing again in a few weeks for daylight savings time.

Getting to GlotPress 3.0

Work started on GlotPress 3.0 back in July 2017 with a proposal I posted and while the road to a release has been long and winding, our destination is finally in sight.

This post is to reset the 3.0 release schedule and deliver a release to that schedule.  During last weeks (Oct. 11, 2018) office hours, a proposed timeline was agreed upon:

  • December 6th, 2018 – Beta
  • December 13th, 2018 – Release Candidate
  • December 20th, 2018 – Final Release

Which leaves approximately 6 weeks of development time to land the remaining PR’s, which include:

  • Locale Variants (PR #747)
  • Comment Fields (PR #804)
  • CLDR Support (PR #784)
  • Term Filter Scope Options (PR #936)
  • Display Glossary Terms On Preview Rows (PR #932)
  • Fix NL and TAB Character Handling In Originals (PR #928)
  • Add Filter Count For Custom Filters (PR #926)

The current list and status of 3.0 issues and pull requests is available on GitHub and feel free to drop by our Slack channel during our weekly office hours (or any other time) if you have any questions or input to these or anything else.

GlotPress 3.0 will introduce several significant features and we encourage everyone to try out the beta when it is released, especially those that have built plugins or custom themes as both may require changes to be compatible with the release.

New Maintainer for GlotPress

It’s now 3 years after “Bunsen Honeydew”, the first GlotPress as a WordPress plugin version, has been released. Since (and before) this date a lot has been achieved to make GlotPress an easy and powerful open source tool to help translators collaborate.
Some highlights:It’s time to hand over the leadership reins…

  • 24 releases for the plugin version with the help of 43 contributors.
  • Introduction of more translation formats like Java properties, JavaScript and JSON.
  • Improved code base to better align with WordPress core to invite new contributors.
  • Enhanced glossaries including support for per locale glossaries.
  • Fruitful discussions and exploring of a new design.
  • Fine-tuned editor settings with more keyboard shortcuts and the ability to mark strings as fuzzy.
  • Customizability through the introduction of new hooks and WP-CLI support.
  • The switch to the plugin on translate.wordpress.org, the largest public installation of GlotPress, and currently 400+ active self-hosted installs.
Until now GlotPress was maintained by myself (Dominik) with Greg Ross as a co-lead. During the last three years Greg was always a big help for me when it came to decisions or making a release. Today I’m happy to announce that Greg will continue on as the lead developer and maintainer of GlotPress, taking over my position with me stepping down to a supporter/contributor role. Greg has been involved in the WordPress community for over 6 years and has been working on GlotPress since the switch to the plugin, having started like so many contributors by fixing a bug and submitting a patch. I’m not going away completely, but I no longer want to cause unnecessary delays due to time constraints and shift in focus. So I’m creating space for others to step up and I trust Grey that he’ll continue making GlotPress an even better platform. And I hope you’ll support him as much as you can. Thank you.

Meeting time change: Thursday @ 15:00 UTC


Hello everyone, with the advent of standard time once more upon us, we’ve moved the weekly office hours for GlotPress to 15:00 UTC.  Feel free to drop on by our Slack channel (#glotpress) each Thursday.

#office-hours

Meeting time change: Thursday @ 16:00 UTC

As of today we’ll have our offices hours every Thursday at 16:00 UTC. The next meeting will be on November 30th in the #glotpress channel on Slack.

#office-hours

GlotPress and Locale Variants

An often requested feature in GlotPress has been to be able to support locale “variants”.  This has been tracked as issue #226 on GitHub and has been open since January 2016.

Locale variants allows for a “root” language to have one or more “variants” of the language in which the variants automatically inherits the translations of the root for any missing translations.

This is useful for many popular languages, for instance English, Spanish, French, etc.  where the vast majority of the translations are likely to be identical with minimal differences for local dialects.

PR #747 has recently been created with a solution for locale variants.

Ok so what does it look like?

The first thing to note that all of the below is based on the current PR, which may change by the time it is actually merged in to GlotPress.

Let’s say you have a project called “Labels”, with three locale’s defined:

  • English (Unites States)
  • Spanish (Spain)
  • English (Canada)

One of these things isn’t like the others, but two of them are very close to being the same.

In the above situation, English (Canada) would inherit the translations form English (United States) for any translations that were not defined.

Going to the translation set page you would see something like this:

 

You’ll notice a new entry in the legend at the bottom of the page, “Root translation”, this indicates any translation shaded in this color (slightly darker green) is inherited from the root language instead of being marked as untranslated (white).

If you select one of these translations to edit you will see the following editor displayed:

Notice the addition of the “Root Translation” information under the Meta heading along with a link back to the root translation.

If you change the translation here and save it, a new translation entry for the locale will be created and the root translation will no longer be inherited.

Looks good so far, so now what?

The PR is mostly complete, however we are looking for some input on one part of the system; the relationship between root and variant languages.

As part of the PR an initial pass at defining the relationships between languages has been made but we are looking for input from the community to ensure they are correct and for any missing relationship that make sense.

One item to note is that root to variant relationships can only go one level deep, so you cannot define a variant of one root as the root of another one.  So in our English example, you cannot do English (United States) -> English (Great Britain) -> English (Canada).  This was done on purpose to ensure translations did not degrade in quality as they moved farther away from the original source language.

The current root/variant relationships in the PR (see the locales.php in the PR for full details) are as follows (the root is the top level name and the variants are in the bullet list):

Arabic

  • Algerian Arabic
  • Moroccan Arabic

Azerbaijani

  • South Azerbaijani
  • Azerbaijani (Turkey)

German

  • German (Switzerland)
  • Swiss German

Greek

  • Greek (Polytonic)

English (Unites States)

  • English (Australia)
  • English (Canada)
  • English (UK)
  • English (New Zealand)
  • English (South Africa)

Spanish (Spain)

  • Spanish (Argentina)
  • Spanish (Chile)
  • Spanish (Colombia)
  • Spanish (Costa Rica)
  • Spanish (Guatemala)
  • Spanish (Mexico)
  • Spanish (Peru)
  • Spanish (Puerto Rico)
  • Spanish (Venezuela)

Persian

  • Persian (Afghanistan)

French (France)

  • French (Belgium)
  • French (Canada)
  • French (Switzerland)

Dutch

  • Dutch (Belgium)

Norwegian

  • Norwegian (Nynorsk)

Portuguese (Portugal)

  • Portuguese (Brazil)

Tamil

  • Tamil (Sri Lanka)

Chinese

  • Chinese (China)
  • Chinese (Hong Kong)
  • Chinese (Singapore)
  • Chinese (Taiwan)

A brief note about the slightly strange English root/variants, English (United States) was chosen as the root due to the vast majority of code that is written with it as the language of the source code.  The root/variants relationships are assigned during the load of the locales file and can be altered for individual sites either through the use of a custom locales.php (using the GP_LOCALES_PATH define) file or through a plugin that hooks in to the GP_INIT hook.

Feedback on the above relationships (or any other part of the PR) is most welcome as always, you can visit the GitHub Issue or PR to participate.