ADR-021: Internationalization

Status

Accepted

Context

Supporting multiple languages improves accessibility and usability for a global user base. Django provides built-in internationalization tools using GNU gettext for translating templates and strings.

Decision

The project uses Django’s built-in template tools—GNU gettext()—for internationalization. As of v0.13x, the templates are not internationalized. When working on templates, effort should be made to set up PO files for the 5 most common languages: en, zh-hans, hi, es, fr.

Alternatives Considered

  • Using third-party internationalization libraries.

  • Limiting the platform to English-only templates.

Consequences

  • Positive: - Leverages Django’s robust internationalization support. - Improves accessibility for users in multiple regions.

  • Negative: - Requires ongoing effort to maintain and update translation files. - Contributors must be familiar with Django’s i18n workflow.