-
Notifications
You must be signed in to change notification settings - Fork 14
/
help-to-wiki.py
executable file
·114 lines (95 loc) · 3 KB
/
help-to-wiki.py
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/usr/bin/env python
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
import sys, os, getopt, signal
sys.path.append(sys.path[0]+"/to-wiki")
import wikiconv2
import getalltitles
def usage():
print '''
help-to-wiki.py [params] [path to l10n]
Converts .xhp files into a wiki
-h, --help - this help
-n, --no-translations - generate only English pages
-r, --redirects - generate also redirect pages
-t, --title-savefile - save the title file
Most probably, you want to generate the redirects only once when you initially
populate the wiki, and then only update the ones that broke.\n'''
def create_wiki_dirs():
dirs = [
"Common",
"Basic",
"Calc",
"Chart",
"Draw",
"Impress",
"Math",
"Writer",
"swriter",
"scalc",
"simpress",
"sdraw",
"smath",
"schart",
"sbasic",
"sdatabase"
]
try:
os.mkdir( "wiki" )
except:
sys.stdout.write( "wiki already generated - the wiki/ subdir exists\n" )
sys.exit( 1 )
for i in dirs:
try:
os.mkdir( "wiki/" + i )
except:
pass
# Langs to handle (fully translated or otherwise important)
langs = ['', 'ast', 'bg', 'bn', 'bn-IN', 'ca', 'cs', 'da', 'de', \
'el', 'es', 'eu', 'fi', 'fr', 'hu', 'it', 'ja', 'km', \
'ko', 'nb', 'nl', 'om', 'pl', 'pt', 'pt-BR', 'ru', \
'sl', 'sv', 'tr', 'vi', 'zh-CN', 'zh-TW' ]
# Argument handling
try:
opts, args = getopt.getopt(sys.argv[1:], 'hnrt', ['help', 'no-translations', 'redirects', 'title-savefile'])
except getopt.GetoptError:
usage()
sys.exit(1)
generate_redirects = False
title_savefile = False
for opt, arg in opts:
if opt in ('-h', '--help'):
usage()
sys.exit()
elif opt in ('-n', '--no-translations'):
langs = ['']
elif opt in ('-r', '--redirects'):
generate_redirects = True
elif opt in ('-t', '--title-savefile'):
title_savefile = True
def signal_handler(signal, frame):
sys.stderr.write( 'Exiting...\n' )
sys.exit(1)
# Do the work
signal.signal(signal.SIGINT, signal_handler)
create_wiki_dirs()
print "Generating the titles..."
title_data = getalltitles.gettitles("source/text")
if title_savefile:
with open ('alltitles.csv', 'w') as f:
for d in title_data:
f.write('%s;%s;%s\n' % (d[0], d[1], d[2]))
try:
po_path = args[0]
except:
po_path = '../translations/source'
sys.stderr.write('Path to the .po files not provided, using "%s"\n'% po_path)
# do the work
for lang in langs:
wikiconv2.convert(title_data, generate_redirects, lang, '%s/%s/helpcontent2/source'% (po_path, lang))
# vim:set shiftwidth=4 softtabstop=4 expandtab: