[Multi-journal installation] Bug: Translation keys added to Roles instead of translations

When setting up a new journal on a multi-journal installation that has several locales enabled, only translations are inserted into the roles table for locales which the journal has enabled initially. For the remaining locales, the translation key is inserted. If a journal manager decides to add enable a language later, the roles for this locale will show the keys instead of the translation in the GUI.

E.g. site has the following enabled locales
de_DE
en_US (primary locale)
es_ES
fr_FR
it_IT
pt_PT
ro_RO

We could reproduce this on our test environment:
A new journal is set up with de_DE, en_US as locales. Translations for roles are added for these two languages upon initial setup of the journal. After the journal has been created, when later fr_FR is enabled in Website > Setup > Languages, roles in French show the key instead.

Solution for bug fix: The journal creation process should insert by default all translations for roles for the site-wide configured languages into the user_group_settings table.

What application are you using?
OJS 3.3.0-13

Additional information
Excerpt of user_group_settings table:

select * from user_group_settings;

|           304 | de_DE  | abbrev          | AV                                                         | string       |
|           304 | de_DE  | name            | Abonnementverwalter/in                                     | string       |
|           304 | en_US  | abbrev          | SubM                                                       | string       |
|           304 | en_US  | name            | Subscription Manager                                       | string       |
|           304 | es_ES  | abbrev          | ##default.groups.abbrev.subscriptionManager##              | string       |
|           304 | es_ES  | name            | ##default.groups.name.subscriptionManager##                | string       |
|           304 | fr_FR  | abbrev          | ##default.groups.abbrev.subscriptionManager##              | string       |
|           304 | fr_FR  | name            | ##default.groups.name.subscriptionManager##                | string       |
|           304 | it_IT  | abbrev          | ##default.groups.abbrev.subscriptionManager##              | string       |
|           304 | it_IT  | name            | ##default.groups.name.subscriptionManager##                | string       |
|           304 | pt_PT  | abbrev          | ##default.groups.abbrev.subscriptionManager##              | string       |
|           304 | pt_PT  | name            | ##default.groups.name.subscriptionManager##                | string       |
|           304 | ro_RO  | abbrev          | ##default.groups.abbrev.subscriptionManager##              | string       |
|           304 | ro_RO  | name            | ##default.groups.name.subscriptionManager##                | string       |

Recursive grep for default.groups.abbrev.subscriptionManager in OJS installation path:

g -R default.groups.abbrev.subscriptionManager *
locale/en_US/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/ar_IQ/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/de_DE/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/es_ES/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/fa_IR/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/fr_CA/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/fr_FR/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/hr_HR/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/id_ID/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/it_IT/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/pt_BR/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/pt_PT/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/ru_RU/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/tr_TR/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/uk_UA/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/el_GR/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/ca_ES/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/cs_CZ/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/da_DK/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/fi_FI/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/gd_GB/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/he_IL/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/hi_IN/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/hu_HU/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/ja_JP/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/ko_KR/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/ku_IQ/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/mk_MK/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/mn_MN/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/nb_NO/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/nl_NL/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/pl_PL/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/ro_RO/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/sk_SK/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/sl_SI/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/sr_RS@cyrillic/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/sr_RS@latin/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/sv_SE/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/vi_VN/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/zh_CN/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/bs_BA/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/ka_GE/default.po:msgid "default.groups.abbrev.subscriptionManager"
locale/is_IS/default.po:msgid "default.groups.abbrev.subscriptionManager"

shows that all translations are available in the OJS installation for given role.

Current workaround is to enable all languages upon creating the journal using the wizard, then remove later the not used ones.

Hi, a new issue has been registered regarding to this problem in github at Multi journal installation cause translation keys added to roles instead of translations · Issue #8689 · pkp/pkp-lib · GitHub . It will be handled and resolve there and hopefully a fix will be included in the next release .

Regards
PKP Team

@touhidur - thank you a lot.