저는 autotools를 빌드 시스템으로 사용합니다. 번역을 위해 gettext를 사용합니다. 나는 몇 가지 .po 파일 (de.po, es.po 및 th.po)을 가지고 있으며 autotools를 사용하여 문제없이 작동시킵니다. 이후 :내 프로그램을 데비안 패키지로 번역 할 수는 없지만 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 스크립트 내가 로케일 대상으로 번역 모 파일을 배포 (docklight 프로그램 이름입니다) 언어 :
dir=/usr/local/share/locale/$lang/LC_MESSAGES;
정확도는 autotools로 빌드 프로세스와 동일합니다. 언어를 테스트 한 후 :
$ export LANG=de_DE.UTF-8
$ ./myprogram
내 프로그램은 어떤 번역이 없습니다. 어디에 문제가 있는지 알 수 없습니다. deb 설치가 올바로 작동합니다!
은 내가 debian deb 패키지를 만드는 데 더 신경을 써야 할 것이 무엇입니까?
내가 이해하는 한, myprogramm.mo 파일을 얻을 때 프로그램을 번역해야합니다.
그에 대한 아이디어가 있습니까?
미리 도움을 청하십시오.