This is an article about how I struggled with the consequences of incorrect migration “ru-RU” to “ru” in Google Chrome.
This is an article for those with Chrome that looks like this:

')
or, in simple terms, stubbornly continues to display sites in Russian despite the fact that English is displayed everywhere in the settings.
Under the cut a bit of my thinking about the cause of the error and how to solve the problem.
Symptoms:- Websites tend to be displayed in a language other than the one selected in the settings.
- The problem manifests itself after logging into the user account and synchronizing
- All simple problems like checking settings in Chrome, Google Account, resetting history and even syncing do not help
Why is this a problem:- It's annoying
- Some sites simply do not work and fall with an error (Paner, for example)
- Some sites do not offer the ability to change the language to navigator.language other than
- The problem tends to spread to other Chrome accounts on the same computer.
TL.DR., Reflections on the root cause of the bugAt some point, Google abandoned the ru-RU locale in favor of ru and migrated.
Apparently, this migration bypassed those users who encrypted their account with passphrase, and left them without the ability to change this value in the interface.
At the same time, a funny bug remained in the system.
In the event that the user with the locale curve is default, all subsequent users who log in under their account in Chrome will automatically inherit “ru-RU” and synchronize it with the backup in the cloud.
To understand where this bug grows, I had to tinker a bit:
1) Find out what language we speak for the Internet.
This will help us console and navigator.languages:
(4) [“ru-RU”, “en-US”, “en”, “ru”]
2) Check what value we came from the cloud.
This can be done by opening the chrome: // sync-internals tab for the Sync Node Browser
in the Preferences / intl.accept_languages section, we will have a nasty surprise.
This means that the locale curve was successfully synchronized with the cloud and any direct manipulations with the Preferences file will be rejected in favor of the version in the cloud.
I started a bug to fix it, but something tells me that at best it will be closed as Won't Do.
OK, what to do?- Make a list of all devices where you entered your account, because they will have to be fixed manually
- On any selected device, make sure that you have the most complete local backup of data (bookmarks, passwords, payment methods, etc.)
- Go to the chrome: // settings / syncSetup sync settings and go to the Manage Synced Data on Google Dashboard section
- Reset Sync and close the browser
- You will need to find the Preferences file for your user (chrome: // versions shows the full path)
- Find and delete the ill-fated locale using any text editor.
- After that you can open the browser and re-enable synchronization.
Do not forget to do the same for all Chrome users on this device who are suffering from the same problem.
Before you enable syncing on other devices, remember to clean the Preferences there as well. For Android and iOS, you can simply clear the application data.
These steps should help.
Unfortunately, I don’t know a more elegant way to solve the problem, since I didn’t find the option of updating Preferences using flags or the console in Chrome.
I would be happy to alternative solutions to the problem in the comments.