Skip to content

New translations (Translated) - #432

Closed
github-actions[bot] wants to merge 7 commits into
mainfrom
localization
Closed

github-actions[bot] wants to merge 7 commits into
mainfrom
localization

Conversation

@github-actions

Copy link
Copy Markdown

Translation run (production, service type AI)

Language Translated Repaired Warnings Copied Failed Removed
es 8 1 1 8 5 0
zh 11 1 3 8 3 0

es: 60,926 characters submitted, 60,926 billed.

es: repaired from English: 1 markers in 1 file(s).

es: failed (translation kept as before)

  • getting-started/personalizing-te3.md — code fences 16 -> 8
  • how-tos/Advanced-Filtering-of-the-Explorer-Tree.md — code fences 12 -> 6
  • how-tos/drag-drop.md — code fences 4 -> 2
  • how-tos/semantic-bridge-rename-objects.md — code fences 6 -> 3
  • kb/DR002.md — code fences 4 -> 2

es: written with warnings

  • security/security-privacy.md — inline code spans 21 -> 0 (missing ['%LocalAppData%\\TabularEditor3\\AI\\Conversations\\', 'DisableAi', 'DisableAi', 'DisableAiChat', '127.0.0.1'], added [])

zh: 65,404 characters submitted, 65,404 billed.

zh: repaired from English: 2 links in 1 file(s).

zh: failed (translation kept as before)

  • how-tos/Advanced-Filtering-of-the-Explorer-Tree.md — code fences 12 -> 6
  • how-tos/drag-drop.md — code fences 4 -> 2
  • how-tos/semantic-bridge-rename-objects.md — code fences 6 -> 3

zh: written with warnings

  • references/release-notes/3_1_2.md — inline code spans 15 -> 0 (missing ['PrivacySetting', '-multicorejit', 'HASH', 'NAMEOF', 'COLUMNSTATISTICS'], added [])
  • references/release-notes/3_3_4.md — inline code spans 2 -> 0 (missing ['NATURALINNERJOIN', 'NATURALLEFTOUTERJOIN'], added [])
  • security/security-privacy.md — inline code spans 21 -> 0 (missing ['%LocalAppData%\\TabularEditor3\\AI\\Conversations\\', 'DisableAi', 'DisableAi', 'DisableAiChat', '127.0.0.1'], added [])

github-actions Bot and others added 4 commits October 16, 2026 18:26
Restore plain output fence in Metric View rename how-to

csharp_doctest requires a run block with output=true to be followed
immediately by a plain (untagged) fence. #416 changed it to ```text,
which fails the Doctest C# code blocks job on main.
@github-actions

Copy link
Copy Markdown
Author

Translation run (production, service type AI)

Language Translated Repaired Warnings Copied Failed Removed
es 0 0 0 0 1 0
zh 0 0 0 0 1 0

es: 2,449 characters submitted, 2,449 billed.

es: failed (translation kept as before)

  • how-tos/semantic-bridge-rename-objects.md — code fences 6 -> 4

zh: 2,449 characters submitted, 2,449 billed.

zh: failed (translation kept as before)

  • how-tos/semantic-bridge-rename-objects.md — code fences 6 -> 4

@github-actions

Copy link
Copy Markdown
Author

Translation run (production, service type AI)

Language Translated Repaired Warnings Copied Failed Removed
es 18 13 13 0 14 0
zh 17 1 12 0 15 0

es: 471,726 characters submitted, 471,726 billed.

es: repaired from English: 32 markers in 13 file(s).

es: failed (translation kept as before)

  • features/Semantic-Model/direct-lake-sql-model.md — code fences 2 -> 1
  • features/ai-assistant.md — code fences 4 -> 2
  • features/dax-debugger.md — code fences 4 -> 2
  • features/dax-editor.md — code fences 2 -> 1
  • features/dax-query.md — code fences 6 -> 3
  • features/mcp-server.md — code fences 10 -> 5
  • features/unsaved-changes.md — code fences 2 -> 1
  • getting-started/refresh-preview-query.md — code fences 2 -> 1
  • how-tos/drag-drop.md — code fences 4 -> 2
  • how-tos/xmla-as-connectivity.md — code fences 6 -> 5
  • references/preferences.md — code fences 12 -> 6
  • references/user-options.md — code fences 6 -> 3
  • security/ai-compliance.md — code fences 2 -> 1
  • tutorials/new-as-model.md — code fences 2 -> 1

es: written with warnings

  • features/auto-reload.md — inline code spans 6 -> 0 (missing ['git pull', '.bim', '.json', '.tmdl', '.tmdl'], added [])
  • features/dax-optimizer-integration.md — inline code spans 2 -> 0 (missing ['%LocalAppData%\\TabularEditor3\\DaxOptimizer', '%LocalAppData%\\TabularEditor3\\DaxOptimizer'], added [])
  • features/deployment.md — inline code spans 3 -> 0 (missing ['********', 'Password', 'Pwd'], added [])
  • features/pivot-grid.md — inline code spans 10 -> 0 (missing ['[Total Net Order Value]', '[Net Orders]', '.te3pivot', '.te3pivot', '.te3pivot'], added [])
  • features/views/user-interface.md — inline code spans 2 -> 0 (missing ['<database>@<server>', '<host>:<port>'], added [])
  • getting-started/creating-and-testing-dax.md — inline code spans 9 -> 0 (missing ['Expression', 'Expression', 'Detail Rows Expression', 'Name', 'Hidden'], added [])
  • how-tos/deploy-current-model.md — inline code spans 1 -> 0 (missing ['.bim'], added [])
  • how-tos/load-save.md — inline code spans 5 -> 0 (missing ['Model.bim', '.bim', '.bim', '.bim', 'git pull'], added [])
  • references/downloads.md — inline code spans 2 -> 0 (missing ['.exe', '.zip'], added [])
  • references/release-notes/3_27_1_0.md — inline code spans 21 -> 0 (missing ['57171F0B45F6F700E09A9140480A753134A94993DC9F74629B7CBD42D2C09272', '8A3948B1E85EA331ACF151FDEA2C47FEFEFB28E377A7248A785AF760B706B1D7', '7761B99F117A87A38204D984C52F26A95B740B39720044ABA805F123D9BBB0CF', '90A0DA17220255D81EFE80B8381FCB14E447BF5569ED53DDF11AE732A6055746', '54D8F8CBC083B11C2025A2D32A1E0E32A3CDB5E10AE0ADBCB3E9A179EF6BC8C8'], added [])
  • references/supported-files.md — inline code spans 6 -> 0 (missing ['Name', 'Description', '.platform', '.tmuo', '*.tmuo'], added [])
  • security/security-privacy.md — inline code spans 21 -> 0 (missing ['%LocalAppData%\\TabularEditor3\\AI\\Conversations\\', 'DisableAi', 'DisableAi', 'DisableAiChat', '127.0.0.1'], added [])
  • tutorials/new-pbi-model.md — inline code spans 1 -> 0 (missing ['CTRL+N'], added [])

zh: 471,726 characters submitted, 471,726 billed.

zh: repaired from English: 2 links in 1 file(s).

zh: failed (translation kept as before)

  • features/Semantic-Model/direct-lake-sql-model.md — code fences 2 -> 1
  • features/ai-assistant.md — code fences 4 -> 2
  • features/dax-debugger.md — code fences 4 -> 2
  • features/dax-editor.md — code fences 2 -> 1
  • features/dax-query.md — code fences 6 -> 3
  • features/mcp-server.md — code fences 10 -> 5
  • features/unsaved-changes.md — code fences 2 -> 1
  • getting-started/refresh-preview-query.md — code fences 2 -> 1
  • how-tos/drag-drop.md — code fences 4 -> 2
  • how-tos/xmla-as-connectivity.md — code fences 6 -> 5
  • references/preferences.md — code fences 12 -> 6
  • references/user-options.md — code fences 6 -> 3
  • security/ai-compliance.md — code fences 2 -> 1
  • tutorials/new-as-model.md — code fences 2 -> 1
  • tutorials/new-pbi-model.md — headings 2 -> 1

zh: written with warnings

  • features/auto-reload.md — inline code spans 6 -> 0 (missing ['git pull', '.bim', '.json', '.tmdl', '.tmdl'], added [])
  • features/dax-optimizer-integration.md — inline code spans 2 -> 0 (missing ['%LocalAppData%\\TabularEditor3\\DaxOptimizer', '%LocalAppData%\\TabularEditor3\\DaxOptimizer'], added [])
  • features/deployment.md — inline code spans 3 -> 0 (missing ['********', 'Password', 'Pwd'], added [])
  • features/pivot-grid.md — inline code spans 10 -> 0 (missing ['[Total Net Order Value]', '[Net Orders]', '.te3pivot', '.te3pivot', '.te3pivot'], added [])
  • features/views/user-interface.md — inline code spans 2 -> 0 (missing ['<database>@<server>', '<host>:<port>'], added [])
  • getting-started/creating-and-testing-dax.md — inline code spans 9 -> 0 (missing ['Expression', 'Expression', 'Detail Rows Expression', 'Name', 'Hidden'], added [])
  • how-tos/deploy-current-model.md — inline code spans 1 -> 0 (missing ['.bim'], added [])
  • how-tos/load-save.md — inline code spans 5 -> 0 (missing ['Model.bim', '.bim', '.bim', '.bim', 'git pull'], added [])
  • references/downloads.md — inline code spans 2 -> 0 (missing ['.exe', '.zip'], added [])
  • references/release-notes/3_27_1_0.md — inline code spans 21 -> 1 (missing ['57171F0B45F6F700E09A9140480A753134A94993DC9F74629B7CBD42D2C09272', '8A3948B1E85EA331ACF151FDEA2C47FEFEFB28E377A7248A785AF760B706B1D7', '7761B99F117A87A38204D984C52F26A95B740B39720044ABA805F123D9BBB0CF', '90A0DA17220255D81EFE80B8381FCB14E447BF5569ED53DDF11AE732A6055746', '54D8F8CBC083B11C2025A2D32A1E0E32A3CDB5E10AE0ADBCB3E9A179EF6BC8C8'], added [])
  • references/supported-files.md — inline code spans 6 -> 0 (missing ['Name', 'Description', '.platform', '.tmuo', '*.tmuo'], added [])
  • security/security-privacy.md — inline code spans 21 -> 0 (missing ['%LocalAppData%\\TabularEditor3\\AI\\Conversations\\', 'DisableAi', 'DisableAi', 'DisableAiChat', '127.0.0.1'], added [])

@mlonsk mlonsk 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.

Not ready for use, the required parts are not translated

@mlonsk mlonsk closed this Oct 23, 2026
@mlonsk
mlonsk deleted the localization branch October 23, 2026 09:16
mlonsk added a commit that referenced this pull request Oct 27, 2026
… service (#436)

* Translate only changed segments and protect code from the translation service

When the English of a translated file changes, diff the English the translation
was made from (status sourceBlob, verified against sourceHash, else looked up in
git history) against the current English and send only what changed:
- Markdown: changed blocks (paragraphs, headings, list items, table rows, alerts)
  and frontmatter title/description; unchanged and moved blocks are kept from the
  translation; blocks whose only change is inline code, a marker, a link target or
  the list number are repaired without a request; fenced code comes from English.
- _ui-strings.json: changed keys. toc.yml: changed names (matched by name + href).
Files are sent whole when the translation does not align with or verify against
its English, is the English text, mostly changed (segmentDiff.maxChangedRatio) or
when --retry-failed retries a failed segment update.

Unchanged blocks are sent as untranslatable context (not billed):
segmentDiff.contextSegments (default 2 per side), overridable with the
TRANSLATED_CONTEXT_SEGMENTS repository variable.

Code placeholders: the service rewrites backticks as quotation marks, which
broke code fences and inline code in the first production run (#432). Fenced
blocks and inline code spans are now sent as {{fN}}/{{cN}} placeholders and put
back on delivery; a missing placeholder rejects the delivery. Losing inline code
spans is now a problem instead of a warning.

Also: restore_positionally leaves spans the translation reordered alone,
--migrate-blobs backfills sourceBlob, the dry-run job checks out full history.

* Record sourceBlob for existing translations

Output of translate-content.py --migrate-blobs: the git blob of the English
version each translation was made from (es 421, zh 420 entries).

* Harden the translation run against lost or blocked paid work

- Repair heading-level-only changes from the existing translation, without a request.
- A rejected key (401/403) stops the run and records nothing; other failed requests
  are recorded but planned again, since they were not billed.
- Retry 408, honour Retry-After (capped at 60 s) and jitter the backoff.
- --keep-rejected saves billed deliveries that fail verification.
- --merge-status rebuilds the status files entry by entry after the translation
  branch is folded in, so older branch entries never overwrite newer ones from main.
- Workflow: nightly schedule instead of push; 35-minute step timeout below the job's
  45; push and PR steps run on cancel; this run's translations, rejected deliveries
  and the report are uploaded as an artifact.

* Skip paid retranslation where the existing translation already covers the change

- downloads, release-history, user-options (es, zh): version, date and URL updates,
  "six" -> "seven" and a new table row, built from the existing translated siblings
  through the segment rebuild and verification; recorded at the current English.
- Structurally stale translations repaired and recorded against the English they
  were made from (Crowdin sync 5c994d1): security-privacy (es, zh: link spacing
  matched to the English), DR002 (es: duplicated clause removed), release notes
  3_0_3, 3_1_2, 3_3_4 (zh: extra or duplicated onboarding sentence removed),
  personalizing-te3 (es: mistranslated heading rewritten).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant