Вот как я это сделал. Во-первых, к сожалению, POEdit для Mac очень глючный и странный.
В POEdit создан новый каталог с правильным путем и ключевым словом __.
Запустите POEdit, чтобы извлечь все строки.
После этого я запустил этот простой PHP-скрипт поверх сгенерированного PO-файла. Вывод скрипта я вставил в файлы в папке i18n проекта.
$file = 'sv_SE.po';
$translations = array();
$po = file($file);
$current = null;
foreach ($po as $line) {
if (substr($line,0,5) == 'msgid') {
$current = trim(substr(trim(substr($line,5)),1,-1));
}
if (substr($line,0,6) == 'msgstr') {
$translations[$current] = trim(substr(trim(substr($line,6)),1,-1));
}
}
echo "<?php\n\n";
foreach ($translations as $msgid => $msgstr) {
echo '\'' . $msgid . '\' => \'' . $msgstr . "',\n";
}
echo "\n?>";
С помощью POEdit легко поддерживать локализации проекта, поскольку он синхронизирует все строки, но просто нажимает «Обновить». Я получу отчет о новых и устаревших строках и могу обновить локализации через несколько минут. Надеюсь, это кому-нибудь поможет.