nextcloud / nextcloud/collectives

Multi language (translation) support

Open
#1,304 3 comments 9 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

design discuss enhancement
Dominant language
JavaScript
Stars
195
Forks
51
Avg merge
1d 2h
Merged PRs (30d)
48

Description

Is your feature request related to a problem? Please describe.
Collectives is not so good for maintaining documentation in multiple languages at the moment.

Describe the solution you'd like
I imagine an optional feature (to be toggled on/off per collective) that allows to provide translations of pages in different languages. On a page that has translations available, it should be possible to switch between the translations. When opening a page without language parameter, the translation should be selected from the browsers locale, with a fallback.

Ideally a default language could be selected and pages in this language regarded as "source of origin". Translations could be marked as "up-to-date" and would be marked outdated once the source page got changed.

Describe alternatives you've considered

  • Maintain separate collectives for each language with a similar page structure.
  • Maintain one collective with different languages as first level pages and similar page structure below.
  • Maintain one collective with one global page structure and translated pages next to each other.

All of these solutions bring different maintainability issues.

Additional context
I don't have a good idea how to map page translation files yet. One option would be the convention to use Title.<language-code>.md as filenames. But that would bring the problem how to translate page titles, as currently the page title is hardcoded in the markdown filename.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points; start by locating how collective settings, Markdown filenames, page titles, and browser locale handling currently work. Define the translation mapping, language selection and fallback, source-page updates, and outdated status before implementation. Done means an optional per-collective translation feature supports switching languages and documented fallback behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, markdown
Domain
documentation, internationalization
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.