Change record status: 
Project: 
Introduced in branch: 
11.4.x
Introduced in version: 
11.4.0
Description: 

The Locale module previously used file modification timestamps (filemtime()) to determine whether a local .po translation file had changed and needed to be re-imported. This approach is unreliable in modern deployment workflows — most notably when Docker COPY commands are used to add translation files to an image, because Docker does not preserve file mtimes.

The module now computes a xxHash (xxh128) of each local translation file and stores it in a new hash column on the {locale_file} database table. Change detection for local files is based on hash comparison rather than timestamp comparison.

For remote translation files, the behaviour is unchanged — timestamp comparison using the HTTP Last-Modified header is still used, as no local file content is available before download.

Impacts: 
Site builders, administrators, editors