Skip to content

Request translation sync for RoomVox #986

Description

@Rikdekker

Prologue

The Nextcloud community on Transifex produces the translations of your app. To this end, the app author undertakes to comply with the following requirements:

  • The app must be available in the Nextcloud App Store. Should the app be removed from the store, the translation work on Transifex will be paused or the resource removed.
  • The app author must create an account on Transifex and join the Nextcloud project. This makes it easier to respond to queries regarding the app’s strings.

👤 App repository

To be done by you

  • Link to your repository: https://github.com/nextcloud/RoomVox

  • If the app is not in the Nextcloud organisation — not applicable, RoomVox is in the nextcloud organisation

  • 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 app id (roomvox) substituted 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:roomvox]
    file_filter = translationfiles/<lang>/roomvox.po
    source_file = translationfiles/templates/roomvox.pot
    source_lang = en
    type        = PO
  • ⚙️ Validate your repository and translation strings:

    bash translations/validateSyncSetup.sh nextcloud RoomVox
  • Name of the Transifex user: rikdekker

    For details see https://nextcloud.com/translation/ .

App ID: roomvox

Source template is translationfiles/templates/roomvox.pot — 469 strings, extracted from both the Vue frontend and the PHP backend, validated with msgfmt --check. All frontend call sites use the literal t('roomvox', '…') form, so the extractor sees the complete set.

One thing you may want to decide: translationfiles/{de,fr,nl}/roomvox.po are seeded with the app's existing hand-made German, French and Dutch translations (361 of 469 strings each), so those languages don't start from zero. Happy to drop them if you'd rather the resource started empty.

🏗️ 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

    • Pull request:
    • Request review from rakekniven

🔣 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