Collaborate, Innovate, Automate

Translation Drift Dashboard

A SharePoint Framework web part that surfaces translation drift across a multilingual SharePoint Online site — showing which pages are in sync with their source language, which are stale, and which have no translation at all. Built to support governance of multilingual intranets where keeping language versions aligned is an ongoing operational challenge.

Translation Drift Dashboard web part showing summary tiles for total, In Sync, Stale, and Missing pages, and a sortable table with colour-coded status pills, days drift, and View links

The Problem It Solves

SharePoint Online's native multilingual pages feature makes it straightforward to create translated versions of pages and notify translators when updates are needed. What it does not provide is a site-wide view of translation health. To know which pages are stale — where the English source has been updated but the French translation hasn't — a site owner has to click into each page individually and check the Translation pane. On a site with dozens or hundreds of pages, that's not a viable governance approach.

The result in most organisations is translation drift that goes unnoticed. Editors update English content, translators are notified, the notification gets missed or deprioritised, and French-speaking users start encountering pages where the content no longer matches what their colleagues are reading. Over time the gap widens and trust in the multilingual experience erodes.

This web part makes translation health visible at a glance — surfacing the full picture of a site's translation status in a single dashboard that a site owner or intranet manager can review in seconds.

How It Works

The web part reads from a TranslationDrift SharePoint list that is populated by a companion PnP PowerShell script. The script scans the Site Pages library, matches English source pages to their French translations using the SharePoint multilingual _SPTranslationSourceItemId field, calculates the number of days between the English and French modified dates, and writes a status row for each page — In Sync, Stale, or Missing.

The web part then renders that list as an interactive dashboard with:

The web part does not perform the drift calculation itself — that responsibility stays with the PowerShell script, which is designed to run on a schedule (or manually as needed) and update the list. This separation keeps the web part fast and simple, with no heavy processing at render time.

Prerequisites

Web Part Properties

The web part exposes two configurable properties via the property pane:

Property Default Description
List name TranslationDrift The name of the list to read from — change if you've deployed the list under a different name
Stale threshold (days) 7 Number of days drift before a page is considered Stale rather than In Sync

Deployment

1. Deploy to App Catalog

Upload the .sppkg to your tenant App Catalog (/sites/appcatalog/AppCatalog). When prompted, choose whether to deploy tenant-wide or site-by-site depending on how many sites you want to surface the dashboard on.

2. Add to site

Go to Site Contents on the target site → Add an app → find translation-drift-dashboard → install. Then add the web part to any page via the web part picker — search for "Translation Drift".

3. Configure

Open the property pane and confirm the list name matches your deployed TranslationDrift list. Adjust the stale threshold if your organisation's translation SLA differs from the default 7-day window.

The Companion Scripts

This web part is part of a three-piece translation governance toolkit:

Both scripts are available on the scripts page.

Governance Use Cases

Built With