Files
timebank-cc-public/references/translations/format-unused-keys.php
Ronald Huynen 2547717edb Initial commit
2026-03-23 21:37:59 +01:00

77 lines
2.0 KiB
PHP

<?php
/**
* Format unused translation keys from the table output
*/
$file = '/tmp/unused-keys-table.txt';
$content = file_get_contents($file);
$lines = explode("\n", $content);
$keys = [];
$inTable = false;
foreach ($lines as $line) {
// Skip header lines and decorations
if (strpos($line, 'Translation Key') !== false) {
$inTable = true;
continue;
}
if (!$inTable) continue;
// Extract key and value from table format
if (preg_match('/^\|\s+([a-z][^\|]+?)\s+\|\s+(.+?)\s+\|$/i', $line, $matches)) {
$key = trim($matches[1]);
$value = trim($matches[2]);
// Skip divider lines
if (strpos($key, '---') !== false || strpos($key, '===') !== false) continue;
$keys[$key] = $value;
}
}
echo "=== UNUSED TRANSLATION KEYS ===\n";
echo "Total found: " . count($keys) . " keys\n";
echo str_repeat('=', 100) . "\n\n";
// Group by prefix
$grouped = [];
foreach ($keys as $key => $value) {
$parts = explode('.', $key);
$prefix = $parts[0];
if (!isset($grouped[$prefix])) {
$grouped[$prefix] = [];
}
$grouped[$prefix][$key] = $value;
}
ksort($grouped);
// Display each group
foreach ($grouped as $prefix => $items) {
echo "\n" . strtoupper($prefix) . " (" . count($items) . " keys)\n";
echo str_repeat('-', 100) . "\n";
foreach ($items as $key => $value) {
// Truncate very long values
if (strlen($value) > 70) {
$value = substr($value, 0, 67) . '...';
}
printf(" %-50s → %s\n", $key, $value);
}
}
echo "\n" . str_repeat('=', 100) . "\n";
echo "TOTAL: " . count($keys) . " unused translation keys\n\n";
echo "NOTE: Some keys may be used dynamically (e.g., __(\$variable)).\n";
echo "Review carefully before deleting.\n\n";
// Save clean list for user reference
$cleanList = array_keys($keys);
file_put_contents('/tmp/unused-keys-clean.txt', implode("\n", $cleanList));
echo "Clean key list saved to: /tmp/unused-keys-clean.txt\n";