Conversation
…ns and paren-splitting artifacts in en_US/es_ES/de_DE
[CI] Update docs translations
[CI] Update docs translations
…ing artifacts in en_US/es_ES/de_DE
[CI] Update docs translations
[CI] Update docs translations
Integrate the validated DeepL documentation translation pipeline into rework
Salvialf
requested review from
Hotfirenet,
Mips2648,
Sekiro-kost,
tmartinez69009 and
zoic21
August 14, 2026 20:44
…o a single shared job and memory store
[CI] Update docs translations
Consolidate docs-translations.yml into a single job with shared translation memory
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This replaces the old, broken Jenkins-based documentation pipeline (issue #166) with a fully automated one, alongside a complete restructuring of the site's content layout. It's a large diff; this description is being published early, before every dependency has landed, specifically so reviewers can start orienting themselves and reviewing incrementally rather than facing the whole thing cold. It will be kept up to date as the remaining pieces (see "Do not merge until" below) land.
A note on reviewing this: GitHub's web UI can't render this PR's diff (47,978 changed files, ~700k insertions / ~1.2M deletions): the "Files changed" tab will show empty. Review it locally instead, via
git diff master rework, or commit by commit through the Commits tab, which does render individually. You can also just browse the final state directly on thereworkbranch on GitHub, without needing a diff at all.What changed
Content structure
core,plugins,plugins_contributor) moved from a language-prefixed scheme (/<lang>/<category>/...) to a category/version/plugin-first one (/<category>/<lang>/...,/core/<version>/<lang>/...,/plugins/<category>/<pluginid>/<lang>/...).blea/camera/edisio/enocean/rfxcom/zigbee/zwave), the last remaining block of duplicated content, was removed outright in favor of pointing tocompatibility.jeedom.com, which already serves as the canonical source for this content.css/js/img/fontsconsolidated underassets/.plugins/<category>/<lang>/index.md) are now generated from data (_data/plugins[_contributor]/<category>.yml) instead of hand-maintained Markdown tables, closing the door on the historical duplication bugs that came from editing those by hand.Navigation and link resolution
init.jswas split intoconfig.js/urlResolver.js/tools.js/404.js/index.js, and link resolution was substantially upgraded, not just adapted to the new URL scheme:localizeHrefruns on the raw path and redirects only if the result differs, not a fixed list of known-broken shapes, so it should keep absorbing future URL-shape regressions without new dedicated rules.Every redirect only fires if the computed target genuinely differs from the current path (loop-safe, verified against ~30 scenarios including adversarial slugs like
migration-to-4.6-guide). All of this happens client-side after a real 404 has already been served, so search engines still see genuine 404s; only human visitors benefit.Automation
jeedom/workflows/docs-publish.yml: shared cross-repo publish workflow (core + plugin destinations, category/alias resolution).jeedom/core#3460/ delestage'sdocs.yml: translate (viajeedom/jeetranslate-docs) + publish, per-repo. Also validated oncalendarvia its own stable release in the meantime.publishjobs are intentionally left commented out in all of these until this PR merges (publishing before that would write into the still-duplicated current layout).phpdoc.yml: pull-based PHPDoc regeneration, lives entirely indocumentations, validated end-to-end on its own disposable branch before merging.docs-translations.yml: general-content translation via DeepL (jeetranslate-docs), validated category by category on a disposable branch (all 12 categories:compatibility,concept,contribute,dev,home,howto,howtoadvance,installation,legal_notice,mobile,premiers-pas,presentation). Several real mistranslation bugs were found and fixed along the way, both injeetranslate-docs's own parser and via glossary entries. Runs as a single job covering all 12 categories with a shared translation memory. Its push trigger targetsmaster, notrework, so it stays dormant from this merge alone.Please hold off on publishing new official-plugin stable releases until this merges.
docs-publish's destination logic and the category-index generation are both changing here; a stable release landing on the old scheme in the meantime would need its diff manually reconciled afterward instead of just flowing through the new pipeline.market'sdocumentationSync(icon sync, category-index generation/reconciliation, obsolete-plugin cleanup, replacingjenkins::pluginBeta/pluginStable/pluginStableContributor) is reviewed and merged. The code is written, not yet opened as a PR.Market/beta,Market/stable,Market/stable_contributorare confirmed stopped. They should simply stop being triggered oncemarket's PR above deploys (it removes the calls that trigger them), nothing to actively decommission on the Jenkins side itself, but confirm before considering this done. Do not touchcompatibility_zwave,compatibility_z2m,translate_compatibility, orcore_release: unrelated jobs feedingcompatibility.jeedom.comandcore's own release tagging.Immediately after merging
publishjob injeedom/core'sdocs.yml(#3460), delestage'sdocs.yml, andcalendar'sdocs.yml, all gated on this exact merge.translate::updateTranslationcron and its now-deadmarketstub method for good (confirmed safe, just not yet done).