2012-01-05 5 views
1

배열의 값을 나열하는 PHP 언어 파일이 있습니다.php 배열에서 po 파일을 생성하는 방법은 무엇입니까?

이 파일을 .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

첫 번째 항목은 파일 헤더입니다 ... 유용 필요한 것을 기존 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); 
+0

흠, 마치 멋진 솔루션처럼 보입니다 ... 오, 내가 그 정도의 PHP를 이해할 수 있다면 :))) 어쨌든, 나는 하나의 PHP 파일에 내 배열과 함께 넣어 구문 오류가있어. fclose에 관한 것. –

+0

나는 코드를 테스트하지 않았지만,'fclose ($ fh);'는 올바르게 보인다. 그 후 개행이 누락 된 것 같습니다. –

+0

찾았습니다. fwrite ($ fh, "msgstr = \"$ value \ "\ n); 나는 지금 그것을 테스트하고보고 할 것이다 : –

3

PO 파일로 PHP 배열로 변환하고 또한 이스케이프의 모든 올바른지 확인합니다 php2po을보십시오. PO 파일은 Poedit 또는 Virtaal과 같은 도구에서 편집 할 수 있습니다.

관련 문제