#! /bin/sh tmpfiles="" trap 'rm -fr $tmpfiles' 1 2 3 15 tmpfiles="$tmpfiles ll ll.po dataout" : ${MSGFMT=msgfmt} test -d ll || mkdir ll test -d ll/LC_MESSAGES || mkdir ll/LC_MESSAGES tmpfiles="$tmpfiles plural-2.data" cat < plural-2.data ja 0 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 de n != 1 10111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 fr n>1 00111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 gd n==1 ? 0 : n==2 ? 1 : 2 20122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 ro n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2 10111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222 lt n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2 20111111112222222222201111111120111111112011111111201111111120111111112011111111201111111120111111112011111111222222222220111111112011111111201111111120111111112011111111201111111120111111112011111111 ru-gettext n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2 20111222222222222222201112222220111222222011122222201112222220111222222011122222201112222220111222222011122222222222222220111222222011122222201112222220111222222011122222201112222220111222222011122222 ru-glibc n%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1 20111222222222222222201112222220111222222011122222201112222220111222222011122222201112222220111222222011122222222222222220111222222011122222201112222220111222222011122222201112222220111222222011122222 sk (n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2 20111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 pl n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2 20111222222222222222221112222222111222222211122222221112222222111222222211122222221112222222111222222211122222222222222222111222222211122222221112222222111222222211122222221112222222111222222211122222 sl n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3 30122333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333012233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 EOF while read lang; do read formula read dataok cat > ll.po < dataout test "$dataok" = `cat dataout` || { echo "Formula evaluation error for language $lang" 1>&2 echo "plural=${formula}" 1>&2 echo "Expected: $dataok" 1>&2 echo "Got: "`cat dataout` 1>&2 rm -fr $tmpfiles exit 1 } done < plural-2.data rm -fr $tmpfiles exit 0