1. 程式人生 > >編譯與反編譯GNU Linux語言檔案方法

編譯與反編譯GNU Linux語言檔案方法

/*********************************************************************
 * Author  : Samson
 * Date    : 11/21/2014
 * Test platform:
 *              3.13.0-24-generic
 *              GNU bash, 4.3.11(1)-release 
 * *******************************************************************/

在GNU Linux系統中,很多軟體都是支援多種國家的語言的,而這些語言一般都是通過一個*.po的檔案而區別開來不同的國家的語言的,有的可能會編譯成二進位制檔案*.mo,而編譯成二進位制檔案的命令為msgfmt。

有的時候存在這樣的場景,為了修改語言翻譯的問題,想直接修改語言檔案,那麼就要使用將編譯好的二進位制的*.mo檔案轉換成*.po檔案,那麼使用命令msgunfmt命令即可完成這個需求,以下的例子中test.po表示一個語言檔案的ascii碼的檔案,test.mo表示編譯後的二進位制語言檔案:
    
例子:
反編譯mo二進位制檔案成ascii po檔案
    msgunfmt test.mo -o test.po
編碼ascii po檔案為二進位制mo檔案
    msgfmt -o test.mo test.po