#!/usr/bin/python3 # -*- coding: utf-8 -*- # Template Translator v0.1 # Traduit automatiquement certaines chaine de caractères des paquets # Publié par roptat le 8 août 2016 # sous la licence gnu General Public License version 3 pubilée par la Free Software Foundation. # Visitez pour obtenir la licence. import sys import re import polib files = sys.argv files.pop(0) def convert(entry, regexp, template): m = regexp.match(entry.msgid) # do not modify anything if the translation is already correct if m and ("fuzzy" in entry.flags or not entry.msgstr): msgstr = template try: msgstr = msgstr.replace("#1", m.group(1)) msgstr = msgstr.replace('#2', m.group(2)) msgstr = msgstr.replace('#3', m.group(3)) msgstr = msgstr.replace('#4', m.group(4)) except: x=1 entry.msgstr = msgstr if "fuzzy" in entry.flags: entry.flags.remove("fuzzy") # regexps regexps = [] regexps.append([re.compile('{Scheme Procedure} (.*)$'), '{Procédure Scheme} #1']) regexps.append([re.compile('{Scheme Variable} (.*)$'), '{Variable Scheme} #1']) regexps.append([re.compile('{Data Type} (.*)$'), '{Type de données} #1']) regexps.append([re.compile('@code{([^}]*)} \\(default:? #t\\)$'), '@code{#1} (par défaut : #t)']) regexps.append([re.compile('@code{([^}]*)} \\(default:? ([0-9]*)\\)$'), '@code{#1} (par défaut : #2)']) regexps.append([re.compile('@code{([^}]*)} \\(default:? @code{([^}]*)}\\)$'), '@code{#1} (par défaut : @code{#2})']) regexps.append([re.compile('@code{([^}]*)} \\(default:? @var{([^}]*)}\\)$'), '@code{#1} (par défaut : @var{#2})']) regexps.append([re.compile('@code{([^}]*)} \\(default:? "([^"]*)"\\)$'), '@code{#1} (par défaut : "#2")']) regexps.append([re.compile('address@hidden([^}]*)} parameter} ([^ ]*) ([^ ]*)$'), '{paramètre de @code{#1}} #2 #3']) regexps.append([re.compile('The ([^ ]*) package to use.$'), 'Le paquet #1 à utiliser.']) regexps.append([re.compile('Defaults to @samp{([^}]*)}.$'), 'La valeur par défaut est @samp{#1}.']) regexps.append([re.compile('Available @code{(.*)} fields are:$'), 'Les champs de @code{#1} disponibles sont :']) po = polib.pofile(files[0]) for entry in po: for reg in regexps: convert(entry, reg[0], reg[1]) po.save()