1

配列に値をリストする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 カタログに手動で挿入するのは私を殺します。これを自動化できるものはありますか?

ポエディットを使用しています。

ありがとう、私はこれが初めてなので、どんな洞察も役に立ちます...

4

2 に答える 2

4

PHP配列をPOファイルに変換し、すべてのエスケープが正しいことを確認するphp2poを試してください。その後、POファイルはPoeditやVirtaalなどのツールで編集できます。

于 2012-09-13T09:33:55.073 に答える
2

最初のエントリはファイル ヘッダーです。必要なものは既存の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);
于 2012-01-05T22:31:42.850 に答える