Translit ENG на РУС

Опубликуйте ваши работающие скрипты, библиотеки и ПО для AutoHotkey
djuga
Posts: 88
Joined: 28 Jul 2019, 08:16

Translit ENG на РУС

05 Nov 2020, 00:16

Написал свой транслит, аналогичный сайту translit.net

Искал такой скрипт, но не где не мог найти, пришлось написать
Решил поделится со всеми, может кому пригодится :dance:

Как пользоваться:

Меняем язык на клавиатуре с помощью кнопок Shift + Alt
Когда в трее язык сменится на Русский, можно писать на энг раскладке русскими буквами


Скрипт так же меняет эти буквы ->
jo=ё
yo=ё
zh=ж
ch=ч
sh=ш
je=э
ju=ю
yu=ю
ja=я
ya=я
Если есть идеи как его можно написать грамотней и красивее, предлагайте :roll:

Code: Select all

#NoEnv
#SingleInstance Force

Menu, Tray, NoStandard
Menu, Tray, Color, 0xFFFFFF
Menu, Tray, Add, Закрыть Translit, Exit
Menu, Tray, Icon , Закрыть Translit, Shell32.dll, 74

CurrentLang := % DllCall("GetKeyboardLayout", Int,DllCall("GetWindowThreadProcessId", int,WinActive("A"), Int,0))
Count := 0

~!Shift::
~+Alt::
startLang := % DllCall("GetKeyboardLayout", Int,DllCall("GetWindowThreadProcessId", int,WinActive("A"), Int,0))
While (DllCall("GetKeyboardLayout", Int,DllCall("GetWindowThreadProcessId", int,WinActive("A"), Int,0)) == startLang and Count < 100)
{
	Sleep, 50
	Count += 1
}
CurrentLang := DllCall("GetKeyboardLayout", Int,DllCall("GetWindowThreadProcessId", int,WinActive("A"), Int,0))
Count := 0
return

Exit:
ExitApp
return

#If (CurrentLang == "68748313" and not GetKeyState("Ctrl", "P"))
+SC01E::
SC01E::Send % GetKeyState("Shift", "P") || GetKeyState("CapsLock", "T") ? GetKeySC(A_PriorKey) == "36" or GetKeySC(A_PriorKey) == "21" ? "{BackSpace}{Я}" : "А" : GetKeySC(A_PriorKey) == "36" or GetKeySC(A_PriorKey) == "21" ? "{BackSpace}{я}" : "а"
SC030::б
SC02F::в
SC022::г
SC020::д
+SC012::
SC012::Send % GetKeyState("Shift", "P") || GetKeyState("CapsLock", "T") ? GetKeySC(A_PriorKey) == "36" ? "{BackSpace}{Э}" : "Е" : GetKeySC(A_PriorKey) == "36" ? "{BackSpace}{э}" : "е"
SC02C::з
SC017::и
SC024::й
SC025::к
SC026::л
SC032::м
SC031::н
+SC018::
SC018::Send % GetKeyState("Shift", "P") || GetKeyState("CapsLock", "T") ? GetKeySC(A_PriorKey) == "36" or GetKeySC(A_PriorKey) == "21" ? "{BackSpace}{Ё}" : "О" : GetKeySC(A_PriorKey) == "36" or GetKeySC(A_PriorKey) == "21" ? "{BackSpace}{ё}" : "о"
SC019::п
SC013::р
SC01F::с
SC014::т
+SC016::
SC016::Send % GetKeyState("Shift", "P") || GetKeyState("CapsLock", "T") ? GetKeySC(A_PriorKey) == "36" or GetKeySC(A_PriorKey) == "21" ? "{BackSpace}{Ю}" : "У" : GetKeySC(A_PriorKey) == "36" or GetKeySC(A_PriorKey) == "21" ? "{BackSpace}{ю}" : "у"
SC021::ф
+SC023::
SC023::Send % GetKeyState("Shift", "P") or GetKeyState("CapsLock", "T") ? GetKeySC(A_PriorKey) == "44" ? "{BackSpace}{Ж}" : GetKeySC(A_PriorKey) == "31" ? "{BackSpace}{Ш}" : GetKeySC(A_PriorKey) == "46" ? "{BackSpace}{Ч}" : "Х" : GetKeySC(A_PriorKey) == "44" ? "{BackSpace}{ж}" : GetKeySC(A_PriorKey) == "31" ? "{BackSpace}{ш}" : GetKeySC(A_PriorKey) == "46" ? "{BackSpace}{ч}" : "х"
SC02E::ц
SC011::щ
SC015::ы
SC027::ъ          
SC028::ь
SC010::я
+SC035::?
SC035::/
SC033::,
+SC01A::{
+SC01B::}
SC01A::[
SC01B::]
SC034::.
+SC034::>
+SC033::<
fadffqafdbhz
Posts: 3
Joined: 12 Jul 2023, 06:46

Re: Translit ENG на РУС

12 Jul 2023, 06:48

Привет, можно ли сделать то же самое с обратным переводом с русского на английский? Я не могу сделать это сам.
Hello, Is it possible to do the same with the reverse translation from Russian to English? I don't understand, I can't do it myself
Last edited by fadffqafdbhz on 12 Jul 2023, 07:07, edited 1 time in total.
garry
Posts: 3764
Joined: 22 Dec 2013, 12:50

Re: Translit ENG на РУС

12 Jul 2023, 08:39

( не ответ , только URL )
---------------------
https://russian.typeit.org/
тип как русская клавиатура
-- Type Russian letters – online Russian keyboard
If your keyboard layout is not US/UK English, you may have to use alternative keyboard shortcuts for some letters, e.g.
Alt+U for ю.
Stop the mouse over each button to learn its keyboard shortcut(s).
---------------------
fadffqafdbhz
Posts: 3
Joined: 12 Jul 2023, 06:46

Re: Translit ENG на РУС

12 Jul 2023, 08:45

тип vot tak mne nado nabiraya русские буквы
fadffqafdbhz
Posts: 3
Joined: 12 Jul 2023, 06:46

Re: Translit ENG на РУС

12 Jul 2023, 09:12

https://karnei4.github.io/translit/index.html
мне бы такое , только в ахк скрипт
garry
Posts: 3764
Joined: 22 Dec 2013, 12:50

Re: Translit ENG на РУС

12 Jul 2023, 14:00

спасибо

;==================================================
------------------
https://karnei4.github.io/translit/index.html
-- Транслит онлайн. Перевод кириллицы в транслит
Онлайн транслитерация слов в латиницу
Моментальный транслит слов, букв, имен с русского, украинского и других языков на английский.

① Ваш текст
Онлайн транслитерация слов в латиницу (Максимум 30000 знаков.)

② Результат
Onlajn transliteraciya slov v latinicu
---------------------
;===================================================


;- USER 'TEADRINKER' , translator script :
---------------------
viewtopic.php?f=6&t=63835
-- Using Google Translate to automate text translation - AutoHotkey Community
------------------

;===================================================


скрипт для смены клавиатуры :

Code: Select all

;- in WINDOWS-10/11 : use key WIN+SPACE to select keyboard language

;-- CHANGE KEYBOARD :

^1::SetDefaultKeyboard(0x0419) ; ru            ( ctrl+1 )
^2::SetDefaultKeyboard(0x0409) ; en-us         ( ctrl+2 )

/*
^0::SetDefaultKeyboard(0x0807) ; swiss-german
^3::SetDefaultKeyboard(0x0406) ; Danish
^4::SetDefaultKeyboard(0x0411) ; Japanese
^5::SetDefaultKeyboard(0x0408) ; Greek
*/
return
;-----
SetDefaultKeyboard(LocaleID){
	Global
	SPI_SETDEFAULTINPUTLANG := 0x005A
	SPIF_SENDWININICHANGE := 2
	Lan := DllCall("LoadKeyboardLayout", "Str", Format("{:08x}", LocaleID), "Int", 0)
	VarSetCapacity(Lan%LocaleID%, 4, 0)
	NumPut(LocaleID, Lan%LocaleID%)
	DllCall("SystemParametersInfo", "UInt", SPI_SETDEFAULTINPUTLANG, "UInt", 0, "UPtr", &Lan%LocaleID%, "UInt", SPIF_SENDWININICHANGE)
	WinGet, windows, List
	Loop %windows% {
		PostMessage 0x50, 0, %Lan%, , % "ahk_id " windows%A_Index%
	}
}
return
;--------------------------------------------------
;-- SEE WHICH KEYBOARD LANGUAGE is SET :   ( F11 )
$F11::
  SetFormat, Integer, H
  hWnd := WinExist("A")
  ThreadID := DllCall("GetWindowThreadProcessId", "UInt", hWnd, "UInt", 0)
  hKL := DllCall("GetKeyboardLayout", "UInt", ThreadID, "UInt")
  if (hkl="0x8070407")
     msgbox, 262208,KEYBOARD,SwissGerman=%hkl%
  else if (hkl="0x4190419")
     msgbox, 262208,клавиатура ,Россия=%hkl%  
  else if (hkl="0x4090409")
     msgbox, 262208,KEYBOARD ,EN-US=%hkl%
  else if (hkl="0x4010401")
     msgbox, 262208,KEYBOARD ,Arabic=%hkl%
  else
     msgbox, 262208,KEYBOARD ,%hkl%
Return
;-------------------------------------------------
esc::exitapp
;=================================================

Return to “Скрипты и библиотеки”

Who is online

Users browsing this forum: No registered users and 60 guests