i18n translation request for comments
- Dominant language
- Python
- Stars
- 6.8k
- Forks
- 2.8k
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 5
Description
this is a long needed feature. game organizers often struggles on internalization, and it's boring and time wasting.
I've started some coding on https://github.com/frankli0324/CTFd/tree/feat/i18n-backend, want some comments.
it's after writing all these (below) that I realized that ColdHeat already added the 3.6 milestone... I think I could help with that?
I think I'll post it anyway...
---
let alone whether this implementation is good or bad, it's needed.
things I've considered:
although CTFd is designed as a flask app, it's splitted into frontend and backend. However CTFd still relies heavily on template rendering. That makes us to take three parts into consideration when adding i18n:
* javascript, which handles the rendering of some backend-irrelevant data.
* Jinja templates, I think we could inject an i18n function into the environment to use in the templates.
* python backend, which returns some of the messages, and that's what I'm working on right now.
for the first part, maybe CTFd could consider it a job for theme developers, but it would be nice if the core theme could provide some i18n abilities.
I've attempted to take the i18n entirely to the frontend in #1083, but it seems that it's a bad idea.
I believe that CTFd could easily achieve:
* letting the game admin set a default language for all users
* let the user override the language
with this work done.
Contributor guide
Research direction
Start by reviewing the existing work in the linked feat/i18n-backend branch and the three areas named in the issue: JavaScript, Jinja templates, and the Python backend. The stated goals are an organizer-selected default language and a user language override, with translation support across the application.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- flask, javascript, python
- Domain
- full-stack, internationalization
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100