| 1 |
05d59471
|
Frédéric Péters
|
#! /usr/bin/env python
|
| 2 |
|
|
|
| 3 |
|
|
import os
|
| 4 |
|
|
import requests
|
| 5 |
|
|
import xml.etree.ElementTree as ET
|
| 6 |
|
|
import polib
|
| 7 |
|
|
|
| 8 |
6faff500
|
Frédéric Péters
|
urls = ['https://www.oasis-eu.org/footer.xml', 'https://www.oasis-eu.org/header.xml']
|
| 9 |
05d59471
|
Frédéric Péters
|
langs = {}
|
| 10 |
|
|
for url in urls:
|
| 11 |
|
|
response = requests.get(url)
|
| 12 |
|
|
menuset = ET.fromstring(response.text.encode('utf-8'))
|
| 13 |
|
|
for menu in menuset.findall('menu'):
|
| 14 |
|
|
locale = menu.find('locale').text
|
| 15 |
|
|
langs[locale] = []
|
| 16 |
|
|
for item in menu.findall('item'):
|
| 17 |
|
|
if 'href' in item.attrib:
|
| 18 |
|
|
langs[locale].append(item.attrib['href'])
|
| 19 |
|
|
langs[locale].append(item.text)
|
| 20 |
|
|
else:
|
| 21 |
|
|
langs[locale].append('#')
|
| 22 |
|
|
langs[locale].append('')
|
| 23 |
|
|
|
| 24 |
|
|
for lang in os.listdir('i18n'):
|
| 25 |
|
|
path = os.path.join('i18n', lang, 'LC_MESSAGES', 'ckanext.po')
|
| 26 |
|
|
if not os.path.exists(path):
|
| 27 |
|
|
continue
|
| 28 |
|
|
catalog = dict(zip(langs['en'], langs[lang]))
|
| 29 |
|
|
pofile = polib.pofile(path)
|
| 30 |
|
|
changed = False
|
| 31 |
|
|
for entry in pofile:
|
| 32 |
|
|
if entry.msgid in catalog:
|
| 33 |
|
|
if entry.msgstr != catalog.get(entry.msgid):
|
| 34 |
|
|
entry.msgstr = catalog.get(entry.msgid)
|
| 35 |
d791423e
|
Frédéric Péters
|
if 'fuzzy' in entry.flags:
|
| 36 |
|
|
entry.flags.remove('fuzzy')
|
| 37 |
05d59471
|
Frédéric Péters
|
changed = True
|
| 38 |
|
|
if changed:
|
| 39 |
|
|
pofile.save(path)
|