Jump to content

Help:Tillägg:Translate/Grupphantering

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

Grupper måste bearbetas efter att de konfigurerats. Detta betyder att definitionstexter indexeras och nödvändiga cachar är befolkade. För detta behöver du köra importExternalTranslations.php för att behandla ändringarna. Du kan köra detta underhållningsskript som angivits nedan.

Från Translate-tilläggets bibliotek:

php scripts/importExternalTranslations.php

Det ovannämnda skriptet letar upp ändringar i meddelandena och tillgängliggör endast dessa ändringar för behandling för att spara tid. Bland ändringarna återfinns:

  • ändringar av meddelandeinnehåll på engelska
  • ändringar av meddelandedokumentationsinnehåll
  • felmatchande innehåll för grupp/språk
  • ytterligare inlägg i en fil för en grupp/språk (t.ex. externt underhållen)

För nya stilgrupper, gå till Special:ManageMessageGroups och importera alla språk. På denna specialsida kan baserade meddelandegrupper hanteras (FileBasedMessageGroup). Denna sida låter en uppdatera filcache, import och fuzzy för källspråksmeddelanden, samt importera/exportera meddelanden på andra språk.

Stark synkronisering

Stark synkronisering är en mekanism som förhindrar korruption av översättningsdata som orsakas av synkroniseringsproblem. Den gör detta genom att hålla koll på synkroniseringshändelser och blockera osäkra åtgärder om synkroniseringen pågår, är ofullständig eller har ett fel. Den skapades för att hantera problem som statisk synkronisering inte kunde. Till exempel:

  1. Upstream ändrar alla översättningsfiler: till exempel, genom att uppdatera ett upphovsrättsdatum i en sträng och ta bort några oanvända strängar (i grund och botten alla ändringar som gör att --safe-import inte automatiskt behandlar ändringar).
  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.

Se även