spaghetti
I am, in a weird way, quite proud of this hideous abomination:
pushd doc
italian is already unicode, leave it out.
for i in es hu pl ru sr; do pushd $i; \
this is ugly, but assume same encoding as .po file for each language.
iconv --from-code=grep charset= ../../po/$i.po | cut -c36- | head -c-4 | tr "[:lower:]" "[:upper:]"
--to-code=UTF-8 mc.1.in > mc.1.in.new; \
mv -f mc.1.in.new mc.1.in; popd; done
popd
pushd lib
rename zh to zh_TW, which is what it really is (I think)
mv mc.hint.zh mc.hint.zh_TW
hardcode the list as we need to leave italian out and it just gets ugly doing it 'smartly'...
for i in cs es hu nl pl ru sr uk zh_TW; \
this is ugly, but assume same encoding as .po file for each language.
do iconv --from-code=grep charset= ../po/$i.po | cut -c36- | head -c-4 | tr "[:lower:]" "[:upper:]"
--to-code=UTF-8 mc.hint.$i > mc.hint.$i.new; \
mv -f mc.hint.$i.new mc.hint.$i; done
popd
pushd po
remove the original .mo files
rm -f *.gmo
find stuff that's not Unicode already
for i in file *.po | grep -v Unicode | cut -d: -f1
; \
convert it: the grep, cut, head, tr grabs the source encoding from the .po file header, there's no other way to find it
do iconv --from-code=grep charset= $i | cut -c36- | head -c-4 | tr "[:lower:]" "[:upper:]"
--to-code=UTF-8 $i > $i.new; \
change the header to say UTF-8
mv -f $i.new $i; perl -pi -e 's,charset=.*$,charset=UTF-8\n",g' $i; done
regenerate the .mo files
for i in ls *.po | cut -d. -f1
; do /usr/bin/msgfmt -c --statistics -o $i.gmo $i.po; done
popd
that's what you need to do to convert all of mc's documentation, help files etc to Unicode when packaging it. Elegance, I've heard of it...
Comments