Hilfe:Erweiterung:Übersetzen/Gruppenmanagement

This page is a translated version of the page Help:Extension:Translate/Group management and the translation is 100% complete.

Nach der Konfiguration der Gruppen müssen diese bearbeitet werden. Das bedeutet, dass Definitionstexte indiziert und benötigte Caches gefüllt werden müssen. Dafür musst du processMessageChanges.php laufen lassen, um die Änderungen verarbeiten zu lassen. Du kannst das Maintenance-Skript wie unten angegeben laufen lassen.

Aus der Directory der Übersetzungserweiterung:

php scripts/processMessageChanges.php

Das oben angegebene Skript findet Änderungen an Nachrichten und macht nur diese Änderungen zur Verarbeitung verfügbar, um Zeit zu sparen. Die Änderungen umfassen:

  • Änderungen des Inhalts englischer Nachrichten
  • Änderungen des Inhalts der Nachrichtendokumentation
  • nicht übereinstimmende Inhalte für Gruppen/Sprachen
  • zusätzliche Einträge in einer Datei für eine Gruppe/Sprache (d.h. extern entwickelt)

Für Gruppen der neuen Version gehe auf Special:ManageMessageGroups und stelle alle Sprachen wieder her (importiere sie). Auf dieser Spezialseite können dateibasierte Nachrichtengruppen verwaltet werden (FileBasedMessageGroup). Diese Seite erlaubt das Aktualisieren des Datei-Caches, Import und Fuzzy für Nachrichten in der Ausgangssprache sowie Import/Aktualisierung von Nachrichten in anderen Sprachen.

Strong synchronization

Strong synchronization is a mechanism which prevents corruption of translation data caused by synchronization issues. It does this by keeping track of synchronization events and blocking unsafe actions if synchronization is in progress, incomplete or has a failure. It was created to address problems that state synchronization could not. For example:

  1. Upstream modifies all translation files: for example, by updating a copyright date in a string and removing some unused strings (basically, any changes that make --safe-import to not process changes automatically).
  2. We update the read-only checkout from version A to latest version B.
  3. We do not process changes using Special:MessageGroupChanges
  4. We export and commit translations on top of B (but based on A) to create version C.

Upstream changes in version B are lost. For the next import we automatically update our read-only checkout to version C, so we never see or process changes in B.

The process

Incoming changes from source repositories are processed via the MessageUpdateJob background job. We've added a group synchronization cache that tracks:

  1. groups in sync - groups that have messages being processed via MessageUpdateJob in the job queue
  2. groups with errors - groups that have had messages update processing errors
  3. group in review - groups whose messages are waiting to be reviewed

Message update processing errors are identified by looking at messages that are still present in the group synchronization cache as "in sync" after a certain period of time. On rare occasions it may happen that the MessageUpdateJob was completed but did not inform the group synchronization cache that it was done. Such errors can be identified by looking at the message's content to see if it has been updated.

When running exports, following groups are skipped:

  1. groups in sync
  2. groups with errors
  3. group in review

This ensures that changes from Translate are not pushed out until incoming changes from source repositories are processed first.

Similarly when processing incoming changes, following groups are skipped:

  1. groups in sync
  2. groups with errors

This will ensure that changes from remote sources do not override choices made when processing changes in Special:MessageGroupChanges.

Administrators can see groups in review and groups with errors on Special:MessageGroupChanges. For groups with error, review the messages that have failed, and resolve them after verifying that the updates are properly applied.

Global Synchronization Lock

For the import and export scripts, a global sync lock has been added to ensure that exports and imports cannot be run simultaneously. The ideal workflow would involve first running the imports, allowing all groups to finish processing, and then running the exports.

Siehe auch