- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- gettext へ行く。
- 1 (2019-11-11 (月) 05:12:19)
- 2 (2019-11-14 (木) 07:04:51)
gettext †
国際化と地域化のための開発ライブラリおよびコマンド群のこと。開発元はGnuプロジェクト。
翻訳の流れ †
- xgettextで、ローカライズ対象のメッセージを抽出
xgettext -k"_" -o my.pot get text.c
- msginitコマンドにより、翻訳リソースファイル(.poファイル)を作成
msginit --locale=ja --input=my.pot --no-translator -o my.po
- .poをコンパイルし.mo(バイナリファイルにコンパイル)を作成
msgfmt -o my.mo my.po
サンプル .moファイルを作成するためのMakefile
TEXTDOMAIN = my CHARSET = utf-8 PROGRAM = gettext GETTEXT_FILES = gettext-files CFLAGS = -I/usr/local/opt/gettext/include LDFLAGS = -L /usr/local/opt/gettext/lib -lintl .PHONY: all clean install all: $(PROGRAM) $(TEXTDOMAIN).pot install: $(TEXTDOMAIN).mo $(PROGRAM) mkdir -p ./locale/ja/LC_MESSAGES mv $(TEXTDOMAIN).mo ./locale/ja/LC_MESSAGES/ $(TEXTDOMAIN).mo: $(TEXTDOMAIN).po msgfmt -o $@ $< $(TEXTDOMAIN).po: $(TEXTDOMAIN).pot msginit --locale=ja --input=$< --no-translator -o $@ $(TEXTDOMAIN).pot: gettext-files xgettext -k"_" -o $@ -f $(GETTEXT_FILES) sed -e 's/CHARSET/$(CHARSET)/g' $@ > $(TEXTDOMAIN).pot.tmp mv $(TEXTDOMAIN).pot.tmp $@ gettext-files: find . -name '*.c' -print | LC_ALL=C sort >$@ clean: /bin/rm -rf ./locale/ja/LC_MESSAGES/*.mo $(TEXTDOMAIN).{po,mo} $(PROGRAM) gettext-files
上記は、updateとかは考慮していない。マージを考慮する場合は、msgmergeコマンドを実行する。
$ make # ファイル編集 $ make install
サンプル gettext.tar.gz
参考リンク †
- GNU gettext
- GNU gettext tools, version 0.18.3
- リポジトリ - gettext.git
- SETLOCALE man3
- gettext によるメッセージ処理