update resource
[apps/home/settings.git] / dxml.sh
1 #!/bin/bash
2
3 #####################################
4 #dynamic xml creation shell script
5 #####################################
6
7 langcode_mapping_table(){
8         case $filename in
9                 "ar") lang_string="ar-ae";;
10                 "az") lang_string="az-az";;
11                 "bg") lang_string="bg-bg";;
12                 "ca") lang_string="ca-es";;
13                 "cs") lang_string="cs-cz";;
14                 "da") lang_string="da-dk";;
15                 "de_DE") lang_string="de-de";;
16                 "el_GR") lang_string="el-gr";;
17                 "en") lang_string="en-gb";;
18                 "en_PH") lang_string="en-ph";;
19                 "en_US") lang_string="en-us";;
20                 "es_US") lang_string="en-us";;
21                 "es_ES") lang_string="es-es";;
22                 "es_MX") lang_string="es-mx";;
23                 "et") lang_string="et-ee";;
24                 "eu") lang_string="eu-es";;
25                 "fi") lang_string="fi-fi";;
26                 "fr_CA") lang_string="fr-ca";;
27                 "fr_FR") lang_string="fr-fr";;
28                 "ga") lang_string="ga-ie";;
29                 "gl") lang_string="gl-es";;
30                 "hi") lang_string="hi-in";;
31                 "hr") lang_string="hr-hr";;
32                 "hu") lang_string="hu-hu";;
33                 "hy") lang_string="hy-am";;
34                 "is") lang_string="is-is";;
35                 "it_IT") lang_string="it-it";;
36                 "ja_JP") lang_string="ja-jp";;
37                 "ka") lang_string="ka-ge";;
38                 "kk") lang_string="kk-kz";;
39                 "ko_KR") lang_string="ko-kr";;
40                 "lt") lang_string="lt-lt";;
41                 "lv") lang_string="lv-lv";;
42                 "mk") lang_string="mk-mk";;
43                 "nb") lang_string="nb-no";;
44                 "nl_NL") lang_string="nl-nl";;
45                 "pl") lang_string="pl-pl";;
46                 "pt_BR") lang_string="pt-br";;
47                 "pt_PT") lang_string="pt-pt";;
48                 "ro") lang_string="ro-ro";;
49                 "ru_RU") lang_string="ru-ru";;
50                 "sk") lang_string="sk-sk";;
51                 "sl") lang_string="sl-si";;
52                 "sr") lang_string="sr-rs";;
53                 "sv") lang_string="sv-se";;
54                 "tr_TR") lang_string="tr-tr";;
55                 "uk") lang_string="uk-ua";;
56                 "uz") lang_string="uz-uz";;
57                 "zh_CN") lang_string="zh-cn";;
58                 "zh_HK") lang_string="zh-hk";;
59                 "zh_SG") lang_string="zh-sg";;
60                 "zh_TW") lang_string="zh-tw";;
61                 *) lang_string="NOT_EXIST";;
62         esac
63 }
64
65 designid_mapping_table(){
66         case $appid in
67                 "org.tizen.setting") design_id="IDS_ST_OPT_SETTINGS";;
68                 "setting-network-efl") design_id="IDS_ST_BODY_NETWORK";;
69                 "setting-font-efl") design_id="IDS_ST_BODY_FONT_TYPE";;
70                 "setting-ledindicator-efl") design_id="IDS_ST_BODY_LED_INDICATOR";;
71                 "setting-accessory-efl") design_id="IDS_COM_BODY_ACCESSORIES";;
72                 "setting-storage-efl") design_id="IDS_ST_BODY_STORAGE";;
73                 "setting-about-efl") design_id="IDS_ST_BODY_ABOUT_DEVICE";;
74                 "setting-security-efl") design_id="IDS_ST_BODY_SECURITY";;
75                 "setting-time-efl") design_id="IDS_ST_BODY_DATE_AND_TIME";;
76                 "setting-profile-efl") design_id="IDS_ST_HEADER_SOUND";;
77                 "setting-datausage-efl") design_id="IDS_MOBILEAP_MBODY_DATA_USAGE";;
78                 "setting-accessibility-efl") design_id="IDS_ST_HEADER_ACCESSIBILITY";;
79                 "setting-privacy-efl") design_id="IDS_ST_HEADER_PRIVACY";;
80                 "setting-motion-efl") design_id="IDS_ST_BODY_MOTION";;
81                 "setting-powersaving-efl") design_id="IDS_ST_MBODY_POWER_SAVING_MODE";;
82                 "setting-blockingmode-efl") design_id="IDS_ST_BODY_BLOCKING_MODE";;
83                 "setting-display-efl") design_id="IDS_ST_BODY_DISPLAY";;
84                 "setting-drivingmode-efl") design_id="IDS_ST_BODY_DRIVING_MODE";;
85                 "setting-personalpage-efl") design_id="IDS_ST_HEADER_PERSONAL_MODE";;
86                 "setting-palmmotion-efl") design_id="IDS_MTTRL_MBODY_PALM_MOTION";;
87                 "setting-easymode-efl") design_id="IDS_ST_BODY_EASY_MODE";;
88                 "setting-netrestrictionmode-efl") design_id="IDS_ST_HEADER_NETWORK_RESTRICTION_MODE_ABB_JPN";;
89                 "org.tizen.setting.display") design_id="IDS_ST_BODY_DISPLAY";;
90                 "org.tizen.setting.motion") design_id="IDS_ST_BODY_MOTION";;
91                 "org.tizen.setting.smartscreen") design_id="IDS_ST_HEADER_SMART_SCREEN";;
92                 "org.tizen.setting.language") design_id="IDS_ST_BODY_LANGUAGE_AND_KEYBOARD";;
93                 "org.tizen.setting.manageapplications") design_id="IDS_ST_BODY_MANAGE_APPLICATIONS";;
94                 "org.tizen.setting.developeroptions") design_id="IDS_ST_BODY_DEVELOPER_OPTIONS";;
95                 *) design_id="NOT_EXIST";;
96         esac
97 }
98 ##########################
99 # $1 = pofile folder
100 # $2 = src xml file
101 # $3 = dest xml file
102 ##########################
103
104 tab=0;
105 rm $3;
106 echo "xml creation start"
107
108 #traversal in org.tizen.setting.sample.xml file
109 while read line; do
110         #get entity
111         ENTITY=`echo $line | cut -d'<' -f 2`
112
113         #intent get & insert
114         ENDOFLINE=`echo $line | cut -d'<' -f 3`
115         CUT=${ENTITY:0:1}
116
117         a=`expr ${#line} - 3`
118         b=`expr ${#line} - 1`
119         el=${ENTITY:$a:$b}
120
121         if [[ "$CUT" = "/" ]]; then
122                 for ((i=0; i<$tab-1; i++)); do
123                         printf "\t" >> $3;
124                 done
125                 tab=`expr $tab - 1`
126         else
127                 for ((i=0; i<$tab; i++)); do
128                         printf "\t" >> $3;
129                 done
130                 tab=`expr $tab + 1`
131         fi
132
133         if test -n "$ENDOFLINE"; then
134                 tab=`expr $tab - 1`
135         fi
136         if [[ "$CUT" = "?" ]]; then
137                 tab=`expr $tab - 1`
138         fi
139         if [[ "$el" = "/>" ]]; then
140                 tab=`expr $tab - 1`
141         fi
142
143         #read one line from src xml and write to dest xml
144         printf "$line\n" >> $3;
145
146         #get entity's tag and attribute
147         TAG_NAME=${ENTITY%% *}
148         TEMP=${ENTITY#* }
149         ATTRIBUTES=${TEMP%*>}
150
151         #If tag name is ui-application, add the label nodes
152         if [[ $TAG_NAME = "ui-application" ]]; then
153
154                 ATTRIBUTES=`echo $ATTRIBUTES | cut -d' ' -f 1`
155                 #get attribute values
156                 eval $ATTRIBUTES
157                 echo "$appid creating..."
158
159                 designid_mapping_table;
160                 if [[ $design_id = "NOT_EXIST" ]]; then
161                         echo "pass appid  $appid"
162                         continue
163                 fi
164
165                 #traversal in po folder
166                 for pofile in `ls $1/*.po`;
167                 do
168                         filename=`basename $pofile .po`
169                         langcode_mapping_table;
170                         if [[ $lang_string = "NOT_EXIST" ]]; then
171                                 echo "pass po file $pofile"
172                                 continue
173                         fi
174
175                         #find string in file
176                         postrings=`grep -n $design_id $pofile | cut -d'"' -f 2`
177                         polines=`grep -n $design_id $pofile | cut -d':' -f 1`
178                         stringlist=( $postrings )
179                         linelist=( $polines )
180
181                         index=0
182                         for i in "${stringlist[@]}";
183                         do
184                                 if [[ $i = $design_id ]]; then
185                                         poline="${linelist[$index]}"
186                                 fi
187                                 index=`expr $index + 1`
188                         done
189
190                         poline=`expr $poline + 1`
191
192                         DESIGNSTR=`sed -n "$poline"p $pofile | cut -d'"' -f 2`
193
194                         #do remove "&" and <b200> and etc
195                         DESIGNSTR=`echo $DESIGNSTR | sed -e "s/\&/\&amp;/g"`
196                         DESIGNSTR=`echo $DESIGNSTR | sed -e "s/\xe2\x80\x8b//g"`
197                         DESIGNSTR=`echo $DESIGNSTR | sed -e "s/\xe2\x80\x8d//g"`
198
199                         for ((i=0; i<$tab; i++)); do
200                                 printf "\t" >> $3;
201                         done
202                         printf "<label xml:lang=\"$lang_string\">$DESIGNSTR</label>\n" >> $3;
203                 done
204         fi
205 done < $2
206
207 echo "xml create end"