Во-во! Еще эту тему поднимал я в
https://wpcommerce.ru/posts/32701/
В общем решил для себе следующим способом: после начала такого полтергейста я достаю заранее заготовленный список чего мне надо поправить в переводах и усиленно правлю файлы перевода, затем заливаю и жду очередных обновлений.
Ща правда в админке на странице обновлений появилась кнопка обновить переводы (после очередной заливки своих), которую я принципиально не жму и все пока нормально. Но это тоже не надолго... Видимо как то он их принудительно все же обновляет сам, этот WP.
Переводы имеют свою структуру иерархии.
В WordPress есть общая папка для файлов перевода: /wp-content/languages. В ней лежат файлы перевода самого WordPress, а также могут лежать файлы переводов тем и плагинов (это работает в WordPress по умолчанию).
Все функции подключения MO файлов (кроме load_textdomain()), сначала проверяют наличие файла перевода в общей папке, и только потом ищут его в папке плагина или темы. Это чем-то похоже на
иерархию файлов шаблона, только тут иерархия файлов перевода...
Общая папка переводов для:
- плагинов /wp-content/languages/plugins/ДОМЕН_ПЕРЕВОДА-ЛОКАЛЬ.mo.
- тем /wp-content/languages/themes/ДОМЕН_ПЕРЕВОДА-ЛОКАЛЬ.mo.
В такие общие папки, например, загружается и обновляется перевод плагина, который находится в каталоге плагинов WordPress.
Заметка: если файл перевода есть в глобальной папке, то в плагине его подключать через функции load_(plugin/theme)_textdomain() не обязательно!
WordPress автоматически его подключит, опираясь на параметр Text Domain: в заголовке плагина.