Skip to content

docs: document automated translation updates - #2410

Open
Martin Krzykawski (MartinKrzykawski) wants to merge 2 commits into
mainfrom
docs/automated-translation-updates
Open

docs: document automated translation updates#2410
Martin Krzykawski (MartinKrzykawski) wants to merge 2 commits into
mainfrom
docs/automated-translation-updates

Conversation

@MartinKrzykawski

Copy link
Copy Markdown
Contributor

Summary

Documents the automated part of the translation workflow, which was not covered anywhere so far. New article
concepts/framework/translations/automated-translation-updates.md describes both halves of the chain:

  • Upstream (Crowdin): how en-GB source snippets and the de-DE translation are collected from
    shopware/shopware into shopware/translations, uploaded to Crowdin, translated and approved by contributors, and
    downloaded back into a reviewed pull request together with the crowdin-metadata.json update. Includes the daily
    schedule of the three workflows, the entry point for contributors (translate.shopware.com),
    why source strings are changed in code instead of in Crowdin, and the known review pitfalls (snippets containing
    HTML, diffs in the source languages).
  • Downstream (shop): the translation.update scheduled task — default interval, what it does on each run,
    its requirements (background worker, outbound HTTPS, private filesystem), how to inspect, trigger, or deactivate it,
    what it explicitly does not do (install locales, change the active flag, override database snippets, remove
    languages), failure handling, and a troubleshooting table.

Supporting adjustments:

  • Cross-links from built-in-translation-system.md, the translations index.md, and extension-points.md.
  • translation.update added to the default scheduled tasks in guides/hosting/infrastructure/scheduled-task.md,
    including the note that it only runs when a translation is installed.
  • Completed the translation section of the command reference (translation:update, translation:list,
    translation:lint-filenames, translation:validate).
  • Fixed the wrong command name snippet:validate to translation:validate in extension-points.md.

Related links

Checklist

  • I reviewed affected links, code samples, and cross-references, including PageRef references where relevant.
  • I added or updated redirects in .gitbook.yaml if pages were moved, renamed, or deleted. — not applicable, no page was moved or renamed
  • I updated .wordlist.txt (and sorted it) if spellcheck flags new legitimate terms. — not needed, spellcheck passes unchanged
  • Any required dependent changes in downstream modules have already been merged and published.
  • This pull request is ready for review.

Notes

Two points for the reviewer:

  1. The article states that the scheduled task is available starting with 6.7.13.0, which is not released yet at the
    time of writing (the task landed on 6.7.13.x). Please confirm the version before merging.
  2. Nothing in trunk consumes the translation Admin API endpoints from the Administration yet, so the article
    deliberately mentions only the CLI. The Administration part is a follow-up and will be documented together with
    that implementation.

Verified locally: markdownlint and the spellcheck (make spellcheck-local) pass, and all relative links, anchors, and
PageRef targets resolve. All statements about the task, the commands, and the pipeline were checked against the code
in shopware/shopware and the workflows on shopware/translations@main.

Adds a dedicated article for the two automated halves of the translation
workflow that were previously undocumented:

- the upstream Crowdin pipeline: how en-GB/de-DE source snippets are
  collected from shopware/shopware, uploaded to Crowdin, translated and
  approved by contributors, and downloaded back into shopware/translations
  including the metadata that installations compare against
- the downstream `translation.update` scheduled task: interval, what it
  does on each run, its requirements, how to inspect, trigger or deactivate
  it, what it explicitly does not do, and failure handling

Cross-links the new page from the built-in translation handling page, the
translations index, and the extension points page. Adds the task to the
list of default scheduled tasks in the hosting guide and completes the
translation section of the command reference.

Fixes the command name `snippet:validate` to `translation:validate`.
Copilot AI review requested due to automatic review settings July 30, 2026 08:53
@shopware-dev-docs-connector

shopware-dev-docs-connector Bot commented Jul 30, 2026

Copy link
Copy Markdown

Developer Docs healthcheck

Status: Completed with success.
Repository: shopware/docs
Commit: fe3ede6
Preview: https://developer-documentation-6uiv0ewg4-shopware-frontends.vercel.app
Workflow run: #4641

@github-actions

Copy link
Copy Markdown
Contributor

📊 Documentation Impact Analyzer

Metric Result
Score 34
Recommendation ✅ Highly meaningful
Categories Framework

Reasons

  • +4: Framework
  • +10: 5 new headings
  • +4: Code examples
  • +4: Framework
  • +4: 2 new headings
  • +4: Framework
  • +4: Framework

This score is automatically generated based on documentation impact heuristics.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds missing documentation for Shopware’s automated translation update workflow, covering both the upstream Crowdin/GitHub Actions pipeline and the downstream translation.update scheduled task in Shopware, and wires this new documentation into existing translation-related pages.

Changes:

  • Adds a new concept page describing the end-to-end automated translation update chain (Crowdin ↔ shopware/translations ↔ Shopware scheduled task).
  • Adds/adjusts cross-links across translation docs and scheduled task documentation.
  • Completes/aligns the command reference for translation-related CLI commands.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
resources/references/core-reference/commands-reference.md Adds missing translation CLI commands to the command reference table.
guides/hosting/infrastructure/scheduled-task.md Documents translation.update as a default scheduled task and adds contextual notes/linking.
concepts/framework/translations/index.md Adds the new automated translation updates page to the translations section index.
concepts/framework/translations/extension-points.md Fixes the command name to translation:validate and links to the new automation docs.
concepts/framework/translations/built-in-translation-system.md Cross-links to the new automation page and notes the scheduled task behavior.
concepts/framework/translations/automated-translation-updates.md Introduces the new end-to-end documentation page for automated translation updates.
Comments suppressed due to low confidence (2)

concepts/framework/translations/automated-translation-updates.md:122

  • The docs table guidelines recommend introducing tables with a complete sentence (resources/guidelines/documentation-guidelines/04-fonts-and-formats/01-text.md:105). Consider adding an explicit lead-in before this properties table.

| Property               | Value                                                                  |

concepts/framework/translations/automated-translation-updates.md:195

  • Per the documentation table guidelines, table rows should not end sentences with punctuation and tables should be introduced with a complete sentence (resources/guidelines/documentation-guidelines/04-fonts-and-formats/01-text.md:101-106). This troubleshooting table currently has no lead-in sentence, and several cells end sentences with periods.
## Troubleshooting

| Symptom                                                     | Cause and solution                                                                                                                              |
|-------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
| The task never runs                                         | No background worker is consuming the queue. See [Scheduled Task](../../../guides/hosting/infrastructure/scheduled-task.md).                     |

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread guides/hosting/infrastructure/scheduled-task.md Outdated
Comment thread concepts/framework/translations/automated-translation-updates.md
@MartinKrzykawski Martin Krzykawski (MartinKrzykawski) added the added Added content label for changelog label Jul 30, 2026
Fix the link in the scheduled task info box: the "built-in translation
system" phrase pointed at the automation page instead of the built-in
translation handling page. The automation page is now linked from a
separate sentence, so each link text matches its target. Also correct
the surrounding grammar in that sentence.

Introduce the schedule, task properties, and troubleshooting tables with
a lead-in sentence, and drop the sentence-final punctuation from the
troubleshooting cells, as required by the table rules in
resources/guidelines/documentation-guidelines/04-fonts-and-formats/01-text.md.
@github-actions

Copy link
Copy Markdown
Contributor

📊 Documentation Impact Analyzer

Metric Result
Score 34
Recommendation ✅ Highly meaningful
Categories Framework

Reasons

  • +4: Framework
  • +10: 5 new headings
  • +4: Code examples
  • +4: Framework
  • +4: 2 new headings
  • +4: Framework
  • +4: Framework

This score is automatically generated based on documentation impact heuristics.


## Overview

Translations are not part of a Shopware release. They are maintained in Crowdin, published to the

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Translations are not part of a Shopware release. They are maintained in Crowdin, published to the
Translations are not part of a Shopware release. They are maintained in Crowdin ([translate.shopware.com](https://translate.shopware.com)), published to the

Comment on lines +16 to +18
* Upstream, a set of scheduled GitHub Actions workflows exchanges snippets between `shopware/shopware`, Crowdin, and
the translations repository.
* Downstream, the `translation.update` scheduled task refreshes the translations that are installed in a shop.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Upstream, a set of scheduled GitHub Actions workflows exchanges snippets between `shopware/shopware`, Crowdin, and
the translations repository.
* Downstream, the `translation.update` scheduled task refreshes the translations that are installed in a shop.
* Upstream: A set of scheduled GitHub Actions workflows exchanges snippets between `shopware/shopware`, Crowdin, and
the translations repository.
* Downstream: The `translation.update` scheduled task refreshes the translations that are installed in a shop.

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

Labels

added Added content label for changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Developer Documentation

3 participants