We should allow system notes to be translated

Problem to solve

We produce fixed English language strings for system notes, which are written in markdown, and then processed and cached as HTML in the database. This design prohibits internationalization of an important and pervasive part of our interface.

Intended users

All users who would prefer to use Gitlab with a different language.

Further details

We value diversity addressing a global, international audience. As a result we should allow all features of our interface to be internationalized.

Proposal

We ought to separate Note and SystemNote into two classes, with separate tables. Rather than constructing system notes with computed markdown content, we ought to supply data (perhaps in a JSONB column) to named templates. These templates can then control internationalization for the end user.

This will involve a long (and possibly permanent) transition period of supporting legacy system-notes in the database that cannot be translated.

Permissions and Security

We need no additional permissions for this.

Testing

System notes are found throughout the GitLab interface, so this would be a fundamental change that would have to be handled piecemeal. It would require testing of the new system notes as both data objects as well as for the new templates/rendering mechanism.

What does success look like, and how can we measure that?

A user sees a system note in their own language.

What is the type of buyer?

This is a universal feature - this issue is created here in anticipation of the single-code base as there is no way this will be completed soon.

Links / references

https://gitlab.com/gitlab-org/gitlab-ce/issues/65076

Edited Nov 10, 2022 by Arturo Herrero
Assignee Loading
Time tracking Loading