Merge desktop file at build time

Previously, both the .desktop.in template and the final .desktop file
were checked into source control.

While in some ways convenient, the manual step of updating it may be
forgotten after updating a translation or adjusting the template. It
also potentially introduces confusion as to which file to modify.

Instead, generate the .desktop file at build time. Since this is now
done using msgfmt rather than intltool, there is no additional
dependency beyond gettext, which is already used at build time to
compile .po files to .mo files.
This commit is contained in:
Will Thompson 2022-06-10 10:36:48 +01:00
parent 3141249969
commit b4aa697474
4 changed files with 6 additions and 381 deletions

1
.gitignore vendored
View file

@ -14,4 +14,5 @@ TuxPaint.dmg
.DS_Store
*.thumbs
src/po/POTFILES.in
src/tuxpaint.desktop

View file

@ -529,6 +529,9 @@ endif
$(MOFILES): trans/%.mo: src/po/%.po
msgfmt -o $@ $<
%.desktop: %.desktop.in $(POTFILES)
msgfmt --desktop -d src/po --template $< -o $@
.PHONY: translations
ifeq "$(shell msgfmt -h)" ""
translations: trans
@ -538,7 +541,7 @@ translations: trans
@echo "Install gettext to run Tux Paint in non-U.S. English modes."
@echo "--------------------------------------------------------------"
else
translations: trans $(MOFILES)
translations: trans $(MOFILES) src/tuxpaint.desktop
endif
trans:
@ -923,13 +926,11 @@ install-nokia770:
fi
@-find $(DESTDIR)$(NOKIA770_PREFIX) -name CVS -type d -exec rm -rf \{\} \;
# Install a launcher icon in the Linux desktop environment's (freedesktop.org) menus...
# FIXME: No way to install SVG icons using `xdg-icon-resource`
# (see https://bugs.launchpad.net/ubuntu/+source/xdg-utils/+bug/790449)
.PHONY: install-xdg
install-xdg:
install-xdg: src/tuxpaint.desktop
@echo
@echo "...Installing launcher icon into desktop environment..."
@if [ "x$(shell which xdg-icon-resource install)" != "x" ]; then \

View file

@ -16,8 +16,3 @@ for i in *.po ; do
echo $i
msgmerge --update --previous --backup=none $i tuxpaint.pot
done
msgfmt --desktop \
-d . \
--template ../tuxpaint.desktop.in \
--output-file ../tuxpaint.desktop

View file

@ -1,372 +0,0 @@
[Desktop Entry]
Name=Tux Paint
Name[ach]=Tux Paint
Name[af]=Tux Verf
Name[ak]=Tux Paint
Name[am]=
Name[an]=Tux Paint
Name[ar]=رسم توكس
Name[as]=
Name[ast]=Tux Paint
Name[az]=Tuks ilə şəkil çək.
Name[be]=Малюй разам з Tux!
Name[bg]=Рисуване с Тъкс
Name[bm]=Pɛntiri Tukisi .
Name[bn]=
Name[br]=Tux Paint
Name[brx]=
Name[bs]=Tux Paint
Name[ca]=Tux Paint
Name[ca@valencia]=Tux Paint
Name[cgg]=Tux Paint
Name[cs]=Tux Paint
Name[cy]=Tux Paint
Name[da]=Tux Paint
Name[de]=Tux Paint
Name[doi]=
Name[el]=Tux Paint
Name[en_AU]=Tux Paint
Name[en_CA]=Tux Paint
Name[en_GB]=Tux Paint
Name[en_ZA]=Tux Paint
Name[eo]=Tux Desegnilo
Name[es]=Tux Paint
Name[es_MX]=Tux Paint
Name[et]=Joonistame koos Tuksiga!
Name[eu]=Tux Paint
Name[fa]=تاکس پینت
Name[ff]=Tux Paint
Name[fi]=Tux Taiteilija
Name[fo]=Tux Paint
Name[fr]=Tux Paint
Name[ga]=Tux Paint
Name[gd]=Tux Paint
Name[gl]=Tux Paint
Name[gu]=
Name[he]=Tux Paint
Name[hi]=Tux Paint
Name[hr]=Tux Bojanje
Name[hu]=Tux Paint
Name[hy]=Նկարիչ Տուքսը
Name[id]=Tux Paint
Name[is]=Tux Paint
Name[it]=Tux Paint
Name[iu]=Tux Paint
Name[ja]=
Name[ka]=!
Name[kab]=Tux Paint
Name[km]=Tux Paint
Name[kn]=
Name[ko]=
Name[kok]=
Name[kok@roman]= tux rong
Name[ks]=ٹَکس پینٹ
Name[ks@devanagari]= ि
Name[ku]=Tux Paint
Name[lb]=Tux Paint
Name[lg]=Tux Paint
Name[lt]=Tux Paint
Name[lv]=Tux Zīmēšana
Name[mai]=
Name[mk]=Tux Боенка
Name[ml]= ി
Name[mni]=
Name[mni@meiteimayek]=
Name[mr]= ि ि
Name[ms]=Tux Paint
Name[nb]=Tux Paint
Name[ne]=
Name[nl]=Tux Paint
Name[nn]=Tux Paint
Name[nr]=ITux Pende
Name[nso]=Tux Paint
Name[oc]=Tux Paint
Name[or]=
Name[pa]=
Name[pl]=Tux Paint
Name[pt]=Tux Paint
Name[pt_BR]=Tux Paint
Name[ro]=Pictează cu Tux
Name[ru]=Рисуй вместе с Tux!
Name[sa]= ि
Name[sat]=
Name[sat@olchiki]=
Name[sc]=Tux Paint
Name[sd]=ٽڪس رنگ
Name[sd@devanagari]=
Name[si]=Tux Paint
Name[sk]=Kreslenie s Tuxom
Name[sl]=Slikar Tux
Name[son]=Tux Paint
Name[sq]=Tux Paint
Name[sr]=Такс Цртање
Name[sr@latin]=Taks Crtanje
Name[su]=Tux Paint
Name[sv]=Rita med Tux
Name[sw]=Koti ya Rangi
Name[ta]= ி
Name[te]= ి
Name[th]=
Name[tr]=Tux Boyama
Name[tw]=Tux Paint
Name[uk]=Малюй разом з Tux!
Name[ur]=ٹكس پینٹ
Name[ve]=Tux Paint
Name[vec]=Tux Paint
Name[vi]=Tux Sơn
Name[wa]=Tux Paint
Name[wo]=Tux Paint
Name[xh]=Ipeyinti yeTux
Name[zam]=Tux Paint
Name[zh_CN]=Tux Paint
Name[zh_TW]=
Name[zu]=i-Tux Paint
Type=Application
Exec=tuxpaint
Icon=tuxpaint
Terminal=false
Categories=Education;Art;
GenericName=Drawing program
GenericName[ach]=Purugram me goc
GenericName[af]=Tekenprogram
GenericName[ak]=Drɔyɛ nhyehyɛyɛ
GenericName[am]=
GenericName[an]=Un programa de dibuixo
GenericName[ar]=برنامج رسم
GenericName[as]=ি
GenericName[ast]=Programa de dibuxu
GenericName[az]=Rəsm proqramı
GenericName[be]=Праграма для малявання
GenericName[bg]=Програма за рисуване
GenericName[bm]=ɲɛgɛn taabolo.
GenericName[bn]=
GenericName[br]=Meziant tresañ
GenericName[brx]=ि ि
GenericName[bs]=Program za crtanje
GenericName[ca]=Programa de dibuix
GenericName[ca@valencia]=Programa de dibuix
GenericName[cgg]=Akeire kukuteera ebishushani
GenericName[cs]=Kreslicí program
GenericName[cy]=Rhaglen lunio
GenericName[da]=Tegneprogram
GenericName[de]=Malprogramm
GenericName[doi]=ि
GenericName[el]=Πρόγραμμα ζωγραφικής
GenericName[en_AU]=Drawing program
GenericName[en_CA]=Drawing program
GenericName[en_GB]=Drawing program
GenericName[en_ZA]=Drawing program
GenericName[eo]=Desegnoprogramo
GenericName[es]=Un programa de dibujo.
GenericName[es_MX]=Programa de dibujo
GenericName[et]=Joonistusprogramm
GenericName[eu]=Marrazketa programa
GenericName[fa]=برنامه نقاشی
GenericName[ff]=Topirde natgol
GenericName[fi]=Maalausohjelma
GenericName[fo]=Tekniforrit
GenericName[fr]=Programme de dessin
GenericName[ga]=Clár líníochta
GenericName[gd]=Prògram peantaidh
GenericName[gl]=Programa de debuxo
GenericName[gu]=િ
GenericName[he]=תוכנת ציור
GenericName[hi]=
GenericName[hr]=Program za crtanje
GenericName[hu]=Rajzolóprogram
GenericName[hy]=Նկարչական ծրագիր
GenericName[id]=Program gambar
GenericName[is]=Teikniforrit
GenericName[it]=Programma di disegno
GenericName[iu]=
GenericName[ja]=
GenericName[ka]=
GenericName[kab]=Ahil n usuneɣ
GenericName[km]=
GenericName[kn]=ಿ
GenericName[ko]=
GenericName[kok]=ि
GenericName[kok@roman]= pintravnne kareavoll
GenericName[ks]=ڈرائنگ پروگرام
GenericName[ks@devanagari]=
GenericName[ku]=Bernameya Xêzkirinê
GenericName[lb]=Molprogramm
GenericName[lg]=Enteekateeka y'okusiiga
GenericName[lt]=Piešimo programa
GenericName[lv]=Zīmēšanas programma
GenericName[mai]=
GenericName[mk]=Програм за цртање
GenericName[ml]=ി ിി.
GenericName[mni]=
GenericName[mni@meiteimayek]=
GenericName[mr]=ि
GenericName[ms]=Program melukis
GenericName[nb]=Tegneprogram
GenericName[ne]=
GenericName[nl]=Tekenprogramma
GenericName[nn]=Teikneprogram
GenericName[nr]=Iphrogremu youkudweba
GenericName[nso]=Lenaneo la go thala
GenericName[oc]=Logicial de dessenh
GenericName[or]=
GenericName[pa]=ਿ
GenericName[pl]=Program do rysowania
GenericName[pt]=Programa de desenho
GenericName[pt_BR]=Programa de desenho
GenericName[ro]=Program de desenat
GenericName[ru]=Программа для рисования
GenericName[sa]=
GenericName[sat]= ि
GenericName[sat@olchiki]=
GenericName[sc]=Programma de disinnu
GenericName[sd]=چترڪلا جو پروگرام
GenericName[sd@devanagari]=ि
GenericName[si]=
GenericName[sk]=Program na kreslenie
GenericName[sl]=Risarski program
GenericName[son]=Biiteeyan porogaram
GenericName[sq]=Program për vizatim
GenericName[sr]=Програм за цртање
GenericName[sr@latin]=Program za crtanje
GenericName[su]=Program ngagambar
GenericName[sv]=Ritprogram
GenericName[sw]=Programu ya kuchora
GenericName[ta]=
GenericName[te]=
GenericName[th]=
GenericName[tr]=Çizim programı
GenericName[tw]=Adeɛ a yɛde drɔ
GenericName[uk]=Програма для малювання
GenericName[ur]=ڈرائینگ پروگرام
GenericName[ve]=Mbekanyamushumo ya u ola
GenericName[vec]=Programa de dixegno.
GenericName[vi]=Chương trình v
GenericName[wa]=Programe di dessinaedje
GenericName[wo]=Lëlu natal
GenericName[xh]=Inkqubo yokuzoba
GenericName[zam]=Par kuú men
GenericName[zh_CN]=
GenericName[zh_TW]=
GenericName[zu]=Iprogram yokudweba
Comment=A drawing program for children.
Comment[ach]=Purugram me goyo cal pa lutino.
Comment[af]='n Tekenprogram vir kinders.
Comment[ak]=Mmɔfra drɔɔye nhyehyɛye.
Comment[am]=
Comment[an]=Un programa de dibuixo pa ninos.
Comment[ar]=برنامج رسومات للأطفال.
Comment[as]=ি ি .
Comment[ast]=Un programa de dibuxu pa neños y neñes.
Comment[az]=Uşaqlar üçün rəsm proqramı.
Comment[be]=Дзіцячая праграма для малявання.
Comment[bg]=Програма за рисуване за деца
Comment[bm]=Demisɛnw ka ɲɛgɛn taabolo dɔ.
Comment[bn]= .
Comment[br]=Ur meziant tresañ evit ar vugale.
Comment[brx]='ि ि ि
Comment[bs]=Dječji program za crtanje
Comment[ca]=Un programa de dibuix per a nens petits.
Comment[ca@valencia]=Un programa de dibuix per als menuts.
Comment[cgg]=Akeire kabaana kuteera ebishushani.
Comment[cs]=Kreslicí program pro děti.
Comment[cy]=Rhaglen lunio ar gyfer plant.
Comment[da]=Et tegneprogram for børn.
Comment[de]=Ein Malprogramm für Kinder.
Comment[doi]= ि .
Comment[el]=Ένα πρόγραμμα ζωγραφικής για παιδιά.
Comment[en_AU]=A drawing program for children.
Comment[en_CA]=A drawing program for children.
Comment[en_GB]=A drawing program for children.
Comment[en_ZA]=A drawing program for children.
Comment[eo]=Desegnoprogramo por infanoj.
Comment[es]=Un programa de dibujo para niños.
Comment[es_MX]=Un programa de dibujo para niños.
Comment[et]=Joonistusprogramm lastele.
Comment[eu]=Umeentzako marrazketa programa.
Comment[fa]=یک برنامه نقاشی برای کودکان.
Comment[ff]=Topirde natgol nde sukaaɓe mbaɗanaa.
Comment[fi]=Maalausohjelma lapsille.
Comment[fo]=Eitt tekniforrit til børn.
Comment[fr]=Un programme de dessin pour les enfants.
Comment[ga]=Clár líníochta le haghaidh páistí.
Comment[gd]=Prògram peantaidh don chloinn.
Comment[gl]=Un programa de debuxo para nenos.
Comment[gu]= િ .
Comment[he]=תוכנת ציור לילדים.
Comment[hi]= ि |
Comment[hr]=Program za crtanje za djecu.
Comment[hu]=Rajzolóprogram gyerekeknek
Comment[hy]=Նկարչական ծրագիր երեխաների համար:
Comment[id]=Adalah sebuah program gambar untuk anak-anak.
Comment[is]=Teikniforrit fyrir krakka.
Comment[it]=Un programma di disegno per bambini.
Comment[iu]= .
Comment[ja]=
Comment[ka]= .
Comment[kab]=Ahil n usuneɣ i igerdan.
Comment[km]= 
Comment[kn]=ಿಿ ಿ .
Comment[ko]=
Comment[kok]= ि
Comment[kok@roman]= bhurgeank pintravnne kareavoll
Comment[ks]=اَکھ ڈرائنگ پروگرام بَچَن خٲطرٕ
Comment[ks@devanagari]= .
Comment[ku]=Bernameyeke xêzkirinê ji bo zarokan.
Comment[lb]=E Molprogramm fir Kanner
Comment[lg]=Enteekateeka y'abaana ey'okusiiga.
Comment[lt]=Piešimo programa vaikams.
Comment[lv]=Zīmēšanas programma bērniem.
Comment[mai]= ' .
Comment[mk]=Програм за цртање за деца.
Comment[ml]=ി ി ിി.
Comment[mni]= .
Comment[mni@meiteimayek]= .
Comment[mr]= ि
Comment[ms]=Program melukis untuk kanak-kanak
Comment[nb]=Et tegneprogram for de yngste.
Comment[ne]= ि
Comment[nl]=Een tekenprogramma voor kinderen.
Comment[nn]=Eit teikneprogram for dei yngste.
Comment[nr]=Iphrogremu yokudweba yabantwana.
Comment[nso]=Lenaneo la go thala la bana.
Comment[oc]=Un logicial de dessenh pels mainatges.
Comment[or]=ି
Comment[pa]=ਿ ਿ
Comment[pl]=Program do rysowania dla dzieci.
Comment[pt]=Um programa de desenho para crianças.
Comment[pt_BR]=Um programa de desenho para crianças.
Comment[ro]=Un program de desenat pentru copii.
Comment[ru]=Детская программа для рисования.
Comment[sa]=
Comment[sat]=ि ि ि ि .
Comment[sat@olchiki]=
Comment[sc]=Programma de disinnu pro sa pitzocalla.
Comment[sd]=ٻارن لاءِ چترڪلا جو پروگرام
Comment[sd@devanagari]=ॿि ि
Comment[si]= .
Comment[sk]=Program na kreslenie pre deti.
Comment[sl]=Risarski program za otroke
Comment[son]=Biiteeyan porogaram zankey se.
Comment[sq]=Program vizatimi për fëmijë.
Comment[sr]=Дечји програм за цртање
Comment[sr@latin]=Dečji program za crtanje
Comment[su]=Program ngagambar pikeun barudak.
Comment[sv]=Ett ritprogram för barn.
Comment[sw]=Programu kwa watoto kuchora.
Comment[ta]=
Comment[te]=ి ి
Comment[th]=
Comment[tr]=Çocuklar için bir çizim programı
Comment[tw]=Deɛ mmɔfra bɛtumi de adi agorɔ.
Comment[uk]=Дитяча програма для малювання.
Comment[ur]=بچوں كے لئے ڈرائینگ پروگرام۔
Comment[ve]=Mbekanyamushumo ya u ola ya vhana.
Comment[vec]=Un programa de dixegno par putèi.
Comment[vi]=Mt chương trình v cho đa bé.
Comment[wa]=On programe di dessinaedje po ls efants.
Comment[wo]=Lël lu natal yu ñu jagglel guneyi.
Comment[xh]=Inkqubo yokuzoba yabantwana.
Comment[zam]=Diif program paar keé men Dibuj paar biét biss
Comment[zh_CN]=
Comment[zh_TW]=
Comment[zu]=Iprogremu yokudweba yezingane.