-
Notifications
You must be signed in to change notification settings - Fork 37
/
l10n_script.sh
executable file
·61 lines (52 loc) · 1.88 KB
/
l10n_script.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/sh
#This script generates build files for a given lanaguage.
#Copyright (C) 2013 Kalpa Welivitigoda <[email protected]>
#
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program. If not, see <http://www.gnu.org/licenses/>.
# usage: l10n_script.sh <language>
LANGUAGE="$1"
SOURCE_DIR="source"
DESTINATION_DIR="html/$LANGUAGE"
TRANSLATED_PO_PATH="translated_po/$LANGUAGE"
TRANSLATED_MO_PATH="source/translated/$LANGUAGE"
# check whether a language is set as an argument
if [ "$#" == "0" ]; then
echo "No language provided"
echo "Usage: ./l10n_script.sh <language>"
exit 1
fi
# create mo files
if [ ! -d $TRANSLATED_PO_PATH ]; then
echo "No PO files found for the language"
exit 1
fi
# check and create directories
if [ ! -d $TRANSLATED_MO_PATH/LC_MESSAGES ]; then
mkdir -p $TRANSLATED_MO_PATH/LC_MESSAGES
fi
for file in $TRANSLATED_PO_PATH/*.po
do
# remove the prefix numbers and build the mo files
mo_file=$(basename $(echo "$file" | sed 's/\.po/\.mo/') | sed 's/^[0-9]*_//')
msgfmt "$file" -o $TRANSLATED_MO_PATH/LC_MESSAGES/"$mo_file"
done
# build html
if [ ! -d $DESTINATION_DIR ]; then
mkdir $DESTINATION_DIR
fi
sphinx-build -b html -Dlanguage=$LANGUAGE $SOURCE_DIR $DESTINATION_DIR
# remove images files in the translated directories
rm -rf $DESTINATION_DIR/_images
# create symbolic links to _images
ln -rs images $DESTINATION_DIR/_images