Some weeks ago the Polyglots team at WordPress approved a new locale for Angolan Portuguese (pt_AO). The Angolan WordPress community is just starting and the approval of their own locale it’s a trigger to help them grow. Until now they used the Portuguese locale (pt_PT) for their WordPress installs.

Because they’re just starting, they just got the WordPress core translated so far and not much more so, as an active member of the Portuguese community, I decided to give them an hand and develop a small plugin that would fallback all translations to pt_PT if they didn’t exist in pt_AO, so that the Angolan websites can use their own variant of Portuguese whenever possible but still benefit from the Portuguese (Portugal) translations already in place and that are possible due to years of contributions from the Portuguese community, instead of having everything else falling back to English.

I already did something very similar when the Portuguese locale got a new variant for the (very discussed) orthographic reform (pt_PT_ao90). So I just forked my already approved PT AO90 plugin, made the necessary changes so it falls back from pt_AO to pt_PT instead of pt_PT_ao90 to pt_PT and I submitted the new plugin on April 12, 2:24PM GMT.

On a side note: I developed the original “PT AO90” plugin during WordCamp Europe 2017 in Paris. My pall Álvaro Góis dos Santos helped out with the concept and we even shared some ideas with Pascal Birchler, the author of “Preferred Languages“. We then decided to publish it on under my name, Álvaro’s and the Portuguese WordPress Community.

After some days (on April 16, 11PM GMT) I got the rejection notice for this new plugin. The important parts are set as bold:

At this time, we are not accepting plugins of this nature.

Plugins that reproduce features that are already included in WordPress, without any perceivable additions, such as (but not limited to) duplication of existing short codes, widgets (rss feed display), or functionality (adding users), will not be accepted.

We do not permit plugins that we feel to be unethical, such as black or grey hat SEO (including plugins that auto post content). Any plugin related to claims like ‘Our plugin will help you earn thousands of dollars’ will be rejected, as that behavior is scummy and unwelcome. 

We also do not accept ‘translation’ plugins, or copies of plugins that are in another language, as that need is best served by communicating with the original plugin. Please reach out to them and provide a translation properly.

Plugins with obfuscated (i.e. hidden or encrypted) code will never be accepted.

While the directory is open for all secure, GPLv2 (or later) compatible plugins, we reserve the right to reject any plugin on any grounds we feel are reasonable, whether or not they are explicitly noted in the guidelines. 

Technically this plugin is a very isolated ‘translation fallback’ that only allows you to go from one to one:

> You don’t need this plugin to set the Portuguese (Angola) language, you can set it in WordPress options. But this enables fallbacks to the default Portuguese (Portugal) language packs, instead of WordPress defaults (en_US). WordPress does not currently supports language fallbacks, so using this plugin is the only way to have non-Angolan Portuguese translated projects (plugins and themes) in Portuguese (Portugal) instead of English.

We think it would be better served if you re-wrote this to allow people to pick ANY fallback language. That way, if they didn’t want to go from Portuguese Angola to ‘default’ Portuguese (maybe they wanted Spanish for whatever reason) they could do so, and you wouldn’t have to make multiple plugins. 

We would prefer to see you resubmit this as a ‘language fallback’ plugin, if that makes sense.

I then replied:

Hi there,

The propose of this plugin is very simple but important for the new Angolan WordPress community.

It is indeed “a very isolated translation fallback that only allows you to go from one to one” because there’s no reason whatsoever to be another way on this scenario.

Angola had its locale created a few months ago, and like any new community, they’ll take a considerable amount of time to have a proper translators base that can cover the most important plugins.

Until now the Angolans have been using the Portuguese (Portugal) locale because it’s the most similar one that has a good amount of translations.

What this plugin tries to do is to help the Angolan community start using their new locale benefiting from the specificities of the national language variation of Portuguese, and thus helping this community grow bigger and stronger, with the security that they have a fallback in place for the locale they already used before, and only if some plugin or theme is not translated to any of these then to the default WordPress EN_US locale.

Angolans speak an evolving variation of Portuguese. They want to fallback their new variation to Portuguese, not Spanish or any other language. And this plugin provides a way to do it without any bells and whistles. (There are already generic language fallback plugins on the repository for those who want to use it. That’s not the philosophy of this plugin)

My argument is not based on opinion. It’s based on the reality of the language in Angola:

Google translation of the first paragraph: “Official language and teaching and one of the factors of unification and social integration, Portuguese is constantly changing in Angola. The linguistic influences resulting from the contact with the national languages, the creation of new words and expressions as well as certain deviations from the standard norm of Portugal, give it a new character.

This is indeed something that the Angolan community needs and I don’t think the plugin team should reject it on a curatorship or ideology basis.

I ask you to reconsider and approve the plugin, for the sake of this new community.

Thanks in advance,
Marco Almeida

And I even if I mention that there are already generic language fallback plugins, and that’s not the aim of this plugin because it IS for a specific scenario, I got this back:

You mean no one ever, in any other situation, would possibly want to have a NON English fallback language? Really?

We are aware of the specific situation you’re discussing, and we’re telling you that you’re NOT the only country with this issue. Your plugin would be a PHENOMENAL boon to everyone else if you were to allow people to pick any language (besides English) as fallback.

Some people want to use Swiss or Canadian French to French French, just for a single example.

This has so much potential, and we’d like you to really think about how much of an amazing GLOBAL impact you could have with this.

Now I’m flattered. They say this is actually a good idea if I can do it for everyone. But I can’t take that credit. I don’t think they read my previous emails, so I replied:

Hi there again,

There’s already a plugin for everyone who needs to configure language fallbacks in an advanced way.
It’s “Preferred Languages” by Pascal Birchler.
The readme.txt of my plugin even states that it’s inspired by his work.

I don’t think the WordPress plugin world needs my work on this because Pascal’s plugin is awesome already 😀
Thanks for pointing that out anyway.

What I’m trying to achieve with this plugin is to create an easy, simple and “optionsless” tool for the Angola case only.
Something that a non-experienced user can just install and forget about.
They’re starting on this WordPress translations thing. This was discussed with the newly created community (they use our “WP Portugal” Slack) and they said this could help people move to PT_AO instead of just staying on PT_PT because there are few translations on their variant.
Just like we did for the Portuguese community when the new PT_PT_AO90 (orthographic reform) locale was created:

I don’t think the existence of a generic plugin for the whole (as is Preferred Languages) should be a reason for a specific plugin for the few to exist.
I don’t believe that’s the WordPress plugin repository


Marco Almeida

And I can swear I was expecting this:

If there’s already a plugin that does that then why make one that does less?

Is there a problem with Pascal’s?

At this time I guess arguments are futile. The person I’m exchanging emails with (and of whom I have no idea whose name is) has made up his (her?) mind and will not change mind on this issue. Anyway… I still replied:

No, no problem at all with Pascal’s plugin.
I just want to make it simpler for a specific set of users.

There are numerous contact forms plugins on the repository. Does that mean I can’t submit another, simpler, contact forms plugin?

I know it’s your prerogative, but I really can’t see any reason for the plugin not to be approved.


And I got an answer that I would expect only from someone outside an open source project like WordPress:

The problem with the smaller plugin is that it fragments the user base.

If this was a plugin doing the same thing in a new way, that would be great. But a plugin that actively does less, just to make it ‘easier’ means you get users split between plugins, which makes it harder to complain to core that this should be IN core WordPress and not a plugin (which is IMO a better route in the end).

I just can’t agree with this. And I cannot believe this argument is being used in the world of WordPress. The arguments for rejection are changing on each email, so I had to refute this:

Hi again,

There’s no new way of “providing a one to one language fallback”. It is what it is.

Gettings users split between plugins is not bad per se. It’s part of the nature of open source.
Open source it’s about variety, choice, and freedom to use whatever tool the user finds to be
better solution for its problem.

I can give you an example of how I think the argument is wrong:
If you look at a plugin like Jetpack and start rejecting plugins that do the same as a specific module of Jetpack then you would have to reject a whole lot of plugins, just because Jetpack was smart enough to build so many features that it can become a stop sign for other developers. It just doesn’t make sense.

Your first argument is that I should turn it into a plugin that provides several options of fallback.
Now that I told you there’s already a plugin for that and what I’m doing its different because it’s aimed at a particular set of users, a new community, that needs help to evolve, the argument is that people can use the already existant plugin.

Let me thrown an analogy here: What you’re saying is that people should use a machine gun to kill a fly.

Even from the point of view of plugin search, an Angolan WordPress user trying to find a solution for his problem will probably find this plugin but not find the other one.

I still do not agree with your call and I believe, after all the arguments I gave you (which I think are pretty valid), you stand by it just because it was your first decision.

This decision is based on personal opinion and not on the guidelines. Saying that you “reserve the right to reject any plugin on any grounds we feel are reasonable” it’s way too subjective and a loophole for this kind of situations. Anyway, I don’t think the grounds are reasonable here.

I also find odd that this is the first time I exchange emails with the plugins review team that are not identified with a real person name.

Sincerely yours,

Marco Almeida

I got this last email, still not signed with a real person name, and I decided that I do not want to keep arguing:

The Jetpack (and machine gun) argument is not the same.

I’m sorry but here, in the case, unless there’s something that should be done differently that the original, having a smaller, less flexible, plugin is not of that great benefit to users.

This plugin would be a fork of LESSER substance than it’s original, which we actively discourage.

This community is getting less and less desirable to be in. The last months have been full of very unfortunate episodes both on the community side and on the plugin side of WordPress.

I’m an active member of the Portuguese WordPress community.

I’ve got 18 free plugins published on the .org repository.

I help people on WordPress and WooCommerce Facebook groups on a daily basis.

I open issues and commit pull requests on open source WordPress projects on GitHub (even today WooCommerce launched 3.6.0 with a contribution of mine).

I’m part of the upcoming WordCamp Lisboa organizing team.

Finally, I and my wife work together on WordPress projects and 100% of our monthly income is directly or indirectly WordPress related.

This last one is probably the only thing I’ll keep doing if this community sticks to this path.

Update (April 18, 12:45): I’ve sent a message to the #pluginreview channel on the Make WordPress Slack, asking for a second review of the plugin.

Update (April 18, 1:13 PM): I replied to the email thread one last time because I was made aware that some plugin reviewers were harassed and stalked both online and on real life, so I just wanted to make clear to whomever I was exchanging emails with (still don’t know) that I hold nothing against anyone personally. I just disagree with the rejection.

Update (April 18, 6:22PM): I had a very civil and friendly chat with Mika Epstein over at the #pluginreview Making WordPress Slack channel (you can check it out if you want to). Here’s a summary:

  • The review team keeps the opinion that the plugin should not be approved on the grounds of being very specific and the fact that there’s already a plugin on the repo that can do the same (and more);
  • I still do not agree with the review team position and believe a smaller, simpler, no options plugin is a better solution for this specific situation (my opinion is backed up by very experienced developers, like Mario Peshev or the folks over at ACF, for example);
  • We agree to disagree;
  • I don’t think the arguments given by the team fit into the “reserve the right to reject any plugin on any grounds we feel are reasonable” sentence, and that stuff like “you cannot publish a plugin that does the same as another but less than the original” should be on the guidelines (if this is, in fact, a guideline, to which I strongly disagree);
  • The review team (or at least Mika) considers this blog post is not an attack on the team but rather my opinion, to which I’m entitled to;
  • I will never shut my mouth when I think something is not right within the community I love and contribute for;
  • Even if I still do not agree with the review team position on this rejection, it makes no sense to keep discussing this because, at the end of the day, it’s their decision and nothing that I can say will change that;
  • I’ll seek into another way to solve the Angolan community problem, probably by updating the original, already approved, “PT AO90” plugin (which is basically the same as the one rejected) to serve both proposes;

Thanks to all those who supported me on this.

Dear Angolan friends, you can find the rejected PT AO plugin here. Just install it and your WordPress install will be set to “Português de Angola” with fallback to “Português” (Portugal).

Junte-se à conversa

9 comentários

  1. Join the wordpress slack channel and escalate it to Ipstenu (Mika Epstein) or Otto. Pretty sure someone will dig sense into the mind of this reviewer.

    1. Pretty sure that it was Mika replying to Marco all the time, she is so rude most of the time!

      Marco, you mention that you make money with WP, just keep doing that and forget about participating in this community, those days are long gone!

  2. Thanks for your contributions.

    Seems some people at and Automattic don’t want/need “the community” any more, this becomes more and more obvious everywhere.

    “So long, and thanks for all the fish..”

  3. Has WordPress lost its way? This certainly seems to be inline with that trend.

    The plugin store if filled with plenty of garbage (to say nothing of the general code quality), so this rejection sounds silly, at best. What were they thinking? Were they thinking?

    Thanks for sharing. I’ll refer to this the next time someone says, “You should add your plugin to” No way. No worth the nonsense.

  4. In fact, they are fragmenting the user base with this behaviour. I always tell my clients that they should head to the plugin repository as a first stop – that’s just a no-brainer. Apparently, I’ll have to change this and be curating my own list of reliable third sources in the future if this nonsense goes on. Maybe WordPress is already past the prime of its era. 🙁

  5. I am having the same exact problem – i have never had such an issue in all the other plugins or work i’ve done on wordpress. This is eerily the same scenario – however i’m not on the slack channel. Any advice for contacting for secondary review?

  6. Good read. For what it’s worth, I found your arguments way more convincing than WP’s. The contact form analogy alone detonates their whole thought process. But like with most things, what sucks most is feeling like one’s trust, time and passion has been betrayed when they give you a middle finger like this. Oh well.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Please copy the string YdZnVy to the field below: