Я использую autotools as build system, также я использую gettext в своем коде для переводов. У меня мало файлов .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 package. Во время установки deb в a. posinst сценарий я развернуть переводы М.О. файлы к месту назначения локали (Docklight это название программы):
#!/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 файлы правильно и получить установлен на папку локали для язык:
dir=/usr/local/share/locale/$lang/LC_MESSAGES;
то же самое, что и процесс сборки с помощью автотюнинга. После тестирования языков:
$ export LANG=de_DE.UTF-8
$ ./myprogram
моя программа не имеет никакого перевода. Я не знаю, где проблема. Установка deb работает правильно!
что-то еще, что мне нужно заботиться о создании debian deb пакета?
Насколько я понял, когда вы получаете файлы myprogramm.mo, вы должны перевести программу.
Любые идеи об этом?
Заранее благодарим за любую помощь.