source: salt-server/trunk/fuentes/sltgl.py @ 473

Last change on this file since 473 was 473, checked in by daduve, 3 years ago

Adding files

  • Property svn:executable set to *
File size: 37.3 KB
Line 
1#!/usr/bin/env python
2# -*- coding: latin1 -*-
3
4import sys
5import os
6import time
7import stat
8#'---------------------------------------------------------------------------
9#'   Proceso de inicio: Variables de entorno y paths
10#'---------------------------------------------------------------------------
11def help():
12  print 'ús: python sltsrv.py -pcarpeta -d[arxiu] -h'
13  print '-pcarpeta: carpeta on estàn les BDs'
14  print '-d[arxiu]: línies informatives a pantalla; si arxiu (opcional) a arxiu'
15  print "-earxiu: línies d'errors a arxiu"
16  print "-i: instl·lar servidor"
17  print "-nxxxxx: Port<>20001"
18  print "-1: 1 thread"
19  print "-portxxxxx: Port<>8080 en web service"
20  cont=raw_input('continuar? (s/n)')
21  if vbfunctions.LCase(cont)!='s':
22    sys.exit()
23
24class CfgFile:
25  def __init__(self,file=None):
26    import ConfigParser
27    self.cfg=ConfigParser.ConfigParser()
28    if file==None:
29      miCfg=os.path.abspath('/etc/salt/salt.cfg')
30      if not os.path.exists(miCfg):
31        miCfg=os.path.dirname(os.path.abspath(__file__))
32        if os.path.basename(miCfg)[-3:].lower()=='zip':
33          miCfg=os.path.dirname(miCfg)
34        miCfg=os.path.abspath(miCfg+"/salt.cfg")
35    else:
36      miCfg=file
37    self.cfg.read(miCfg)
38 
39  def __call__(self,sec,opt):
40    ret=None
41    if self.cfg.has_option(sec,opt):
42      ret=self.cfg.get(sec,opt)
43      lret=ret.lower()
44      if lret=="true" or lret=="sí" or lret=="si" or lret=="1" or lret=="s":
45        ret=True
46      elif lret=="false" or lret=="no" or lret=="0" or lret=="n":
47        ret=False
48      elif ret.isdigit():
49        ret=eval(ret)
50    return ret
51
52  def Existe(self,sec,opt):
53    ret=False
54    if self.cfg.has_option(sec,opt):
55      if self.cfg.get(sec,opt) != "":
56        ret=True
57    return ret   
58
59# End of Class CfgFile
60
61_ini=CfgFile()
62
63# Ports y multiproceso
64port_ini=20002 #Primer port para subserver srv_b
65port_fin=20010 #Último port para subserver
66port_mio=20001 #Port por defecto
67es_srv_a=True #es server principal si True
68es_popen=True #conexión server-server vía popen
69lck=None
70#Lista de ports de servidores y su estado
71#El servidor inicial escucha por ('',port_ini)
72#El estado es libre==True o libre==False (ocupado)
73#port_lst=[[libre,port,nombre del Thread si no esta libre],...]
74port_lst=[]
75
76#Constantes que indican la plataforma
77if sys.platform.lower().find('win32')>=0:
78  miHOME="APPDATA"
79  esLinux=False
80  esMac=False
81else:
82  esMac=False
83  esLinux=True
84  miHOME="HOME"
85
86#inst=false: no instalar archivo de configuración
87inst=_inst=False
88#Debug (True/False; si True se imprime sobre stdout que se puede modificar)
89dbg=False
90
91
92#se puede cambiar la ruta y el debug en salt.cfg o en la línea de comandos
93_lincom_bds,_lincom_dbgdisc,_lincom_port,_lincom_cfg=None,None,None,None
94
95if _ini.Existe("sltsrv","bdspath"):
96  _lincom_bds=_ini("sltsrv","bdspath")
97if _ini.Existe("sltsrv","port"):
98  _lincom_port=_ini("sltsrv","port")
99if _ini.Existe("sltsrv","cfgpath"):
100  _lincom_cfg=_ini("sltsrv","cfgpath")
101 
102sltsrvexe=[]
103for arg in sys.argv:
104  if arg[0:2]=="-p":
105    _lincom_bds=arg[2:]
106    sltsrvexe.append(arg)
107  elif arg[0:2]=="-d":
108    if es_srv_a:
109      dbg=True
110      if arg[2:]!="":
111        sys.stdout=open(arg[2:],'a')
112  elif arg[0:2]=="-da":
113    dbg=True
114    if arg[2:]!="":
115      sys.stdout=open(arg[2:],'a')
116  elif arg[0:2]=="-e":
117    if arg[2:]!="":
118      sys.stderr=open(arg[2:],'a')
119  elif arg[0:2]=="-t":
120    _lincom_dbgdisc="/sltsrv.debug"
121  elif arg[0:2]=="-i":
122    _inst=True
123    inst=True
124  elif arg[0:2]=="-h":
125    help()
126  elif arg[0:2]=="-n":
127    port_mio=eval(arg[2:])
128    es_srv_a=False
129  elif arg[0:2]=="-s":
130    #Subserver conectado con popen
131    es_srv_a=False
132    es_popen=True
133    dbg=False
134  elif arg[0:5]=="-port":
135    #Cambio de port
136    _lincom_port=eval(arg[5:])
137  elif arg[0:4]=="-cfg":
138    #Cambio de la carpeta donde está el archivo sltsrv.config
139    _lincom_cfg=arg[4:]
140  else:
141    sltsrvexe.append(arg)
142
143#1. Entorno (paths de trabajo)
144if esLinux:
145  miPath=os.path.dirname(os.path.abspath(__file__))
146  if os.path.basename(miPath)[-3:].lower()=='zip':
147    miPath=os.path.dirname(miPath)
148  srvPath="/usr/share/salt-server"
149  bdsPath="/var/lib/salt-data"
150  cfgPath=os.path.abspath("/var/lib/salt")
151else:
152  miPath=os.path.dirname(os.path.abspath(__file__))
153  if os.path.basename(miPath)[-3:].lower()=='zip':
154    miPath=os.path.dirname(miPath)
155  srvPath=os.path.abspath(os.environ['PROGRAMFILES'] + "/salt4")
156  bdsPath=miPath
157  cfgPath=srvPath
158
159srvPath2=os.path.abspath(os.environ[miHOME]+"/salt4") #alternativo
160if not os.path.exists(cfgPath):
161  os.mkdir(cfgPath)
162#Asegurarnos de que tiene permisos
163os.chmod(cfgPath,stat.S_IRUSR+stat.S_IWUSR+stat.S_IXUSR+stat.S_IRGRP+stat.S_IWGRP+stat.S_IXGRP+stat.S_IROTH+stat.S_IWOTH+stat.S_IXOTH)
164
165
166#Modificaciones de la línea de comandos
167if _lincom_dbgdisc!=None:
168  sys.stdout=open(os.path.abspath(cfgPath+_lincom_dbgdisc),'a')
169  sys.stderr=open(os.path.abspath(cfgPath+_lincom_dbgdisc),'a')
170if _lincom_bds!=None:
171  bdsPath=_lincom_bds
172if _lincom_cfg!=None:
173  cfgPath=_lincom_cfg
174
175# 2. Crear cfgPath (en Windows es igual que srvPath) y copiar sltsrv.config desde miPath
176try:
177  if not os.path.exists(cfgPath):
178    os.mkdir(cfgPath)
179    os.chmod(cfgPath,stat.S_IRUSR+stat.S_IWUSR+stat.S_IRGRP+stat.S_IWGRP+stat.S_IROTH+stat.S_IWOTH)
180    inst=True
181  _config=os.path.abspath(cfgPath+'/sltsrv.config')
182  if inst or not os.path.exists(_config):
183    #si no está lo copiamos (si es distinto)
184    if os.path.exists(os.path.abspath(miPath+'/sltsrv.config')) and os.path.abspath(miPath+'/sltsrv.config').lower() != _config.lower():
185      import shutil
186      shutil.copy(os.path.abspath(miPath+'/sltsrv.config'),_config)
187      inst=True
188except:
189  #Si hay un error probar a cambiar la ruta
190  srvPath=srvPath2
191  cfgPath=srvPath
192  if not os.path.exists(cfgPath):
193    os.mkdir(cfgPath)
194    os.chmod(cfgPath,stat.S_IRUSR+stat.S_IWUSR+stat.S_IRGRP+stat.S_IWGRP+stat.S_IROTH+stat.S_IWOTH)
195    inst=True
196  _config=os.path.abspath(cfgPath+'/sltsrv.config')
197  if (inst and not os.path.exists(_config)) or not os.path.exists(_config):
198    #si no está lo copiamos
199    if os.path.exists(os.path.abspath(miPath+'/sltsrv.config')):
200      import shutil
201      shutil.copy(os.path.abspath(miPath+'/sltsrv.config'),_config)
202      inst=True
203
204# 3. Actualizar la información
205misPaths=[]
206#misPaths.append(miPath)
207misPaths.append(os.path.abspath(miPath+'/py'))
208sys.path.extend(misPaths)
209
210#Actualizar datos en archivo config: el archivo es _config
211if inst and os.path.exists(_config):
212  if sltsrvexe[0][-3:].lower()=='.py':
213    #hay que añadir el interprete
214    sltsrvexe.insert(0,sys.executable)
215 
216  f=file(_config,'rb')
217  scfg=f.read()
218  f.close()
219  cfg=eval(scfg)
220  cfg['entorn']['sltsrvexe']=sltsrvexe
221  cfg['entorn']['sltsrvpath']=miPath
222  cfg['entorn']['sltsrvpaths']=misPaths
223  cfg['entorn']['sltinitime']=time.gmtime(time.time())
224  scfg=str(cfg)
225  f=file(_config,'wb')
226  f.write(scfg)
227  f.close()
228
229  #Dar permisos de lectura y escritura
230  os.chmod(_config,stat.S_IRUSR+stat.S_IWUSR+stat.S_IRGRP+stat.S_IWGRP+stat.S_IROTH+stat.S_IWOTH)
231
232if _inst:
233  #El proceso de instalación por opción -i no sigue
234  sys.exit()
235
236# ------------------------------------------------------------
237# Sigue el proceso normal
238# ------------------------------------------------------------
239
240import vbfunctions
241import sltgen
242
243def ini():
244  global RSet,ByRef,InStr,Trim
245  RSet=sltgen.RSet
246  ByRef=sltgen.ByRef
247  InStr=sltgen.InStr
248  Trim=sltgen.Trim
249  global AbrirBd,BdClone,CerrarBd
250  AbrirBd=sltgen.AbrirBd
251  BdClone=sltgen.BdClone
252  CerrarBd=sltgen.CerrarBd
253
254# ---------------------------------------------------------------------------
255#       Declaraciones y definiciones generales
256#
257#       Corrector-Traductor de Valenciá (CTV)
258#
259#       Parte general (mantenimiento BD + corrector + traductor)
260#
261#---------------------------------------------------------------------------
262#
263#---------------------------------------------------------------------------
264#   Declaraciones generales
265#---------------------------------------------------------------------------
266
267ini()
268
269#'---------------------------------------------------------------------------
270#' constantes y variables generales.
271#'---------------------------------------------------------------------------
272CTV_VERSION = '4.0'
273NO = 0
274SI = 1
275
276saltactivo=NO #Indica si se ha inicializado el motor salt
277
278#Uso de mayúsculas
279MAJ_SEMPRE = 1
280MAJ_MAI = 2
281MAJ_AVEG = 3
282
283#Uso de mayúsculas (literal)
284MAJ_SEMPRE_L = 'Sempre'
285MAJ_MAI_L = 'Mai'
286MAJ_AVEG_L = 'A vegades'
287
288#Nivell de llenguatge (varietat dialectal)
289NIV_DIALECTAL = 1
290NIV_ESTANDARD = 2
291NIV_CONVERGENT = 3
292NIV_ALTRES = 4
293
294#Nivell de llenguatge (literal)
295NIV_DIALECTAL_L = 'Dialectal'
296NIV_ESTANDARD_L = 'Estàndard'
297NIV_CONVERGENT_L = 'Convergent'
298NIV_ALTRES_L = 'Altres dialectes'
299
300#Registre (nivell de formalitat)
301REG_POCFORMAL = 1
302REG_FORMAL = 2
303REG_MOLTFORMAL = 3
304
305#Registre (literal)
306REG_POCFORMAL_L = 'Poc formal'
307REG_FORMAL_L = 'Formal'
308REG_MOLTFORMAL_L = 'Molt formal'
309
310#Tipo de palabra errónea
311TIP_NORMAL = 0
312TIP_CAST = 1
313TIP_VULG = 2
314
315#Tipo de palabra errónea (literal)
316TIP_NORMAL_L = 'Normal'
317TIP_CAST_L = 'Castellanisme'
318TIP_VULG_L = 'Vulgarisme'
319
320#Flexión
321FLX_NO = 0
322FLX_MSIN = 1
323FLX_FSIN = 2
324FLX_MPLU = 3
325FLX_FPLU = 4
326FLX_MPLUALT = 5
327FLX_FPLUALT = 6
328
329#Parte de la oración
330PART_ART = 1
331PART_ADV = 2
332PART_CONJ = 3
333PART_INTER = 4
334PART_PREP = 5
335PART_ADJ = 6
336PART_SUBS = 7
337PART_VERB = 8
338PART_PRON = 9
339PART_FRFETA = 10
340PART_CONTR = 11
341PART_ABR = 12
342PART_TOP = 13
343PART_NOMPR = 14
344PART_DET = 15
345PART_NROMA = 16
346PART_SUBSADJ = 18
347PART_SUBSPREPA = 7 + 256
348PART_MOTESTR = 7 + 512
349PART_SUBSPERS = 7 + 1024
350PART_VERBTR = 8 + 0
351PART_VERBINTR = 8 + 256
352PART_VERBPR = 8 + 512
353PART_VERBCOPU = 8 + 1024
354PART_PRNORMAL = 9 + 0
355PART_PRFEBLE = 9 + 256
356PART_TOPOFI = 13 + 0
357PART_TOPHIST = 13 + 256
358PART_DETGEN = 15 + 0
359PART_DETQUAN = 15 + 256
360PART_SADJPREPA = 18 + 256
361PART_SADJPERS = 18 + 1024
362
363#Parte de la oración (literal)
364PART_ART_L = 'Article'
365PART_ADV_L = 'Adverbi'
366PART_CONJ_L = 'Conjunció'
367PART_INTER_L = 'Interjecció'
368PART_PREP_L = 'Preposició'
369PART_ADJ_L = 'Adjectiu'
370PART_SUBS_L = 'Substantiu'
371PART_VERB_L = 'Verb'
372PART_PRON_L = 'Pronom'
373PART_FRFETA_L = 'Frase feta'
374PART_CONTR_L = 'Contracció'
375PART_ABR_L = 'Abreviació'
376PART_TOP_L = 'Top.'
377PART_NOMPR_L = 'N. pr.'
378PART_DET_L = 'Det.'
379PART_NROMA_L = 'Nombre romà'
380PART_MOTESTR_L = 'Mot estranger'
381PART_SUBSADJ_L = 'Subs/Adj'
382PART_SUBSPREPA_L = 'Subs. prep. a'
383PART_SUBSPERS_L = 'Subs. personal'
384PART_VERBTR_L = 'Verb tr.'
385PART_VERBINTR_L = 'Verb intr.'
386PART_VERBPR_L = 'Verb pr.'
387PART_VERBCOPU_L = 'Verb copu.'
388PART_PRNORMAL_L = 'Pronom'
389PART_PRFEBLE_L = 'Pronom feble'
390PART_TOPOFI_L = 'Top. oficial'
391PART_TOPHIST_L = 'Top. històric'
392PART_DETGEN_L = 'Determinant'
393PART_DETQUAN_L = 'Det. quantitatiu'
394PART_SADJPREPA_L = 'S/Adj prep a'
395PART_SADJPERS_L = 'S/Adj personal'
396
397#Posición del pronombre respecto al verbo
398PR_VBOPRO = 0
399PR_PROVBO = 4
400PR_VOC = 1
401PR_CONS = 2
402PR_VBVOCNOUPR = PR_VBOPRO + PR_VOC
403PR_VBCONSUPR = PR_VBOPRO + PR_CONS
404PR_VBPR = PR_VBOPRO + PR_VOC + PR_CONS
405PR_PRVOCHVB = PR_PROVBO + PR_VOC
406PR_PRCONSVB = PR_PROVBO + PR_CONS
407PR_PRVB = PR_PROVBO + PR_VOC + PR_CONS
408
409#Posición del pronombre respecto al verbo (literal)
410PR_VBVOCNOUPR_L = 'Verb ac voc(no u) + pro'
411PR_VBCONSUPR_L = 'Verb ac cons/u + pro'
412PR_VBPR_L = 'Verb + pro'
413PR_PRVOCHVB_L = 'Pro + verb com voc/h'
414PR_PRCONSVB_L = 'Pro + verb com cons'
415PR_PRVB_L = 'Pro + verb'
416
417#'Tratamiento de verbos
418VB_INF = 'INF'
419VB_PRT = 'PART'
420VB_IMP = 'IMP'
421VB_GER = 'GER'
422VB_NTREP = 40
423VB_GR1 = 1
424VB_GR2 = 2
425VB_GR3 = 8
426VB_GR4 = 32
427VB_GR5 = 128
428VB_GR6 = 512
429VB_GR7 = 1024
430VB_GR8 = 4096
431VB_GR9 = 8192
432VB_GR1_MASK = 1
433VB_GR2_MASK = 2 + 4
434VB_GR3_MASK = 8 + 16
435VB_GR4_MASK = 32 + 64
436VB_GR5_MASK = 128 + 256
437VB_GR6_MASK = 512
438VB_GR7_MASK = 1024 + 2048
439VB_GR8_MASK = 4096
440VB_GR9_MASK = 8192
441
442#'Opciones (dentro de cada grupo)
443VB_OP0 = 0
444VB_OP1 = 1
445VB_OP2 = 2
446VB_OP3 = 3
447
448#'Tipo de locuciones
449LOC_TRAD = 0
450LOC_CORR = 1
451
452#'---------------------------------------------------------------------------
453#' Modalidad de trabajo
454#'---------------------------------------------------------------------------
455tbvbmodval = ""
456tbpron = ""
457tbpronerr = ""
458tbpadubt = ""
459tbvbdubt = ""
460tbfrfetes = ""
461tbdoblsem = ""
462tbajuda = ""
463tbajudacont = ""
464tbajudaindex = ""
465tbvbmodori = ""
466tbvbmodmeta = ""
467tbpersonaltrad = ""
468tbtemporaltrad = ""
469
470#'   Indicador de modalidad
471modalitat = ""
472
473#'---------------------------------------------------------------------------
474#'   Public constantes
475#'---------------------------------------------------------------------------
476#'   Estado de la ma_quina correctora (Corr)
477CTV_ACTIVAR = 0
478CTV_CANCELAR = 1
479CTV_IGNORAR = 2
480
481#'   Form de información sobre errores
482ctverr = 0
483palsel = ""
484
485#'   Identificador de traductor o corrector
486ctvmodocorrtrad = 0
487CTV_ESCORR = 1
488CTV_ESTRAD = 2
489CTV_ESTRAD2 = 3
490CTV_REVISIO = 4
491
492#'   Nivel de depuración de errores
493ctvnivel = 0
494CTV_VELOCITAT = 1
495CTV_QUALITAT = 2
496
497#'   Control de palabras reconocidas por CoPalReconocida
498PALREC_NO = 0
499PALREC_SI = 1
500PALREC_SI_PERS = 2
501PALREC_SI_CASTERR = 3
502
503#'   Tipo de vocales y consonantes (separación silábica)
504VC_VOCFOR = 1
505VC_VOCFEB = 2
506VC_CONS = 4
507VC_CONSLIQ = 8
508VC_R = 16
509VC_QG = 32
510VC_PUNTVOL = 64
511VC_GUI = 128
512VC_U = 256
513VC_L = 512
514
515#'   Modos de actuar la función ModificaPalabra
516MODO_BORRAR = - 1
517MODO_MODIFICAR = 0
518MODO_INSERTAR = 1
519
520#'---------------------------------------------------------------------------
521#'   Declaraciones globales
522#'---------------------------------------------------------------------------
523
524#'       Información complementaria para una palabra
525
526class infcomple:
527  def __init__(self):
528    self.pre = ""
529    self.sepsil = 0
530    self.pal1 = ""
531    self.pal2 = ""
532    self.tipopost = 0
533    self.post = 0
534    self.xi = 0
535    self.tipoletra = 0
536    self.signopunt = 0
537    self.postsignopunt = 0
538
539#'   Tipo de letra de la palabra
540TL_TODOMINUS = 1
541TL_TODOMAYUS = 2
542TL_PRIMERAMAYUS = 3
543TL_MAYUSMINUS = 4
544
545#'---------------------------------------------------------------------------
546#'   Variables globales
547#'---------------------------------------------------------------------------
548
549#' -------------------
550#'   Palabra actual
551#' -------------------
552#' Array de palabras del texto a tratar, como esta_n en el texto. Incluye
553#'   apo_strofe, separacio_n sila_bica y mayu_sculas o minu_sculas
554#'   -2, -1: Palabras anteriores
555#'   0:  Palabra actual
556#'   +1, +2: Palabras siguientes
557
558#'   Palabra actual (con dos palabras anteriores y posteriores)
559paltext = vbfunctions.vbObjectInitialize(((- 2, 2),), vbfunctions.String)
560
561#'   Caracteri_sticas de la palabra en el documento (u_ltimo byte de PalText(i))
562marcaapo = vbfunctions.FixedString(1)
563marcagui = vbfunctions.FixedString(1)
564marcaapogui = vbfunctions.FixedString(1)
565marcaxi = vbfunctions.FixedString(1)
566
567#' Array de palabras de los diccionarios, sin apo_strofe, ni guio_n separador y
568#'   so_lo con letras minu_sculas
569#'   -2, -1: Palabras anteriores
570#'   0:  Palabra actual
571#'   +1, +2: Palabras siguientes
572paldic = vbfunctions.vbObjectInitialize(((- 2, 2),), vbfunctions.String)
573
574#' Información complementaria de la palabra actual
575infcomplact = infcomple()
576
577#'-----------------------------
578#' Tratamiento de pronombres
579#'-----------------------------
580#' El pronombre o pronombres a analizar se pasan en PrPron. PrPos indica la
581#' posicio_n respecto al verbo y el tipo de verbo ( vocal, consonante, etc)
582#' PrNPals indica que palabras de PalText() se pasan en PrPron:
583#'   -2: PalText(-2), PalText(-1) y PalText(0)
584#'   -1: PalText(-1) y PalText(0)
585#'   0:  PalText(0)
586#' PrPronOk es la Public construccio_n propuesta como correcta, en caso de que la
587#' Public construccio_n de PrPron sea erro_nea
588prpron = vbfunctions.String()
589prpos = vbfunctions.Integer()
590prnpals = vbfunctions.Integer()
591prpronok = vbfunctions.String()
592
593#'   Valores de retorno de la función BuscaPron (buscar pronombre en BD)
594PR_NO = 0
595PR_CORR = 1
596PR_ERR = 2
597
598#' ---------------------------
599#'   Errorres de concordancia
600#' ---------------------------
601#'Indica si ha de saltar la deteccio_n de concordancia (Ignorar)
602concordsalta = vbfunctions.Integer()
603
604#' ----------------------------------------------------
605#'   Funciones del corrector desactivadas
606#' ----------------------------------------------------
607#'Indica si han de ejecutarse la funciones del corrector
608#'desactivadas
609exereglesdesact =False
610
611#' ----------------------------------------------------
612#'   Informacio_n de control del proceso de correccio_n
613#' ----------------------------------------------------
614
615#'   Funcio_n de correccio_n que ha detectado la palabra erro_nea
616CORR_PAL_NO_RECONOCIDA = 1
617CORR_PAL_DUPLICADA = 2
618CORR_SEP_SILABICA = 3
619CORR_APOSTROFE = 4
620CORR_CONTRACCION = 5
621CORR_CONCORDANCIA = 6
622CORR_DOBLETE_SEMANTICO = 7
623CORR_USO_MAYUSCULAS = 8
624CORR_USO_PRON = 9
625CORR_PLURAL_ALT = 10
626CORR_DOBLE_ACC = 11
627CORR_MODEL_PART = 12
628CORR_VB = 13
629CORR_EN = 14
630CORR_TOPONIMOS = 15
631CORR_REGLAS = 16
632CORR_LOCS = 17
633CORR_MOTESTR = 18
634CORR_GUION = 19
635CORR_CONFIG = 20
636funcorract = vbfunctions.Integer()
637
638#' --------------------------------------------------------------------------
639#'   Opciones de configuración
640#' --------------------------------------------------------------------------
641optma = vbfunctions.Integer() #'Si TRUE, detectar uso mayu_sculas
642optdsem = vbfunctions.Integer() #'Si TRUE, detectar dobl. semánticos
643optpades = vbfunctions.Integer() #'Si TRUE, detectar pal. desconocidas
644optnpdes = vbfunctions.Integer() #'Si TRUE, detectar nombres propios desconocidos
645optopconfig = vbfunctions.Integer() #'Si TRUE, detectar op. de config.
646optxi = vbfunctions.Integer() #'Si TRUE, detectar cifras
647optacc = vbfunctions.Integer() #'Si TRUE, modelo 2 (cafè)
648optplu = vbfunctions.Integer() #'Si TRUE, modelo 2 (texts)
649optpart = vbfunctions.Integer() #'Si TRUE, modelo 2 (establert)
650optdemostra = vbfunctions.Integer() #'Si TRUE, modelo 2 (este, eixe)
651optincoac = vbfunctions.Integer() #'Si TRUE, modelo 2 (patix)
652optpis = vbfunctions.Integer() #'Si TRUE, modelo 2 (cantés)
653optpp = vbfunctions.Integer() #'Si TRUE, modelo 2 (vaig cantar)
654opttop = vbfunctions.Integer() #'Si TRUE, usar topónimos oficiales
655
656#'Opcions de lèxic
657optasi = vbfunctions.Integer() #'Si True, opción 2 (aixina)
658optdesarrollar = vbfunctions.Integer() #'Si True, opción 2 (desenvolupar)
659opthoy = vbfunctions.Integer() #'Si True, opción 2 (avui)
660optocho = vbfunctions.Integer() #'Si True, opción 2 (vuit)
661optquinto = vbfunctions.Integer() #'Si True, opción 2 (cinqué)
662optservicio = vbfunctions.Integer() #'Si True, opción 1 (servei)
663opttener = vbfunctions.Integer() #'Si True, opción 2 (tenir)
664optver = vbfunctions.Integer() #'Si True, opción 2 (veure)
665
666#'Nivell de formalitat (registro)
667optnformal = vbfunctions.Integer()
668
669#'       Posibles valores:
670optpocformal = 1
671optformal = 2
672optmoltformal = 3
673
674#'Detectar en corrector nivell de formalitat
675optnfcorrnodetectar = vbfunctions.Integer() #'Si True, opción 2 (no detectar)
676
677#'Nivell de llenguatge (variedad dialectal)
678optnoptimo = vbfunctions.Integer()
679
680#'       Nivel de traducción que se considera óptimo
681#'   cuando una palabra castellana se puede traducir por
682#'   varias palabras valencianas, de diferentes niveles
683#'   (1=Dialectal, 2=Standard, 3=Convergente, 4=Otros dialectos)
684optdialectal = 1
685optstandard = 2
686optconvergent = 3
687optaltres = 4
688
689#'   No traducir dentro de un intervalo
690optnotradint = False
691optnotradini = vbfunctions.String()
692optnotradfi = vbfunctions.String()
693
694#' ---------------------------------------------------------------------------
695#'   Sustitucio_n de frases completas (tratamiento de reglas y de locuciones
696#'       .. en el proceso de correccio_n)
697#' ---------------------------------------------------------------------------
698#'   Palabra final de la frase a sustituir (0 = palabra actual)
699sustfrfin = vbfunctions.Integer()
700
701#'   Número de palabras de la frase a sustituir
702sustfrnumpals = vbfunctions.Integer()
703
704#'   Frase a incluir (frase correcta)
705sustfrcorr = vbfunctions.String()
706
707#' ---------------------------------------------------------------------------
708#'   Avisos posteriores (PostAviso)
709#' ---------------------------------------------------------------------------
710papalerr = vbfunctions.String()
711pamens = vbfunctions.String()
712papalalt = vbfunctions.String()
713paidbas = vbfunctions.String()
714paid = vbfunctions.Long()
715paflex = vbfunctions.Integer()
716
717#' ---------------------------------------------------------------------------
718#'       Declaraciones y definiciones generales
719#'
720#'       Corrector-Traductor de Valenciá (CTV)
721#'
722#'       Parte específica del traductor
723#'
724#' --------------------------------------------------------------------------
725#'
726#' --------------------------------------------------------------------------
727#'   Máquina de estados Trad()
728#' --------------------------------------------------------------------------
729#'   Posibles estados
730TR_INICIO = 0
731TR_OTRAPAL = 1
732TR_FRHECHAS = 2
733TR_REGLAS = 3
734TR_TRADMEC = 4
735
736#'   Llamada inicial (reset) o normal
737TR_RESET = 0
738TR_NORMAL = 1
739TR_CANCELAR = 2
740
741#' --------------------------------------------------------------------------
742#'   Máquina de estados TrCorr()     (corregir la traducción)
743#' --------------------------------------------------------------------------
744#'   Posibles estados
745TRC_OTRAPAL = 0
746TRC_CORR = 1
747
748#' --------------------------------------------------------------------------
749#'   Funciones TrVerTipoVbCas y TrVerTipoVbVal
750#' --------------------------------------------------------------------------
751TIPOVB_INICIAR = 1 #'Obtener datos de la base de datos
752TIPOVB_COMPR = 2 #'Comprobar datos
753TIPOVB_NORMAL = 3 #'Obtener datos + Comprobar datos
754
755#' -------------------------------------------------------------------------
756#'   Traducción de frases hechas (locuciones)
757#' -------------------------------------------------------------------------
758#'   Public constantes generales
759
760#'Núm. pal. siguientes a tratar (prospección)
761LOC_NUMPALPRO = 5
762
763#'   Array de palabras a tratar (prospección)
764class locpro:
765  def __init__(self):
766    self.palclave = vbfunctions.String() #'Hipotética palabra clave de frase
767    self.primerafrase = vbfunctions.Integer() #'Indice en el array de frases (0=no hay frase)
768
769locpals = vbfunctions.vbObjectInitialize((LOC_NUMPALPRO,), locpro)
770
771#'   Array de locuciones asociadas a las palabras a tratar
772class locfrase:
773  def __init__(self):
774    self.frasecast = vbfunctions.String() #Frase origen
775    self.fraseval = vbfunctions.String() #Frase meta
776    self.condicion = vbfunctions.String() #'Infinitivo condicionante de la frase
777    self.condicion2 = vbfunctions.Integer() #'Categoria gramatical condicionante
778    self.condicion2b = vbfunctions.String() #'Flexión o tiempo verbal que suma a condición 2
779    self.condicion2ini = vbfunctions.Integer() #'La condicio_n tipo 2 esta_ al principio (True) o al final (False) de la frase
780    self.condicion3 = vbfunctions.Integer() #'Nivel de formalidad (registro) condicionante (corrector)
781    self.numpals = vbfunctions.Integer() #'Número de palabras de la frase
782    self.siguientefrase = vbfunctions.Integer() #'Indice en array de frases (0=no hay más)
783
784locfrases = locfrase()
785
786#'   Anterior palabra castellana
787locantpalcast = vbfunctions.String()
788
789#'   Diccionario de frases en memoria
790#'   Estructura de los indices:  xxx:yyy;xxx:yyy, siendo xxx=IdCas y yyy=
791#'   índice en LocTr/CoIn/Out
792loctrids = vbfunctions.String() #'índices de las frases del traductor
793loctrin = vbfunctions.String() #'Frases del traductor (entrada)
794loctrout = vbfunctions.String() #'Frases del traductor (salida)
795loccoids = vbfunctions.String() #'índices de las frases del corrector
796loccoin = vbfunctions.String() #'Frases del corrector (entrada)
797loccoout = vbfunctions.String() #'Frases del corrector (salida)
798
799#' --------------------------------------------------------------------------
800#'   Sufijos diminutivos y aumentativos
801#' --------------------------------------------------------------------------
802
803#'   Grupos de sufijos
804SUF_MF_CONS = 1 #'Suf m y f empezados por consonant
805SUF_M_VOCAL = 2 #'Suf masculinos empezados por vocal
806SUF_F_VOCAL = 3 #'Suf femeninos empezados por vocal
807
808#' --------------------------------------------------------------------------
809#'   Reglas sobre palabras dudosas (dobletes)
810#' --------------------------------------------------------------------------
811PALDU_TIPOPIS = 1 #'Regla TrRePalDu5, tipo PIS
812PALDU_TIPOPPS = 2 #'Regla TrRePalDu5, tipo PPS/PPP
813
814#' --------------------------------------------------------
815#'   Acceso a la lista de palabras
816#' --------------------------------------------------------
817lspals = []
818
819# ---------------------------------------------------------
820# Saltar frases en otras lenguas
821# ---------------------------------------------------------
822npaldesco=0 #contador de palabras desconocidas
823void_npalmin=9999 #condiciones para void
824void_percent=100
825
826#' --------------------------------------------------------
827#'   Lista de alternativas
828#' --------------------------------------------------------
829#'   Array de palabras dudosas (para que seleccione el
830#'   operador). Cuando los dobletes se generan en
831#'   TradMecTrad llamada desde una regla, los dobletes se
832#'   han de guardar para su proceso posterior dentro de la
833#'   regla
834arralt = vbfunctions.String()
835
836#'   Para mostrar todas las palabras dudosas
837ls_paldu = [] #ListBox()
838
839#' ----------------------------------------------------------
840#' Información sobre cada palabra dudosa para revisar
841#' equivale al contenido del form frmCTV
842#' ----------------------------------------------------------
843ls_alt = [] #ListBox()
844tx_pal = '' #TextBox()
845tx_palerr = '' #TextBox()
846lb_mens = '' #Label()
847
848#' -------------------------------------------------------------
849#'   Texto del documento que hay que traducir
850#' -------------------------------------------------------------
851txDOC = '' #TextBox()
852
853#' --------------------------------------------------------------------------
854#'   Control para evitar bucles
855#' --------------------------------------------------------------------------
856
857#'   Array PalText anterior (-1) y anterior al anterior (-2)
858paltextant = vbfunctions.vbObjectInitialize(((- 5, - 1), (- 2, 2),), vbfunctions.String)
859yavisto = vbfunctions.String()
860
861#' --------------------------------------------------------
862#' --------------------------------------------------------
863#'   Diccionarios de palabras ya accedidas
864#'
865#'   Cada diccionario es una colleccio_n. Cada elemento es
866#'   una palabra. El contenido del elemento son bookmarks
867#'   a las tablas y la clave de acceso es la palabra
868#' --------------------------------------------------------
869#'Diccionario de palabras accedidas desde Trad, para su uso
870#'desde Trad2 y Trad3
871colval = {}
872
873#' --------------------------------------------------------
874#' --------------------------------------------------------
875#'   Acceso a la base de datos
876#' --------------------------------------------------------
877#' --------------------------------------------------------
878# ------------------------------------------
879# Bases de datos virtuales en memoria
880# ------------------------------------------
881#Nombre de las tablas en memoria
882m_tablas=[]
883#Diccionario de recodsets accedidos
884d_rsets={}
885
886#Nombres de la tablas
887tb_d_oriflex_IdOriFlex=os.path.abspath(bdsPath+"/saltbd_a")
888tb_d_oriflex_VeuOri=os.path.abspath(bdsPath+"/saltbd_b")
889tb_d_metabas_IdOri=os.path.abspath(bdsPath+"/saltbd_c")
890tb_d_metabas_IdMeta=os.path.abspath(bdsPath+"/saltbd_d")
891tb_d_metaflex_IdMetaFlex=os.path.abspath(bdsPath+"/saltbd_e")
892tb_d_metaflex_Veu=os.path.abspath(bdsPath+"/saltbd_f")
893tb_d_metasin_IdMeta=os.path.abspath(bdsPath+"/saltbd_g")
894tb_d_metasin_IdSin=os.path.abspath(bdsPath+"/saltbd_h")
895tb_d_metadoblsem_IdMeta=os.path.abspath(bdsPath+"/saltbd_i")
896tb_d_metadoblsem_IdDoblSem=os.path.abspath(bdsPath+"/saltbd_j")
897tb_d_motserr_VeuErr=os.path.abspath(bdsPath+"/saltbd_k")
898tb_d_sepsil_IdMetaFlex=os.path.abspath(bdsPath+"/saltbd_l")
899tb_d_pron_VeuPos=os.path.abspath(bdsPath+"/saltbd_m")
900tb_d_pronerr_VeuPos=os.path.abspath(bdsPath+"/saltbd_n")
901tb_d_frfetes_IdOri=os.path.abspath(bdsPath+"/saltbd_o")
902tb_d_vbmodcas_ModelPersona=os.path.abspath(bdsPath+"/saltbd_p")
903tb_d_vbmodcas_Termin=os.path.abspath(bdsPath+"/saltbd_q")
904tb_d_vbmodval_ModelPersona=os.path.abspath(bdsPath+"/saltbd_r")
905tb_d_vbmodval_Termin=os.path.abspath(bdsPath+"/saltbd_s")
906tb_d_padubt_PaClau=os.path.abspath(bdsPath+"/saltbd_t")
907tb_d_pacorrec_PaClauRegla=os.path.abspath(bdsPath+"/saltbd_u")
908tb_d_padubtaquest_PaClau=os.path.abspath(bdsPath+"/saltbd_v")
909tb_d_regles_PaClauRegla=os.path.abspath(bdsPath+"/saltbd_w")
910tb_d_vbdubt_PaClau=os.path.abspath(bdsPath+"/saltbd_x")
911
912tb_i_oriflex_IdOriFlex=os.path.abspath(bdsPath+"/saltbdi_a")
913tb_i_oriflex_VeuOri=os.path.abspath(bdsPath+"/saltbdi_b")
914tb_i_metabas_IdOri=os.path.abspath(bdsPath+"/saltbdi_c")
915tb_i_metabas_IdMeta=os.path.abspath(bdsPath+"/saltbdi_d")
916tb_i_metaflex_IdMetaFlex=os.path.abspath(bdsPath+"/saltbdi_e")
917tb_i_metaflex_Veu=os.path.abspath(bdsPath+"/saltbdi_f")
918tb_i_metasin_IdMeta=os.path.abspath(bdsPath+"/saltbdi_g")
919tb_i_metasin_IdSin=os.path.abspath(bdsPath+"/saltbdi_h")
920tb_i_metadoblsem_IdMeta=os.path.abspath(bdsPath+"/saltbdi_i")
921tb_i_metadoblsem_IdDoblSem=os.path.abspath(bdsPath+"/saltbdi_j")
922tb_i_motserr_VeuErr=os.path.abspath(bdsPath+"/saltbdi_k")
923tb_i_sepsil_IdMetaFlex=os.path.abspath(bdsPath+"/saltbdi_l")
924tb_i_pron_VeuPos=os.path.abspath(bdsPath+"/saltbdi_m")
925tb_i_pronerr_VeuPos=os.path.abspath(bdsPath+"/saltbdi_n")
926tb_i_frfetes_IdOri=os.path.abspath(bdsPath+"/saltbdi_o")
927tb_i_vbmodcas_ModelPersona=os.path.abspath(bdsPath+"/saltbdi_p")
928tb_i_vbmodcas_Termin=os.path.abspath(bdsPath+"/saltbdi_q")
929tb_i_vbmodval_ModelPersona=os.path.abspath(bdsPath+"/saltbdi_r")
930tb_i_vbmodval_Termin=os.path.abspath(bdsPath+"/saltbdi_s")
931tb_i_padubt_PaClau=os.path.abspath(bdsPath+"/saltbdi_t")
932tb_i_pacorrec_PaClauRegla=os.path.abspath(bdsPath+"/saltbdi_u")
933tb_i_padubtaquest_PaClau=os.path.abspath(bdsPath+"/saltbdi_v")
934tb_i_regles_PaClauRegla=os.path.abspath(bdsPath+"/saltbdi_w")
935tb_i_vbdubt_PaClau=os.path.abspath(bdsPath+"/saltbdi_x")
936
937tb_p_personal_VeuPersonal=os.path.abspath(bdsPath+"/saltbdp_a")
938tb_p_personaltrad_VeuOri=os.path.abspath(bdsPath+"/saltbdp_b")
939tb_p_personaltradi_VeuOri=os.path.abspath(bdsPath+"/saltbdp_c")
940tb_p_temporal_VeuTemporal=os.path.abspath(bdsPath+"/saltbdp_d")
941tb_p_temporaltrad_VeuOri=os.path.abspath(bdsPath+"/saltbdp_e")
942tb_p_temporaltradi_VeuOri=os.path.abspath(bdsPath+"/saltbdp_f")
943
944tb_v_auxvbscas=os.path.abspath(bdsPath+"/saltbdv_a")
945tb_v_auxvbsval=os.path.abspath(bdsPath+"/saltbdv_b")
946
947tb_dicsalt_LemaOrdLema=os.path.abspath(bdsPath+"/saltdic_a")
948tb_dicsalt_AmelOrdLema=os.path.abspath(bdsPath+"/saltdic_b")
949tb_dicsalt_Lema2OrdLema=os.path.abspath(bdsPath+"/saltdic_c")
950
951tb_dicbilcv_LemaOrdLema=os.path.abspath(bdsPath+"/saltdbil_a")
952tb_dicbilvc_LemaOrdLema=os.path.abspath(bdsPath+"/saltdbil_b")
953tb_dicbilcv_Lema2OrdLema=os.path.abspath(bdsPath+"/saltdbil_c")
954tb_dicbilvc_Lema2OrdLema=os.path.abspath(bdsPath+"/saltdbil_d")
955
956
957#'   Identificador de la base de datos actual
958#'   (direccio_n del traductor)
959dtrcasval = 'd'
960dtrvalcas = 'i'
961dtractual = vbfunctions.String()
962
963#'   Base de datos general
964#'   BD activa
965env=None
966bdat = ""
967cur=""
968bd_oriflex_IdOriFlex=None
969bd_oriflex_VeuOri=None
970bd_metabas_IdOri=None
971bd_metabas_IdMeta=None
972bd_metaflex_IdMetaFlex=None
973bd_metaflex_Veu=None
974bd_metasin_IdMeta=None
975bd_metasin_IdSin=None
976bd_metadoblsem_IdMeta=None
977bd_metadoblsem_IdDoblSem=None
978bd_motserr_VeuErr=None
979bd_sepsil_IdMetaFlex=None
980bd_pron_VeuPos=None
981bd_pronerr_VeuPos=None
982bd_frfetes_IdOri=None
983bd_vbmodori_ModelPersona=None
984bd_vbmodori_Termin=None
985bd_vbmodmeta_ModelPersona=None
986bd_vbmodmeta_Termin=None
987bd_padubt_PaClau=None
988bd_pacorrec_PaClauRegla=None
989bd_padubtaquest_PaClau=None
990bd_regles_PaClauRegla=None
991bd_vbdubt_PaClau=None
992bd_personal_VeuPersonal=None
993bd_personaltrad_VeuOri=None
994bd_temporal_VeuTemporal=None
995bd_temporaltrad_VeuOri=None
996
997roriflex = RSet()
998rmetabas = RSet()
999rmetaflex = RSet()
1000rmetasin = RSet()
1001rmetadoblsem = RSet()
1002rmotserr = RSet()
1003rsepsil = RSet()
1004rpron = RSet()
1005rpronerr = RSet()
1006rfrfetes = RSet()
1007rvbmodori = RSet()
1008rvbmodmeta = RSet()
1009
1010rpersonal = RSet()
1011rtemporal = RSet()
1012rpersonaltrad = RSet()
1013rtemporaltrad = RSet()
1014
1015#'   BD directa
1016bdatd = ""
1017curd=""
1018bd_d_oriflex_IdOriFlex=None
1019bd_d_oriflex_VeuOri=None
1020bd_d_metabas_IdOri=None
1021bd_d_metabas_IdMeta=None
1022bd_d_metaflex_IdMetaFlex=None
1023bd_d_metaflex_Veu=None
1024bd_d_metasin_IdMeta=None
1025bd_d_metasin_IdSin=None
1026bd_d_metadoblsem_IdMeta=None
1027bd_d_metadoblsem_IdDoblSem=None
1028bd_d_motserr_VeuErr=None
1029bd_d_sepsil_IdMetaFlex=None
1030bd_d_pron_VeuPos=None
1031bd_d_pronerr_VeuPos=None
1032bd_d_frfetes_IdOri=None
1033bd_d_vbmodcas_ModelPersona=None
1034bd_d_vbmodcas_Termin=None
1035bd_d_vbmodval_ModelPersona=None
1036bd_d_vbmodval_Termin=None
1037bd_d_padubt_PaClau=None
1038bd_d_pacorrec_PaClauRegla=None
1039bd_d_padubtaquest_PaClau=None
1040bd_d_regles_PaClauRegla=None
1041bd_d_vbdubt_PaClau=None
1042
1043#'   BD inversa
1044bdati = ""
1045curi=""
1046bd_i_oriflex_IdOriFlex=None
1047bd_i_oriflex_VeuOri=None
1048bd_i_metabas_IdOri=None
1049bd_i_metabas_IdMeta=None
1050bd_i_metaflex_IdMetaFlex=None
1051bd_i_metaflex_Veu=None
1052bd_i_metasin_IdMeta=None
1053bd_i_metasin_IdSin=None
1054bd_i_metadoblsem_IdMeta=None
1055bd_i_metadoblsem_IdDoblSem=None
1056bd_i_motserr_VeuErr=None
1057bd_i_sepsil_IdMetaFlex=None
1058bd_i_pron_VeuPos=None
1059bd_i_pronerr_VeuPos=None
1060bd_i_frfetes_IdOri=None
1061bd_i_padubt_PaClau=None
1062bd_i_pacorrec_PaClauRegla=None
1063bd_i_padubtaquest_PaClau=None
1064bd_i_regles_PaClauRegla=None
1065bd_i_vbdubt_PaClau=None
1066
1067#'   bases de datos personal
1068bdatp = ""
1069curp=""
1070bd_p_personal_VeuPersonal=None
1071bd_p_personaltrad_VeuOri=None
1072bd_p_personaltradi_VeuOri=None
1073bd_p_temporal_VeuTemporal=None
1074bd_p_temporaltrad_VeuOri=None
1075bd_p_temporaltradi_VeuOri=None
1076
1077## base de datos de ayudas
1078#bdata = ""
1079#cura=""
1080#rpersonal = RSet()
1081#rtemporal = RSet()
1082#rajuda = RSet()
1083#rpersonaltradd = RSet()
1084#rtemporaltradd = RSet()
1085#rpersonaltradi = RSet()
1086#rtemporaltradi = RSet()
1087#rpersonaltrad = RSet()
1088#rtemporaltrad = RSet()
1089
1090#' -------------------------------------------------------
1091#'   PROCESO DE REVISIÓN DE LA TRADUCCIÓN
1092#' -------------------------------------------------------
1093
1094#' --------------------------------------------------------
1095#'   Indicador de que estamos en revisio_n de texto. Es
1096#'   necesario porque desde revisio_n se puede llamar a
1097#'   correccio_n, que cambia ctvmodocorrtrad. Asi gracias a
1098#'   este indicador se puede saber si se ha llamado al
1099#'   corrector desde la revisio_n del texto
1100#' --------------------------------------------------------
1101enrevisio = False
1102
1103#' --------------------------------------------------------
1104#'   Nu_mero de palabras que hay que retroceder durante
1105#'   la revisio_n de texto al tratar el grupo de alternativas
1106#'   actual. Cuando la funcio_n TradMecDsVer detecta dobletes
1107#'   y los añade a la lista, actualiza este valor que sera_
1108#'   posteriormente incorporado a la informacio_n asociada
1109#'   a la palabra dudosa en el documento (campo Info)
1110#' --------------------------------------------------------
1111npretro = vbfunctions.Integer()
1112
1113#' --------------------------------------------------------
1114#'   Constantes que identifican la informacio_n adicional,
1115#'   correspondiente al texto dudoso, que se ha de guardar
1116#'   junto con cada texto dudoso para el tratamiento
1117#'   posterior por el operador
1118#' --------------------------------------------------------
1119praunumalts = 'numalts' #'Núm. de alternativas
1120prautxtdu = 'txtdu' #'Texto dudoso
1121prautxtpro = 'txtpro' #'Texto propuesto '(corresponde a la primera alternativa)
1122praualt = 'alt' #'Las diferentes alternativas se identifican como $altn=
1123praudescrierror = 'error' #Texto que describe el tipo de error
1124praunpretro = 'npretro' #Núm. palabras a retroceder para corregir en el proceso de revisión (si 0 no corregir)
1125praucolor = 'txtcolor' #Color original del texto dudoso
1126
1127#' -------------------------------------------------------
1128#'   Información sobre frmCtv
1129#' -------------------------------------------------------
1130#'   último botón pulsado en frmCtv
1131frmctvboton = vbfunctions.String()
1132
1133#' --------------------------------------------------------
1134#'   Textos de aviso y de error
1135#' --------------------------------------------------------
1136msggen = 1
1137msggenyaenexe = 2
1138msgfierr = 3
1139msgfinoopen = 4
1140msgfinoopen2 = 5
1141msgfinoguarda = 6
1142msgfinocarga = 7
1143msgfinoimpo = 8
1144msgfigran = 9
1145msgimanoinsert = 10
1146msgimabordererr = 11
1147msgtraerr = 12
1148msgtrafin = 13
1149msgcorrfin = 14
1150msgrevfin = 15
1151msgajunoexis = 16
1152msgadminnoopen = 17
1153msgadminerrafe = 18
1154msgbusreemfin = 19
1155msgbusreemtit = 20
1156msgfiguardar1 = 21
1157msgfiguardar2 = 22
1158msgfiguardar3 = 23
1159msgimarutaerr = 24
1160msgtraMarca = 25
1161msgrevcan = 26
1162msggennobd = 27
1163msgrevpte = 28
1164
1165#'En valencià
1166msggenval = 'Corregiu el problema i torneu a arrancar el programa.'
1167msggenyaenexeval = 'No es permet executar dos còpies del programa'
1168msggennobdval = 'No s\'ha trobat la base de dades '
1169msgfierrval = 'Tipus de fitxer erròni: '
1170msgfinoopenval = 'No s\'ha pogut obrir el fitxer.'
1171msgfinoopen2val = 'No es pot obrir el fitxer: '
1172msgfinoguardaval = 'No es pot guardar el fitxer: '
1173msgfinocargaval = 'No es pot carregar el fitxer: '
1174msgfinoimpoval = 'No es pot importar importar el fitxer: '
1175msgfigranval = 'Fitxer massa gran. proveu convertint-lo a fitxer rtf'
1176msgfiguardar1val = 'El text en ['
1177msgfiguardar2val = '] ha canviat.'
1178msgfiguardar3val = 'Vol guardar els canvis?'
1179msgimanoinsertval = 'Cannot insert image: '
1180msgimabordererrval = 'Invalid image border size'
1181msgimarutaerrval = 'Ruta invàlida: '
1182msgtraerrval = 'Si teniu problemes al traduir el document, proveu a traduir-lo per parts.'
1183msgtrafinval = 'Traducció finalitzada.'
1184msgtramarcaval = 'Vol introduir una marca per a reprendre en aquest punt el procés de traducció?'
1185msgcorrfinval = 'Correcció finalitzada.'
1186msgrevfinval = 'Revisió del text finalitzada.'
1187msgrevcanval = 'Revisió del text cancel·lada.'
1188msgajunoexisval = 'L\'epígraf demanat no existix'
1189msgadminnoopenval = 'No s\'ha pogut obrir el fitxer '
1190msgadminerrafeval = 'Error al afegir fitxer '
1191msgbusreemfinval = 'Recerca finalitzada'
1192msgbusreemtitval = 'Cerca i substitució'
1193msgrevpteval = 'El document té marques de revisió. Vol eliminar-les?'
1194
1195# VB2PY (UntranslatedCode) Attribute VB_Name = "sltgl"
1196_t={}
Note: See TracBrowser for help on using the repository browser.