Wiki in several languages: every page through Weblate, published at wiki.tiagoagueda.com #1215
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo#1215
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The wiki in several languages, translated in Weblate and published at https://wiki.tiagoagueda.com. This follows #352: its question is answered, and the answer goes further than its three pages. A trial on Getting started is live and is written up below.
Decided (maintainer, 2026-11-01)
postulo.wiki.fr-FR, notfr-CA) and European Portuguese (pt-PT) are the additional languages. The maintainer reviews them, and a release waits for them.zh-Hans,hi,es,ar,bn,ur,id,de,ja,pt-BR. Russian is left out, as it was for the app.wiki/as Dockhand stack 137 on ragnar. It replaces the HTML half ofscripts/wiki_site.py.How it works (as tried on 2026-11-01)
In Weblate (project
postulo):wiki-siteforsite.json. Today these arewiki-getting-startedandwiki-site(linked to it).lang/*/<Page>.md, template<Page>.md, language code stylebcp.mainwithvcs: gitand no push branch. A Forgejo wiki has no branches and no pull requests, so Weblate's usual flow (#349) is not possible there.translationsteam was given wiki write (repo.wiki). Without it the push answers "Repository not found".fr-FR:frmakes Weblate write French tolang/fr-FR/(France French, as the app'sfr_FR) instead oflang/fr/. Portuguese comes out aslang/pt-PT/without an alias.On the site:
/, and each published language is under/<tag>/, with its own menu, search, interface language and right-to-left setting.lang/<tag>/site.json./is sent to the browser's language. That redirect lives in nginx and so is not part of the Postulo repo.What the trial showed about Weblate's Markdown format:
{1}).file-scan.manage_unitsmust be off when the component is created, or Weblate refuses it.ef0a3e0and81387cf. Check each page for this before its component is created.<address>) swallowed the rest of Writing a plugin (fixed in8d2d176). The site build does not catch this, so scan for it alongside the glued lists.What is left
1. Components for every page, stage by stage, each checked first for the two traps above:
_Sidebar.md, which gives each language its menu titles.2. Languages
wiki/nginx.conf.3. Postulo's own tools
scripts/weblate.pyacts on every component of the project, and two commands would break the wiki ones.configure --round-tripwould move them to the pull-request flow, andaddonswould add machine drafting to them. Both must skipwiki-*(or the wiki gets a Weblate category of its own).scripts/wiki_site.py: retirebuild.staleandstampare replaced by Weblate's own per-paragraph tracking. Keepcomponentsonly if it also gives the settings above (vcs, push, alias), or drop it. Updatetests/test_wiki_site.pyto match.docs/TRANSLATING.md§ The wiki in other languages andCONTRIBUTING.md: the way chosen here, the stages and the traps.4. The release gate
scripts/release_tools.py, which already reads the release's languages). Decide: do drafts count, as they do for the app's catalogues, or must the maintainer have reviewed them?5. A "not yet reviewed" banner (to decide)
Done when
scripts/weblate.pyleaves the wiki components alone,wiki_site.pyno longer builds HTML, and the docs describe the way the wiki is translated.Refs #352, #345, #347, #349, #706.
Decided (maintainer, 2026-11-01): drafts count. The release gate in item 4 counts a draft (needs editing) as present, as it does for the app's catalogues. A release waits only for empty paragraphs in fr-FR or pt-PT on an open stage's pages, not for the maintainer's review. Reviewing stays the maintainer's work in Weblate and does not block a release.