name: UI Translations on: pull_request: paths: - "client/ui/i18n/locales/**" - "client/ui/i18n/check-translations.mjs" - ".github/workflows/ui-translations.yml" push: branches: - main paths: - "client/ui/i18n/locales/**" - "client/ui/i18n/check-translations.mjs" permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || github.actor_id }} cancel-in-progress: true jobs: check-translations: name: Check translation key parity runs-on: ubuntu-latest timeout-minutes: 5 steps: - name: Checkout repository uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Set up Node.js uses: actions/setup-node@v7 with: node-version: "22" # English (en) is the source of truth for translation keys; every other # locale declared in _index.json must carry the exact same key set. - name: Check translation key parity run: node client/ui/i18n/check-translations.mjs