This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
HelloSorry, I miss it.
Did you get this email?
Fine, but I am change my employer and _very_ busy now, sorry.I've noticed your glibc problem reports (libc/5018 libc/5019 libc/5028) and would like to assist you in getting the changes accepted into glibc.
Please talk with Leon Kanter (<leon@blackcatlinux.com>) or with Valentyn Solomko (<vesna@sammit.kiev.ua>) about new Ukrainian locale.
I'm currently looking at your suggested changes to the uk_UA locale. I copy this mail to the address of the previous submitter of the locale.
It is very hard for the glibc maintainers to check that your suggested changes are correct, because of lack of knowledge regarding this language, and you did not supply any references (standards, official documents using the format, etc) specifying the correct content of the locale. Please supply some references verifying that your changes are correct.
I put all what I knew into locale file. I has not free time now to find required information, sorry.
No. He has bad knowledge of Ukrainian alphabet. He is not a member of UALUG.Did you try to contact the author of the initial locale? Does he agree with your changes?
It would be better if your proposed locale was easier to compare to the original locale. This mean it would be better if the new locale used the same section order, to make it easier to look at the diff between the locales.
You can use output of `locale -ck SECTION_NAME` before and after instalation of new Ukrainian locale. Sorry, but I write new locale from scratch.
Thanks. How I can operate with gnats (update PR's, at example)?(I asked for more information using gnats, but got no reply there. Because of this, I try again.)
The gnats reports:
<URL:http://bugs.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=glibc&pr=5018>
<URL:http://bugs.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=glibc&pr=5019>
- week directive does not work properly; - %n and %l escape sequence not supported in postal_fmt;
I am not sure about summertime reprezentation. I don't know how verify "timezone" parameter and how use it.
I am not sure about minimal days in week to include it into new year (1th and 2ht January are holidays, so, if year begins in Thuesday, this week contains no working days).
I am sure about phone format. I am not sure about prefix for foreign calls - I never use it.
I am not sure about name_fmt (see examples, maybe I am wrong?). I am sure about salutations.
-- Best regards, mailto:lvm@mystery.lviv.net Volodymyr M. Lisivka ICQ#14549856
#!/bin/bash
if [ "foo$1" = "foo" ]
then
LOCALE_FILE='./uk_UA'
else
if [ "foo$1" = "foo-h" ]
then
echo "Usage: $0 [-h|FILENAME]"
echo " -h this help message"
echo " FILENAME file with Ukrainian locale"
echo
exit 0
else
LOCALE_FILE="$1"
fi
fi
if [ -f "$LOCALE_FILE" ]
then
for I in KOI8-U CP1251 UTF-8
do
localedef -c -i ./uk_UA -f $I uk_UA.$I
done
else
echo "Can't find file \"$LOCALE_FILE\" with description of Ukrainian locale."
exit 1
fi
Attachment:
uk_UA-2.0
Description: Text document
#!/bin/sh
VERSION="localeconf-0.3"
OUTPUT_MODE=color
for I in $@
do
case "$I" in
-h|--help)
echo "Usage: $0 [OPTIONS]"
echo "Options:"
echo " -h, --help this help screen"
echo " -V, --version version of this script"
echo " -c, --no-color without colored output"
echo " -v, --verbose verbose output"
echo ""
exit 0;
;;
-V|--version)
echo "$VERSION"
exit 0;
;;
-c|--no-color)
OUTPUT_MODE=plain
;;
-v|--verbose)
VERBOSE=yes
;;
*)
echo "Unknown option: $I"
exit 1
;;
esac
done
RES_COL=60
MOVE_TO_COL="echo -en \\033[${RES_COL}G"
SETCOLOR_SUCCESS="echo -en \\033[1;32m"
SETCOLOR_FAILURE="echo -en \\033[1;31m"
SETCOLOR_WARNING="echo -en \\033[1;33m"
SETCOLOR_NORMAL="echo -en \\033[0;39m"
return_success() {
STATUS=OK
}
return_failure() {
STATUS=FAILURE
}
echo_success() {
if [ "$OUTPUT_MODE" = "color" ] ; then $MOVE_TO_COL ; else echo -ne "\t"; fi
echo -n "[ "
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_SUCCESS
echo -n $"OK"
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_NORMAL
echo -n " ]"
if [ "$OUTPUT_MODE" = "color" ] ; then echo -ne "\r" ; else echo ; fi
return 0
}
echo_done() {
if [ "$OUTPUT_MODE" = "color" ] ; then $MOVE_TO_COL ; else echo -ne "\t"; fi
echo -n "[ "
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_SUCCESS
echo -n $"DONE"
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_NORMAL
echo -n " ]"
if [ "$OUTPUT_MODE" = "color" ] ; then echo -ne "\r" ; else echo ; fi
return 0
}
echo_failure() {
if [ "$OUTPUT_MODE" = "color" ] ; then $MOVE_TO_COL ; else echo -ne "\t"; fi
echo -n "["
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_FAILURE
echo -n $"FAILED"
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_NORMAL
echo -n "]"
if [ "$OUTPUT_MODE" = "color" ] ; then echo -ne "\r" ; else echo ; fi
return_failure
return 1
}
echo_passed() {
if [ "$OUTPUT_MODE" = "color" ] ; then $MOVE_TO_COL ; else echo -ne "\t"; fi
echo -n "["
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_WARNING
echo -n $"PASSED"
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_NORMAL
echo -n "]"
if [ "$OUTPUT_MODE" = "color" ] ; then echo -ne "\r" ; else echo ; fi
return 1
}
echo_warning() {
if [ "$OUTPUT_MODE" = "color" ] ; then $MOVE_TO_COL ; else echo -ne "\t"; fi
echo -n "["
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_WARNING
echo -n $"WARNING"
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_NORMAL
echo -n "]"
if [ "$OUTPUT_MODE" = "color" ] ; then echo -ne "\r" ; else echo ; fi
return_failure
return 1
}
echo_skipped() {
if [ "$OUTPUT_MODE" = "color" ] ; then $MOVE_TO_COL ; else echo -ne "\t"; fi
echo -n "["
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_WARNING
echo -n $"SKIPPED"
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_NORMAL
echo -n "]"
if [ "$OUTPUT_MODE" = "color" ] ; then echo -ne "\r" ; else echo ; fi
return 1
}
echo_todo() {
if [ "$OUTPUT_MODE" = "color" ] ; then $MOVE_TO_COL ; else echo -ne "\t"; fi
echo -n "["
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_WARNING
echo -n $"TODO"
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_NORMAL
echo -n "]"
if [ "$OUTPUT_MODE" = "color" ] ; then echo -ne "\r" ; else echo ; fi
return_failure
return 1
}
return_success
LANGUAGE_ALPHABET='Ð?аÐ?бÐ?вÐ?гÒ?Ò?Ð?дÐ?еÐ?Ñ?Ð?жÐ?зÐ?иÐ?Ñ?Ð?Ñ?Ð?йÐ?кÐ?лÐ?мÐ?нÐ?оÐ?пÐ?Ñ?СÑ?ТÑ?УÑ?ФÑ?Ð¥Ñ?ЦÑ?ЧÑ?ШÑ?ЩÑ?ЬÑ?ЮÑ?ЯÑ?'
LANGUAGE_DAYS="понедÑ?лок вÑ?вÑ?оÑ?ок Ñ?еÑ?еда Ñ?еÑ?веÑ? п'Ñ?Ñ?ниÑ?Ñ? Ñ?Ñ?боÑ?а недÑ?лÑ?"
LANGUAGE_DAYS_ABBR="пн вÑ? Ñ?Ñ? Ñ?Ñ? пÑ? Ñ?б нд"
LANGUAGE_MONTHS="Ñ?Ñ?Ñ?енÑ? лÑ?Ñ?ий беÑ?езенÑ? квÑ?Ñ?енÑ? Ñ?Ñ?авенÑ? Ñ?еÑ?венÑ? липенÑ? Ñ?еÑ?пенÑ? веÑ?еÑ?енÑ? жовÑ?енÑ? лиÑ?Ñ?опад гÑ?Ñ?денÑ?"
LANGUAGE_MONTHS_ABBR="Ñ?Ñ?Ñ? лÑ?Ñ? беÑ? квÑ? Ñ?Ñ?а Ñ?еÑ? лип Ñ?еÑ? веÑ? жов лиÑ? гÑ?Ñ?"
LANGUAGE_TEST_DATETIME="2 may 2003 01:05:04"
LANGUAGE_TEST_DATETIME_FULL_FORMAT="п'Ñ?Ñ?ниÑ?Ñ?, 2 Ñ?Ñ?авнÑ? 2003 01:05:04 `date +%z`"
LANGUAGE_TEST_DATETIME_LONG_FORMAT="пÑ?, 02-Ñ?Ñ?а-2003 01:05:04 `date +%z`"
LANGUAGE_TEST_DATE_SHORT_FORMAT="02.05.03"
LANGUAGE_SORTING_EXAMPLE=`cat <<SORTING_EXAMPLE
аналÑ?гÑ?н
аналогÑ?Ñ?нÑ?Ñ?Ñ?Ñ?
бджÑ?лÑ?ниÑ?Ñ?во
бджÑ?лонÑ?ка
безвиннÑ?Ñ?Ñ?Ñ?
безвÑ?лÑ?нÑ?Ñ?Ñ?Ñ?
безгÑ?Ñ?нÑ?Ñ?Ñ?Ñ?
безÒ?Ñ?Ñ?нÑ?овнÑ?Ñ?Ñ?Ñ?
пÑ?Ñ?е
п'Ñ?Ñ?и
SORTING_EXAMPLE
`
LANGUAGE_NAME=Ukrainian
LANGUAGE_CODE=uk
LANGUAGE_COUNTRY=UA
LANGUAGE_ENCODING=UTF-8
LANGUAGE_ENCODING_LC=`echo "$LANGUAGE_ENCODING"|tr '[A-Z]' '[a-z]'`
LANGUAGE_ENCODING_LC_COND=`echo "$LANGUAGE_ENCODING_LC"|tr -d ' _.-'`
LANGUAGE_FULL_LOCALE_NAME="${LANGUAGE_CODE}_${LANGUAGE_COUNTRY}.${LANGUAGE_ENCODING}"
LANGUAGE_FONT_ENCODING=iso10646-1
LANGUAGE_X_KEYBOARD=ua
LANGUAGE_CONSOLE_KEYBOARD=ua
if [ "foo$VERBOSE" != "foo" ]
then
echo LANGUAGE_NAME=$LANGUAGE_NAME
echo LANGUAGE_CODE=$LANGUAGE_CODE
echo LANGUAGE_COUNTRY=$LANGUAGE_COUNTRY
echo LANGUAGE_ENCODING=$LANGUAGE_ENCODING
echo LANGUAGE_FULL_LOCALE_NAME=$LANGUAGE_FULL_LOCALE_NAME
echo LANGUAGE_FONT_ENCODING=$LANGUAGE_FONT_ENCODING
echo LANGUAGE_X_KEYBOARD=$LANGUAGE_X_KEYBOARD
echo LANGUAGE_CONSOLE_KEYBOARD=$LANGUAGE_CONSOLE_KEYBOARD
echo LANGUAGE_ALPHABET=$LANGUAGE_ALPHABET
echo LANGUAGE_DAYS=$LANGUAGE_DAYS
echo LANGUAGE_DAYS_ABBR=$LANGUAGE_DAYS_ABBR
echo LANGUAGE_MONTHS=$LANGUAGE_MONTHS
echo LANGUAGE_MONTHS_ABBR=$LANGUAGE_MONTHS_ABBR
echo LANGUAGE_TEST_DATETIME=$LANGUAGE_TEST_DATETIME
echo LANGUAGE_TEST_DATETIME_FULL_FORMAT=$LANGUAGE_TEST_DATETIME_FULL_FORMAT
echo LANGUAGE_TEST_DATE_SHORT_FORMAT=$LANGUAGE_TEST_DATE_SHORT_FORMAT
fi
echo -n "Checking for $LANGUAGE_FULL_LOCALE_NAME locale"
LOCALES=`(locale -a; locale --list-archive 2>/dev/null ) | grep "^${LANGUAGE_CODE}_${LANGUAGE_COUNTRY}.$LANGUAGE_ENCODING_LC_COND\$"|uniq`
if [ "$LOCALES" ]
then
echo_success
echo
else
echo_failure
echo
echo "Can't find locale $LANGUAGE_FULL_LOCALE_NAME!"
echo
echo "You can recreate them with command:"
echo "# localedef -c -f $LANGUAGE_ENCODING -i ${LANGUAGE_CODE}_$LANGUAGE_COUNTRY $LANGUAGE_FULL_LOCALE_NAME"
fi
#FIXME: generate temporary file names
ALPHABET_FILE=/tmp/alphabet.$RANDOM.$PPID
SORTED_ALPHABET_FILE=/tmp/sorted-alphabet.$RANDOM.$PPID
echo -n "Checking collation order for $LANGUAGE_NAME alphabet"
echo "$LANGUAGE_ALPHABET"|LC_ALL=$LANGUAGE_FULL_LOCALE_NAME fold -w 1 >$ALPHABET_FILE
tac <$ALPHABET_FILE | LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" sort >$SORTED_ALPHABET_FILE
if cmp -s $ALPHABET_FILE $SORTED_ALPHABET_FILE
then
echo_success
echo
else
echo_failure
echo
echo "Your system has wrong collation order for $LANGUAGE_NAME alphabet!"
echo "You must fix Your $LANGUAGE_FULL_LOCALE_NAME locale!"
echo
LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" diff -u $ALPHABET_FILE $SORTED_ALPHABET_FILE
fi
echo -n "Checking collation order for $LANGUAGE_NAME letters and specials"
echo "$LANGUAGE_SORTING_EXAMPLE" >$ALPHABET_FILE
tac <$ALPHABET_FILE | LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" sort >$SORTED_ALPHABET_FILE
if cmp -s $ALPHABET_FILE $SORTED_ALPHABET_FILE
then
echo_success
echo
else
echo_failure
echo
echo "Your system has wrong collation order for $LANGUAGE_NAME letters!"
echo "You must fix Your $LANGUAGE_FULL_LOCALE_NAME locale!"
echo
LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" diff -u $ALPHABET_FILE $SORTED_ALPHABET_FILE
fi
rm -f $ALPHABET_FILE $SORTED_ALPHABET_FILE
echo -n "Checking day abbreviations for $LANGUAGE_NAME language"
I=0
WRONG_DAYS=""
for DAY in $LANGUAGE_DAYS_ABBR
do
LOCAL_DAY=`LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" date -d "$(($I+5)) may 2003 1:5:4" "+%a"`
if [ "$DAY" != "$LOCAL_DAY" ]
then
WRONG_DAYS="$WRONG_DAYS $LOCAL_DAY (must be $DAY)
"
fi
I=$(($I+1))
done
if [ "$WRONG_DAYS" ]
then
echo_failure
echo
echo "Wrong day abbreviations:
$WRONG_DAYS"
else
echo_success
echo
fi
echo -n "Checking day names for $LANGUAGE_NAME language"
I=0
WRONG_DAYS=""
for DAY in $LANGUAGE_DAYS
do
LOCAL_DAY=`LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" date -d "$(($I+5)) may 2003 1:5:4" "+%A"`
if [ "$DAY" != "$LOCAL_DAY" ]
then
WRONG_DAYS="$WRONG_DAYS $LOCAL_DAY (must be $DAY)
"
fi
I=$(($I+1))
done
if [ "$WRONG_DAYS" ]
then
echo_failure
echo
echo "Wrong days:
$WRONG_DAYS"
else
echo_success
echo
fi
echo -n "Checking month abbreviations for $LANGUAGE_NAME language"
I=1
WRONG_MONTHS=""
for MONTH in $LANGUAGE_MONTHS_ABBR
do
LOCAL_MONTH=`LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" date -d "$I/1" "+%b"`
if [ "$MONTH" != "$LOCAL_MONTH" ]
then
WRONG_MONTHS="$WRONG_MONTHS $LOCAL_MONTH (must be $MONTH)
"
fi
I=$(($I+1))
done
if [ "$WRONG_MONTHS" ]
then
echo_failure
echo
echo "Wrong month abbreviations:
$WRONG_MONTHS"
else
echo_success
echo
fi
echo -n "Checking month names for $LANGUAGE_NAME language"
I=1
WRONG_MONTHS=""
for MONTH in $LANGUAGE_MONTHS
do
LOCAL_MONTH=`LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" date -d "$I/1" "+%B"`
if [ "$MONTH" != "$LOCAL_MONTH" ]
then
WRONG_MONTHS="$WRONG_MONTHS $LOCAL_MONTH (must be $MONTH)
"
fi
I=$(($I+1))
done
if [ "$WRONG_MONTHS" ]
then
echo_failure
echo
echo "Wrong months:
$WRONG_MONTHS"
else
echo_success
echo
fi
echo -n "Checking full date format for $LANGUAGE_NAME language"
LOCAL_DATE_FORMAT=`LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" date -d "$LANGUAGE_TEST_DATETIME"`
if [ "$LOCAL_DATE_FORMAT" != "$LANGUAGE_TEST_DATETIME_FULL_FORMAT" ]
then
echo_failure
echo
echo "Wrong full date format:"
echo "\"$LOCAL_DATE_FORMAT\" (must be \"$LANGUAGE_TEST_DATETIME_FULL_FORMAT\")"
else
echo_success
echo
fi
echo -n "Checking long date format for $LANGUAGE_NAME language"
LOCAL_DATE_FORMAT=`LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" date -d "$LANGUAGE_TEST_DATETIME" "+%c"`
if [ "$LOCAL_DATE_FORMAT" != "$LANGUAGE_TEST_DATETIME_LONG_FORMAT" ]
then
echo_failure
echo
echo "Wrong long date format:"
echo "\"$LOCAL_DATE_FORMAT\" (must be \"$LANGUAGE_TEST_DATETIME_LONG_FORMAT\")"
else
echo_success
echo
fi
echo -n "Checking short date format for $LANGUAGE_NAME language"
LOCAL_DATE_FORMAT=`LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" date -d "$LANGUAGE_TEST_DATETIME" "+%x"`
if [ "$LOCAL_DATE_FORMAT" != "$LANGUAGE_TEST_DATE_SHORT_FORMAT" ]
then
echo_failure
echo
echo "Wrong short date format:"
echo "\"$LOCAL_DATE_FORMAT\" (must be \"$LANGUAGE_TEST_DATE_SHORT_FORMAT\")"
else
echo_success
echo
fi
#!/bin/sh
VERSION="localeconf-0.3"
OUTPUT_MODE=color
for I in $@
do
case "$I" in
-h|--help)
echo "Usage: $0 [OPTIONS]"
echo "Options:"
echo " -h, --help this help screen"
echo " -V, --version version of this script"
echo " -c, --no-color without colored output"
echo " -v, --verbose verbose output"
echo ""
exit 0;
;;
-V|--version)
echo "$VERSION"
exit 0;
;;
-c|--no-color)
OUTPUT_MODE=plain
;;
-v|--verbose)
VERBOSE=yes
;;
*)
echo "Unknown option: $I"
exit 1
;;
esac
done
RES_COL=60
MOVE_TO_COL="echo -en \\033[${RES_COL}G"
SETCOLOR_SUCCESS="echo -en \\033[1;32m"
SETCOLOR_FAILURE="echo -en \\033[1;31m"
SETCOLOR_WARNING="echo -en \\033[1;33m"
SETCOLOR_NORMAL="echo -en \\033[0;39m"
return_success() {
STATUS=OK
}
return_failure() {
STATUS=FAILURE
}
echo_success() {
if [ "$OUTPUT_MODE" = "color" ] ; then $MOVE_TO_COL ; else echo -ne "\t"; fi
echo -n "[ "
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_SUCCESS
echo -n $"OK"
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_NORMAL
echo -n " ]"
if [ "$OUTPUT_MODE" = "color" ] ; then echo -ne "\r" ; else echo ; fi
return 0
}
echo_done() {
if [ "$OUTPUT_MODE" = "color" ] ; then $MOVE_TO_COL ; else echo -ne "\t"; fi
echo -n "[ "
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_SUCCESS
echo -n $"DONE"
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_NORMAL
echo -n " ]"
if [ "$OUTPUT_MODE" = "color" ] ; then echo -ne "\r" ; else echo ; fi
return 0
}
echo_failure() {
if [ "$OUTPUT_MODE" = "color" ] ; then $MOVE_TO_COL ; else echo -ne "\t"; fi
echo -n "["
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_FAILURE
echo -n $"FAILED"
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_NORMAL
echo -n "]"
if [ "$OUTPUT_MODE" = "color" ] ; then echo -ne "\r" ; else echo ; fi
return_failure
return 1
}
echo_passed() {
if [ "$OUTPUT_MODE" = "color" ] ; then $MOVE_TO_COL ; else echo -ne "\t"; fi
echo -n "["
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_WARNING
echo -n $"PASSED"
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_NORMAL
echo -n "]"
if [ "$OUTPUT_MODE" = "color" ] ; then echo -ne "\r" ; else echo ; fi
return 1
}
echo_warning() {
if [ "$OUTPUT_MODE" = "color" ] ; then $MOVE_TO_COL ; else echo -ne "\t"; fi
echo -n "["
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_WARNING
echo -n $"WARNING"
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_NORMAL
echo -n "]"
if [ "$OUTPUT_MODE" = "color" ] ; then echo -ne "\r" ; else echo ; fi
return_failure
return 1
}
echo_skipped() {
if [ "$OUTPUT_MODE" = "color" ] ; then $MOVE_TO_COL ; else echo -ne "\t"; fi
echo -n "["
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_WARNING
echo -n $"SKIPPED"
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_NORMAL
echo -n "]"
if [ "$OUTPUT_MODE" = "color" ] ; then echo -ne "\r" ; else echo ; fi
return 1
}
echo_todo() {
if [ "$OUTPUT_MODE" = "color" ] ; then $MOVE_TO_COL ; else echo -ne "\t"; fi
echo -n "["
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_WARNING
echo -n $"TODO"
[ "$OUTPUT_MODE" = "color" ] && $SETCOLOR_NORMAL
echo -n "]"
if [ "$OUTPUT_MODE" = "color" ] ; then echo -ne "\r" ; else echo ; fi
return_failure
return 1
}
return_success
LANGUAGE_ALPHABET='áÁâÂ÷×çǽäÄåÅ´¤öÖúÚéɶ¦·§êÊëËìÌíÍîÎïÏðÐòÒóÓôÔõÕæÆèÈãÃþÞûÛýÝøØàÀñÑ'
LANGUAGE_DAYS="ÐÏÎÅĦÌÏË ×¦×ÔÏÒÏË ÓÅÒÅÄÁ ÞÅÔ×ÅÒ Ð'ÑÔÎÉÃÑ ÓÕÂÏÔÁ ÎÅĦÌÑ"
LANGUAGE_DAYS_ABBR="ÐÎ ×Ô ÓÒ ÞÔ ÐÔ ÓÂ ÎÄ"
LANGUAGE_MONTHS="Ó¦ÞÅÎØ ÌÀÔÉÊ ÂÅÒÅÚÅÎØ ËצÔÅÎØ ÔÒÁ×ÅÎØ ÞÅÒ×ÅÎØ ÌÉÐÅÎØ ÓÅÒÐÅÎØ ×ÅÒÅÓÅÎØ ÖÏ×ÔÅÎØ ÌÉÓÔÏÐÁÄ ÇÒÕÄÅÎØ"
LANGUAGE_MONTHS_ABBR="Ó¦Þ ÌÀÔ ÂÅÒ Ëצ ÔÒÁ ÞÅÒ ÌÉÐ ÓÅÒ ×ÅÒ ÖÏ× ÌÉÓ ÇÒÕ"
LANGUAGE_TEST_DATETIME="2 may 2003 01:05:04"
LANGUAGE_TEST_DATETIME_FULL_FORMAT="Ð'ÑÔÎÉÃÑ, 2 ÔÒÁ×ÎÑ 2003 01:05:04 `date +%z`"
LANGUAGE_TEST_DATETIME_LONG_FORMAT="ÐÔ, 02-ÔÒÁ-2003 01:05:04 `date +%z`"
LANGUAGE_TEST_DATE_SHORT_FORMAT="02.05.03"
LANGUAGE_SORTING_EXAMPLE=`cat <<SORTING_EXAMPLE
ÁÎÁÌØÇ¦Î
ÁÎÁÌÏǦÞΦÓÔØ
ÂÄÖ¦ÌØÎÉÃÔ×Ï
ÂÄÖ¦ÌÏÎØËÁ
ÂÅÚ×ÉÎΦÓÔØ
ÂÅÚ×¦ÌØÎ¦ÓÔØ
ÂÅÚÇÕÞΦÓÔØ
ÂÅÚÒÕÎÔÏ×ΦÓÔØ
ÐÀÒÅ
Ð'ÀÞÉ
SORTING_EXAMPLE
`
LANGUAGE_NAME=Ukrainian
LANGUAGE_CODE=uk
LANGUAGE_COUNTRY=UA
LANGUAGE_ENCODING=KOI8-U
LANGUAGE_ENCODING_LC=`echo "$LANGUAGE_ENCODING"|tr '[A-Z]' '[a-z]'`
LANGUAGE_ENCODING_LC_COND=`echo "$LANGUAGE_ENCODING_LC"|tr -d ' _.-'`
LANGUAGE_FULL_LOCALE_NAME="${LANGUAGE_CODE}_${LANGUAGE_COUNTRY}.${LANGUAGE_ENCODING}"
LANGUAGE_FONT_ENCODING=koi8-u
LANGUAGE_X_KEYBOARD=ua
LANGUAGE_CONSOLE_KEYBOARD=ua
if [ "foo$VERBOSE" != "foo" ]
then
echo LANGUAGE_NAME=$LANGUAGE_NAME
echo LANGUAGE_CODE=$LANGUAGE_CODE
echo LANGUAGE_COUNTRY=$LANGUAGE_COUNTRY
echo LANGUAGE_ENCODING=$LANGUAGE_ENCODING
echo LANGUAGE_FULL_LOCALE_NAME=$LANGUAGE_FULL_LOCALE_NAME
echo LANGUAGE_FONT_ENCODING=$LANGUAGE_FONT_ENCODING
echo LANGUAGE_X_KEYBOARD=$LANGUAGE_X_KEYBOARD
echo LANGUAGE_CONSOLE_KEYBOARD=$LANGUAGE_CONSOLE_KEYBOARD
echo LANGUAGE_ALPHABET=$LANGUAGE_ALPHABET
echo LANGUAGE_DAYS=$LANGUAGE_DAYS
echo LANGUAGE_DAYS_ABBR=$LANGUAGE_DAYS_ABBR
echo LANGUAGE_MONTHS=$LANGUAGE_MONTHS
echo LANGUAGE_MONTHS_ABBR=$LANGUAGE_MONTHS_ABBR
echo LANGUAGE_TEST_DATETIME=$LANGUAGE_TEST_DATETIME
echo LANGUAGE_TEST_DATETIME_FULL_FORMAT=$LANGUAGE_TEST_DATETIME_FULL_FORMAT
echo LANGUAGE_TEST_DATE_SHORT_FORMAT=$LANGUAGE_TEST_DATE_SHORT_FORMAT
fi
echo -n "Checking for $LANGUAGE_FULL_LOCALE_NAME locale"
LOCALES=`(locale -a; locale --list-archive 2>/dev/null ) | grep "^${LANGUAGE_CODE}_${LANGUAGE_COUNTRY}.$LANGUAGE_ENCODING_LC_COND\$"|uniq`
if [ "$LOCALES" ]
then
echo_success
echo
else
echo_failure
echo
echo "Can't find locale $LANGUAGE_FULL_LOCALE_NAME!"
echo
echo "You can recreate them with command:"
echo "# localedef -c -f $LANGUAGE_ENCODING -i ${LANGUAGE_CODE}_$LANGUAGE_COUNTRY $LANGUAGE_FULL_LOCALE_NAME"
fi
#FIXME: generate temporary file names
ALPHABET_FILE=/tmp/alphabet.$RANDOM.$PPID
SORTED_ALPHABET_FILE=/tmp/sorted-alphabet.$RANDOM.$PPID
echo -n "Checking collation order for $LANGUAGE_NAME alphabet"
echo "$LANGUAGE_ALPHABET"|LC_ALL=$LANGUAGE_FULL_LOCALE_NAME fold -w 1 >$ALPHABET_FILE
tac <$ALPHABET_FILE | LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" sort >$SORTED_ALPHABET_FILE
if cmp -s $ALPHABET_FILE $SORTED_ALPHABET_FILE
then
echo_success
echo
else
echo_failure
echo
echo "Your system has wrong collation order for $LANGUAGE_NAME alphabet!"
echo "You must fix Your $LANGUAGE_FULL_LOCALE_NAME locale!"
echo
LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" diff -u $ALPHABET_FILE $SORTED_ALPHABET_FILE
fi
echo -n "Checking collation order for $LANGUAGE_NAME letters and specials"
echo "$LANGUAGE_SORTING_EXAMPLE" >$ALPHABET_FILE
tac <$ALPHABET_FILE | LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" sort >$SORTED_ALPHABET_FILE
if cmp -s $ALPHABET_FILE $SORTED_ALPHABET_FILE
then
echo_success
echo
else
echo_failure
echo
echo "Your system has wrong collation order for $LANGUAGE_NAME letters!"
echo "You must fix Your $LANGUAGE_FULL_LOCALE_NAME locale!"
echo
LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" diff -u $ALPHABET_FILE $SORTED_ALPHABET_FILE
fi
rm -f $ALPHABET_FILE $SORTED_ALPHABET_FILE
echo -n "Checking day abbreviations for $LANGUAGE_NAME language"
I=0
WRONG_DAYS=""
for DAY in $LANGUAGE_DAYS_ABBR
do
LOCAL_DAY=`LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" date -d "$(($I+5)) may 2003 1:5:4" "+%a"`
if [ "$DAY" != "$LOCAL_DAY" ]
then
WRONG_DAYS="$WRONG_DAYS $LOCAL_DAY (must be $DAY)
"
fi
I=$(($I+1))
done
if [ "$WRONG_DAYS" ]
then
echo_failure
echo
echo "Wrong day abbreviations:
$WRONG_DAYS"
else
echo_success
echo
fi
echo -n "Checking day names for $LANGUAGE_NAME language"
I=0
WRONG_DAYS=""
for DAY in $LANGUAGE_DAYS
do
LOCAL_DAY=`LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" date -d "$(($I+5)) may 2003 1:5:4" "+%A"`
if [ "$DAY" != "$LOCAL_DAY" ]
then
WRONG_DAYS="$WRONG_DAYS $LOCAL_DAY (must be $DAY)
"
fi
I=$(($I+1))
done
if [ "$WRONG_DAYS" ]
then
echo_failure
echo
echo "Wrong days:
$WRONG_DAYS"
else
echo_success
echo
fi
echo -n "Checking month abbreviations for $LANGUAGE_NAME language"
I=1
WRONG_MONTHS=""
for MONTH in $LANGUAGE_MONTHS_ABBR
do
LOCAL_MONTH=`LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" date -d "$I/1" "+%b"`
if [ "$MONTH" != "$LOCAL_MONTH" ]
then
WRONG_MONTHS="$WRONG_MONTHS $LOCAL_MONTH (must be $MONTH)
"
fi
I=$(($I+1))
done
if [ "$WRONG_MONTHS" ]
then
echo_failure
echo
echo "Wrong month abbreviations:
$WRONG_MONTHS"
else
echo_success
echo
fi
echo -n "Checking month names for $LANGUAGE_NAME language"
I=1
WRONG_MONTHS=""
for MONTH in $LANGUAGE_MONTHS
do
LOCAL_MONTH=`LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" date -d "$I/1" "+%B"`
if [ "$MONTH" != "$LOCAL_MONTH" ]
then
WRONG_MONTHS="$WRONG_MONTHS $LOCAL_MONTH (must be $MONTH)
"
fi
I=$(($I+1))
done
if [ "$WRONG_MONTHS" ]
then
echo_failure
echo
echo "Wrong months:
$WRONG_MONTHS"
else
echo_success
echo
fi
echo -n "Checking full date format for $LANGUAGE_NAME language"
LOCAL_DATE_FORMAT=`LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" date -d "$LANGUAGE_TEST_DATETIME"`
if [ "$LOCAL_DATE_FORMAT" != "$LANGUAGE_TEST_DATETIME_FULL_FORMAT" ]
then
echo_failure
echo
echo "Wrong full date format:"
echo "\"$LOCAL_DATE_FORMAT\" (must be \"$LANGUAGE_TEST_DATETIME_FULL_FORMAT\")"
else
echo_success
echo
fi
echo -n "Checking long date format for $LANGUAGE_NAME language"
LOCAL_DATE_FORMAT=`LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" date -d "$LANGUAGE_TEST_DATETIME" "+%c"`
if [ "$LOCAL_DATE_FORMAT" != "$LANGUAGE_TEST_DATETIME_LONG_FORMAT" ]
then
echo_failure
echo
echo "Wrong long date format:"
echo "\"$LOCAL_DATE_FORMAT\" (must be \"$LANGUAGE_TEST_DATETIME_LONG_FORMAT\")"
else
echo_success
echo
fi
echo -n "Checking short date format for $LANGUAGE_NAME language"
LOCAL_DATE_FORMAT=`LC_ALL="$LANGUAGE_FULL_LOCALE_NAME" date -d "$LANGUAGE_TEST_DATETIME" "+%x"`
if [ "$LOCAL_DATE_FORMAT" != "$LANGUAGE_TEST_DATE_SHORT_FORMAT" ]
then
echo_failure
echo
echo "Wrong short date format:"
echo "\"$LOCAL_DATE_FORMAT\" (must be \"$LANGUAGE_TEST_DATE_SHORT_FORMAT\")"
else
echo_success
echo
fi
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |