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

No comments.