Fitxer d'expressions regulars

De KDE Català
La revisió el 00:45, 12 jul 2007 per Miquel (discussió | contribucions) (Pàgina nova, amb el contingut: «== '''Fitxer d'expressions regulars''' == El KBabel, des de les versions de l'any 2005, té un connector programat per l'Albert Cervera que valida els missatge...».)
(dif) ← Versió més antiga | Versió actual (dif) | Versió més nova → (dif)
Salta a:navegació, cerca

Fitxer d'expressions regulars

El KBabel, des de les versions de l'any 2005, té un connector programat per l'Albert Cervera que valida els missatges traduïts contra una llista d'expressions regulars. Aquest connector serveix per detectar errades o incorreccions a les traduccions que els correctors ortogràfics no poden detectar.

La llista d'expressions regulars és un fitxer autodocumentat en format XML. El fitxer ha d'estar situat a ~/.kde/share/apps/kbabel/regexplist.xml. I per utilitzar-lo cal anar al menú: Eines → Validació → Comprova els missatges traduïts amb un conjunt d'expressions regulars. Aquesta acció marcarà amb "defecte" tots els missatges traduïts que coincideixen amb alguna de les expressions regulars del fitxer.

Pot ser que alguna de les traduccions siguin correctes (falsos positius), i per tant, aquestes marques de "defecte" es poden ignorar.


Tot seguit s'adjunta un exemple pel català del fitxer XML. Per utilitzar-lo el podeu copiar i enganxar a ~/.kde/share/apps/kbabel/regexplist.xml:



<?xml version="1.0" encoding="iso-8859-1"?>
<!--
	This file contains the list of regular expressions the plugin should check for.
	Please, follow this syntax:
		<regexplist>
			<item>
				<name></name>
				<exp></exp>
				<cs/> (only when the expression needs to be case sensitive)
			</item>
			...
		</regexplist>
	 
	Right now the file should be copied to ~/.kde/share/apps/kbabel/regexplist.xml. 
        I'm sorry this cannot be configured but hope it will in the future. 
        By the time if you need another location you have to modify the source code (main.cc)

	You'll see in the example that most expressions start with '(^| |\\t)+' and then a word. 
        This is to ensure it _is_ a word. Using the usual expressions to ensure we pick up a whole word doesn't work for the catalan language. 
        Anyway, if you need to match a tab be sure you use the '\\t' expression.

	Right now names in expressions aren't much useful, but I aim to modify kbabel in order to give more information about the error found. 
        And I will probably add a description tag to enable long explanations of the mistake.

	Also note the syntax of the file is quite strict. Mmmmm... too many words without a joke, this really doesn't seem to be open source :(
	-->

<regexplist>
	<item>
		<name>"el" seguit de vocal</name>
		<exp>(^| |\\t)+el +[a,e,i,o,u][a-z]+</exp>
	</item>
	<item>
		<name>"la" seguit de a,e,o</name>
		<exp>(^| |\\t)+la +[a,e,o][a-z]+</exp>
	</item>
	<item>
		<name>"per el" en lloc de "pel"</name>
		<exp>(^| |\\t)+per +el( |\\t|$)+</exp>
	</item>
	<item>
		<name>"per els" en lloc de "pels"</name>
		<exp>(^| |\\t)+per +els( |\\t|$)+</exp>
	</item>
	<item>
		<name>"de el" en lloc de "del"</name>
		<exp>(^| |\\t)+de +el( |\\t|$)+</exp>
	</item>
	<item>
		<name>"de els" en lloc de "dels"</name>
		<exp>(^| |\\t)+de +els( |\\t|$)+</exp>
	</item>
	<item>
		<name>"a el" en lloc de "al"</name>
		<exp>(^| |\\t)+a +el( |\\t|$)+</exp>
	</item>
	<item>
		<name>"a els" en lloc de "als"</name>
		<exp>(^| |\\t)+a +els( |\\t|$)+</exp>
	</item>
	<item>
		<name>"al" seguit de vocal</name>
		<exp>(^| |\\t)+al +[a,e,i,o,u][a-z]+</exp>
	</item>
	<item>
		<name>"m'els" en lloc de "me'ls"</name>
		<exp>(^| |\\t)m'els( |\\t|$)+</exp>
	</item>
	<item>
		<name>"mels" en lloc de "me'ls"</name>
		<exp>(^| |\\t)mels( |\\t|$)+</exp>
	</item>
	<item>
		<name>"s'el" en lloc de "se'l"</name>
		<exp>(^| |\\t)s'el( |\\t|$)+</exp>
	</item>
	<item>
		<name>"sel" en lloc de "se'l"</name>
		<exp>(^| |\\t)sel( |\\t|$)+</exp>
	</item>
	<item>
		<name>"s'els" en lloc de "se'ls"</name>
		<exp>(^| |\\t)s'els( |\\t|$)+</exp>
	</item>
	<item>
		<name>"sels" en lloc de "se'ls"</name>
		<exp>(^| |\\t)sels( |\\t|$)+</exp>
	</item>
	<item>
		<name>"s'em" en lloc de "se'm"</name>
		<exp>(^| |\\t)s'em( |\\t|$)+</exp>
	</item>
	<item>
		<name>"sem" en lloc de "se'm"</name>
		<exp>(^| |\\t)sem( |\\t|$)+</exp>
	</item>
	<item>
		<name>"s'hem" en lloc de "se'm"</name>
		<exp>(^| |\\t)s'hem( |\\t|$)+</exp>
	</item>
	<item>
		<name>"s'ens" en lloc de "se'ns"</name>
		<exp>(^| |\\t)s'ens( |\\t|$)+</exp>
	</item>
	<item>
		<name>"s'et" en lloc de "se't"</name>
		<exp>(^| |\\t)s'et( |\\t|$)+</exp>
	</item>
	<item>
		<name>"susa" en lloc de "s'usa"</name>
		<exp>(^| |\\t)susa( |\\t|$)+</exp>
	</item>
	<item>
		<name>"s'us" en lloc de "se us"</name>
		<exp>(^| |\\t)s'us( |\\t|$)+</exp>
	</item>
	<item>
		<name>"su's" en lloc de "se us"</name>
		<exp>(^| |\\t)su's( |\\t|$)+</exp>
	</item>
	<item>
		<name>"t'els" en lloc de "te'ls"</name>
		<exp>(^| |\\t)t'els( |\\t|$)+</exp>
	</item>
	<item>
		<name>"t'el" en lloc de "te'l"</name>
		<exp>(^| |\\t)t'el( |\\t|$)+</exp>
	</item>
	<item>
		<name>"t'em" en lloc de "t'hem" o "te'm"</name>
		<exp>(^| |\\t)t'em( |\\t|$)+</exp>
	</item>
	<item>
		<name>"t'ens" en lloc de "te'ns"</name>
		<exp>(^| |\\t)t'ens( |\\t|$)+</exp>
	</item>
	<item>
		<name>"t'en" en lloc de "te'n"</name>
		<exp>(^| |\\t)t'en( |\\t|$)+</exp>
	</item>
	<item>
		<name>"ten" en lloc de "te'n"</name>
		<exp>(^| |\\t)ten( |\\t|$)+</exp>
	</item>
	<item>
		<name>"t'ens" en lloc de "te'ns"</name>
		<exp>(^| |\\t)t'ens( |\\t|$)+</exp>
	</item>
	<item>
		<name>vós sense accent</name>
		<exp>(^| |\\t)vos( |\\t|$)</exp>
	</item>
	<item>
		<name>Terminal és masculí (si es tracta d'informàtica): el terminal</name>
		<exp>(^| |\\t)la +terminal( |\\t|$)</exp>
	</item>
	<item>
		<name>Terminal és masculí (si es tracta d'informàtica): un terminal</name>
		<exp>(^| |\\t)una +terminal( |\\t|$)</exp>
	</item>
	<item>
		<name>"a que", o s'accentua "què" o es treu la preposició</name>
		<exp>(^| |\\t)a +que( |\\t|$)</exp>
	</item>
	<item>
		<name>"de que", o s'accentua "què" o es treu la preposició</name>
		<exp>(^| |\\t)de +que( |\\t|$)</exp>
	</item>
	<item>
		<name>"en que", o s'accentua "què" o es treu la preposició</name>
		<exp>(^| |\\t)en +que( |\\t|$)</exp>
	</item>
	<item>
		<name>"amb que", o s'accentua "què" o es treu la preposició</name>
		<exp>(^| |\\t)amb +que( |\\t|$)</exp>
	</item>
	<item>
		<name>"per què" sense accent</name>
		<exp>(^| |\\t)per +que( |\\t|$)</exp>
	</item>
	<!-- En fase de test, últimes propostes d'en David -->
	
	<!--
	Abans de "aquest", "aquell", "algun", "un" i les seues variants no posarem
	 "a", sinó "en" (per a moviment i situació):
	Voleu desar el fitxer en aquesta carpeta?
	Tanmateix, per a la resta de casos cal posar "a"!
	
	Probablement comprovar "a un" donaria massa falsos positius.
	-->
	<!--
	<item>
		<name></name>
		<exp>(^| |\\t)a +(aquest|aquell|algun)( |\\t|$)</exp>
	</item>
	-->
	<!--
		El pronom es, davant d'un mot començat per sa-, se-, si-, so-, su-, ce- o
		ci-, s'escriurà sempre en la forma plena (se):
		
		Se sap que algunes característiques...
                Les propietats d'aquest programa se sumen a les de...
	-->
	<item>
		<name>"es" en lloc de "se" davant de sa,se,si,so,su,ce o ci</name>
		<exp>(^| |\\t)es +(sa|se|si|so|su|ce|ci)</exp>
	</item>

	<!--
		En frases negatives, les partícules mai, cap, res, gens i ningú han de dur
		no sempre:
		
		No tragueu mai el disquet abans d'hora.
		Cap ordre no s'ha d'escriure en majúscules.
		Sense la contrasenya, ningú no està autoritzat a accedir a la informació.
	-->
	<!--
	<item>
		<name></name>
		<exp>(((^| |\\t)(mai|cap|res|gens|ningú)( |\\t|$))(?!.*(^| |\\t)no( |\\t|$)))|(((^| |\\t)(mai|cap|res|gens|ningú)( |\\t|$))(?!.*(^| |\\t)no( |\\t|$)))</exp>
	</item>
	-->
	<!--
	3.3. Construccions incorrectes
	Podríem buscar "donat que" per a substituir-ho per "atès que".
	"tals com" -> "com ara"
	"tal i com" -> "tal com"
	"teniu que" -> "heu de"/"heu d'"
	"en quant a" -> "pel que fa a", "quant a"
	-->
	<item>
		<name></name>
		<exp>(^| |\\t)donat +que( |\\t|$)</exp>
	</item>
	<item>
		<name>"tals com"</name>
		<exp>(^| |\\t)tals +com( |\\t|$)</exp>
	</item>
	<item>
		<name>"tal i com" en lloc de "tal com"</name>
		<exp>(^| |\\t)tal +i +com( |\\t|$)</exp>
	</item>
	<item>
		<name>"en quant a"</name>
		<exp>(^| |\\t)en +quant +a( |\\t|$)</exp>
	</item>

	<!--
		Softcatalà:
		* Hi han: El verb haver-hi és impersonal, per això no té plural en català central, atès que no té subjecte. 
                          Per tant, no es diu hi han, hi havien, hi hauran, sinó hi ha, hi havia, hi haurà, 
                          encara que el complement que el segueixi sigui plural.
	-->
	<item>
		<name>"hi han" en lloc de "hi ha" ("hi han" no existeix)</name>
		<exp>(^| |\\t)hi +han( |\\t|$)</exp>
	</item>
	<item>
		<name>"hi havien" en lloc de "hi havia" ("hi havien" no existeix)</name>
		<exp>(^| |\\t)hi +havien( |\\t|$)</exp>
	</item>
	<item>
		<name>"hi hauran" en lloc de "hi haurà" ("hi hauran" no existeix)</name>
		<exp>(^| |\\t)hi +hauran( |\\t|$)</exp>
	</item>
	
	<!--
		Softcatalà:
		* Tenir que: És la traducció incorrecta al català de l'expressió castellana tener que. 
                             La forma correcta és haver de; també es pot utilitzar el verb impersonal caldre.
	-->
	<item>
		<name>"teniu que" en lloc de "heu de"</name>
		<exp>(^| |\\t)teniu +que( |\\t|$)</exp>
	</item>
	<item>
		<name>"tenim que" en lloc de "hem de"</name>
		<exp>(^| |\\t)tenim +que( |\\t|$)</exp>
	</item>
	<item>
		<name>"tenen que" en lloc de "han de"</name>
		<exp>(^| |\\t)tenen +que( |\\t|$)</exp>
	</item>
	<!-- directori dona molts falsos positius
	<item>
		<name>"directori" (NOK) en lloc de "carpeta"</name>
		<exp>(^| |\\t)directori( |\\t|$)</exp>
	</item>
	-->
	<item>
		<name>"suport" (NOK) en lloc de "funcionar amb", "ser compatible amb", "permetre l'ús de", "acceptar", "poder treballar amb", 
                       i segurament algunes més"</name>
		<exp>(^| |\\t)suport</exp>
	</item>
	<item>
                <name>"escànner" i derivats en lloc de "escàner" (amb una "n")
		</name>
		<exp>sc[à,a]nne</exp>
	</item>
	<item>
		<name>"contrassenya" és amb una "s" (contrasenya)
		</name>
		<exp>ontrassenya</exp>
	</item>
	<item>
		<name>darrere / darrera: La forma correcta és en -e: darrere (i no "darrera"). El mateix per a enrere, rere, etc. 
                      (excepció: "la darrera notícia" és correcte, ja que es tracta del femení de "darrer") 
		</name>
		<exp>(^| |\\t)darrera( |\\t|$)</exp>
	</item>
	<item>
		<name>enrere / enrera: La forma correcta és en -e: enrere (i no "enrera"). El mateix per a enrere, rere, etc.
		</name>
		<exp>(^| |\\t)enrera( |\\t|$)</exp>
	</item>
	<item>
		<name>rere / rera: La forma correcta és en -e: rere (i no "rera"). El mateix per a enrere, rere, etc.
		</name>
		<exp>(^| |\\t)rera( |\\t|$)</exp>
	</item>
	<item>
		<name>major que / més gran que / menor que / més petit que: Un fitxer pot ser més gran o més petit que un altre, però mai major ni menor. 
                      Major i menor s'utilitzen molt poc, i només fora del nostre àmbit informàtic.
		</name>
		<exp>(^| |\\t)major( |\\t|$)</exp>
	</item>
	<item>
		<name>major que / més gran que / menor que / més petit que: Un fitxer pot ser més gran o més petit que un altre, però mai major ni menor. 
                      Major i menor s'utilitzen molt poc, i només fora del nostre àmbit nformàtic.
		</name>
		<exp>(^| |\\t)menor( |\\t|$)</exp>
	</item>
	<item>
		<name>mida / mesura / tamany: Tamany és un castellanisme inacceptable, tot i que malauradament molt estès; 
                      un fitxer té una mida determinada, però es poden prendre mesures per a fer-lo més petit. 
                      Una d'aquestes mesures pot ser utilitzar un altre tipus de compressió.
		</name>
		<exp>(^| |\\t)tamany( |\\t|$)</exp>
	</item>
	<item>
		<name>targeta / tarja: Tarja existeix, però no en el sentit amb què ens trobem normalment. 
                      Utilitzarem sempre targeta (de so, de vídeo, de xarxa, etc.)
		</name>
		<exp>(^| |\\t)tarja( |\\t|$)</exp>
	</item>	
	<item>
		<name>renomena (NOK) -> reanomena (OK)
		</name>
		<exp>(^| |\\t)renomena( |\\t|$)</exp>
	</item>
	<item>
		<name>privacitat (NOK) -> privadesa (OK)
		</name>
		<exp>(^| |\\t)privacitat( |\\t|$)</exp>
	</item>
	<item>
		<name>rotar (NOK) -> girar o voltejar (OK)
		</name>
		<exp>(^| |\\t)rotar( |\\t|$)</exp>
	</item>
	<item>
		<name>comanda (NOK) (s'aplica a "servir una comanda") -> ordre o comandament (OK)
		</name>
		<exp>(^| |\\t)comanda( |\\t|$)</exp>
	</item>
</regexplist>