Closed cfm closed 2 years ago
Breadcrumbs for myself for resuming the work I started last month:
- [x]
i18n_tool.py
andsecuredrop-admin sdconfig
need to share a centralized list of supported languages.
This is done in 6387-supported-langauges
as of the newly-rebased aa84b1d39c4d0114fe52d708938a727cc3885022.
- [x] To keep translations in sync even if they fall (or have not yet reached) 100% translation coverage, we need to have them present in
securedrop/translations
. (#6156)
This is next. It's slightly more involved than it appears, because for each supported language I18NTool.update_from_weblate()
:
git checkout
s the latest .po
from the securedrop/securedrop
Weblate component (and git add
s it if updated); and.po
from the securedrop/desktop
component, as specified in the I18NTool.supported_langauges
dictionary.The lazy approach would be:
git checkout
the glob of .po
s from securedrop/securedrop
; then,.po
, check for a corresponding supported_languages
entry, in which case check out its .po
from securedrop/desktop
.The non-lazy approach would involve enumerating translations for each component separately, either via Git against the i18n
remote or via the Weblate API or wlc
SDK. I don't think this is worth it, since in addition to being more work it would:
securedrop/securedrop
and securedrop/desktop
commits, which right now are nicely combined for each supported language;i18n_tool.py
's current design and make it harder to reason about; andwlc
).So the lazy approach is what's next!
- [x] To keep translations in sync even if they fall (or have not yet reached) 100% translation coverage, we need to have them present in
securedrop/translations
. (#6156)
This lazy approach is done in 3de94cc0ef02417f500d7f23c3426fb8188f083b. For a reviewable pull request, we still need:
ValidateLocales
set checks,I18N_CONF
checks,I18NTool.commit_changes()
, andI18NTool.translated_locales()
; and@zenmonkeykstop, if you have bandwidth to pick this up over the next week, I'd be very much obliged. Otherwise I think I'll have to let it sit until next week.
Description
The current state of play:
securedrop/translations
directory. (#2516)But:
securedrop/translations
. (#6156)Therefore:
i18n_tool.py
andsecuredrop-admin sdconfig
need to share a centralized list of supported languages.This can be thought of as
securedrop
's companion to freedomofpress/securedrop-client#1438—and as another incremental step away from thesecuredrop
repository itself as the Server's packaging.User Research Evidence
In #6156, I tried to sync up a language not yet supported and needed a sequence diagram to do it. :-)
User Stories
As a translator, I want to be able to request (volunteer!) a new language to translate without placing a large operational or maintenance burden on the SecureDrop project until and unless the translation can be considered supported and ready to be deployed.
As a Localization Manager, I want to be able to add languages and facilitate their translation when they've not yet reached, or may have fallen below, the 100% coverage threshold to be considered supported.
As a SecureDrop administrator, I (still) want to be able to configure only supported languages, no matter what else may be present in my
securedrop
working copy.