Hi everyone!
It has been already discussed here: synonyms - like in MS Word
Now based on the post of Jack Dunning mentioned on the link above, the following AutoHotkey script grabs synonyms from Microsoft Word application. Then it’ll show a pop-up menu with the available meaning-synonyms and then insert the selected synonym (right submenu) in Trados (see figure below). Only synonyms (right submenu) are clickable.
Synonyms will be picked based on the top language set on File > Options > Language > Office authoring languages and proofing (Spanish [Spain] in my particular case. The proofing package must be installed in order to use it):
This is the AutoHotkey script:
;-------------------------------------------------
; Search for synonyms in Trados Studio using Microsoft Word app.
; Ensure Microsoft Word is running (otherwise, the script will run it for you).
; Select the word in Trados Studio Editor.
; Use the shortcut is SHIFT+F7 (the same as in Word)
; In the pop-up menu first select the meaning and then the synonym.
; The synonym selected will be inserted on the Target segment.
; learn.microsoft.com/.../word.application.synonyminfo
; learn.microsoft.com/.../word.synonyminfo.synonymlist
;------------------------------------------------
#IfWinActive ahk_exe SDLTradosStudio.exe
+F7::
Send ^c
if StrLen(A_Clipboard)
SynonymsWord()
return
#IfWinActive
SynonymsWord(sel := "")
{
Global leadingSpace
Global trailingSpace
Try
oWord := ComObjActive("Word.Application")
catch
{
Run, WinWord, , Min
Loop
{
Sleep 200
try
oWord := ComObjActive("Word.Application")
if (A_index > 60)
{
ME("Microsoft Word is not installed and no synonyms can be retrieved from Word.")
return
}
} Until oWord!=""
}
if (sel = "")
sel := A_Clipboard
if (RegexMatch(sel, "^\s"))
leadingSpace := SubStr(sel, 1, 1)
else
leadingSpace := ""
if (RegexMatch(sel, "\s$"))
trailingSpace := SubStr(sel, 0)
else
trailingSpace := ""
sel := RegExReplace(sel, "^\s+") ; Remove leading spaces
sel := RegExReplace(sel, "\s+$") ; Remove trailing spaces
nMeanings := oWord.SynonymInfo(sel).MeaningCount
meanings := oWord.SynonymInfo(sel).MeaningList
StringUpper, selUpper, sel
Menu, MenuSynonyms, add, %selUpper%, Nothing, +Radio
Menu, MenuSynonyms, check, %selUpper%
Menu, MenuSynonyms, default, %selUpper%
Loop % nMeanings
{
try
meaning := meanings[A_Index]
catch
continue
nMeaning := A_Index
mySubmenu := "MenuMeanings" nMeaning
synonyms := oWord.SynonymInfo(sel).SynonymList(A_Index)
max := synonyms.MaxIndex()
Loop % max
{
synonym := synonyms[A_Index]
Menu, %mySubmenu%, add, %synonym%, SynonymAction
}
Menu, MenuSynonyms, add, %meaning%, :%mySubmenu%
}
if (!nMeanings)
Menu, MenuSynonyms, add, No synonyms from Word!, Nothing
Menu, MenuSynonyms, Show
Menu, MenuSynonyms, DeleteAll
Loop
{
mySubmenu := "Meanings" A_Index
try
Menu, %mySubmenu%, Delete
catch
Break
}
}
SynonymAction()
{
Global leadingSpace
Global trailingSpace
SendRaw % leadingSpace A_ThisMenuItem trailingSpace
}
Nothing()
{
}
- The script works not only in Trados Studio Editor, but also in Translation Memories, etc…
- The out-of-the-box script works only in Trados Studio, but it can work also in other applications. Don’t hesitate to edit the script to suit your needs.
- In case you are wondering if it’s possible to select the proofing language automatically based on the target language of the Studio project, yes, I think it is, but I leave to RWS to publish an app with this feature.
Enjoy!
Generated Image Alt-Text
[edited by: Trados AI at 4:32 AM (GMT 0) on 5 Mar 2024]