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 目录中,我会死的。有什么东西可以为我自动化吗?

我正在使用poedit。

谢谢,我是新手,所以任何见解都会很有用...

4

2 回答 2

4

试试php2po,它会将 PHP 数组转换为 PO 文件,并且还会确保您的所有转义都是正确的。然后可以在 Poedit 或Virtaal等工具中编辑 PO 文件。

于 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 回答