tazpanel diff settings.cgi @ rev 458

boot.cgi/ISO mine: install in Linux partition
author Pascal Bellard <pascal.bellard@slitaz.org>
date Mon Apr 13 11:11:51 2015 +0200 (2015-04-13)
parents 169f1ccfb613
children dd26a42bd40b
line diff
     1.1 --- a/settings.cgi	Wed Apr 08 15:32:20 2015 +0300
     1.2 +++ b/settings.cgi	Mon Apr 13 11:11:51 2015 +0200
     1.3 @@ -30,153 +30,6 @@
     1.4  }
     1.5  
     1.6  
     1.7 -#############################
     1.8 -# Get info from locale file #
     1.9 -#############################
    1.10 -
    1.11 -get_locale_info()
    1.12 -{
    1.13 -	# Commands like `LC_ALL=fr_FR locale -k LC_MEASUREMENT` will do the job
    1.14 -	#   only when your locale is generated and exists in the /usr/lib/locale.
    1.15 -	# Here we manually parse locale definition files from /usr/share/i18n/locales/.
    1.16 -	# Strange, bloated and not script-friendly format :(
    1.17 -
    1.18 -	[ ! -e /usr/share/i18n/locales/$1 ] && return
    1.19 -
    1.20 -	# Prepare file
    1.21 -	if [ ! -e /tmp/tazpanel-$1 ]; then
    1.22 -		sed 's|^[ \t]*||;/^%/d;/^comment_char/d;/^escape_char/d' /usr/share/i18n/locales/$1 | tr '\n' '&' | sed 's|/&||g' | tr '&' '\n' | sed 's|<U\([0-9a-fA-F]*\)>|\&#x\1;|g' | sed 's|&#x00|\&#x|g' > /tmp/tazpanel-$1
    1.23 -	fi
    1.24 -
    1.25 -	local ANS=$(grep -e "^$2[ 	]" /tmp/tazpanel-$1 | sed 's|^[^ \t][^ \t]* *||')
    1.26 -	if [ -z "$ANS" ]; then
    1.27 -		# Not found, then section is copied from other locale definition file...
    1.28 -		case $2 in
    1.29 -			measurement)
    1.30 -				section='LC_MEASUREMENT';;
    1.31 -			width|height)
    1.32 -				section='LC_PAPER';;
    1.33 -			currency_symbol|int_curr_symbol)
    1.34 -				section='LC_MONETARY';;
    1.35 -			day|abday|mon|abmon|d_t_fmt|d_fmt|t_fmt|am_pm|t_fmt_ampm|date_fmt)
    1.36 -				section='LC_TIME';;
    1.37 -		esac
    1.38 -		# Recursive call
    1.39 -		get_locale_info $(sed -n '/^'$section'/,/^END '$section'/p' /tmp/tazpanel-$1 | grep 'copy' | cut -d'"' -f2) $2
    1.40 -	else
    1.41 -		case $2 in
    1.42 -			day|abday|mon|abmon|am_pm)		# semicolon-separated list in double quotes
    1.43 -				echo "$ANS";;
    1.44 -			*)		# single value in double qoutes
    1.45 -				echo "$ANS" | cut -d'"' -f2;;
    1.46 -		esac
    1.47 -	fi
    1.48 -}
    1.49 -
    1.50 -
    1.51 -# Get info from locale file about measurement system
    1.52 -
    1.53 -get_locale_info_measurement()
    1.54 -{
    1.55 -	# faster to use pre-processed values
    1.56 -	case $1 in
    1.57 -		en_AG|en_US|es_PR|es_US|nl_AW|yi_US) _ 'US' ;;
    1.58 -		POSIX) ;;
    1.59 -		*) _ 'metric' ;;
    1.60 -	esac
    1.61 -}
    1.62 -
    1.63 -
    1.64 -# Get info from locale file about paper size
    1.65 -
    1.66 -get_locale_info_paper()
    1.67 -{
    1.68 -	# faster to use pre-processed values
    1.69 -	case $1 in
    1.70 -		en_AG|en_US|es_PR|es_US|nl_AW|yi_US) echo '8½×11 (US Letter)';;
    1.71 -		en_CA|en_PH|es_CL|es_CO|es_CR|es_GT|es_MX|es_NI|es_PA|es_SV|es_VE|fil_PH|fr_CA|ik_CA|iu_CA|shs_CA|tl_PH) echo '216×279 (US Letter)';;
    1.72 -		POSIX) ;;
    1.73 -		*) echo '210×297 (A4)';;
    1.74 -	esac
    1.75 -}
    1.76 -
    1.77 -
    1.78 -# Get info from locale file about date and time format
    1.79 -
    1.80 -get_locale_info_date_time()
    1.81 -{
    1.82 -	case $2 in
    1.83 -		c) get_locale_info $1 d_t_fmt ;;
    1.84 -		x) get_locale_info $1 d_fmt ;;
    1.85 -		X) get_locale_info $1 t_fmt ;;
    1.86 -		r) get_locale_info $1 t_fmt_ampm ;;
    1.87 -		*) get_locale_info $1 date_fmt ;;
    1.88 -	esac | sed 's|&#x20;| |g; s|&#x25;|%|g; s|&#x2C;|,|g; s|&#x2D;|-|g; s|&#x2E;|.|g; s|&#x2F;|/|g; s|&#x3A;|:|g; s|&#x41;|A|g; s|&#x42;|B|g; s|&#x43;|C|g; s|&#x46;|F|g; s|&#x48;|H|g; s|&#x49;|I|g; s|&#x4D;|M|g; s|&#x4F;|O|g; s|&#x52;|R|g; s|&#x53;|S|g; s|&#x54;|T|g; s|&#x58;|X|g; s|&#x59;|Y|g; s|&#x5A;|Z|g; s|&#x61;|a|g; s|&#x62;|b|g; s|&#x65;|e|g; s|&#x64;|d|g; s|&#x6B;|k|g; s|&#x6D;|m|g; s|&#x6E;|n|g; s|&#x6F;|o|g; s|&#x70;|p|g; s|&#x72;|r|g; s|&#x74;|t|g; s|&#x78;|x|g; s|&#x79;|y|g; s|&#x7A;|z|g;'
    1.89 -
    1.90 -}
    1.91 -
    1.92 -
    1.93 -parse_date()
    1.94 -{
    1.95 -	local weekday month day abday mon abmon rtime d_fmt t_fmt am_pm
    1.96 -	weekday=$(( $(date +%w) + 1 ))											# 1=Sunday ...
    1.97 -	  month=$(date +%-m)													# 1=January ...
    1.98 -	  day=$(get_locale_info $1   day | cut -d'"' -f$(( 2 * $weekday )) | sed 's|&|\\\&|g')	# translated day of week
    1.99 -	abday=$(get_locale_info $1 abday | cut -d'"' -f$(( 2 * $weekday )) | sed 's|&|\\\&|g')	#   same, abbreviated
   1.100 -	  mon=$(get_locale_info $1   mon | cut -d'"' -f$(( 2 * $month   )) | sed 's|&|\\\&|g')	# translated month
   1.101 -	abmon=$(get_locale_info $1 abmon | cut -d'"' -f$(( 2 * $month   )) | sed 's|&|\\\&|g')	#   same, abbreviated
   1.102 -	# next %-codes expanded into other %-codes
   1.103 -	rtime=$(get_locale_info_date_time $1 r | sed 's|&|\\\&|g')									# %r: 12-hour time
   1.104 -	d_fmt=$(get_locale_info_date_time $1 x | sed 's|&|\\\&|g')									# %x: date
   1.105 -	t_fmt=$(get_locale_info_date_time $1 X | sed 's|&|\\\&|g')									# %X: time
   1.106 -
   1.107 -	case $(LC_ALL=POSIX date +%P) in										# translated am/pm
   1.108 -		am) am_pm=$(get_locale_info $1 am_pm | cut -d'"' -f2 | sed 's|&|\\\&|g');;
   1.109 -		pm) am_pm=$(get_locale_info $1 am_pm | cut -d'"' -f4 | sed 's|&|\\\&|g');;
   1.110 -	esac
   1.111 -
   1.112 -	# r x X | OC | Y y Oy Ey | m -m Om | d -d Od | e -e Oe | F | H OH k | I OI l | M OM | S OS | R T | Z z | t | P p Op A a B b
   1.113 -	# Note: %P=am/pm; %p=AM/PM. But here they the same because it is not a simple job to convert letters.
   1.114 -	echo "$2" | sed "s|%r|$rtime|; s|%x|$d_fmt|; s|%X|$t_fmt|; \
   1.115 -		s|%OC|S(date +%OC)|; \
   1.116 -		s|%Y|$(date +%Y)|; s|%y|$(date  +%y )|; s|%Oy|$(date +%Oy)|; s|%Ey|$(date +%Ey)|; \
   1.117 -		s|%m|$(date +%m)|; s|%-m|$(date +%-m)|; s|%Om|$(date +%Om)|; \
   1.118 -		s|%d|$(date +%d)|; s|%-d|$(date +%-d)|; s|%Od|$(date +%Od)|; \
   1.119 -		s|%e|$(date +%e)|; s|%-e|$(date +%-e)|; s|%Oe|$(date +%Oe)|; \
   1.120 -		s|%F|$(date +%F)|; \
   1.121 -		s|%H|$(date +%H)|; s|%OH|$(date +%OH)|; s|%k|$(date +%k)|; \
   1.122 -		s|%I|$(date +%I)|; s|%OI|$(date +%OI)|; s|%l|$(date +%l)|; \
   1.123 -		s|%M|$(date +%M)|; s|%OM|$(date +%OM)|; \
   1.124 -		s|%S|$(date +%S)|; s|%OS|$(date +%OS)|; \
   1.125 -		s|%R|$(date +%R)|; s|%T|$(date  +%T )|; \
   1.126 -		s|%Z|$(date +%Z)|; s|%z|$(date  +%z )|; \
   1.127 -		s|%t|\t|; \
   1.128 -		s|%P|$am_pm|; s|%p|$am_pm|; s|%Op|$am_pm|; s|%A|$day|; s|%a|$abday|; s|%B|$mon|; s|%b|$abmon|;"
   1.129 -
   1.130 -}
   1.131 -
   1.132 -list_of()
   1.133 -{
   1.134 -	cd /usr/share/i18n/locales
   1.135 -	#mon=$(date +%-m); monn=$(( $mon * 2 ))
   1.136 -	#echo "mon=\"$mon\" monn=\"$monn\""
   1.137 -
   1.138 -	echo '<pre>'
   1.139 -for LOC in be_BY ca_IT el_CY fr_CH ru_RU ru_UA; do
   1.140 -	case $LOC in
   1.141 -		iso*|translit*) ;;
   1.142 -		*)
   1.143 -			#echo -e "$LOC:\t$(parse_date $LOC $(get_locale_info_date_time $LOC c | sed 's|&|\\\&|g'))";;
   1.144 -			FMT="$(get_locale_info_date_time $LOC c)"
   1.145 -			echo -e "$LOC:\t$FMT"
   1.146 -			parse_date $LOC "$FMT"
   1.147 -			echo;;
   1.148 -	esac
   1.149 -done
   1.150 -	echo '</pre>'
   1.151 -}
   1.152 -
   1.153 -
   1.154  
   1.155  
   1.156