The issue of titles not being translated when selected in a profile has been ongoing. Grinch initially reported this issue for the “Regular” badge (trust level 3), where the translated German badge “Stammgast” was not displayed. Despite the correct translation being set in /admin/customize/site_texts/badges.regular.name, the title would revert to “Regular” in posts and settings.
Grinch noted that in Discourse 2.0, the issue changed, and the badge/title could be set by admins with the correct localized version. However, users cannot set the title in their profile, and any changes are not saved. The issue persists in Discourse 2.0.1, with the title sometimes being reset after a while.
Grinch suspects that a task checking title permissions is not aware of translations, causing the title to be revoked. Yu_Gong1 inquired about the ETA for a fix, and gerhard provided a GitHub commit link related to the issue, but no solution has been implemented yet.
Then I save the setting, and it is shown correctly:
But in my posts, it is shown as “Regular”:
And when I load my settings again, it also shows “Regular”:
It seems with 2.0 the issue has changed. Now the badge/title can be set by admin and is the correct localized version.
But for the user the title setting is broken. If the user himself tries to set it in his profile, settings, it is not saved at all. If I change the translation of the name of the badge to “Regular” or set the locale to English it works.
What also works is when the change is done at profile, badges (is this approach checked differently?). But if you set the badge there and load the page again “none” is preselected instead of the current title. This is the same for the english locale - so it seems this page does not get the current title correctly.
The bug still exists in 2.0.1. And I found another one.. even when you can select the translated value in the badges page, it is reset after a while. So I guess that a task that checks if you are allowed to have the title is also not aware of the translation and then revokes it?