Как я могу генерировать PO-файл из PHP-массива? - PullRequest
1 голос
/ 06 января 2012

У меня есть файл языка php, в котором перечислены значения в массиве.

Я хочу преобразовать это в .po файл.

PHP-файл выглядит так:

<?php 

$LANG_ = array(

// advanced search buttons
"_search1"              => "Start Search",
"_search2"              => "Hide Search Box",
"_search3"              => "Search",

// page numbering
"_pn1"              => "Page %CURRENT_PAGE% of %TOTAL_PAGES%",
"_pn2"              => "<< First",
"_pn3"              => "Last >>",

// _tpl_article-add.php
"_tpl_article-add1"             => "Article Submission Form",
"_tpl_article-add2"             => "Submit Article",
"_tpl_article-add3"             => "Article Submitted Successfully",


// errors
"_err14"            => "Delete",
"_err144"           => "Display Image",
"_err15"            => "Edit",
"_err16"            => "View",

);
?>

Это всего лишь пример, сам файл огромен, более 3000 строк. Это убило бы меня, чтобы вставить каждый из них в каталог po вручную. Есть ли что-то, что может автоматизировать это для меня?

Я использую poedit.

Спасибо, я новичок в этом, поэтому любое понимание будет полезно ...

Ответы [ 2 ]

3 голосов
/ 13 сентября 2012

Попробуйте php2po , который преобразует массив PHP в PO-файлы, а также убедится, что все ваши экранированные значения верны.PO-файл затем можно редактировать с помощью таких инструментов, как Poedit или Virtaal .

.
2 голосов
/ 06 января 2012

Первая запись - это заголовок файла, посмотрите, что нужно в существующем gettext файле (-po)Побег, который я совершил с addslashes;может быть, вам нужно сделать больше.

$fh = fopen("en.po", 'w');
fwrite($fh, "#\n");
fwrite($fh, "msgid \"\"\n");
fwrite($fh,  "msgstr \"\"\n");

foreach ($LANG_ as $key => $value) {
    $key = addslashes($key);
    $value = addslashes($value);
    fwrite($fh, "\n");
    fwrite($fh, "msgid \"$key\"\n");
    fwrite($fh, "msgstr \"$value\"\n");
}
fclose($fh);
...