Skip to content

Sync user manual translations to the supported stable branches #15823

Open

Description

@bargib

The Transifex integration only writes translations to master (the resources are named …--master). Stable branches keep the translations they had when they were branched, so the versioned user manuals never receive translation updates, even though their English text is almost identical to master and English fixes are backported.

Example (Danish): The Danish user manual was completed on Transifex in October 2026 (3,375 of 3,375 strings). It is live under /latest/, but on stable34 and stable35 the folder user_manual/locale/da was last changed on 2025-07-11; on stable35 it contains 14 of the 96 files that master has. As a result, https://docs.nextcloud.com/server/35/user_manual/da/files/encrypting_files.html is in English, while https://docs.nextcloud.com/server/latest/user_manual/da/files/encrypting_files.html is in Danish.

Other languages are affected the same way. Last commit in user_manual/locale/<lang>:

Language master stable35 (branched 2026-08-25)
fr 2026-10-17 2026-08-16
es 2026-09-15 2025-07-21

For comparison, server and apps receive translations on their stable branches every night (e.g. fix(l10n): Update translations from Transifex on nextcloud/server stable34 on 2026-10-18), so users of 34.x and 35.x get updated UI translations but not an updated manual.

Proposal: copy the translation files from master to the supported stable branches on a schedule, e.g. a workflow that syncs user_manual/locale/* from master into each stable3x and opens or updates a PR, like the existing automated PRs. Sphinx matches on the English source text, so strings that are the same on the stable branch are translated and strings that changed fall back to English. This needs no extra work in Transifex.

Adding the stable branches to the Transifex integration would also work, but it would create separate resources per branch for translators to maintain.

AI

Used Claude Opus 5.5 to assist in investigating this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions