WordPress.org

Make WordPress Core

Opened 5 years ago

Last modified 4 months ago

#30915 new defect (bug)

Automatic translation update does not trigger notification email

Reported by: ddaum Owned by:
Milestone: Priority: normal
Severity: normal Version: 4.1
Component: Upgrade/Install Keywords:
Focuses: administration Cc:
PR Number:

Description

Apparently, my translation files were updated over night (overwriting all my custom translations) and I didn't even get a notification email. I made sure that mail() and wp_mail() works and then found that in class-wo-upgrader.php:2803 the email is only triggered for 'core' type updates, not 'translation' types or any other. A translation update can easily render a site useless, and a notification should be sent for EVERY SINGLE CHANGE that Wordpress decides to do to itself anyway.

Also, the dashboard says that only "security updates" are installed automatically, and I would have never allowed translations to update automatically. Sure, digging deep in the online documentation later, I found the part about translations, but this should be mentioned in dashboard much clearer, including options to disable.

In the end, I think automatic translation updates should be off by default. Automatically updating something always bears the risk of breaking the site (even if only semantically). The only time I'd rather risk breaking the side is when otherwise I would risk leaving a critical exploit open, not for some dumb fixed typos. In fact, those are not 'critical' but 'trivial', putting them right on the other end of the criticality scale.

Change History (4)

#1 @nacin
5 years ago

Hi ddaum,

This was a very deliberate design decision that has roots in our project philosophies. https://wordpress.org/about/philosophy/

It was my call initially for this to be implemented this way, and in hindsight I wouldn't change a thing. I don't see how a translation update can easily render a site useless. I also don't think we should burden the user with email — too much and they won't read any of it.

We risk breaking all sorts of things with everything we do, but this was a good first step. The goal is to get people comfortable with everything always being updated. There was nothing to gain from not doing this, and a lot to lose (like a worse user experience by constantly prompting them for something we can do ourselves).

Of course, if you want to shut off automatic updates, or even only translation updates, you can do so — there are hooks available. But I wouldn't recommend it for the vast majority of users.

#2 @ddaum
5 years ago

So let me summarize: The dashboard deliberately lies to the user about the extent of automatic updates, Wordpress can and will by default overwrite and reset the user's translations at any time, and there is no notification whatsoever, not even an increased version number, so the site owner will never know until he gets feedback from customers.

The documentation mentions that notifications are ON by default, when they are in fact not for translations, which are far more likely to be changed than code by a non-technically minded admin. The only way to re-activate notifications for translation updates is by modifying core source code, or by using a developer debug feature.

And this can only be prevented by putting the whole setup into version control (like I had), by frequently checking source files, or by turning off these updates by adding filters to source code.

--- Sorry, but I don't see how any of this aligns with the project philosophy and will have to agree to disagree. I am just glad I found this early, but sad I wasn't able to prevent other not-so-vigilant site admins from pain in the future.

Last edited 5 years ago by ddaum (previous) (diff)

#3 follow-up: @SergeyBiryukov
5 years ago

Apparently, my translation files were updated over night (overwriting all my custom translations)

The proper way to customize translations is to create a plugin and use gettext or load_textdomain_mofile filter instead of overwriting default translation files and disabling auto updates.

#4 in reply to: ↑ 3 @Avantart
4 years ago

The proper way to customize translations is to create a plugin and use gettext or load_textdomain_mofile filter instead of overwriting default translation files and disabling auto updates.

This is an answer to a developer, not a user.
This is not userfriendly!

Please think it over. There is no reason why any plugin update overwrites language files!

Do you have to reorder your bookshelf just because you ordered a cappucino?????? (maybe this will explain the way users and "plain admins" see this!

Note: See TracTickets for help on using tickets.