﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	focuses
65809	wp_get_l10n_php_file_data() reads the wrong revision date key from .l10n.php files	bejignesh		"`wp_get_l10n_php_file_data()` in `wp-includes/l10n.php` maps the PO headers it returns onto the keys a `.l10n.php` file stores them under:

{{{#!php
'PO-Revision-Date'   => 'po-revision-date',
}}}

No generated `.l10n.php` file uses that key. The revision date is written as `translation-revision-date`, so `PO-Revision-Date` always comes back empty.

`tests/phpunit/data/languages/de_CH.l10n.php` has the same wrong key, which is why the existing coverage in `Tests_L10n::test_wp_get_installed_translations_for_core()` passes. The fixture matches the code rather than a real file. `tests/phpunit/data/l10n/plural-complex.php`, added earlier in [57518], uses the correct key.

== Why it matters ==

`wp_get_installed_translations()` falls back to this reader when a translation has no sibling `.po` file. That value is sent to api.wordpress.org to work out which language packs are out of date. With an empty revision date, a pack that is already installed and current gets offered again.

Measured on trunk with the Twenty Twenty-Five nl_NL pack, freshly installed, changing nothing but whether the `.po` is on disk:

|| state || `wp_get_installed_translations()` reports || offers after `wp_update_themes()` ||
|| .po present || 2025-08-05 20:37:56+0000 || 0 ||
|| .po absent || empty string || 1 ||

== Fix ==

Read `translation-revision-date`, and correct the `de_CH.l10n.php` fixture to use it as well.

`POT-Creation-Date` maps to `pot-creation-date`, which no format writes, so it stays empty. Left alone here.

----

This came out of #65429 but is not the cause of that report, where the `.po` files were present. Filed separately since the defect stands on its own.

An earlier version of this description claimed the key had been renamed upstream. That was wrong, see comments below. The fixture was simply wrong from the start."	defect (bug)	new	normal	7.2	I18N	6.6	normal		has-patch		
