X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scripts%2Fbuild%2Fwebsite_post.py;h=c31aa06cd9bc10d1c74254dae35e8563bc7c594f;hb=HEAD;hp=f0b20b9fdef224ed713935d092c02ef20f837d76;hpb=3f16b30270834901e6ff8aaed403725ded03db03;p=lilypond.git diff --git a/scripts/build/website_post.py b/scripts/build/website_post.py index f0b20b9fde..c31aa06cd9 100644 --- a/scripts/build/website_post.py +++ b/scripts/build/website_post.py @@ -1,7 +1,7 @@ #!@PYTHON@ #-*- coding: utf-8 -*- -##### This is web_post.py. This script deals with translations +##### This is website_post.py. This script deals with translations ##### in the "make website" target. import sys @@ -9,18 +9,66 @@ import os import glob import re -###### Translation data -lang_lookup = { - 'fr': 'français', - 'es': 'español', - '': 'english' -} +###### Translation data, move out, see create-weblinks-itexi.py +translations = { + 'ca': { + 'English': 'Català', + 'Other languages': 'Altres idiomes', + }, + 'cs': { + 'English': 'Česky', + 'Other languages': 'Jiné jazyky', + }, + 'de': { + 'English': 'Deutsch', + 'Other languages': 'Andere Sprachen', + }, + 'es': { + 'English': 'Español', + 'Other languages': 'Otros idiomas', + }, + 'fr': { + 'English': 'Français', + 'Other languages': 'Autres langues', + }, + 'hu': { + 'English': 'Magyar', + 'Other languages': 'Más nyelvek', + }, + 'it': { + 'English': 'Italiano', + 'Other languages': 'Altre lingue', + }, + 'ja': { + 'English': '日本語', + 'Other languages': '他の言語', + }, + 'nl': { + 'English': 'Nederlands', + 'Other languages': 'Andere talen', + }, + 'zh': { + 'English': '中文', + 'Other languages': '其他语言', + }, + } + +# needs at least: make -C po or make -C Documentation/po +HAVE_GETTEXT = False + +#### this breaks on lilypond.org +# Keep some freakin' gettext compatibility +#if HAVE_GETTEXT: +# import lilylib as ly; +# global _;_=ly._ +#else: # poor mans translation +# def _ (string, lang=os.environ['LANG']): +# return translations.get (lang.split ('_')[0], {}).get (string, string) + +#### this works on lilypond.org +def _ (string, lang): + return translations.get (lang.split ('_')[0], {}).get (string, string) -lang_other_langs = { - 'es': 'Otros idiomas: ', - 'fr': 'Autres langues : ', - '': 'Other languages: ' -} exclude_manuals = [ '/music-glossary', @@ -48,7 +96,7 @@ for file in html_files: # it's a translation lang = file_split[1] # make sure it's a translated language - if (not (lang == "en")): + if lang != "en": langs_set.add(lang) langs = list(langs_set) langs.sort() @@ -66,26 +114,26 @@ def addLangExt(filename, lang, ext): text += "." + ext return text -def makeFooter(filename, currentLang): - text = "

\n" - text += lang_other_langs[currentLang] - for i in range(len(langs)): - lang = langs[i] - if (lang == currentLang): - continue - text += "" - text += lang_lookup[lang] - text += "" - if (i < len(langs)-2): - text += ", " - else: - text += ".\n" - # TODO: add link to automatic language selection? - # still need to include this page in the new webpages somewhere - text += "

\n" - return text +def makeFooter (filename, currentLang): + footer = '''

+ +%(other)s: %(lst)s. +
+%(browser_language)s +

+''' + me = sys.argv[0] + def link (lang): + str = '''%(language_name)s''' + file_name = addLangExt (filename, lang, 'html') + language_name = _ ('English', lang) + return str % locals () + lst = ', '.join ([link (lang) for lang in langs if lang != currentLang]) + other = _ ('Other languages', currentLang) + browser_lang = _ ('About automatic language selection.', currentLang) + browser_language_url = "http://www.lilypond.org/website/misc/browser-language" + browser_language = browser_lang % browser_language_url + return footer % locals () def getLocalHref(line): match = re.search(r'href=[\'"]?([^\'" >]+)', line) @@ -114,7 +162,7 @@ for file in html_files: lang = '' # possibly necessary for automatic language selection file_symlink = file.replace(".html", ".en.html") - if (not (os.path.exists(file_symlink))): + if not os.path.lexists (file_symlink): os.symlink (file, file_symlink) elif (len(file_split) == 3): # it's a translation @@ -132,24 +180,47 @@ for file in html_files: os.remove(file) outfile = open(file, 'w') - lang_footer = makeFooter(file_base, lang) - + lang_footer = makeFooter (file_base, lang) ### alter file for line in lines: ### alter links as appropriate link = getLocalHref(line) if (link != ""): - # quesitonable - if (link.endswith(".html")): - langlink = addLangExt(link[:-5], lang, "html") - line = line.replace(link, langlink) - if (link.endswith(".pdf")): - langlink = addLangExt(link[:-4], lang, "pdf") - line = line.replace(link, langlink) + # questionable + if (not link.startswith("../doc/")): + if (link.endswith(".html")): + langlink = addLangExt(link[:-5], lang, "html") + line = line.replace(link, langlink) + if (link.endswith(".pdf")): + langlink = addLangExt(link[:-4], lang, "pdf") + line = line.replace(link, langlink) + ### add google tracker header + if (line.find("") >= 0): + outfile.write(""" + +"""); + #### add google tracker goals + if (line.find("href=\"http://download.linuxaudio.org") >= 0): + # TODO: more ugly hardcoding to make releases hard. :( + if (line.find('2.16') >= 0): + line = line.replace('a href=', 'a onClick=\"javascript:urchinTracker(\'/download/v2.16\');\" href=') + elif (line.find('2.17') >= 0): + line = line.replace('a href=', 'a onClick=\"javascript:urchinTracker(\'/download/v2.17\');\" href=') ### add language selection footer - if (line.find("") >= 0): + if (line.find("
") >= 0): + outfile.write("
\n") outfile.write( lang_footer ) + if (line.find("= 0): + outfile.write("
\n") outfile.write(line) outfile.close() -