私はビルドシステムとしてもautotoolsを使用しています。 私はいくつかの.poファイル(de.po、es.po、th.po)を持っており、autotoolsを使って問題なく動かすことができます。後:私のプログラムをdebianパッケージで翻訳することはできませんが、autotoolsを使用することができます
./configure,
make
sudo make install
プログラムと翻訳.moファイルがインストールされます。
$ export LANG=de_DE.UTF-8
$ ./myprogram
及び翻訳作品:私は、ターミナルを開き、ロケール例えばを変更するには、テスト !。
私は同じソースコードをdebian debパッケージとしています。 でのdebインストール中に。
#!/bin/bash
set -e
# check for locale dir (LIVE SYSTEMS don't have it)
if [ -d "/usr/local/share/locale" ]; then
podir="/usr/lib/docklight/docklight.data/po"
if [ -d ${podir} ]; then
cd ${podir}
PO_LINGUAS=$(if test -r LINGUAS; then grep -v "^\#" LINGUAS; fi)
linguas=$PO_LINGUAS
for lang in $linguas; do
dir=/usr/local/share/locale/$lang/LC_MESSAGES;
# check for locale dir (LIVE SYSTEMS don't have it)
if [ ! -d $dir ]; then
continue;
fi
# check for po file
if [ ! -f "$lang.po" ]; then
continue;
fi
file=`echo $lang | sed 's,.*/,,'`.gmo \
&& rm -f $file && /usr/local/bin/msgfmt -o $file "$lang.po"
/bin/bash install-sh -d $dir; \
if test -r $lang.gmo; then \
/usr/bin/install -c -m 644 $lang.gmo $dir/docklight.mo; \
echo "installing $lang.gmo as $dir/docklight.mo"; \
else \
/usr/bin/install -c -m 644 ./$lang.gmo $dir/docklight.mo; \
echo "installing ./$lang.gmo as" \
"$dir/docklight.mo"; \
fi
done
fi
fi
生成された翻訳.moのファイルが正しいとのロケールフォルダにインストールされます:posinstスクリプト iはロケール先への翻訳のmoファイルを展開(docklightはプログラム名です)言語:
dir=/usr/local/share/locale/$lang/LC_MESSAGES;
autotoolsでのビルドプロセスと同じです。 言語をテストした後:
$ export LANG=de_DE.UTF-8
$ ./myprogram
私のプログラムは、任意の翻訳を持っていません。 問題の原因がわかりません。 Debインストールが正しく動作します!
は、私がdebian debパッケージの作成を気にする必要があるものですか?
私が理解する限り、myprogramm.moファイルを入手すると、プログラムが翻訳されるはずです。
これに関するアイデアはありますか?
ご協力いただきありがとうございます。