Gonduana

Contenidos para traductores

  • Blog
  • Empieza por aquí
    • Encuesta: coger
    • Encuesta: ratón o mouse
    • Artículos más leídos
    • Vídeos más vistos
    • Gonduana en las redes sociales
    • ¿Quieres saber más sobre mí?
  • Recursos
    • Software para traductores
    • Hardware para traductores
    • Internet para traductores
    • WordPress para traductores
  • Servicios
  • Sobre mí
  • Contacto

Cómo españolizar palabras con AutoHotkey

Publicado el 19/septiembre/2015 por Jesús Prieto

españolizar palabras con AutoHotkeyNo sé si se entiende bien el título, así que lo primero vamos a centrar el problema, ¿vale?

Empezamos con una pregunta:

¿Sabes qué tienen en común todas las palabras que hay en la imagen de arriba?

Sí, todas son palabras en inglés. ¿Algo más?

¡Bien visto! Todas tienen la terminación -tion.

Pero lo que hace interesantes a todas esas palabras es que su traducción al español implicaría solo cambiar la terminación -tion por -ción. Por ejemplo, locomotion se traduciría por locomoción, ¿verdad?

¿Te ha pasado encontrarte con estas palabras y que sea un engorro teclear solo esos pocos caracteres? Para mí sí lo es… Ir al final de palabra, borrar tión, escribir ción puede ser un infierno. Por cierto: ¡lo que fallo con la tecla de la tilde!

🙁

Al final, a menudo calculo que habría tardado menos si hubiera borrado la palabra del todo y escrito desde cero…

Por eso desarrollé una macro de AutoHotkey que me simplificó mucho la vida con estas palabras tan especiales.

¡Las españolizo automáticamente!

¿Te interesa saber cómo?

Macro de AutoHotkey para españolizar palabras

Lo vamos a ver para el caso de inglés, pero puede hacerse lo mismo para otros idiomas. Estoy pensando en el francés; en fin, es cuestión de que cada uno personalice esta macro para lo que necesite.

Ya sabes que al trabajar con AutoHotkey logras siempre estos beneficios:

  • velocidad al trabajar (sobre todo si no eres hábil con el teclado);
  • seguridad de que lo que haces está bien tecleado;
  • flexibilidad, es decir, puedes ejecutar la macro en cualquier aplicación, ya sea Word, Studio, memoQ.

Para ejecutar el reemplazo, sigue estos pasos:

  • selecciona la palabra que quieres españolizar con AutoHotkey (un doble clic con el ratón funciona de maravilla);
  • pulsa la tecla CONTROL de tu teclado;
  • y al mismo tiempo que haces clic con el ratón.

Es una combinación bastante rápida.

1.ª macro (básica)

Luego lo iremos complicando, pero la macro de AutoHotkey más básica que reemplaza tion por ción es:

; Macro 1 para ESPAÑOLIZAR. 
; Reemplazar tion por ción
!LButton::
	; Vacía el Portapapeles
	clipboard =
	; CONTROL+ C = copia el texto seleccionado
	Send ^c
	; Espera a que el Portapapeles tenga contenido
	ClipWait
	; Reemplazar contenido del Portapapeles por otra cadena.
	; Resultado: en el mismo Portapapeles
	StringReplace, clipboard, clipboard, tion, ción, All
	; Escribir contenido del Portapapeles
	SendInput %clipboard%
return

Donde se emplea envía CONTROL+C para copiar el texto seleccionado (línea 7) y la función StringReplace para cambiar la cadena tion por ción. El parámetro All hace que se reemplacen todos los tion que haya. En la línea 14 se envía la palabra españolizada.

Notas:

  • puedes seleccionar una o varias palabras;
  • internamente, la macro reemplaza solo texto, así que ten en cuenta que perderás cualquier otra cosa seleccionada que no sea texto, como imágenes, formato, etiquetas, campos…

2.ª macro (plurales)

Vamos a complicar la macro un poco más, para conseguir más beneficios aún.

Por ejemplo, vamos a añadir que la macro nos reemplace la cadena tions por ciones.

La macro que los hace es:

; Macro 2 para ESPAÑOLIZAR.
; Reemplazar plurales: tion/tions por ción/ciones
!LButton::	
	; Vacía el Portapapeles
	clipboard =
	; CONTROL+ C = copia el texto seleccionado
	Send ^c
	; Espera a que el Portapapeles tenga contenido
	ClipWait
	; Reemplazar contenido del Portapapeles por otra cadena.
	; Resultado: en el mismo Portapapeles
	StringReplace, clipboard, clipboard, tions, ciones, All
	StringReplace, clipboard, clipboard, tion, ción, All
	; Escribir contenido del Portapapeles
	SendInput %clipboard%
return

Se ha añadido la nueva línea 12, que reemplaza la forma plural, antes de la línea con la forma singular. Fíjate que el reemplazo del plural debe ir antes del reemplazo del singular, porque si reemplazaras primero tion en la palabra associations por ción, quedaría asociacións, que no sería correcto.

3.ª macro (terminación isation)

Vamos a incluir otro reemplazo más. ¿Adivinas cuál?

Supongo que sabes que en inglés británico hay un buen número de palabras terminadas en isation, como authorisation, amortisation, globalisation, etc. Pues bien, vamos a reemplazar esta terminación isation por la española ización. Por ejemplo, reemplazará amortisation por amortización.

Además, tendremos en cuenta los plurales (cambiaremos isations por izaciones).

Todo esto se considera en la siguiente macro:

; Macro 3 para ESPAÑOLIZAR.
; Reemplazar plurales: tion/tions por ción/ciones
; Reemplazar isation por ización (más plurales)
!LButton::
	; Vacía el Portapapeles
	clipboard =
	; CONTROL+ C = copia el texto seleccionado
	Send ^c
	; Espera a que el Portapapeles tenga contenido
	ClipWait
	; Reemplazar contenido del Portapapeles por otra cadena.
	; Resultado: en el mismo Portapapeles
	StringReplace, clipboard, clipboard, isations, izaciones, All
	StringReplace, clipboard, clipboard, isation, ización, All
	StringReplace, clipboard, clipboard, tions, ciones, All
	StringReplace, clipboard, clipboard, tion, ción, All
	; Escribir contenido del Portapapeles
	SendInput %clipboard%
return

Esta 3.ª versión de la macro funciona y es correcta, pero la vamos a dejar niquelada y robusta para cualquier situación.

4.ª y última macro para españolizar palabras con AutoHotkey

La última macro que considera con todas las mejoras es:

; Macro 4 para ESPAÑOLIZAR.
; Reemplazar plurales: tion/tions por ción/ciones
; Reemplazar isation por ización (más plurales)
; Restablecer el contenido del Portapapeles 

; ¡Solo funcionará en Microsoft Word!
#IfWinActive ahk_exe WINWORD.EXE
^LButton::
	; Copiar TODO el contenido del Portapapeles
	portapapeles := ClipboardAll
	
	; Vacía el Portapapeles
	clipboard =
	; CONTROL+ C = copia el texto seleccionado
	SendInput ^c
	; Espera a que el Portapapeles tenga contenido
	ClipWait
	; Reemplazar contenido del Portapapeles por otra cadena.
	; Resultado: en el mismo Portapapeles
	cambios := 0
	StringReplace, clipboard, clipboard, isations, izaciones, All, ErrorLevel
	if ErrorLevel = 0
		cambios := cambios + 1
	StringReplace, clipboard, clipboard, isation, ización, All, ErrorLevel
	if ErrorLevel = 0
		cambios := cambios + 1
	StringReplace, clipboard, clipboard, tions, ciones, All, ErrorLevel
	if ErrorLevel = 0
		cambios := cambios + 1
	StringReplace, clipboard, clipboard, tion, ción, All, ErrorLevel
	if ErrorLevel = 0
		cambios := cambios + 1

	; Comprobando que la tecla CONTROL está levantada
	while GetKeyState("Control", P)
		Sleep, 20

	; Escribir contenido del Portapapeles
	if cambios
		SendInput %clipboard%
	
	; Devolver contenido original al Portapapeles
	Clipboard = %portapapeles%	
	; Liberar memoria de la variable temporal
	portapapeles =
return
; Final de #IfWinActive de los programas seleccionados
#IfWinActive

Te puedes descargar la macro desde este enlace.

Veamos las mejoras una a una:

1.- Mantener el contenido del Portapapeles

Como ya vimos en el artículo 4 aplicaciones de AutoHotkey y el Portapapeles de Windows, vamos a mantener el contenido del Portapapeles de Windows, así no lo pierdes por ejecutar la macro.

Básicamente, al principio de la macro se copia el contenido del Portapapeles en una variable temporal (línea 10) y se restituye al final (línea 43).

2.- Ejecutar solo en Word

Otro punto que vamos a conseguir es que la macro solo se ejecute en una determinada aplicación. De esta forma, evitaremos disparar la macro si nos equivocamos en otras aplicaciones.

En esta macro, en la línea 7 elegí Microsoft Word, es decir, como si solo tuviera sentido que estuvieras españolizando en Word. Puedes elegir otra aplicación, como SDL Trados Studio. En ese caso, debes cambiar la misma línea 7 a:

#IfWinActive ahk_exe SDLTradosStudio.exe

En realidad, en mi PC lo tengo funcionando de otra manera distinta, pero para el objetivo de este artículo, de momento dejamos la macro así de sencilla, ¿vale?

3.- Solo después de levantar la tecla CONTROL

Otro punto que vamos a corregir es evitar comportamientos no deseados en aplicaciones, como podría ser Word.

A ver si logro explicarme; sígueme, no es complicado, pero requiere un punto de atención: imagínate que estás en Word, y que ejecutas esta macro de AutoHotkey pulsando la tecla CONTROL y pulsando el ratón al mismo tiempo; hasta aquí, de acuerdo, ¿verdad? Fíjate que si levantas el botón de ratón antes de soltar la tecla CONTROL, entonces Word irá sacando cada uno de los caracteres pero con la tecla CONTROL pulsada, ya que aún no la has soltado. Por ejemplo, al momento de sacar la letra P, si se le une el efecto de mantener pulsada la tecla CONTROL, eso significaría que empezarías a imprimir el documento (CONTROL+P), ¡algo que no quieres ni de lejos!

Las líneas 35 y 36 evitan esto. En concreto, la línea 35 comprueba si la tecla CONTROL está físicamente pulsada (parámetro P de la función GetKeyState), y si es así, espera 20 milisegundos (función Sleep) y vuelve a comprobarlo en un bucle del que solo se sale al levantar la tecla CONTROL.

Es decir, la macro solo escribirá la cadena españolizada al levantar la tecla CONTROL.

4.- Solo si hay que españolizar

Además, la macro solo escribirá la cadena españolizada si ha habido algún reemplazo.

El número de reemplazos lo controla la variable cambios, que tiene en cuenta la variable interna ErrorLevel en cada reemplazo con la función StringReplace. Si no se reemplaza nada, porque no has seleccionado nada «españolizable», entonces cambios valdrá cero y no se ejecutará la línea 40 con SendInput %clipboard%.

Realmente no sería necesario este control de los cambios implementados, pero no tiene sentido reemplazar un texto por otro, cuando ya vimos que es posible que falten formatos, etiquetas, campos, etc.

Con este código tenemos una macro más robusta, que no te dará tantos problemas como la más básica.

Conclusiones

Aquí tienes una forma rápida de «españolizar» palabras especiales de un idioma.

Puedes añadir otros criterios, los que consideres que te permiten exprimir las posibilidades que más se presentan en inglés (o en el idioma que quieras).

Lo que sí me gustaría es saber los criterios que añades a la macro de AutoHotkey. Así todos nos podremos aprovechar de las ideas de todos.

Cualquier idea, ya sabes: en el formulario de comentarios.

* * * * *

Aunque durante mucho tiempo disparé la macro pulsando la tecla CONTROL y haciendo clic con el ratón sobre la palabra seleccionada, desde hace unas semanas lo disparo de otra forma.

¿Qué forma?

Para saberlo, me temo que habrá que esperar hasta la semana que viene, donde en otro artículo tocaré un tema totalmente distinto, pero que, de paso, puedo aprovechar para facilitar mucho el disparo.

🙂

¿Hay suspense?

Entradas relacionadas

Si te ha gustado el artículo, además de compartirlo en tus redes sociales,

Share on twitter
Share on linkedin
Share on facebook
Share on google
Share on pocket

puedes leer otros artículos de Gonduana del mismo estilo:

Cómo buscar en el diccionario de la RAE con AutoHotkey

6/diciembre/2019

Si te encanta buscar las definiciones en el diccionario, pero te da pereza abrir el diccionario en internet y buscar la palabra, aquí tienes la

Leer el artículo »
Macros de Word para ordinales

Mis macros de Word para ordinales (Marisa E Schieda)

11/noviembre/2019

Este artículo es el segundo programado de Marisa E. Schieda, una correctora y bloguera argentina que quiere compartir contigo sus macros de Word para ordinales.

Leer el artículo »
Macros de Word para las abreviaturas de número

Mis macros de Word para abreviaturas de “número”

10/noviembre/2019

Este artículo es de Marisa E. Schieda, una correctora y bloguera argentina que quiere compartir contigo sus macros de Word para abreviaturas de «número», cuya

Leer el artículo »
Cambiar la conjunción y con AutoHotkey

Cambiar la conjunción «y» a «e» con AutoHotkey

21/octubre/2019

Este artículo es una continuación del anterior, ya que ahora vamos a ver cómo cambiar la conjunción «y» a «e» con AutoHotkey cuando es necesario

Leer el artículo »
Cambiar la conjunción o con AutoHotkey

Cambiar la conjunción «o» a «u» con AutoHotkey

8/octubre/2019

Si se te escapan frases como «siete o ocho», a pesar de que sabes que la conjunción o se cambia a u cuando le sigue

Leer el artículo »
Escribir el símbolo de marca registrada y superíndice 2

Cómo escribir el símbolo de marca registrada ®

30/septiembre/2019

Si quieres escribir el símbolo de marca registrada, es decir, ®, te presento aquí la forma de hacerlo en Word, Trados Studio y en cualquier

Leer el artículo »
Jesús Prieto

Jesús Prieto

Querido traductor: quiero compartir contigo muchas cosas que podrás aprovechar como profesional: desde herramientas especiales hasta técnicas comerciales; desde estrategias de marketing hasta trucos de productividad personal; desde cómo diseñar tu marca personal hasta novedades de impuestos.
Todos los artículos

Archivado en: macros, productividad Etiquetado como: AutoHotkey, regex, Word

Comentarios

  1. traductor dice

    4/enero/2016 al 10:19 am

    Otra posibilidad:

    #IfWinActive, ahk_exe WINWORD.EXE
    ^LButton::
    clipboard =
    Send ^c
    ClipWait, 0
    if ErrorLevel
    return
    Sleep, 50
    If RegExMatch(clipboard, "[a-z]{2,}tion\b")
    {
    clipboard := RegExReplace(clipboard, "i[sz]ation\b", "ización")
    clipboard := RegExReplace(clipboard, "i[sz]ations\b", "izaciones")
    clipboard := RegExReplace(clipboard, "tion\b", "ción")
    clipboard := RegExReplace(clipboard, "tions\b", "ciones")
    Send ^v
    }
    else
    {
    ToolTip, No matches found
    Sleep, 1000
    ToolTip
    }
    return
    #IfWinActive

    Responder
    • Jesús Prieto dice

      4/enero/2016 al 11:36 am

      Gracias, traductor, una posibilidad elegante, a base de expresiones regulares.

      Una cosa importante: en la macro de AutoHotkey habría que cambiar la línea:
      If RegExMatch(clipboard, "[a-z]{2,}tion\b")

      a esta otra:
      If RegExMatch(clipboard, "[a-z]{2,}tion")

      o bien a:
      If RegExMatch(clipboard, "[a-z]{2,}tions?\b")

      De este modo, tu macro podrá cambiar también las palabras en plural, terminadas en «tions».

      Veo que para escribir el comentario has empleado una dirección de correo desechable, así que no tengo forma de avisarte; espero que puedas ver mi comentario, para que puedas corregir tu macro de AutoHotkey, porque la idea me parece muy interesante.

      Nota: al igual que con mi macro, queda pendiente que funcione tanto si son palabras minúsculas («translation») como mayúsculas («TRANSLATION»).

      Un saludo.

      ... Jesús Prieto ...

      Responder
      • traductor dice

        4/enero/2016 al 1:27 pm

        Tienes razón, Jesús, lo correcto hubiera sido:

        If RegExMatch(clipboard, "[a-z]{2,}tions?\b")

        Corregido, ¡gracias!

        Para que funcione también con mayúsculas:

        #IfWinActive, ahk_exe WINWORD.EXE
        ^LButton::
        clipboard =
        Send ^c
        ClipWait, 0
        if ErrorLevel
        return
        Sleep, 50
        If RegExMatch(clipboard, "i)[a-z]{2,}tions?\b")
        {
        clipboard := RegExReplace(clipboard, "i[sz]ation\b", "ización")
        clipboard := RegExReplace(clipboard, "i[sz]ations\b", "izaciones")
        clipboard := RegExReplace(clipboard, "tion\b", "ción")
        clipboard := RegExReplace(clipboard, "tions\b", "ciones")
        clipboard := RegExReplace(clipboard, "I[SZ]ATION\b", "IZACIÓN")
        clipboard := RegExReplace(clipboard, "I[SZ]ATIONS\b", "IZACIONES")
        clipboard := RegExReplace(clipboard, "TION\b", "CIÓN")
        clipboard := RegExReplace(clipboard, "TIONS\b", "CIONES")
        Send ^v
        }
        else
        {
        ToolTip, No matches found
        Sleep, 1000
        ToolTip
        }
        return
        #IfWinActive

        Responder
        • Jesús Prieto dice

          4/enero/2016 al 1:38 pm

          ¡Fenomenal, muchas gracias por la idea!

          Responder

Comentar Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Jesús Prieto

Jesús Prieto 2015

Sobre mí

Encuesta: coger

SUSCRÍBETE AL BOLETÍN

Serás el primero en saber que hay un nuevo artículo en Gonduana.

Lo más visto…

Artículos más leídos de Gonduana
Vídeos más vistos de Gonduana
Gonduana en las redes sociales

Últimos artículos

  • Cómo buscar en el diccionario de la RAE con AutoHotkey
  • Los comodines de Excel
  • Novedades en el buscador de la RAE
  • Mis macros de Word para ordinales (Marisa E Schieda)
  • Mis macros de Word para abreviaturas de “número”
  • Los 10 principios del comercial
  • Cambiar la conjunción «y» a «e» con AutoHotkey
  • Cambiar la conjunción «o» a «u» con AutoHotkey
  • Cómo escribir el símbolo de marca registrada ®
  • Cómo exportar las entradas de Autocorrección a otro ordenador

Nube de etiquetas

anglicismos AutoHotkey cobros comodines copias de seguridad correo español Excel foto fórmulas geometría GTD imagen impagos impuestos libros marca matemáticas memoQ mouse MT negociación Outlook parábolas PDF PHP poesía power PowerPoint RAE ratón regex retrasos sector tarifas tipografía TM Trados Studio VBA vídeo webinarios Word WordPress XML zoología

Categorías

  • adaptación (3)
  • blog (10)
  • comercial (24)
  • contabilidad (2)
  • español (2)
  • etimología (4)
  • fiscalidad (2)
  • hardware (3)
  • macros (39)
  • marketing (8)
  • noticias (4)
  • productividad (42)
  • seguridad (5)
  • social (9)
  • software (41)
  • TAO (41)
  • terminología (9)
  • traducción automática (2)
  • traducción literaria (1)
  • tradumática (38)
  • vídeo (17)
Política de privacidad
Política de cookies
Aviso legal
Creative Commons

Licencia Creative Commons

Blog de Gonduana: recursos para traductores

Esta web usa cookies
Es cansino, sí, pero la ley europea me obliga a avisarte que este blog, como casi el 100%, usa cookies para recabar datos. ¿Estás de acuerdo con mi Política de cookies? Vale Más información
Política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are as essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are as essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.

Necesarias Siempre activado

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.