5 Entete = '<?xml version="1.0" encoding="utf-8"?>'
6 Entete +='<!DOCTYPE TS><TS version="1.1" language="en">'
8 Entete +=' <name>@defaut</name>\n'
10 Fin ='</context>\n</TS>\n'
12 pattern_In=re.compile(r'^\s*<source>(?P<ident>.*)</source>\s*$')
13 pattern_Out=re.compile(r'^\s*<translation>(?P<traduit>.*)</translation>\s*$')
16 listeMaj.append(('for h','for H'))
17 listeMaj.append(('pour h','pour H'))
18 listeMaj.append(('for u','for U'))
19 listeMaj.append(('pour u','pour U'))
20 listeMaj.append(('of k','of K'))
21 listeMaj.append(('de k','de K'))
22 listeMaj.append(('of h','of H'))
23 listeMaj.append(('de h','de H'))
24 listeMaj.append(('u and v','U and V'))
25 listeMaj.append(('u et v','U et V'))
26 listeMaj.append(('on h','on H'))
27 listeMaj.append(('sur h','sur H'))
28 listeMaj.append(('supg','SUPG'))
29 listeMaj.append(('k and epsilon','K and Epsilon'))
30 listeMaj.append(('k-epsilon','K-Epsilon'))
31 listeMaj.append(('gmres','GMRES'))
32 listeMaj.append(('cgstab','CGSTAB'))
33 listeMaj.append(('q(z)','Q(Z)'))
34 listeMaj.append(('z(q)','Z(Q)'))
35 listeMaj.append(('wgs84','WGS84'))
36 listeMaj.append(('wgs84','UTM'))
37 listeMaj.append(('n-scheme','N-Scheme'))
38 listeMaj.append(('scheme n','Scheme N'))
39 listeMaj.append(('psi-scheme','PSI-Scheme'))
40 listeMaj.append((' psi',' PSI'))
41 listeMaj.append(('f(t90)','F(T90)'))
42 listeMaj.append(('(pa)','(Pa)'))
43 listeMaj.append(('h clipping','H clipping'))
44 listeMaj.append(('delwaq','DELWAQ'))
45 listeMaj.append(('tomawac','TOMAWAC'))
46 listeMaj.append(('chezy','CHEZY'))
47 listeMaj.append(('hllc','HLLC'))
48 listeMaj.append(('c-u','C-U'))
49 listeMaj.append(('c,u,v','C,U,V'))
50 listeMaj.append(('h,u,v','H,U,V'))
51 listeMaj.append(('previmer','PREVIMER'))
52 listeMaj.append(('fes20xx','FES20XX'))
53 listeMaj.append(('legos-nea','LEGOS-NEA'))
54 listeMaj.append(('tpxo','TPXO'))
55 listeMaj.append((' x',' X'))
56 listeMaj.append((' y',' Y'))
57 listeMaj.append(('waf','WAF'))
58 listeMaj.append(('(w/kg)','(W/kg)'))
59 listeMaj.append(('(j/kg)','(W/kg)'))
60 listeMaj.append(('zokagoa','Zokagoa'))
61 listeMaj.append(('nikuradse','Nikuradse'))
62 listeMaj.append(('froude','Froude'))
63 listeMaj.append(('gauss','Gauss'))
64 listeMaj.append(('seidel','Seidel'))
65 listeMaj.append(('leo','Leo'))
66 listeMaj.append(('postma','Postma'))
67 listeMaj.append(('crout','Crout'))
68 listeMaj.append(('okada','Okada'))
69 listeMaj.append(('jmj','JMJ'))
70 listeMaj.append(('haaland','HAALAND'))
71 listeMaj.append(('grad(u)','grad(U)'))
72 listeMaj.append(('variable z','variable Z'))
73 listeMaj.append(('variable r','variable R'))
74 listeMaj.append(('ascii','ASCII'))
77 def traite(fichier,fichierDico, fichierTs):
80 for ligne in t.split('\n'):
81 if pattern_In.match(ligne):
82 m=pattern_In.match(ligne)
83 ident=m.group('ident')
84 if pattern_Out.match(ligne):
85 m=pattern_Out.match(ligne)
86 traduit=m.group('traduit')
87 dicoCataToTelemac[ident]=traduit
88 traduitMin=traduit.lower()
90 traduit=traduitMin.replace(t[0],t[1])
92 chaine=traduitMin[0].upper()+traduitMin[1:]
93 dicoCataToLabel[ident]=chaine
96 f=open(fichierDico,'w')
97 f.write ("dicoCataToFrTelemac = {\n")
98 for k in dicoCataToTelemac.keys() :
99 l= ' "'+ k +'" : "'+ dicoCataToTelemac[k]+'",\n'
102 f.write( "dicoCasFrToCata = {\n")
103 for k in dicoCataToTelemac.keys() :
104 l= ' "'+ dicoCataToTelemac[k] +'" : "'+ k+'",\n'
109 f=open(fichierTs,'w')
111 for k in dicoCataToTelemac.keys() :
112 texte = " <message>\n <source>"
114 texte+= "</source>\n <translation>"
115 texte+= dicoCataToLabel[k]
116 texte+= "</translation>\n </message>\n"
122 if __name__ == "__main__":
124 parser=optparse.OptionParser(usage="utilisation : %prog [options]")
125 parser.add_option(u"-i","--input",dest="fichierIn",type='string',
126 help=("nom du fichier ts a traduire"))
127 parser.add_option(u"-d","--dico",dest="fichierDico",type='string',
128 help=("nom du fichier contenant les dictionnaires labelTelemac:labelCata en sortie"))
129 parser.add_option(u"-t","--tsFile",dest="fichierTs",type='string',
130 help=("nom du fichier ts contenant labelCata vers label IHM"))
133 (options,args)=parser.parse_args(sys.argv[1:])
134 if options.fichierIn == None or options.fichierDico == None or options.fichierTs==None :
135 print 'reEcritts.py -i <inputfile> -d <dicofile> -t <tsfile>'
136 print './reEcritts.py -i cata_name2eng_name.ts -d dicoCasEnToCata.py -t tsfile'
138 traite(options.fichierIn,options.fichierDico,options.fichierTs)