Skip to content

Translation request for twofactor_oath #968

Description

@ernolf

👤 App repository

To be done by you

  • Link to your repository: https://github.com/ernolf/twofactor_oath
  • If the app is not in the Nextcloud organisation
    • Invite nextcloud-bot with write permissions

      Note on the branch-protection checkbox below: main here is protected by a repository ruleset (not classic branch protection). Since individual users can now be added to ruleset bypass lists (shipped 2026-05-07, changelog below), I would prefer to keep the protection and add nextcloud-bot to the bypass list with the Exempt mode, instead of disabling protection entirely.

      https://github.blog/changelog/2026-05-07-repository-rulesets-user-bypass-and-branch-renaming/

      The bypass can only be created once the collaborator invite is accepted. Could you please ping me right after accepting the invite and before the first sync, so I can add the Exempt bypass and confirm it is in place?

      EDIT:

    • The 'nextcloud-bot' is added to the bypass list with 'Exempt':
      Image
      If the bot's push still fails despite the bypass, I will disable the protection for the sync as the template describes. Happy to test this newer approach with you.

    • Make sure all translated branches do not have branch protection enabled, see https://docs.nextcloud.com/server/latest/developer_manual/basics/front-end/l10n.html#setup-of-the-transifex-sync for more details

  • Create file l10n/.gitkeep with empty content
  • Add .l10nignore to exclude compiled JS files and thirdparty code, e.g. ignoring compiled javascript assets and composer PHP dependencies in the vendor/ directory:
    js/
    vendor/
    
  • Create file .tx/config with the following content, replace {{APPID}} with your app id 3 times:
    [main]
    host     = https://www.transifex.com
    lang_map = hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja, bg_BG: bg, cs_CZ: cs, fi_FI: fi
    
    [o:nextcloud:p:nextcloud:r:{{APPID}}]
    file_filter = translationfiles/<lang>/{{APPID}}.po
    source_file = translationfiles/templates/{{APPID}}.pot
    source_lang = en
    type        = PO
  • ⚙️ Validate your repository and translation strings:
    bash translations/validateSyncSetup.sh Owner Repository

🏗️ Sysadmin team

  • 👀 Ensure access:

  • ⚙️ Ensure repository setup and run initial source validation:

    bash translations/validateSyncSetup.sh Owner Repository
  • 🧑‍💻 Run the first sync manually:

    ssh transifex-sync.nextcloud.com
    cd /srv/docker-ci
    docker run -v /srv/cronie-data/transifexrc:/root/.transifexrc \
      -v /srv/cronie-data/gpg:/gpg \
      -v /srv/cronie-data/ssh/id_rsa:/root/.ssh/id_rsa \
      --rm -i ghcr.io/nextcloud/continuous-integration-translations-app \
      AUTHOR APPID
  • Transifex: New resource should appear

  • GitHub: Check if there was a sync commit in the repository

    • If not, go to Transifex, translate some strings in a language you know and trigger the sync again with the docker command
  • Transifex: On the resource go to Settings > Untick "Your translators can translate resource strings" > Save settings

  • ➕ Add "Owner Repository", into https://github.com/nextcloud/docker-ci/edit/master/translations/config.json

🔣 Translation team

Currently done by rakekniven

  • Transifex: Check quality of the English source strings
  • Transifex: Check translation guidelines
  • GitHub: Approve the above pull request (and merge it)
  • Transifex: On the resource go to Settings > Delete the resource
  • Forum: Add resource to wiki

🏗️ Sysadmin team

  • GitHub: Ensure the above pull request is merged
  • 📅 Enable the daily sync:
    ssh transifex-sync.nextcloud.com
    cd /srv/docker-ci
    git pull origin master

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions