tizen 2.3 release
[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-reset-efl") design_id="IDS_ST_BUTTON_RESET";;
72                 "setting-accessory-efl") design_id="IDS_COM_BODY_ACCESSORIES";;
73                 "setting-storage-efl") design_id="IDS_ST_BODY_STORAGE";;
74                 "setting-about-efl") design_id="IDS_ST_BODY_ABOUT_DEVICE";;
75                 "setting-security-efl") design_id="IDS_ST_BODY_SECURITY";;
76                 "setting-time-efl") design_id="IDS_ST_BODY_DATE_AND_TIME";;
77                 "setting-profile-efl") design_id="IDS_ST_HEADER_SOUND";;
78                 "setting-datausage-efl") design_id="IDS_MOBILEAP_MBODY_DATA_USAGE";;
79                 "setting-accessibility-efl") design_id="IDS_ST_HEADER_ACCESSIBILITY";;
80                 "setting-privacy-efl") design_id="IDS_ST_HEADER_PRIVACY";;
81                 "setting-motion-efl") design_id="IDS_ST_BODY_MOTION";;
82                 "setting-powersaving-efl") design_id="IDS_ST_MBODY_POWER_SAVING_MODE";;
83                 "setting-blockingmode-efl") design_id="IDS_ST_BODY_BLOCKING_MODE";;
84                 "setting-display-efl") design_id="IDS_ST_BODY_DISPLAY";;
85                 "setting-drivingmode-efl") design_id="IDS_ST_BODY_DRIVING_MODE";;
86                 "setting-personalpage-efl") design_id="IDS_ST_HEADER_PERSONAL_MODE";;
87                 "setting-palmmotion-efl") design_id="IDS_MTTRL_MBODY_PALM_MOTION";;
88                 "setting-easymode-efl") design_id="IDS_ST_BODY_EASY_MODE";;
89                 "setting-netrestrictionmode-efl") design_id="IDS_ST_HEADER_NETWORK_RESTRICTION_MODE_ABB_JPN";;
90                 "org.tizen.setting.display") design_id="IDS_ST_BODY_DISPLAY";;
91                 "org.tizen.setting.motion") design_id="IDS_ST_BODY_MOTION";;
92                 "org.tizen.setting.smartscreen") design_id="IDS_ST_HEADER_SMART_SCREEN";;
93                 "org.tizen.setting.language") design_id="IDS_ST_BODY_LANGUAGE_AND_KEYBOARD";;
94                 "org.tizen.setting.manageapplications") design_id="IDS_ST_BODY_MANAGE_APPLICATIONS";;
95                 "org.tizen.setting.developeroptions") design_id="IDS_ST_BODY_DEVELOPER_OPTIONS";;
96                 *) design_id="NOT_EXIST";;
97         esac
98 }
99 ##########################
100 # $1 = pofile folder
101 # $2 = src xml file
102 # $3 = dest xml file
103 ##########################
104
105 tab=0;
106 rm $3;
107 echo "xml creation start"
108
109 #traversal in org.tizen.setting.sample.xml file
110 while read line; do
111         #get entity
112         ENTITY=`echo $line | cut -d'<' -f 2`
113
114         #intent get & insert
115         ENDOFLINE=`echo $line | cut -d'<' -f 3`
116         CUT=${ENTITY:0:1}
117
118         a=`expr ${#line} - 3`
119         b=`expr ${#line} - 1`
120         el=${ENTITY:$a:$b}
121
122         if [[ "$CUT" = "/" ]]; then
123                 for ((i=0; i<$tab-1; i++)); do
124                         printf "\t" >> $3;
125                 done
126                 tab=`expr $tab - 1`
127         else
128                 for ((i=0; i<$tab; i++)); do
129                         printf "\t" >> $3;
130                 done
131                 tab=`expr $tab + 1`
132         fi
133
134         if test -n "$ENDOFLINE"; then
135                 tab=`expr $tab - 1`
136         fi
137         if [[ "$CUT" = "?" ]]; then
138                 tab=`expr $tab - 1`
139         fi
140         if [[ "$el" = "/>" ]]; then
141                 tab=`expr $tab - 1`
142         fi
143
144         #read one line from src xml and write to dest xml
145         printf "$line\n" >> $3;
146
147         #get entity's tag and attribute
148         TAG_NAME=${ENTITY%% *}
149         TEMP=${ENTITY#* }
150         ATTRIBUTES=${TEMP%*>}
151
152         #If tag name is ui-application, add the label nodes
153         if [[ $TAG_NAME = "ui-application" ]]; then
154
155                 ATTRIBUTES=`echo $ATTRIBUTES | cut -d' ' -f 1`
156                 #get attribute values
157                 eval $ATTRIBUTES
158                 echo "$appid creating..."
159
160                 designid_mapping_table;
161                 if [[ $design_id = "NOT_EXIST" ]]; then
162                         echo "pass appid  $appid"
163                         continue
164                 fi
165
166                 #traversal in po folder
167                 for pofile in `ls $1/*.po`;
168                 do
169                         filename=`basename $pofile .po`
170                         langcode_mapping_table;
171                         if [[ $lang_string = "NOT_EXIST" ]]; then
172                                 echo "pass po file $pofile"
173                                 continue
174                         fi
175
176                         #find string in file
177                         postrings=`grep -n $design_id $pofile | cut -d'"' -f 2`
178                         polines=`grep -n $design_id $pofile | cut -d':' -f 1`
179                         stringlist=( $postrings )
180                         linelist=( $polines )
181
182                         index=0
183                         for i in "${stringlist[@]}";
184                         do
185                                 if [[ $i = $design_id ]]; then
186                                         poline="${linelist[$index]}"
187                                 fi
188                                 index=`expr $index + 1`
189                         done
190
191                         poline=`expr $poline + 1`
192
193                         DESIGNSTR=`sed -n "$poline"p $pofile | cut -d'"' -f 2`
194
195                         #do remove "&" and <b200> and etc
196                         DESIGNSTR=`echo $DESIGNSTR | sed -e "s/\&/\&amp;/g"`
197                         DESIGNSTR=`echo $DESIGNSTR | sed -e "s/\xe2\x80\x8b//g"`
198                         DESIGNSTR=`echo $DESIGNSTR | sed -e "s/\xe2\x80\x8d//g"`
199
200                         for ((i=0; i<$tab; i++)); do
201                                 printf "\t" >> $3;
202                         done
203                         printf "<label xml:lang=\"$lang_string\">$DESIGNSTR</label>\n" >> $3;
204                 done
205         fi
206 done < $2
207
208 echo "xml create end"