Translit ENG на РУС

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

Translit ENG на РУС

Post by djuga » 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 на РУС

Post by fadffqafdbhz » 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: 3795
Joined: 22 Dec 2013, 12:50

Re: Translit ENG на РУС

Post by garry » 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 на РУС

Post by fadffqafdbhz » 12 Jul 2023, 08:45

тип vot tak mne nado nabiraya русские буквы

fadffqafdbhz
Posts: 3
Joined: 12 Jul 2023, 06:46

Re: Translit ENG на РУС

Post by fadffqafdbhz » 12 Jul 2023, 09:12

https://karnei4.github.io/translit/index.html
мне бы такое , только в ахк скрипт

garry
Posts: 3795
Joined: 22 Dec 2013, 12:50

Re: Translit ENG на РУС

Post by garry » 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
;=================================================

RoxoBono
Posts: 5
Joined: 19 Nov 2023, 23:58

Re: Translit ENG на РУС

Post by RoxoBono » Yesterday, 03:28

@djuga

Cant run the script I got this error. What Can I do?
image.png
image.png (10.59 KiB) Viewed 46 times

garry
Posts: 3795
Joined: 22 Dec 2013, 12:50

Re: Translit ENG на РУС

Post by garry » Yesterday, 05:31

save script xy.ahk in notepad 'Save as' ... UTF8 with BOM

translator from user 'teadrinker'

Code: Select all

;-------- saved at 星期一 七月 2020-07-27  11:55 UTC --------------
;- Using Google Translate to automate text translation 
;- https://www.autohotkey.com/boards/viewtopic.php?f=6&t=63835
;- https://www.autohotkey.com/boards/viewtopic.php?f=76&t=71993 ---
;- translator from user teadrinker / with GUI 
/*
modified=20210123  modified language https://cloud.google.com/translate/docs/languages
modified=20200726  added AUDIO
modified=20200329  ( teadrinker ) edited 2 times in total.
modified=20200130  translate clipboard again in other language with dropdownlist (ddl1)
modified=20191019  ( teadrinker ) edited 1 time in total. 
modified=20190422  EDIT CreateScriptObj() ( teadrinker )
created =20190419
-select language , copy marked text ctrl+c > see translation in selected language
-click AUDIO button to hear the text
*/
;-------------------------------------------------------------------------------
#NoEnv
;#Warn
setworkingdir,%a_scriptdir%
tl1:=""
Gui,1:default
Gui,1: +AlwaysOnTop  
Gui,1: -DPIScale
SS_REALSIZECONTROL := 0x40
wa:=a_screenwidth,ha:=a_screenheight,xx:=100
clipboard=
cl=
transform,s,chr,32
gosub,language
SplitPath,a_scriptname, name, dir, ext, name_no_ext, drive
rssini=%a_scriptdir%\%name_no_ext%.ini
ifnotexist,%rssini%    ;- first run
    {
    translateto=ru                                      ;- ru = Русский
    IniWrite,%translateto%, %rssini% ,Lang1  ,key1
    }
Gui,1:Color,Black,Black
Gui,1:Font,s14 cYellow ,Lucida Console 
IniRead, tl1, %rssini%,Lang1 ,key1
global tl1,JS,txt22,h1
x:=(wa*.5)/xx,W :=(wa*18)/xx,H :=(ha*10)/xx,y:=(ha*.5)/xx
Gui,add,dropdownlist, x%x% y%y% w%w% vDDL1 gddl2 ,%e5x%
x:=(wa*20)/xx,W :=(wa*8)/xx,H :=(ha*2.4)/xx,y:=(ha*.5)/xx
Gui,add,button,x%x% y%y%  w%w% h%h% gAudio,AUDIO
x:=(wa*.5)/xx,W :=(wa*29)/xx , H :=(ha*88)/xx , y:=(ha*3.5)/xx
Gui,add,edit,x%x% y%y%  w%w% h%h% vED1  -border -E0x200,
W :=(wa*30)/xx , H :=(ha*91)/xx  , x:=(wa-w),y:=(ha*2)/xx
Gui, Show,x%x% y%y% w%w% h%h% ,TRANSLATE
GuiControl,1:Choose,ddl1,%tl1%
GuiControl, Focus,ED1
WinID := WinExist("A")
WinSetTitle, ahk_id %WinID%,, TRANSLATE_to_%tl1%     TEADRINKER
E0x200 = WS_EX_CLIENTEDGE
RETURN
;--------------------------
esc::exitapp
;--------------------------
Guiclose:
cl=
clipboard=
exitapp
;-----  CTRL+C Clipboardchange ---------------------
OnClipboardChange:
If (A_EventInfo=1)
 {
 Gui, Show,
 GuiControl, Focus,ED1
 ClipWait,
 if (!ErrorLevel)
  {
  cl:=clipboard
  aa:=GoogleTranslate(cl)
  ControlSetText,edit1,%aa%, ahk_class AutoHotkeyGUI
  txt22:=aa
  aa=
  GuiControl, Focus,ED1
  }
 }
return
;--------------------------
;--------------------------
ddl2:
Gui,1:submit,nohide
h1:=""
h2:=""
if DDL1<>
{
StringSplit,h,ddl1,`_
if h1<>
  {
  IniWrite,%h1%, %rssini% ,Lang1  ,key1
  tl1:=h1
  WinSetTitle, ahk_id %WinID%,, TRANSLATE_to_%h2%     TEADRINKER
  gosub,translateddlchange
  }
}
return
;----------------------------------------
;------- translate changed language -----
translateddlchange:
Guicontrolget,ed1
if ed1<>
{
aa:=GoogleTranslate(cl)      ;- translate clipboard again in other language
ControlSetText,edit1,%aa%, ahk_class AutoHotkeyGUI
txt22:=aa
aa=
}
return
;---------------------------------------


;====================== TRANSLATE user teadrinker =============================
;-------- saved at 星期日 七月 2020-07-26  19:57 UTC --------------
;- Using Google Translate to automate text translation 
;- https://www.autohotkey.com/boards/viewtopic.php?f=6&t=63835
;MsgBox, % GoogleTranslate("今日の天気はとても良いです")
;MsgBox, % GoogleTranslate("Hello, World!", "en", "ru")
GoogleTranslate(str, from := "auto", to := "en")  {
   trans:=""
   static JS := CreateScriptObj(), _ := JS.( GetJScript() ) := JS.("delete ActiveXObject; delete GetObject;")
   
   json := SendRequest(JS, str, to, from, proxy := "")
   oJSON := JS.("(" . json . ")")
   if !IsObject(oJSON[1])  {
      Loop % oJSON[0].length
         trans .= oJSON[0][A_Index - 1][0]
   }
   else  {
      MainTransText := oJSON[0][0][0]
      Loop % oJSON[1].length  {
         trans .= "`n+"
         obj := oJSON[1][A_Index-1][1]
         Loop % obj.length  {
            txt := obj[A_Index - 1]
            trans .= (MainTransText = txt ? "" : "`n" txt)
         }
      }
   }
   if !IsObject(oJSON[1])
      MainTransText := trans := Trim(trans, ",+`n ")
   else
      trans := MainTransText . "`n+`n" . Trim(trans, ",+`n ")
   from := oJSON[2]
   trans := Trim(trans, ",+`n ")
   Return trans
}
SendRequest(JS, str, tl, sl, proxy) {
   static http
   ComObjError(false)
   if !http
   {
      http := ComObjCreate("WinHttp.WinHttpRequest.5.1")
      ( proxy && http.SetProxy(2, proxy) )
      http.open( "get", "https://translate.google.com", 1 )
      http.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0")
      http.send()
      http.WaitForResponse(-1)
   }
   http.open( "POST", "https://translate.google.com/translate_a/single?client=webapp&sl="
      . sl . "&tl=" . tl1 . "&hl=" . tl1
      . "&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&otf=0&ssel=0&tsel=0&pc=1&kc=1"
      . "&tk=" . JS.("tk").(str), 1 )
   http.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
   http.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0")
   http.send("q=" . URIEncode(str))
   http.WaitForResponse(-1)
   Return http.responsetext
}
URIEncode(str, encoding := "UTF-8")  {
   urlstr:=""
   VarSetCapacity(var, StrPut(str, encoding))
   StrPut(str, &var, encoding)
   While code := NumGet(Var, A_Index - 1, "UChar")  {
      bool := (code > 0x7F || code < 0x30 || code = 0x3D)
      UrlStr .= bool ? "%" . Format("{:02X}", code) : Chr(code)
   }
   Return UrlStr
}
GetJScript()
{
   script =
   (
      var TKK = ((function() {
        var a = 561666268;
        var b = 1526272306;
        return 406398 + '.' + (a + b);
      })());
      function b(a, b) {
        for (var d = 0; d < b.length - 2; d += 3) {
            var c = b.charAt(d + 2),
                c = "a" <= c ? c.charCodeAt(0) - 87 : Number(c),
                c = "+" == b.charAt(d + 1) ? a >>> c : a << c;
            a = "+" == b.charAt(d) ? a + c & 4294967295 : a ^ c
        }
        return a
      }
      function tk(a) {
          for (var e = TKK.split("."), h = Number(e[0]) || 0, g = [], d = 0, f = 0; f < a.length; f++) {
              var c = a.charCodeAt(f);
              128 > c ? g[d++] = c : (2048 > c ? g[d++] = c >> 6 | 192 : (55296 == (c & 64512) && f + 1 < a.length && 56320 == (a.charCodeAt(f + 1) & 64512) ?
              (c = 65536 + ((c & 1023) << 10) + (a.charCodeAt(++f) & 1023), g[d++] = c >> 18 | 240,
              g[d++] = c >> 12 & 63 | 128) : g[d++] = c >> 12 | 224, g[d++] = c >> 6 & 63 | 128), g[d++] = c & 63 | 128)
          }
          a = h;
          for (d = 0; d < g.length; d++) a += g[d], a = b(a, "+-a^+6");
          a = b(a, "+-3^+b+-f");
          a ^= Number(e[1]) || 0;
          0 > a && (a = (a & 2147483647) + 2147483648);
          a `%= 1E6;
          return a.toString() + "." + (a ^ h)
      }
   )
   Return script
}
CreateScriptObj() {
   static doc
   doc := ComObjCreate("htmlfile")
   doc.write("<meta http-equiv='X-UA-Compatible' content='IE=9'>")
   Return ObjBindMethod(doc.parentWindow, "eval")
}
;============================================================================




;=================================   AUDIO ==================================
AUDIO:
Gui,submit,nohide
global aa2,TL1,text
F1 := a_desktop . "\test.mp3"
tl1=%tl1%
;TL1:="de"
;text:="Good evening , how are you ?"
text:=txt22
;msgbox, 262208, ,LNG=`n%lng%`n---------------------`nTEXT=`n%text%
;return
aa2:= GetAudioFromGoogle(text, TL1, F1)
if (aa2<>1)
  {
  msgbox, 262208, ,AA2=%aa2%`nLanguage = "%Tl1%"
  return
  }
soundplay,%f1%
filedelete,%f1%
return
;----------------------------------------------------------------------------
;----------------------------------------------------------------------------
GetAudioFromGoogle(text,TL1, mp3filePath)  {
   url := CreateUrl(text,TL1)
   data := sendrequest2(url)
   if SubStr(data, 1, 6) = "Error!"
      Return data
   
   Return SaveDataToFile(data, mp3filePath)
}
CreateUrl(text, TL1)  {
   JS := CreateScriptObj2(), JS.( GetJscript2() )
   url := "https://translate.google.ru/translate_tts?ie=UTF-8&tl="
         . TL1 . "&total=1&idx=0&client=t&prev=input&textlen="
         . StrLen(text) . "&tk=" . JS.("tk").(text) . "&q=" . uriencode2(text)
   Return url
}
sendrequest2(url) {
   whr := ComObjCreate("Msxml2.XMLHTTP.6.0")
   whr.Open("GET", url, false)
   whr.Send()
   
   if (whr.Status != 200)
      Return "Error! Status: " . whr.Status . "`n`n" . whr.responseBody
   Return whr.responseBody
}
SaveDataToFile(data, filePath) {
   stream := ComObjCreate("ADODB.Stream")
   stream.type := 1  ; Binary data
   stream.Open
   stream.Write(data)
   stream.SaveToFile(filePath, 2)
   stream.Close
   Return true
}
;=====================================================================================
GetJscript2()
{
   script =
   (
      var TKK = ((function() {
        var a = 561666268;
        var b = 1526272306;
        return 406398 + '.' + (a + b);
      })());
      function b(a, b) {
        for (var d = 0; d < b.length - 2; d += 3) {
            var c = b.charAt(d + 2),
                c = "a" <= c ? c.charCodeAt(0) - 87 : Number(c),
                c = "+" == b.charAt(d + 1) ? a >>> c : a << c;
            a = "+" == b.charAt(d) ? a + c & 4294967295 : a ^ c
        }
        return a
      }
      function tk(a) {
          for (var e = TKK.split("."), h = Number(e[0]) || 0, g = [], d = 0, f = 0; f < a.length; f++) {
              var c = a.charCodeAt(f);
              128 > c ? g[d++] = c : (2048 > c ? g[d++] = c >> 6 | 192 : (55296 == (c & 64512) && f + 1 < a.length && 56320 == (a.charCodeAt(f + 1) & 64512) ?
              (c = 65536 + ((c & 1023) << 10) + (a.charCodeAt(++f) & 1023), g[d++] = c >> 18 | 240,
              g[d++] = c >> 12 & 63 | 128) : g[d++] = c >> 12 | 224, g[d++] = c >> 6 & 63 | 128), g[d++] = c & 63 | 128)
          }
          a = h;
          for (d = 0; d < g.length; d++) a += g[d], a = b(a, "+-a^+6");
          a = b(a, "+-3^+b+-f");
          a ^= Number(e[1]) || 0;
          0 > a && (a = (a & 2147483647) + 2147483648);
          a `%= 1E6;
          return a.toString() + "." + (a ^ h)
      }
   )
   Return script
}
UriEncode2(str, encoding := "UTF-8")  {
   urlstr:=""
   VarSetCapacity(var, StrPut(str, encoding))
   StrPut(str, &var, encoding)
   While code := NumGet(Var, A_Index - 1, "UChar")  {
      bool := (code > 0x7F || code < 0x30 || code = 0x3D)
      UrlStr .= bool ? "%" . Format("{:02X}", code) : Chr(code)
   }
   Return UrlStr
}
CreateScriptObj2() {
   static doc
   doc := ComObjCreate("htmlfile")
   doc.write("<meta http-equiv='X-UA-Compatible' content='IE=9'>")
   Return ObjBindMethod(doc.parentWindow, "eval")
}
;====================== END AUDIO ========================================


;====================== LANGUAGEs ========================================
;-- some examples to select 20230428
;- https://cloud.google.com/translate/docs/languages
;- https://www.electronicshub.org/how-to-change-voice-on-google-translate/
;  How To Change Voice For Google Translate on Web Browser –
;  Unfortunately, there is no option available on Google Translate web service to change the voice by changing the regional dialect for any language. 
;  The feature is only available for now on Google Translate app as of now. 
;  On Google Translate web service, you can change the input and output languages which will change the voice as voice is different for different languages.
;-
language:
e5x:=""
e5x=
(Ltrim join|
af_Afrikaans
sq_Albanian
am_Amharic	
ar_Arabic	
hy_Armenian	
as_Assamese	
ay_Aymara	
az_Azerbaijani
bm_Bambara
eu_Basque
be_Belarusian
bn_Bengali
bho_Bhojpuri
bs_Bosnian
bg_Bulgarian
ca_Catalan
ceb_Cebuano
zh-CN_Chinese (Simplified)	zh-CN or zh (BCP-47)
zh-TW_Chinese (Traditional)	zh-TW (BCP-47)
co_Corsican
hr_Croatian
cs_Czech	
da_Danish	
dv_Dhivehi	
doi_Dogri	
nl_Dutch	
en_English	
eo_Esperanto
et_Estonian	
ee_Ewe	
fil_Filipino (Tagalog)
fi_Finnish
fr_French
fy_Frisian
gl_Galician
ka_Georgian
de_German	
el_Greek	
gn_Guarani	
gu_Gujarati	
ht_Haitian Creole
ha_Hausa	
haw_Hawaiian
he_Hebrew	
iw_Hebrew	
hi_Hindi	
hmn_Hmong	
hu_Hungarian
is_Icelandic
ig_Igbo
ilo_Ilocano
id_Indonesian
ga_Irish	
it_Italian	
ja_Japanese	
jv_Javanese	
jw_Javanese	
kn_Kannada	
kk_Kazakh	
km_Khmer	
rw_Kinyarwanda
gom_Konkani	
ko_Korean	
kri_Krio	
ku_Kurdish	
ckb_Kurdish سۆرانی Soranî
ky_Kyrgyz	
lo_Lao	
la_Latin	
lv_Latvian	
ln_Lingala	
lt_Lithuanian
lg_Luganda	
lb_Luxembourgish
mk_Macedonian	
mai_Maithili	
mg_Malagasy	
ms_Malay	
ml_Malayalam
mt_Maltese	
mi_Maori	
mr_Marathi	
mni-Mtei_Meiteilon (Manipuri)
lus_Mizo	
mn_Mongolian	
my_Myanmar (Burmese)
ne_Nepali	
no_Norwegian
ny_Nyanja (Chichewa)
or_Odia (Oriya)	
om_Oromo	
ps_Pashto	
fa_Persian	
pl_Polish	
pt_Portuguese (Portugal, Brazil)
pa_Punjabi	
qu_Quechua	
ro_Romanian	
ru_Russian	
sm_Samoan	
sa_Sanskrit	
gd_Scots Gaelic
nso_Sepedi
sr_Serbian
st_Sesotho	
sn_Shona	
sd_Sindhi	
si_Sinhala (Sinhalese)
sk_Slovak	
sl_Slovenian
so_Somali	
es_Spanish	
su_Sundanese
sw_Swahili	
sv_Swedish	
tl_Tagalog (Filipino)
tg_Tajik	
ta_Tamil	
tt_Tatar	
te_Telugu	
th_Thai	
ti_Tigrinya	
ts_Tsonga	
tr_Turkish	
tk_Turkmen	
ak_Twi (Akan)
uk_Ukrainian
ur_Urdu	ur
ug_Uyghur	
uz_Uzbek	
vi_Vietnamese
cy_Welsh	
xh_Xhosa	
yi_Yiddish	
yo_Yoruba	
zu_Zulu
)
return
;====================== END SCRIPT ==================================================


Post Reply

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