Seems that I found the reason of the problem. When creating the journal, OJS copies strings from the locale files into the database, and then uses that data.
The problem is that OJS 3.1.0 does it for the primary locale only.
As a result, tables ‘navigation_menu_item_assignment_settings’ and ‘navigation_menu_item_settings’ have incomplete information, like this
| 15 | | titleLocaleKey | navigation.current | string |
| 15 | uk_UA | title | Поточний випуск | string |
SOLUTION:
I maually added the missing locale records,
insert into navigation_menu_item_settings set navigation_menu_item_id=15, locale=‘en_US’, setting_name=‘title’, setting_value=‘Current’, setting_type=‘string’;
and get
MariaDB [ojs]> select * from navigation_menu_item_settings where navigation_menu_item_id=15;
±------------------------±-------±---------------±--------------------±-------------+
| navigation_menu_item_id | locale | setting_name | setting_value | setting_type |
±------------------------±-------±---------------±--------------------±-------------+
| 15 | | titleLocaleKey | navigation.current | string |
| 15 | en_US | title | Current | string |
| 15 | uk_UA | title | Поточний випуск | string |
±------------------------±-------±---------------±--------------------±-------------+
3 rows in set (0.00 sec)
Repeated this for all missing keys, and now my navigation menu is fine.
I do not know if I stiil need to fix the table ‘navigation_menu_item_assignment_settings’, but for this time I am happy wit this.