Subversion Repositories svn LFS-FR

Rev

Rev 7684 | Rev 7993 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
7156 jlepiller 1
#!/usr/bin/python3
2
# -*- coding: utf-8 -*-
3
 
4
#    Template Translator v0.1
5
#    Traduit automatiquement certaines chaine de caractères des paquets
6
 
7
#    Publié par roptat <julien@lepiller.eu> le 8 août 2016
8
#    sous la licence gnu General Public License version 3 pubilée par la Free Software Foundation.
9
#    Visitez <http://www.gnu.org/licenses/> pour obtenir la licence.
10
 
11
 
12
import sys
13
import re
14
import polib
15
 
16
files = sys.argv
17
files.pop(0)
18
 
7165 jlepiller 19
def convert(entry, regexp, template):
7156 jlepiller 20
        m = regexp.match(entry.msgid)
21
        # do not modify anything if the translation is already correct
22
        if m and ("fuzzy" in entry.flags or not entry.msgstr):
23
                msgstr = template
24
                try:
25
                        msgstr = msgstr.replace("#1", m.group(1))
26
                        msgstr = msgstr.replace('#2', m.group(2))
27
                        msgstr = msgstr.replace('#3', m.group(3))
28
                        msgstr = msgstr.replace('#4', m.group(4))
29
                except:
30
                        x=1
31
                entry.msgstr = msgstr
7165 jlepiller 32
                if "fuzzy" in entry.flags:
33
                        entry.flags.remove("fuzzy")
7156 jlepiller 34
 
35
 
36
# regexps
37
regexps = []
38
 
39
# find an MD5 sum
40
regexps.append([re.compile('([a-f0-9]{32})$'), '#1'])
41
# convert KB to Ko, MB to Mo and GB to Go, and keep SBU
42
regexps.append([re.compile('([0-9\\.]+) ([KMG])B$'), '#1 #2o'])
43
regexps.append([re.compile('([0-9\\.]+) ([KMG])B \(with tests\)$'), '#1 #2o (avec les tests)'])
44
regexps.append([re.compile('([0-9\\.]+) ([KMG])B \(additional ([0-9\\.]+) ([KMG])B for the tests\)$'), '#1 #2o (#3 #4o supplémentaires pour les tests)'])
7242 jlepiller 45
regexps.append([re.compile('([0-9\\.]+) ([KMG])B \(add ([0-9\\.]+) ([KMG])B for tests\)$'), '#1 #2o (plus #3 #4o pour les tests)'])
7156 jlepiller 46
regexps.append([re.compile('([0-9\\.]+) SBU$'), '#1 SBU'])
47
regexps.append([re.compile('([0-9\\.]+) SBU \(with tests\)$'), '#1 SBU (avec les tests)'])
7340 jlepiller 48
regexps.append([re.compile('([0-9\\.]+) SBU \(using parallelism=([0-9]+)\)$'), '#1 SBU (avec parallélisme = #2)'])
49
regexps.append([re.compile('([0-9\\.]+) SBU \(using parallelism=([0-9]+); with tests\)$'), '#1 SBU (avec parallélisme = #2&nbsp;; avec les tests)'])
7156 jlepiller 50
regexps.append([re.compile('([0-9\\.]+) SBU \(additional ([0-9\\.]+) SBU for the tests\)$'), '#1 SBuo (#2 SBU supplémentaires pour les tests)'])
7242 jlepiller 51
regexps.append([re.compile('([0-9\\.]+) SBU \(add ([0-9\\.]+) SBU for tests\)$'), '#1 SBU (plus #2 SBU pour les tests)'])
7156 jlepiller 52
regexps.append([re.compile('less than 0.1 SBU$'), 'moins de 0.1 SBU'])
53
# termes à gauche des informations
54
regexps.append([re.compile('Package Information$'), 'Informations sur le paquet'])
55
regexps.append([re.compile('Download \(HTTP\): (.*)$'), 'Téléchargement (HTTP)&nbsp;: #1'])
56
regexps.append([re.compile('Download \(FTP\): (.*)$'), 'Téléchargement (FTP)&nbsp;: #1'])
57
regexps.append([re.compile('Download MD5 sum: (.*)$'), 'Somme de contrôle MD5 du téléchargement&nbsp;: #1'])
58
regexps.append([re.compile('Download size: (.*)$'), 'Taille du téléchargement&nbsp;: #1'])
59
regexps.append([re.compile('Estimated disk space required: (.*)$'), 'Estimation de l\'espace disque requis&nbsp;: #1'])
60
regexps.append([re.compile('Estimated build time: (.*)$'), 'Estimation du temps de construction&nbsp;: #1'])
61
regexps.append([re.compile('(http://[^ ]*)$'), '#1'])
62
regexps.append([re.compile('(https://[^ ]*)$'), '#1'])
63
regexps.append([re.compile('(ftp://[^ ]*)$'), '#1'])
64
# Dépendances
7220 jlepiller 65
regexps.append([re.compile('Optional Runtime Dependencies$'), 'Dépendances à l\'exécution facultatives'])
7156 jlepiller 66
regexps.append([re.compile('(.*) Dependencies$'), 'Dépendances de #1'])
67
regexps.append([re.compile('Required$'), 'Requises'])
68
regexps.append([re.compile('Optional$'), 'Facultatives'])
7684 jlepiller 69
regexps.append([re.compile('Optional \(Required if building GNOME\)$'), 'Facultatives (requises pour construire GNOME)'])
7156 jlepiller 70
regexps.append([re.compile('Recommended$'), 'Recommandées'])
7684 jlepiller 71
regexps.append([re.compile('Recommended \(Required if building GNOME\)$'), 'Recommandées (requises pour construire GNOME)'])
72
regexps.append([re.compile('Recommended \(required for the testsuite\)$'), 'Recommandées (requises pour la suite de tests)'])
7156 jlepiller 73
regexps.append([re.compile('User Notes: (.*)$'), 'Notes utilisateur&nbsp;: #1'])
74
# Titres
75
regexps.append([re.compile('Installation of (.*)$'), 'Installation de #1'])
76
regexps.append([re.compile('Command Explanations$'), 'Explication des commandes'])
77
regexps.append([re.compile('Config files$'), 'Fichiers de configuration'])
78
regexps.append([re.compile('Config file$'), 'Fichier de configuration'])
79
regexps.append([re.compile('Config Files$'), 'Fichiers de configuration'])
80
regexps.append([re.compile('Config File$'), 'Fichier de configuration'])
81
regexps.append([re.compile('Configuring ([^ ]+)$'), 'Configuration de #1'])
82
regexps.append([re.compile('Kernel Configuration$'), 'Configuration du noyau'])
83
regexps.append([re.compile('Enable the following options in the kernel configuration and recompile the kernel if necessary:$'), 'Activez les options suivantes dans la configuration du noyau et recompilez le noyau si nécessaire&nbsp;:'])
84
regexps.append([re.compile('Boot Script$'), 'Script de démarrage'])
85
regexps.append([re.compile('Boot Scripts$'), 'Scripts de démarrage'])
7174 jlepiller 86
regexps.append([re.compile('Systemd Unit(s?)$'), 'Unité#1 systemd'])
7168 jlepiller 87
regexps.append([re.compile('<phrase revision="sysv">Boot Script</phrase> <phrase revision="systemd">Systemd Unit</phrase>$'), '<phrase revision="sysv">Script de démarrage</phrase> <phrase revision="systemd">Unité Systemd</phrase>'])
7156 jlepiller 88
regexps.append([re.compile('Configuration Information$'), 'Informations sur la configuration'])
89
regexps.append([re.compile('Installed Program$'), 'Programme installé'])
90
regexps.append([re.compile('Installed Programs$'), 'Programmes installés'])
91
regexps.append([re.compile('Installed Library$'), 'Bibliothèque installée'])
92
regexps.append([re.compile('Installed Libraries$'), 'Bibliothèques installées'])
93
regexps.append([re.compile('Installed Directory$'), 'Répertoire installé'])
94
regexps.append([re.compile('Installed Directories$'), 'Répertoires installés'])
95
regexps.append([re.compile('Short Descriptions$'), 'Descriptions courtes'])
96
# phrases récurrentes
7841 jlepiller 97
regexps.append([re.compile('Install ([^ ]*) by running the following commands:$'), 'Installez #1 en lançant les commandes suivantes&nbsp;:'])
7242 jlepiller 98
regexps.append([re.compile('(<userinput.*>.*</userinput>)$', re.MULTILINE|re.DOTALL), '#1'])
7156 jlepiller 99
regexps.append([re.compile('(<literal>.*</literal>)$', re.MULTILINE|re.DOTALL), '#1'])
100
regexps.append([re.compile('(<computeroutput>.*</computeroutput>)$', re.MULTILINE|re.DOTALL), '#1'])
101
regexps.append([re.compile('Now, as the (.*) user:$'), 'Maintenant, en tant qu\'utilisateur #1&nbsp;:'])
102
regexps.append([re.compile('To test the results, issue:? (<command>.*</command>).$'), 'Pour tester les résultats lancez&nbsp;: #1.'])
103
regexps.append([re.compile('To run the test suite, issue:? (<command>.*</command>).$'), 'Pour lancer la suite de tests, tapez&nbsp;: #1.'])
104
regexps.append([re.compile('This package does not come with a test suite.$'), 'Ce paquet n\'est pas fourni avec une suite de tests.'])
105
regexps.append([re.compile('Additional Downloads$'), 'Téléchargements supplémentaires'])
106
regexps.append([re.compile('Required patch: (.*)$'), 'Correctif requis&nbsp;: #1'])
7165 jlepiller 107
regexps.append([re.compile('(<othername>.*)$'), '#1'])
7156 jlepiller 108
regexps.append([re.compile('Introduction to (.*)$'), 'Introduction à #1'])
109
regexps.append([re.compile('(<xref [^>]*>)$'), '#1'])
7174 jlepiller 110
regexps.append([re.compile('To start the (<command>.*</command>) daemon at boot, enable the previously installed systemd unit by running the following command as the (<systemitem class="username">root</systemitem>) user:$'), 'Pour démarrer le démon #1 au démarrage, activez l\'unité systemd précédemment installée en lançant la commande suivante en tant qu\'utilisateur #2&nbsp;:'])
7156 jlepiller 111
regexps.append([re.compile('(<command>[^ <]*</command>)$'), '#1'])
112
regexps.append([re.compile('(<filename[^>]*>[^ <]*</filename>)$'), '#1'])
7168 jlepiller 113
regexps.append([re.compile('(<command>.*</command>): This sed silences several useless and annoying warnings (generated )?(from|by) libtool.$'), '#1&nbsp;: Ce sed rend muets de nombreux avertissements inutiles et ennuyeux de libtool.'])
114
regexps.append([re.compile('(<command>.*</command>): This sed silences several useless and obsolete warnings (generated )?(from|by) libtool.$'), '#1&nbsp;: Ce sed rend muets de nombreux avertissements inutiles et obsolètes de libtool.'])
7156 jlepiller 115
regexps.append([re.compile('([^ <]*)$'), '#1'])
7167 jlepiller 116
regexps.append([re.compile('You can start (<application>.*</application>) from a TTY using (<xref linkend="xinit"/>).$'), 'Vous pouvez démarrer #1 depuis un TTY avec #2.'])
7156 jlepiller 117
regexps.append([re.compile('(<.*>): Use this to disable (.*) support.?$'), '#1&nbsp;: Utilisez ce paramètre pour désactiver le support de #2'])
118
regexps.append([re.compile('(<.*>): Use this switch if you don\'t have (<application>.*</application>) installed.?$'), '#1&nbsp;: Utilisez ce paramètre si vous n\'avez pas installé #2'])
119
regexps.append([re.compile('(<.*>): Use these switches if you don\'t have (<application>.*</application>) installed.?$'), '#1&nbsp;: Utilisez ces paramètres si vous n\'avez pas installé #2'])
120
regexps.append([re.compile('(<.*>): Use this switch if you did( no)?(n\')?t install (<application>.*</application>).?$'), '#1&nbsp;: Utilisez ce paramètre si vous n\'avez pas installé #3'])
121
regexps.append([re.compile('(<.*>): Use these switches if you did not install (<application>.*</application>).?$'), '#1&nbsp;: Utilisez ces paramètres si vous n\'avez pas installé #2'])
122
regexps.append([re.compile('several in (&kde-dir;/[^ ]*)$'), 'plusieurs dans #1'])
123
regexps.append([re.compile('This package does not come with a working test suite.?$'), 'Ce paquet ne contient pas de suite de tests utilisable.'])
124
regexps.append([re.compile('contains the (<application>.*</application>) API functions.$'), 'Contient les fonctions de l\'API de #1'])
125
regexps.append([re.compile('Now as the <systemitem class="username">root</systemitem> user:'), 'Maintenant en tant qu\'utilisateur <systemitem class="username">root</systemitem>&nbsp;:'])
7165 jlepiller 126
regexps.append([re.compile('Project Home Page: (<ulink .*/>)$', re.MULTILINE|re.DOTALL), 'Page d\'accueil du projet&nbsp;: #1'])
127
regexps.append([re.compile('Download Location: (<ulink .*/>)$', re.MULTILINE|re.DOTALL), 'Emplacement du téléchargement&nbsp;: #1'])
7156 jlepiller 128
regexps.append([re.compile('(<.*>): This switch is used to apply( a)? higher level of( the)? compiler( the)? optimizations?.?$', re.MULTILINE|re.DOTALL), '#1&nbsp;: Ce paramètre est utilisé pour appliquer un plus haut niveau d\'optimisation du compilateur.'])
7296 jlepiller 129
regexps.append([re.compile('(<ulink [^>]*/>)$', re.MULTILINE|re.DOTALL), '#1'])
130
regexps.append([re.compile('(<ulink [^>]*/>, )+, and (<ulink [^>]*/>)$', re.MULTILINE|re.DOTALL), '#1 et #2'])
131
regexps.append([re.compile('Fix a build issue with ([^ ]+)$', re.MULTILINE|re.DOTALL), 'Corrigez un problème de construction avec #1.'])
7156 jlepiller 132
 
133
 
134
#regexps.append([re.compile('$'), ''])
135
 
136
number = len(files)
137
current = 1
138
 
139
for filename in files:
140
        print('Traitement du fichier ', current, '/', number, '     \r',
141
                        end="", flush=True),
142
        current = current + 1
143
        po = polib.pofile(filename)
144
        for entry in po:
145
                for reg in regexps:
146
                        convert(entry, reg[0], reg[1])
147
        po.save()
148
print('')
149