Я искал удобный способ сделать и поддерживать переводы моих Kohana-модулей. Я играл с POEdit и извлек все __ () из своих модулей. На самом деле так, как работает POedit, и просто запустить быстрое обновление, чтобы собрать все новые строки и впоследствии сохранить новый каталог. Я мог бы впоследствии преобразовать po-файлы в PHP-массивы вроде … кажется, что это немного сложно со всеми шагами.
Я видел такой подход, но я бы предпочел не устанавливать таблицы и новые модули для переводов, я думаю, что это становится сложным и «drupalish» ;-).
Как вы управляете локализациями и переводами на разных языках в своих проектах в Кохане? Любые намеки были бы высоко оценены!
Вот как я это сделал. Во-первых, 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, легко поддерживать локализацию проекта, поскольку он синхронизирует все строки, но просто нажимает «Обновить». Я получу отчет о новых и устаревших строках и могу обновить локализацию через несколько секунд. Надеюсь, это поможет кому-то.
Попробуйте этот модуль I18n_Plural . Мне нравится, как он обрабатывает множественные формы, очень просто и легко. В файле readme есть много примеров (показаны на главной странице модуля).