Получить переводы из .po или .mo файла - PullRequest
4 голосов
/ 27 мая 2010

Как извлечь все переводы из файла .po или .mo? Мне нужно создать массив всех переводов, которые находятся внутри.

Ответы [ 5 ]

3 голосов
/ 27 мая 2010

Вы можете использовать Zend Translate модуль от Zend Framework.

$translate = new Zend_Translate('gettext', '/path/to/english.mo', 'en');
$translate->addTranslation('/path/to/german.mo', 'de');

echo $translate->_("Example");

$translate->setLocale('de');

echo $translate->_("Example");

или вы можете использовать модуль php gettext , но Zend гораздо удобнее.

1 голос
/ 24 мая 2012

msgunfmt - это инструмент Unix, который читает файлы .mo и создает файл .po.

1 голос
/ 27 мая 2010

Я использовал po2csv для преобразования po, затем прочитал csv в php, используя функцию fgetcsv().

0 голосов
/ 17 июня 2011

Вы можете использовать PEAR File_Gettext . Код будет тогда:

$mocreator = new File_Gettext_MO();
$mocreator->load('/path/to/mo/file/file.mo');

foreach ($mocreator->strings as $key => $value) {
  echo "Key is $key \n";
  echo "Value is $value \n";
}
0 голосов
/ 27 мая 2010

В PhpWiki 1.2 есть небольшой скрипт извлечения AWK, который называется translate.sh . Используйте это (в Linux).
Он очищает все .po файлы и генерирует скрипт .php array ().

...