Help:Extension:Translate/メッセージ群の保守

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

メッセージ群の構成が終了したら、それらを処理します。 この処理では、定義文のインデックスと必要なキャッシュが構築されます。 そのため、変更を処理するために importExternalTranslations.php を実行する必要があります。 このメンテナンス スクリプトは、下記の手順で実行できます。

Translate 拡張機能のディレクトリで以下を実行します:

php scripts/importExternalTranslations.php

上記のスクリプトは、メッセージの変更点を検出し、時間節約のためにこれらの変更点のみを利用可能にします。変更点は以下を含みます:

  • 英語のメッセージ内容の変更
  • メッセージの説明文の変更
  • メッセージ群/言語の本文の不整合
  • メッセージ群/言語単位でファイル内に現れる追加的な項目 (外部で保守される)

新しいスタイル群はSpecial:ManageMessageGroups に進み、すべての言語を再構築 (インポート) します。 この特別ページでファイル単位のメッセージ群 (FileBasedMessageGroup) を管理します。 このページではファイルのキャッシュの更新、翻訳元言語のメッセージのインポートと曖昧化、その他の言語のメッセージのインポート/更新を行います。

強力な同期

強力な同期は、同期の問題によって翻訳データが破損するのを防ぐ仕組みです。 これは、同期イベントを追跡し、同期が進行中、不完全、または失敗している場合に安全でない操作をブロックすることで実現されます。 これは、状態同期では対処できなかった問題を解決するために作られました。 例:

  1. アップストリームがすべての翻訳ファイルを変更します。例えば、文字列内の著作権日付を更新したり、未使用の文字列を除去したりします。(基本的に、--safe-import が変更を自動処理できなくなるような変更が該当します。)
  2. 読み取り専用チェックアウトをバージョン A から最新のバージョン B に更新します。
  3. Special:MessageGroupChanges では変更を処理しません
  4. バージョン A に基づいて、バージョン B の上に翻訳をエクスポートしてコミットし、バージョン C を作成します。

バージョン B の上流の変更は失われます。 次回のインポートでは、読み取り専用のチェックアウトを自動的にバージョン C に更新するため、バージョン B の変更は一切確認せず、処理することはありません。

The process

ソース リポジトリからの変更は、MessageUpdateJob バックグラウンド ジョブを介して処理されます。 「メッセージ群同期キャッシュ」を追加し、次の内容を追跡します:

  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

メッセージの更新処理エラーは、一定の時間が経過した後に「同期中」としてメッセージ群同期キャッシュにまだ存在するメッセージを確認することで特定されます。 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

これにより、リモート ソースからの変更が 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

インポートおよびエクスポートのスクリプトには、エクスポートとインポートが同時に実行されないようにするためのグローバル同期ロックが追加されました。 理想的なワークフローは、まずインポートを実行し、すべてのメッセージ群の処理が完了した後にエクスポートを実行することです。

関連項目