put the scripts in website
Runa A. Sandvik authored 15 years ago
|
1) #!/bin/bash
2) #
3) # Author: Runa Sandvik, <runa.sandvik@gmail.com>
4) # Google Summer of Code 2009
5) #
6) # This is Free Software (GPLv3)
7) # http://www.gnu.org/licenses/gpl-3.0.txt
8) #
9) # This script will convert all the translated po files back to wml
10) # files.
11) #
12) # For more information, see the HOWTO and README in
13) # translation/tools/gsoc09.
14) #
15)
16) ### start config ###
17)
18) # Location of the wml files
19) wmldir="$PWD"
20)
21) # Location of the po files,
22) podir="`dirname $wmldir`/translation/projects/website"
23)
24) # A lot of the wml files have custom tags. These tags have been defined
25) # in website/include/versions.wmi. Tags that people usually forget to close,
26) # as well as tags that are not defined in versions.wmi have been added.
27) # See: https://svn.torproject.org/svn/website/trunk/include/versions.wmi
|
update scripts with new cus...
Runa A. Sandvik authored 15 years ago
|
28) customtag=`echo $(cat "$wmldir/include/versions.wmi" | awk '{ printf "<%s> " , $2 }' | sed 's/<>//g') "<svnsandbox> <svnwebsite> <input> <hr> <br> <img> <gitblob>"`
|
put the scripts in website
Runa A. Sandvik authored 15 years ago
|
29)
30) # We also need to use the nodefault option of po4a; space separated list
31) # of tags that the module should not try to set by default in any
32) # category. For now, we only need the input tag.
33) nodefault='<input>'
34)
35) ### end config ###
36)
37) # Create a lockfile to make sure that only one instance of the script
38) # can run at any time.
39) LOCKFILE=po2wml.lock
40)
41) if lockfile -! -l 60 -r 3 "$LOCKFILE";
42) then
43) echo "unable to acquire lock" >2
44) exit 1
45) fi
46)
47) trap "rm -f '$PWD/$LOCKFILE'" exit
48)
49) # Check if translation/projects/website exist, i.e. has been checked out
50) if [ ! -d $podir ]
51) then
52) echo "Have you remembered to check out translation/projects/website?"
53) exit 1
54) fi
55)
56) # cd to the right directory so we can commit the files later
57) cd "$wmldir"
58)
59) # We need to find the po files
60) po=`find $podir -regex '^'$podir'/.*/.*\.po' -type f`
61)
62) # For every wml, update po
63) for file in $po ; do
64)
65) # Get the basename of the file we are dealing with
66) pofile=`basename $file`
67)
68) # Strip the file for its original extension and the translation
69) # priority, and add .wml
70) wmlfile="`echo $pofile | cut -d . -f 2`.wml"
71)
72) # Find out what directory the file is in.
73) indir=`dirname $file`
74)
75) # We also need to know what one directory up is
76) onedirup=`dirname $indir`
77)
78) # We need to find out what subdirectory we are in
79) subdir=`dirname $file | sed "s#$onedirup/##"`
80)
81) # And which language we are dealing with
82) lang=`dirname $indir | sed "s#$podir/##"`
83)
84) # Time to write the translated wml file.
85) # The translated document is written if 80% or more of the po
86) # file has been translated.
87) # Example: Use '-k 21' to set this number down to 21%.
88)
89) # The nice thing with po4a-translate is that it will only write
90) # the translated document if 80% or more has been translated.
91) # But it will delete the wml if less than 80% has been
92) # translated. To avoid having our current, translated wml files
93) # deleted, we first convert the po to a temp wml. If this file
94) # was written, we'll rename it.
95)
96) # If $onedirup is equal to $lang, that means we do not have a
97) # subdirectory. Also, we don't want to convert english po back
98) # to english wml.
99) if [ $onedirup == $lang ]
100) then
101) # The location of the english wml file
102) english="$wmldir/en/$wmlfile"
103)
|
if the directory is zh_CN w...
Runa A. Sandvik authored 15 years ago
|
104) # If the current subdirectory is "zh_CN" use "zh-cn" instead
105) if [ $subdir = "zh_CN" ]
106) then
107) po4a-translate -f wml -m "$english" -p "$file" -l "$wmldir/zh-cn/tmp-$wmlfile" --master-charset utf-8 -L utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
108)
109) # Check to see if the file was written
110) if [ -e "$wmldir/zh-cn/tmp-$wmlfile" ]
111) then
112) mv "$wmldir/zh-cn/tmp-$wmlfile" "$wmldir/zh-cn/$wmlfile"
113) fi
114) fi
115)
|
quick fix for nb and sv
Runa A. Sandvik authored 15 years ago
|
116) # If the current directory is "nb" use "no" instead
117) if [ $subdir = "nb" ]
118) then
119) po4a-translate -f wml -m "$english" -p "$file" -l "$wmldir/no/tmp-$wmlfile" --master-charset utf-8 -L utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
120)
121) # Check to see if the file was written
122) if [ -e "$wmldir/no/tmp-$wmlfile" ]
123) then
124) mv "$wmldir/no/tmp-$wmlfile" "$wmldir/no/$wmlfile"
125) fi
126) fi
127)
128) # If the current directory is "sv" use "se" instead
129) if [ $subdir = "sv" ]
130) then
131) po4a-translate -f wml -m "$english" -p "$file" -l "$wmldir/se/tmp-$wmlfile" --master-charset utf-8 -L utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
132)
133) # Check to see if the file was written
134) if [ -e "$wmldir/se/tmp-$wmlfile" ]
135) then
136) mv "$wmldir/se/tmp-$wmlfile" "$wmldir/se/$wmlfile"
137) fi
138) fi
139)
|
if the directory is zh_CN w...
Runa A. Sandvik authored 15 years ago
|
140) # Convert everything else
|
quick fix for nb and sv
Runa A. Sandvik authored 15 years ago
|
141) if [[ $subdir != "en" && $subdir != "zh_CN" && $subdir != "nb" && $subdir != "sv" ]]
|
put the scripts in website
Runa A. Sandvik authored 15 years ago
|
142) then
143) po4a-translate -f wml -m "$english" -p "$file" -l "$wmldir/$subdir/tmp-$wmlfile" --master-charset utf-8 -L utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
144)
145) # Check to see if the file was written
146) if [ -e "$wmldir/$subdir/tmp-$wmlfile" ]
147) then
148) mv "$wmldir/$subdir/tmp-$wmlfile" "$wmldir/$subdir/$wmlfile"
149) fi
150) fi
151) else
152) # The location of the english wml file
153) english="$wmldir/$subdir/en/$wmlfile"
154)
|
if the directory is zh_CN w...
Runa A. Sandvik authored 15 years ago
|
155) # If the current language is "zh_CN" use "zh-cn" instead
156) if [ $lang = "zh_CN" ]
157) then
158) po4a-translate -f wml -m "$english" -p "$file" -l "$wmldir/$subdir/zh-cn/tmp-$wmlfile" --master-charset utf-8 -L utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
159)
160) # Check to see if the file was written
161) if [ -e "$wmldir/$subdir/zh-cn/tmp-$wmlfile" ]
162) then
163) mv "$wmldir/$subdir/zh-cn/tmp-$wmlfile" "$wmldir/$subdir/zh-cn/$wmlfile"
164) fi
165) fi
|
quick fix for nb and sv
Runa A. Sandvik authored 15 years ago
|
166)
167) # If the current language is "nb" use "no" instead
168) if [ $lang = "nb" ]
169) then
170) po4a-translate -f wml -m "$english" -p "$file" -l "$wmldir/$subdir/no/tmp-$wmlfile" --master-charset utf-8 -L utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
171)
172) # Check to see if the file was written
173) if [ -e "$wmldir/$subdir/no/tmp-$wmlfile" ]
174) then
175) mv "$wmldir/$subdir/no/tmp-$wmlfile" "$wmldir/$subdir/no/$wmlfile"
176) fi
177) fi
178)
179) # If the current language is "sv" use "se" instead
180) if [ $lang = "sv" ]
181) then
182) po4a-translate -f wml -m "$english" -p "$file" -l "$wmldir/$subdir/se/tmp-$wmlfile" --master-charset utf-8 -L utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
183)
184) # Check to see if the file was written
185) if [ -e "$wmldir/$subdir/se/tmp-$wmlfile" ]
186) then
187) mv "$wmldir/$subdir/se/tmp-$wmlfile" "$wmldir/$subdir/se/$wmlfile"
188) fi
189) fi
|
if the directory is zh_CN w...
Runa A. Sandvik authored 15 years ago
|
190)
191) # Convert everything else
|
quick fix for nb and sv
Runa A. Sandvik authored 15 years ago
|
192) if [[ $lang != "en" && $lang != "zh_CN" && $lang != "nb" && $lang != "sv" ]]
|