Sedillator - scapati de diacriticele cu virgula in clipboard

Diverse aplicatii create de membrii acestui forum
Campus
Comandantul unitatii
Mesaje: 446
Membru din: 09 Mai 2007, 12:15
Localitate: Cluj Napoca

Sedillator - scapati de diacriticele cu virgula in clipboard

Mesaj de Campus »

Salut
M-am enervat foarte tare cand am vazut azi ca google translate foloseste noile diacritice cu virgula asa ca am creat un script in autoit care sa transforme automat in clipboard diacriticele cu virgula in diacritice cu sedila.
Practic, cu utilitarul pornit in system tray copiati un text si, daca contine diacritice noi, acestea vor fi transformate automat dupa care veti primi un mesaj de tipul baloon tip si o avertizare sonora. Apoi puteti face paste unde doriti cu textul gata inlocuit sau puteti folosi functia read clipboard din jaws - presupun ca exista asa ceva desi nu stiu sigur - ca sa cititi textul.
Daca doriti sa il testati descarcati Sedillator.exe
Pun mai jos codul utilitarului daca doriti sa il modificati in scopuri personale:

Cod: Selectaţi tot

#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=0
#AutoIt3Wrapper_UseUpx=n
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <Misc.au3>
#include <Constants.au3>
_Singleton("Sedillator")
Global $_Enabled = True
Global $_nrReplacements = 0
Local $converted
Global $_titluProgram = "Sedillator"
Opt("TrayMenuMode", 1)
TraySetIcon("shell32.dll", 243)
SoundPlay(@WindowsDir & "\Media\chimes.wav")
TrayTip($_titluProgram, $_titluProgram&" este activ!"&@CR&"Diacriticele noi din clipboard vor fi modificate automat!", 10, 1)
TraySetToolTip($_titluProgram)
$menu_About = TrayCreateItem("Despre " & $_titluProgram)
$menu_Enabled = TrayCreateItem("Dezactivare " & $_titluProgram)
$menu_Exit = TrayCreateItem("Ieşire")
While 1
	$msg = TrayGetMsg()
	Select
		Case $msg = $menu_About
			MsgBox(64, "Despre " & $_titluProgram, $_titluProgram & @CR & "Program creat de Campus!" & @CR & "Înlocuieşte automat în clipboard diacriticele cu virgulă" & @CR & "cu cele cu sedilă.")
			TrayItemSetState($msg, $TRAY_UNCHECKED)
		Case $msg = $menu_Enabled
			Switch $_Enabled
				Case True
					$_Enabled = False
					TrayTip($_titluProgram, "Monitorizare clipboard dezactivată!", 10, 1)
					TraySetToolTip($_titluProgram&" inactiv")
				Case False
					$_Enabled = True
					TrayTip($_titluProgram, "Monitorizare clipboard activată!", 10, 1)
					TraySetToolTip($_titluProgram)
			EndSwitch
		Case $msg = $menu_Exit
			$iMsgBoxAnswer = MsgBox(36, $_titluProgram, "Sigur ieşiţi din program?" & @CRLF & "De acum înainte diacriticele nu vor mai fi modificate în clipboard.")
			Select
				Case $iMsgBoxAnswer = 6 ;Yes
					Exit
				Case $iMsgBoxAnswer = 7 ;No
					TrayItemSetState($msg, $TRAY_UNCHECKED)
			EndSelect
	EndSelect
	If $_Enabled = True Then
		$text = ClipGet()
		If IsString($text) Then
			If $text <> $converted Then
				$converted = _RomanianCedilla($text)
				If $_nrReplacements <> 0 Then
					SoundPlay(@WindowsDir & "\Media\chimes.wav")
					ClipPut($converted)
					TrayTip("Clipboard modificat", $_nrReplacements & " diacritice au fost modificate in clipboard", 10, 1)
					$_nrReplacements = 0
				EndIf
			EndIf
		EndIf
	EndIf
WEnd
Func _RomanianCedilla($text)
	Local $ra[8] = ["Ș", "Ş", "ș", "ş", "Ț", "Ţ", "ț", "ţ"]
	For $i = 0 To 6 Step 2
		$text = StringReplace($text, $ra[$i], $ra[$i + 1], 0, 1)
		$_nrReplacements += @extended
	Next
	Return $text
EndFunc   ;==>_RomanianCedilla
Mentionez ca pentru o compilare corecta fisierul au3 trebuie sa fie UTF-8.
Toate cele bune!
Campus
Avatar utilizator
Manu
General de divizie
Mesaje: 4120
Membru din: 02 Feb 2007, 01:15
Localitate: Cluj-Napoca
Contact:

Mesaj de Manu »

E fain ca anunta si cate inlocuiri au fost facute in momentul copierii textului cu control + c.

Pana la urma s-a dovedit o idee buna sa fac pagina de instrumente din sectiunea Utile, de acum apare alaturi de tourCreator si Sedillator.
E o sectiune in care chiar merge sa apara tot felul de .EXE-uri cu sufixul "tor".
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
IonPop
Colonel
Mesaje: 2166
Membru din: 02 Oct 2010, 17:55

Mesaj de IonPop »

Bravo Campus. Foarte buna ideea.
Eu in general nu am probleme cu citirea caracterelor cu diacritice de tip virgula, insa uneori fac copy/paste din browser in TextPad, iar TextPad nu suporta noile caractere, asa ca acest program este foarte util.
CostiC
Sergent
Mesaje: 25
Membru din: 15 Sep 2010, 13:44
Localitate: Timisoara

Mesaj de CostiC »

O idee foarte buna, m-am jucat si eu cu el si merge bine.

Costi
Campus
Comandantul unitatii
Mesaje: 446
Membru din: 09 Mai 2007, 12:15
Localitate: Cluj Napoca

Mesaj de Campus »

Mai exista o limitare, Inlocuirea se activeaza doar daca exista diacritice noi in textul din clipboard. Odata activata inlocuirea se elimina toate formatarile textului din clipboard. Se pierd sublinierile si toate celelalte formatari din word si html dar textul propriu zis ramane intact.
Mie personal imi convine acest lucru dat fiind faptul ca il utilizez mai ales pentru winbraille si acolo nu am nevoie de formatari, ba chiar ma incurca cateodata.
Programul se poate dezactiva usor prin meniul contextual din system tray. De asemenea, se poate adauga in viitor optiunea de pornire autiomata cu windows dar puteti si acuma sa copiati o scurtatura in startup daca vreti sa il folositi permanent.
IonPop
Colonel
Mesaje: 2166
Membru din: 02 Oct 2010, 17:55

Mesaj de IonPop »

Pe mine unul nu ma deranjeaza ca se strica formatarea, fiindca atunci cand fac copy/paste in TextPad nu am nevoie de formatare oricum.
Cred ca ar fi util daca programul ar putea fi rulat si cu parametrii --activeaza si --dezactiveaza, sau ceva asemanator.
Daca ar fi asa, atunci nu ar trebui sa il cautam in system tray, ci am putea sa punem un shortcut cu --activeaza si unul cu --dezactiveaza si cu o combinatie de taste sau alta l-am putea activa/dezactiva.
Campus
Comandantul unitatii
Mesaje: 446
Membru din: 09 Mai 2007, 12:15
Localitate: Cluj Napoca

Mesaj de Campus »

Ok, am adaugat 3 optiuni de tip argument de comanda:
Programul se poate porni acum cu urmatoarele argumente:
Sedillator.exe tacut (dezactiveaza notificarea de pornire a programului, bun daca vrea cineva sa il porneasca din startup pt a evita o notificare in plus la fiecare pornire de windows)
Sedillator.exe inactiv (dezactiveaza sau porneste inactiv)
Sedillator.exe activ (activeaza sau porneste activ, modul implicit)
Pot exista 2 argumente simultane: Ex: Sedillator.exe tacut inactiv.
De asemenea programul odata pornit poate fi modificat din mers: De exemplu sedillator.exe inactiv dezactiveaza programul care ruleaza la un moment dat.
Descarcati Sedillator 1.1 de la aceeasi legatura.
Codul sursa se afla in fisierul Sedillator.au3.

Toate cele bune!
Campus
Avatar utilizator
Manu
General de divizie
Mesaje: 4120
Membru din: 02 Feb 2007, 01:15
Localitate: Cluj-Napoca
Contact:

Mesaj de Manu »

Chiar in seara asta m-am folosit si eu de unealta, devin lucrurile mult mai comode cu Sedillator. Era destul de aiurea sa ne chinuim cu functii gen Find and Replace.
Am citit articolul postat de IonPop despre ilegalitatea decodarii telefoanelor, articol cu diacritice noi. Am mers la inceputul articolului, am dat Control + Shift + End pentru a selecta tot pana jos, am dat Control + C pentru a copia, apoi am citit textul din clipboard.

Pentru cine nu stie, JAWS 14 are un clipboard viewer: Insert + Space, urmat de un C afiseaza in virtual buffer textul din clipboard.
Daca nu e JAWS 14, textul poate fi citit din clipboard fara sa apara nimic pe ecran apasand Insert + Windows + X.
De asemenea facusem un mic scriptulet care s-ar aplica la orice versiune de JAWS. Scriptuletul este in topicul Despre accesibilitatea produselor si programare in general, al 13-lea mesaj. Linkul anterior duce direct la acel mesaj aflat imediat dupa primul heading de pe pagina.

Acum, daca tot au fost adaugati parametri preluati din linia de comanda, cred ca nu ar fi rau sa existe si posibilitatea utilizarii lor de catre cei care nu se prea pricep la astfel de lucruri.
Daca face cineva niste .bat-uri functionale sau ceva coerent, ar fi bine sa fie puse si aici. Cred ca cel mai important este, dupa cum am vazut ca imi trebuie si mie, sa activam si sa dezactivam din mers programelul, de lasat il putem lasa tot timpul pornit ca pe un proces constant.

O mentiune pe care nu ma pot abtine sa nu o fac, este ca numele "Sedillator" este unic, pana azi cel putin, daca se cauta cu Google, nu ni se dadea nici un fel de rezultat. :)
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
Campus
Comandantul unitatii
Mesaje: 446
Membru din: 09 Mai 2007, 12:15
Localitate: Cluj Napoca

Mesaj de Campus »

Pai mai simplu ar fi sa includem in el niste scurtaturi de taste.
Daca imi spuneti o scurtatura de taste care nu intra in conflict cu jaws in principal.... o adaug direct in programel si apoi adaug posibilitatea de a o dezactiva eventual din meniul din system tray :)
Avatar utilizator
Manu
General de divizie
Mesaje: 4120
Membru din: 02 Feb 2007, 01:15
Localitate: Cluj-Napoca
Contact:

Mesaj de Manu »

Cred ca cel mai bine ar fi sa fie posibila alegerea scurtaturii de taste, care sa se salveze in registry sau intr-un text micut langa. Daca e sters fisierul text sa nu mai fie valabila scurtatura de taste.
Sau daca are cineva o idee cam ce scurtatura sa fie inclusa implicit...
Problema ar fi cu numele tastelor, daca acestea ar trebui scrise intr-un input, dar se poate intreba aici.
In ritmul asta o sa ii trebuiasca si un mic Help, poate tot acolo din System Tray o legatura catre topicul asta sau catre pagina de instrumente...
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
IonPop
Colonel
Mesaje: 2166
Membru din: 02 Oct 2010, 17:55

Mesaj de IonPop »

Super. Mersi. O sa il testez.
Shady
Locotenent
Mesaje: 455
Membru din: 09 Aug 2011, 01:46
Localitate: Bucuresti
Contact:

Mesaj de Shady »

Intrebare.Caut ceva pe internet si vreau sa citesc pe wikipedia.Am eloquence si ma dispera uneori de fiecare data cand in alcatuirea cuvantului apar litere cu virgulita sau caciulita.Acest program imi este de folos si pentru a citi linistit?Mai exista o setare pe undeva sugerata de I Tichir lui Carmen T. mi se pare dar am cautat sa fac acea setare si nu am gasit.
Campus
Comandantul unitatii
Mesaje: 446
Membru din: 09 Mai 2007, 12:15
Localitate: Cluj Napoca

Mesaj de Campus »

Shady scrie:Intrebare.Caut ceva pe internet si vreau sa citesc pe wikipedia.Am eloquence si ma dispera uneori de fiecare data cand in alcatuirea cuvantului apar litere cu virgulita sau caciulita.Acest program imi este de folos si pentru a citi linistit?Mai exista o setare pe undeva sugerata de I Tichir lui Carmen T. mi se pare dar am cautat sa fac acea setare si nu am gasit.
Il poti folosi in felul urmator:
1. Pornesti sedillator.exe
2. Copiezi textul pe care vrei sa il citesti in clipboard.
3. folosesti functia read clipboard din jaws sau clipboard viewer asa cum a explicat Manu mai sus pentru a citi textul sau faci paste intr-un notepad si il citesti acolo.
Scriptul inlocuieste doar diacriticele Ş si Ţ, nu afecteaza Ă si Î, Daca ai probleme si cu astea nu te ajuta mare lucru.
Campus
Comandantul unitatii
Mesaje: 446
Membru din: 09 Mai 2007, 12:15
Localitate: Cluj Napoca

Mesaj de Campus »

Sedillator - versiunea 1.2
Am adaugat posibilitatea de a seta scurtaturi de taste pentru activare/ dezactivare monitorizare clipboard. Combinatia de taste trebuie scrisa intr-un imputbox pentru optiunea respectiva din meniul ""Alege scurtături taste"". Combinatia se scrie separata prin semnul + (exemplu: control+shift+a) Puteti folosi cel putin una din tastele control, shift, alt sau windows plus una din tastele numere sau litere. Deocamdata alte taste nu voi adauga..... nu cred ca asta este un inpediment major. Daca doriti sa eliminati o combinatie lasati campul gol in imputbox.
Programul nu are setata nici o combinatie implicita, optiunea este doar pentru pasionati :)
De asemenea exista posibilitatea de a fi setat sa porneasca automat cu windows din meniul din system tray.
Meniul a fost rearanjat si structurat logic.
Poate pe viitor o sa scriu si un help... desi eu tin foarte mult ca totul sa ramana intr-un singur fisier :D
Descarcati Sedillator 1.2
Ca de obicei, codul sursa se afla in fisierul Sedillator.au3.

Campus
Shady
Locotenent
Mesaje: 455
Membru din: 09 Aug 2011, 01:46
Localitate: Bucuresti
Contact:

Mesaj de Shady »

Mda...Nu prea stiu ce sa spun...Nu prea cred ca e prea bun...Nu stiu...Nu vreau sa jignesc.Ma mai gandesc.
Scrie răspuns