-1
我試圖從gettext的創建ICU4C file的.po與sed
這樣的腳本文件:轉換.po文件到ICU4C .txt文件
/^#/ d /* delete comments */
:a;/"$/{N;s/"\n"//;ba} /* merge quoted lines in loop */
/^msgid /s/msgid (.*)/\1/ /* convert msgids */
s/msgstr "(.*)"/\{ "\1" }/ /* convert msgstrs */
而且它已經工作得很好(忽略複數形式),但由於某些原因,它不會轉換最後一個msgid/msgstr對,除非我不合並兩次引號。但是,其他東西的語法會變得錯誤。有任何想法嗎?不必使用sed
。
那些ICU文件是genrb
接受的唯一的文件,我想在PHP中使用ResourceBundle。
我相信''N'之後,你可能會在模式空間中有'quoteline \ nmsgid',只有'msgid'在模式空間的開頭纔會匹配'^'。它匹配'\ 0msgid'而不是'\ nmsgid' – stevesliva