114 lines
3 KiB
Python
Executable file
114 lines
3 KiB
Python
Executable file
#!/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:
|