Browse code

create pot files for just the templates directory

Runa A. Sandvik authored on15/08/2010 19:04:48
Showing1 changed files
... ...
@@ -6,9 +6,10 @@
6 6
 # This is Free Software (GPLv3)
7 7
 # http://www.gnu.org/licenses/gpl-3.0.txt
8 8
 #
9
-# This script will convert all of the english wml files to po files, and
9
+# This script will convert all of the English wml files in
10
+# https://svn.torproject.org/svn/website/trunk/ to pot files, and
10 11
 # keep them updated. The script will also convert subdirectories that
11
-# exist in the english website module.
12
+# exist in the website module.
12 13
 #
13 14
 # For more information, see the HOWTO and README in
14 15
 # translation/tools/gsoc09.
... ...
@@ -19,19 +20,19 @@
19 20
 # Location of the wml files
20 21
 wmldir="$PWD"
21 22
 
22
-# Location of the po files.
23
+# Location of the pot files.
23 24
 # Assuming that the translation directory is relative to the website
24
-podir="`dirname $wmldir`/translation/projects/website"
25
+podir="`dirname $wmldir`/translation/projects/website/templates"
25 26
 
26
-# Set the copyright holder of the po files,
27
+# Set the copyright holder of the files,
27 28
 # for example "The Tor Project, Inc"
28 29
 copyright="The Tor Project, Inc"
29 30
 
30 31
 # A lot of the wml files have custom tags. These tags have been defined
31 32
 # in website/include/versions.wmi. Tags that people usually forget to close,
32
-# as well as tags that are not defined in versions.wmi have been added.
33
+# as well as tags that are not defined in versions.wmi, have been added.
33 34
 # See: https://svn.torproject.org/svn/website/trunk/include/versions.wmi
34
-customtag=`echo $(cat "$wmldir/include/versions.wmi" | awk '{ printf "<%s> " , $2 }' | sed 's/<>//g') "<svnsandbox> <svnwebsite> <svnprojects> <input> <hr> <br> <img> <gitblob> <version-android-components> <package-androidbundle-alpha> <package-androidbundle-alpha-sig> <version-androidbundle-tor>"`
35
+customtag=`echo $(cat "$wmldir/include/versions.wmi" | awk '{ printf "<%s> " , $2 }' | sed 's/<>//g') "<svnsandbox> <svnwebsite> <svnprojects> <input> <hr> <br> <img> <gitblob> <version-android-components> <package-androidbundle-alpha> <package-androidbundle-alpha-sig> <version-androidbundle-tor> <video controls>"`
35 36
 
36 37
 # We also need to use the nodefault option of po4a; space separated list
37 38
 # of tags that the module should not try to set by default in any
... ...
@@ -40,7 +41,7 @@ nodefault='<input>'
40 41
 
41 42
 # The script can write the name of unprocessed files to a log.
42 43
 # If you want to enable this option, set the logfile here.
43
-logfile="/home/runa/tor/wml2po.log"
44
+logfile=""
44 45
 
45 46
 # This is the temp logfile. Leave this line even if you don't want to
46 47
 # log. This will be deleted when the script is done.
... ...
@@ -76,185 +77,175 @@ fi
76 77
 # Create the temp log
77 78
 touch $tmplog
78 79
 
79
-# We need to find out which language directories we have.
80
-# We also need to excluse the website module directory itself, as well
81
-# as .svn
82
-langdir=`find "$podir" -maxdepth 1 -type d ! -path "$podir" ! -path "$podir/templates" ! -path "*\.*" | sed "s#$podir/##"`
83
-
84
-# We only need the english wml files, but we do not wish to translate
80
+# We only need the English wml files, but we do not wish to translate
85 81
 # the eff documents.
86 82
 wml=`find $wmldir -regex '^'$wmldir'/.*en/.*\.wml' -type f | grep -v '^'$wmldir'/eff'`
87 83
 
88
-# For every language directory, create and/or update the po files.
89
-for lang in $langdir ; do
90
-
91
-	# For every english wml, see if the po needs to be created or
92
-	# updated
93
-	for file in $wml ; do
94
-
95
-		# Get the basename of the file we are dealing with
96
-		wmlfile=`basename $file`
97
-
98
-		# Get the translation priority
99
-		priority=`cat $file | grep "# Translation-Priority" | awk '{print $3}'`
100
-
101
-		# If the file doesn't have a translation-priority, we can assume
102
-		# that it doesn't need to be translated. Skip this file and
103
-		# continue on with the next.
104
-		if [ ! $priority ]
105
-		then
106
-			continue
107
-		fi
108
-
109
-		# Strip the file for its original extension and add .po
110
-		pofile="$priority.${wmlfile%%.*}.po"
111
-
112
-		# Find out what directory the file is in.
113
-		# Also, remove the parth of the path that is $wmldir
114
-		indir=`dirname $file`
115
-	
116
-		# We need to know what one dir up is
117
-		onedirup=`dirname $indir | sed "s#$wmldir/##"`
118
-
119
-		# We need to have the correct, full path to the po
120
-		# directory for the file we are working on.
121
-		# Also, did the subdirectory exist prior to running this
122
-		# script? If not, create it now and add it to the
123
-		# repository.
124
-		if [ $onedirup = $wmldir ]
125
-		then
126
-			popath="$podir/$lang"
127
-		else
84
+# For every English wml, see if the pot needs to be created or updated
85
+for file in $wml ; do
128 86
 
129
-			# We need to know if a subdirectory, such as torbutton,
130
-			# exist in the translation module. If it does not exist,
131
-			# the script will create it in all the directories under
132
-			# translation/projects/website (excluding .svn)
133
-			subdir=`find "$podir/$lang" -maxdepth 1 -type d	! -path "$ppodir/$lang" ! -path "*\.*"`
87
+	# Get the basename of the file we are dealing with
88
+	wmlfile=`basename $file`
134 89
 
135
-			for dir in $subdir ; do
136
-				if [ ! -d "$podir/$lang/$onedirup" ]
137
-				then
138
-					svn mkdir "$podir/$lang/$onedirup"
139
-				fi
140
-			done
90
+	# Get the translation priority
91
+	priority=`cat $file | grep "# Translation-Priority" | awk '{print $3}'`
141 92
 
142
-			# Set the path
143
-			popath="$podir/$lang/$onedirup"
93
+	# If the file doesn't have a translation-priority, we can assume
94
+	# that it doesn't need to be translated. Skip this file and
95
+	# continue on with the next.
96
+	if [ ! $priority ]
97
+	then
98
+		continue
99
+	fi
144 100
 
145
-		fi
146
-		
147
-		# Check to see if the po existed prior to running this
148
-		# script. If it didn't, check if there any files with the same
149
-		# filename, but different priority. If neither of the files
150
-		# exist, create with po4a-gettextize.
151
-		if [ -e "$popath/$pofile" ]
152
-		then
153
-			poexist=1
154
-		elif [ `find $popath -type f -name "*.$filename" | wc -l` -gt "0" ]
155
-		then
156
-			poexist=2
101
+	# Strip the file for its original extension and add .pot
102
+	pofile="$priority.${wmlfile%%.*}.pot"
157 103
 
158
-		# We need to rename the other file
159
-		for file in `find $popath -type f -name "*.$filename"` ; do
160
-			svn mv "$file" "$popath/$pofile"
161
-			echo "$popath/$pofile" > $tmplog
162
-		done
104
+	# Find out what directory the file is in.
105
+	# Also, remove the part of the path that is $wmldir
106
+	indir=`dirname $file`
163 107
 	
164
-		else
165
-			poexist=0
166
-		fi
167
-
168
-		# If the po file does not exist, convert it with
169
-		# po4a-gettextize, set the right encoding and charset
170
-		# and the correct copyright.
171
-		if [ $poexist = 0 ]
172
-		then
173
-			# Convert it
174
-			po4a-gettextize -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
175
-
176
-			# Check to see if the file exists
177
-			if [ -e "$popath/$pofile" ]
108
+	# We need to know what one dir up is
109
+	onedirup=`dirname $indir | sed "s#$wmldir/##"`
110
+
111
+	# We need to have the correct, full path to the pot
112
+	# directory for the file we are working on.
113
+	# Also, did the subdirectory exist prior to running this
114
+	# script? If not, create it now and add it to the
115
+	# repository.
116
+	if [ $onedirup = $wmldir ]
117
+	then
118
+		popath="$podir"
119
+	else
120
+
121
+		# We need to know if a subdirectory, such as torbutton,
122
+		# exist in the translation module. If it does not exist,
123
+		# the script will create it in all the directories under
124
+		# translation/projects/website (excluding .svn)
125
+		subdir=`find "$podir" -maxdepth 1 -type d ! -path "$ppodir" ! -path "*\.*"`
126
+
127
+		for dir in $subdir ; do
128
+			if [ ! -d "$podir/$onedirup" ]
178 129
 			then
179
-				# We don't want files without
180
-				# content, so check the file first.
181
-				content=`cat "$popath/$pofile" | grep '^#[.]' | wc -l`
182
-
183
-				# If the file does not have any
184
-				# content, delete it.
185
-				if [ $content = 0 ] 
186
-				then
187
-					rm -f "$popath/$pofile"
188
-					echo "$popath/$pofile" > $tmplog
189
-				else
190
-					# Set the right encoding and charset, as well
191
-					# as the correct copyright holder.
192
-					sed -i '0,/ENCODING/ s/ENCODING/8bit/' "$popath/$pofile"
193
-					sed -i '0,/CHARSET/ s/CHARSET/utf-8/' "$popath/$pofile"
194
-					sed -i "0,/Free Software Foundation, Inc/ s/Free Software Foundation, Inc/$copyright/" "$popath/$pofile"
195
-				
196
-					# And add it to the repository
197
-					svn add "$popath/$pofile"
198
-					echo "$popath/$pofile" > $tmplog
199
-				fi
130
+				svn mkdir "$podir/$onedirup"
200 131
 			fi
132
+		done
201 133
 
202
-			# Update the file with po4a-updatepo to make the
203
-			# word wrapping perfect
204
-			po4a-updatepo -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
134
+		# Set the path
135
+		popath="$podir/$onedirup"
205 136
 
206
-			# Delete the backup
207
-			rm -f "$popath/$pofile~"
208
-		fi
137
+	fi
209 138
 		
210
-		# If the po file does exist, calculate the hash first,
211
-		# then update the file, then calculate the hash again.
212
-		if [ $poexist = 1 ]
213
-		then
214
-			# Calculate the hash before we update the file
215
-			before=`grep -vE '^("POT-Creation-Date:|#)' "$popath/$pofile" | md5sum | cut -d " " -f1`
139
+	# Check to see if the pot existed prior to running this
140
+	# script. If it didn't, check if there any files with the same
141
+	# filename, but different priority. If neither of the files
142
+	# exist, create with po4a-gettextize.
143
+	if [ -e "$popath/$pofile" ]
144
+	then
145
+		poexist=1
146
+	elif [ `find $popath -type f -name "*.$filename" | wc -l` -gt "0" ]
147
+	then
148
+		poexist=2
149
+
150
+	# We need to rename the other file
151
+	for file in `find $popath -type f -name "*.$filename"` ; do
152
+		svn mv "$file" "$popath/$pofile"
153
+		echo "$popath/$pofile" > $tmplog
154
+	done
216 155
 
217
-			# Update the po file
218
-			po4a-updatepo -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
156
+	else
157
+		poexist=0
158
+	fi
219 159
 
220
-			# Calculate the new hash
221
-			after=`grep -vE '^("POT-Creation-Date:|#)' "$popath/$pofile" | md5sum | cut -d " " -f1`
160
+	# If the pot file does not exist, convert it with
161
+	# po4a-gettextize, set the right encoding and charset
162
+	# and the correct copyright.
163
+	if [ $poexist = 0 ]
164
+	then
165
+		# Convert it
166
+		po4a-gettextize -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
222 167
 
223
-			# Delete the backup
224
-			rm -f "$popath/$pofile~"
168
+		# Check to see if the file exists
169
+		if [ -e "$popath/$pofile" ]
170
+		then
171
+			# We don't want files without
172
+			# content, so check the file first.
173
+			content=`cat "$popath/$pofile" | grep '^#[.]' | wc -l`
225 174
 
226
-			# Now we need to compare the before and after
227
-			# hash. If they match (i.e. nothing has
228
-			# changed), revert the file.
229
-			if [ $before = $after ]
175
+			# If the file does not have any
176
+			# content, delete it.
177
+			if [ $content = 0 ] 
230 178
 			then
231
-				svn revert "$popath/$pofile"
179
+				rm -f "$popath/$pofile"
232 180
 				echo "$popath/$pofile" > $tmplog
233 181
 			else
182
+				# Set the right encoding and charset, as well
183
+				# as the correct copyright holder.
184
+				sed -i '0,/ENCODING/ s/ENCODING/8bit/' "$popath/$pofile"
185
+				sed -i '0,/CHARSET/ s/CHARSET/utf-8/' "$popath/$pofile"
186
+				sed -i "0,/Free Software Foundation, Inc/ s/Free Software Foundation, Inc/$copyright/" "$popath/$pofile"
187
+				
188
+				# And add it to the repository
189
+				svn add "$popath/$pofile"
234 190
 				echo "$popath/$pofile" > $tmplog
235 191
 			fi
236 192
 		fi
237 193
 
238
-		# If a file with the same name but different priority
239
-		# exist, then rename the file (we have done so already)
240
-		# and update it with po4a-updatepo to make sure
241
-		# everything else is ok.
242
-		if [ $poexist = 2 ]
194
+		# Update the file with po4a-updatepo to make the
195
+		# word wrapping perfect
196
+		po4a-updatepo -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
197
+
198
+		# Delete the backup
199
+		rm -f "$popath/$pofile~"
200
+	fi
201
+		
202
+	# If the pot file does exist, calculate the hash first,
203
+	# then update the file, then calculate the hash again.
204
+	if [ $poexist = 1 ]
205
+	then
206
+		# Calculate the hash before we update the file
207
+		before=`grep -vE '^("POT-Creation-Date:|#)' "$popath/$pofile" | md5sum | cut -d " " -f1`
208
+
209
+		# Update the pot file
210
+		po4a-updatepo -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
211
+
212
+		# Calculate the new hash
213
+		after=`grep -vE '^("POT-Creation-Date:|#)' "$popath/$pofile" | md5sum | cut -d " " -f1`
214
+
215
+		# Delete the backup
216
+		rm -f "$popath/$pofile~"
217
+
218
+		# Now we need to compare the before and after
219
+		# hash. If they match (i.e. nothing has
220
+		# changed), revert the file.
221
+		if [ $before = $after ]
243 222
 		then
244
-			# Update the file
245
-			po4a-updatepo -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
223
+			svn revert "$popath/$pofile"
224
+			echo "$popath/$pofile" > $tmplog
225
+		else
226
+			echo "$popath/$pofile" > $tmplog
246 227
 		fi
228
+	fi
229
+
230
+	# If a file with the same name but different priority
231
+	# exist, then rename the file (we have done so already)
232
+	# and update it with po4a-updatepo to make sure
233
+	# everything else is ok.
234
+	if [ $poexist = 2 ]
235
+	then
236
+		# Update the file
237
+		po4a-updatepo -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
238
+	fi
247 239
 	
248
-		# Write to the logfile
249
-		if [ -e $logfile ]
240
+	# Write to the logfile
241
+	if [ -e $logfile ]
242
+	then
243
+		if [ `cat $tmplog | grep "$popath/$pofile" | wc -l` -eq "0" ]
250 244
 		then
251
-			if [ `cat $tmplog | grep "$popath/$pofile" | wc -l` -eq "0" ]
252
-			then
253
-				echo "could not process: " "$file" >> $logfile
254
-			fi
245
+			echo "could not process: " "$file" >> $logfile
255 246
 		fi
247
+	fi
256 248
 
257
-		# Delete the temp log
258
-		rm -f $tmplog
259
-	done
249
+	# Delete the temp log
250
+	rm -f $tmplog
260 251
 done