Change Caps Text Utility - Turkish Characters

Discussion, questions and support.
Post Reply
perfectrecall
Posts: 18
Joined: Mar 20th, ’23, 08:48

Post by perfectrecall » Mar 20th, ’23, 12:10

Hi. I'm using "change caps text utility" shortcut with Ctrl + Caps Lock which is in the FastKeys as default. Code is below. It works perfect except capitalizing Turkish characters. For example, when I write "signature" and use shortcut to capitalize it became "SIGNATURE" there is no problem. But when we write "sıcak" and use it, it became "SıCAK" not "SICAK". I think the code needs some addition for the character "ı" lower case to capitalize as "I" and reverse for "I"-"ı", "İ"-"i". Any recommendation for the code to fix this?

Code: Select all

Menu Case, Add
Menu Case, DeleteAll
Menu Case, Add, &UPPERCASE, CCase
Menu Case, Add, &lowercase, CCase
Menu Case, Add, &Title Case, CCase
Menu Case, Add, &Sentence case, CCase
Menu Case, Add
Menu Case, Add, &Fix Linebreaks, CCase
Menu Case, Add, &Reverse, CCase
Menu Case, Add
Menu Case, Add, &Remove Spaces, CCase

GetText(Txt)
If NOT ERRORLEVEL
  Menu Case, Show
Return

CCase:
p:=A_ThisMenuItemPos
If (p=1)
  StringUpper, Txt, Txt
Else If (p=2)
  StringLower, Txt, Txt
Else If (p=3)
  StringLower, Txt, Txt, T
Else If (p=4)
{
  StringLower, Txt, Txt
  Txt := RegExReplace(Txt, "((?:^|[.!?]\s+)[a-z])", "$u1")
}
Else If (p=6)
{
  Txt := RegExReplace(Txt, "\R", "`r`n")
}
Else If (p=7)
{
  Temp2 =
  StringReplace, Txt, Txt, `r`n, % Chr(29), All
  Loop Parse, Txt
    Temp2 := A_LoopField . Temp2
  StringReplace, Txt, Temp2, % Chr(29), `r`n, All
}
Else If (p=9)
{
  Loop 
  { 
  StringReplace, Txt, Txt, %A_Space%%A_Space%, %A_Space%, UseErrorLevel 
  if ErrorLevel = 0  
    break 
  }
}
PutText(Txt)
Return

GetText(ByRef MyText = "")
{
SavedClip := ClipboardAll
Clipboard =
Send ^{vk43} ;Ctrl C
ClipWait 0.5
If ERRORLEVEL
{
  Clipboard := SavedClip
  MyText =
  Return
}
MyText := Clipboard
Clipboard := SavedClip
Return MyText
}

PutText(MyText)
{
SavedClip := ClipboardAll 
Clipboard =
Sleep 20
Clipboard := MyText
Send ^{vk56} ;Ctrl V
Sleep 100
Clipboard := SavedClip
Return
}
User avatar
Marko
Posts: 1718
Joined: Mar 2nd, ’13, 21:02

Post by Marko » Mar 22nd, ’23, 12:38

I tried special characters from some other languages and it works. Maybe you need to adjust the language/keyboard settings.
Post Reply