gulpで.poから.moファイルを作成する

最近はa-blog cmsの管理画面の英語化を頑張っています。そこで毎回、.poファイルから.moファイルに変換する際に下記のpoeditというMac用のアプリを使っていました。


poedit

poedit


しかし毎回、アプリを使ってpoファイルをコンパイルするのは非常にめんどくさいです。
そこで、gulpで.poから.moファイルに変換してくれる便利なプラグインを見つけたので今度からそれを使うようにしたいと思います。
gulp-gettextというプラグインです


ソースのサンプル

var gulp    = require('gulp');
var gettext = require('gulp-gettext');
var plumber = require('gulp-plumber');

gulp.task('gettext', function() {
    gulp.src('lang/en_US/LC_MESSAGES/**/*.po')
    	.pipe(plumber({
			handleError: function (err) {
				console.log(err);
				this.emit('end');
			}
		}))
        .pipe(gettext())
        .pipe(gulp.dest('lang/en_US/LC_MESSAGES/'))
    ;
});

gulp.task('default',function(){
	gulp.watch('lang/en_US/LC_MESSAGES/**/*.po',['gettext']);
});

poファイルのサンプル

#: themes/system/admin/top.html
msgid "ダッシュボード"
msgstr "Dashboard"

msgid "ショートカット"
msgstr "Shortcuts"

msgid "システムバージョン"
msgstr "system Version"

msgid "ユーザーの上限"
msgstr "limit of the users"

msgid "メールマガジン プラグイン"
msgstr "mail-magazine add-on"

msgid "利用可能"
msgstr "available"

msgid "キャッシュファイル管理"
msgstr "cache file management"

上記のpoファイルを編集して、保存するだけでmoファイルを作成してくれて非常に便利です。是非、ソフトウェアの多言語化をする際にお役立て下さい。


堀 悟大

アップルップル フロントエンドエンジニア。2014年高知大学理学部卒業。学生時代にHTML5のCanvas要素を使ってゲームを作っていたことでWeb全般に興味をもつ。アップルップル入社後はa-blog cmsを便利に使うための機能の実装や、HTML5の技術を使ったデジタルサイネージの実装を行う。趣味は英語。読むことも話すことも好き。

Home
Next entry →